@react-typed-forms/schemas 8.0.0 → 8.2.0

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/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/util.ts","../src/controlBuilder.ts","../src/internal.ts","../src/hooks.tsx","../src/validators.ts","../src/schemaInterface.ts","../src/controlRender.tsx","../src/renderers.tsx","../src/tailwind.tsx"],"sourcesContent":["export interface SchemaField {\n type: string;\n field: string;\n displayName?: string | null;\n tags?: string[] | null;\n system?: boolean | null;\n collection?: boolean | null;\n onlyForTypes?: string[] | null;\n required?: boolean | null;\n notNullable?: boolean | null;\n defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport enum FieldType {\n String = \"String\",\n Bool = \"Bool\",\n Int = \"Int\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n EntityRef = \"EntityRef\",\n Compound = \"Compound\",\n AutoId = \"AutoId\",\n Image = \"Image\",\n Any = \"Any\",\n}\n\nexport interface EntityRefField extends SchemaField {\n type: FieldType.EntityRef;\n entityRefType: string;\n parentField: string;\n}\n\nexport interface FieldOption {\n name: string;\n value: any;\n}\n\nexport interface CompoundField extends SchemaField {\n type: FieldType.Compound;\n children: SchemaField[];\n treeChildren?: boolean;\n}\n\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\nexport interface SchemaInterface {\n isEmptyValue(field: SchemaField, value: any): boolean;\n textValue(\n field: SchemaField,\n value: any,\n element?: boolean,\n ): string | undefined;\n}\nexport interface ControlDefinition {\n type: string;\n title?: string | null;\n styleClass?: string | null;\n layoutClass?: string | null;\n dynamic?: DynamicProperty[] | null;\n adornments?: ControlAdornment[] | null;\n children?: ControlDefinition[] | null;\n}\n\nexport enum ControlDefinitionType {\n Data = \"Data\",\n Group = \"Group\",\n Display = \"Display\",\n Action = \"Action\",\n}\n\nexport interface DynamicProperty {\n type: string;\n expr: EntityExpression;\n}\n\nexport enum DynamicPropertyType {\n Visible = \"Visible\",\n DefaultValue = \"DefaultValue\",\n Readonly = \"Readonly\",\n Disabled = \"Disabled\",\n Display = \"Display\",\n Style = \"Style\",\n LayoutStyle = \"LayoutStyle\",\n AllowedOptions = \"AllowedOptions\"\n}\n\nexport interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n Data = \"Data\",\n DataMatch = \"FieldValue\",\n UserMatch = \"UserMatch\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface DataExpression extends EntityExpression {\n type: ExpressionType.Data;\n field: string;\n}\n\nexport interface DataMatchExpression extends EntityExpression {\n type: ExpressionType.DataMatch;\n field: string;\n value: any;\n}\n\nexport interface UserMatchExpression extends EntityExpression {\n type: ExpressionType.UserMatch;\n userMatch: string;\n}\n\nexport interface ControlAdornment {\n type: string;\n}\n\nexport enum AdornmentPlacement {\n ControlStart = \"ControlStart\",\n ControlEnd = \"ControlEnd\",\n LabelStart = \"LabelStart\",\n LabelEnd = \"LabelEnd\",\n}\n\nexport enum ControlAdornmentType {\n Tooltip = \"Tooltip\",\n Accordion = \"Accordion\",\n HelpText = \"HelpText\",\n Icon = \"Icon\",\n}\n\nexport interface IconAdornment extends ControlAdornment {\n type: ControlAdornmentType.Icon;\n iconClass: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface TooltipAdornment extends ControlAdornment {\n type: ControlAdornmentType.Tooltip;\n tooltip: string;\n}\n\nexport interface AccordionAdornment extends ControlAdornment {\n type: ControlAdornmentType.Accordion;\n title: string;\n defaultExpanded: boolean;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface DataControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Data;\n field: string;\n required?: boolean | null;\n renderOptions?: RenderOptions | null;\n defaultValue?: any;\n readonly?: boolean | null;\n validators?: SchemaValidator[] | null;\n hideTitle?: boolean | null;\n dontClearHidden?: boolean | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\n Radio = \"Radio\",\n HtmlEditor = \"HtmlEditor\",\n IconList = \"IconList\",\n CheckList = \"CheckList\",\n UserSelection = \"UserSelection\",\n Synchronised = \"Synchronised\",\n IconSelector = \"IconSelector\",\n DateTime = \"DateTime\",\n Checkbox = \"Checkbox\",\n Dropdown = \"Dropdown\",\n DisplayOnly = \"DisplayOnly\",\n}\n\nexport interface RadioButtonRenderOptions extends RenderOptions {\n type: DataRenderType.Radio;\n}\n\nexport interface StandardRenderer extends RenderOptions {\n type: DataRenderType.Standard;\n}\n\nexport interface HtmlEditorRenderOptions extends RenderOptions {\n type: DataRenderType.HtmlEditor;\n allowImages: boolean;\n}\n\nexport interface DateTimeRenderOptions extends RenderOptions {\n type: DataRenderType.DateTime;\n format?: string | null;\n}\n\nexport interface IconListRenderOptions extends RenderOptions {\n type: DataRenderType.IconList;\n iconMappings: IconMapping[];\n}\n\nexport interface DisplayOnlyRenderOptions extends RenderOptions {\n type: DataRenderType.DisplayOnly;\n emptyText?: string | null;\n sampleText?: string | null;\n}\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface CheckListRenderOptions extends RenderOptions {\n type: DataRenderType.CheckList;\n}\n\nexport interface SynchronisedRenderOptions extends RenderOptions {\n type: DataRenderType.Synchronised;\n fieldToSync: string;\n syncType: SyncTextType;\n}\n\nexport enum SyncTextType {\n Camel = \"Camel\",\n Snake = \"Snake\",\n Pascal = \"Pascal\",\n}\n\nexport interface UserSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.UserSelection;\n noGroups: boolean;\n noUsers: boolean;\n}\n\nexport interface IconSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.IconSelector;\n}\n\nexport interface GroupedControlsDefinition extends ControlDefinition {\n type: ControlDefinitionType.Group;\n compoundField?: string | null;\n groupOptions?: GroupRenderOptions;\n}\n\nexport interface GroupRenderOptions {\n type: string;\n hideTitle?: boolean | null;\n}\n\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n Flex = \"Flex\",\n GroupElement = \"GroupElement\",\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface FlexRenderer extends GroupRenderOptions {\n type: GroupRenderType.Flex;\n direction?: string | null;\n gap?: string | null;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface GridRenderer extends GroupRenderOptions {\n type: GroupRenderType.Grid;\n columns?: number | null;\n}\n\nexport interface DisplayControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Display;\n displayData: DisplayData;\n}\n\nexport interface DisplayData {\n type: string;\n}\n\nexport enum DisplayDataType {\n Text = \"Text\",\n Html = \"Html\",\n Icon = \"Icon\",\n}\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface IconDisplay extends DisplayData {\n type: DisplayDataType.Icon;\n iconClass: string;\n}\n\nexport interface HtmlDisplay extends DisplayData {\n type: DisplayDataType.Html;\n html: string;\n}\n\nexport interface ActionControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Action;\n actionId: string;\n}\n\nexport enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n}\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\n}\n\nexport enum DateComparison {\n NotBefore = \"NotBefore\",\n NotAfter = \"NotAfter\",\n}\n\nexport interface DateValidator extends SchemaValidator {\n type: ValidatorType.Date;\n comparison: DateComparison;\n fixedDate?: string | null;\n daysFromCurrent?: number | null;\n}\n\nexport function isDataControlDefinition(\n x: ControlDefinition,\n): x is DataControlDefinition {\n return x.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControlsDefinition(\n x: ControlDefinition,\n): x is GroupedControlsDefinition {\n return x.type === ControlDefinitionType.Group;\n}\n\nexport function isDisplayControlsDefinition(\n x: ControlDefinition,\n): x is DisplayControlDefinition {\n return x.type === ControlDefinitionType.Display;\n}\n\nexport function isActionControlsDefinition(\n x: ControlDefinition,\n): x is ActionControlDefinition {\n return x.type === ControlDefinitionType.Action;\n}\n\nexport interface ControlVisitor<A> {\n data(d: DataControlDefinition): A;\n group(d: GroupedControlsDefinition): A;\n display(d: DisplayControlDefinition): A;\n action(d: ActionControlDefinition): A;\n}\n\nexport function visitControlDefinition<A>(\n x: ControlDefinition,\n visitor: ControlVisitor<A>,\n defaultValue: (c: ControlDefinition) => A,\n): A {\n switch (x.type) {\n case ControlDefinitionType.Action:\n return visitor.action(x as ActionControlDefinition);\n case ControlDefinitionType.Data:\n return visitor.data(x as DataControlDefinition);\n case ControlDefinitionType.Display:\n return visitor.display(x as DisplayControlDefinition);\n case ControlDefinitionType.Group:\n return visitor.group(x as GroupedControlsDefinition);\n default:\n return defaultValue(x);\n }\n}\nexport function isGridRenderer(\n options: GroupRenderOptions,\n): options is GridRenderer {\n return options.type === GroupRenderType.Grid;\n}\n\nexport function isFlexRenderer(\n options: GroupRenderOptions,\n): options is FlexRenderer {\n return options.type === GroupRenderType.Flex;\n}\n\nexport function isDisplayOnlyRenderer(\n options: RenderOptions,\n): options is DisplayOnlyRenderOptions {\n return options.type === DataRenderType.DisplayOnly;\n}\n","import { CompoundField, FieldOption, FieldType, SchemaField } from \"./types\";\n\ntype AllowedSchema<T> = T extends string\n ? SchemaField & {\n type: FieldType.String | FieldType.Date | FieldType.DateTime;\n }\n : T extends number\n ? SchemaField & {\n type: FieldType.Int | FieldType.Double;\n }\n : T extends boolean\n ? SchemaField & {\n type: FieldType.Bool;\n }\n : T extends Array<infer E>\n ? AllowedSchema<E> & {\n collection: true;\n }\n : T extends { [key: string]: any }\n ? CompoundField & {\n type: FieldType.Compound;\n }\n : SchemaField & { type: FieldType.Any };\n\ntype AllowedField<T, K> = (\n name: string,\n) => (SchemaField & { type: K }) | AllowedSchema<T>;\n\nexport function buildSchema<T, Custom = \"\">(def: {\n [K in keyof T]-?: AllowedField<T[K], Custom>;\n}): SchemaField[] {\n return Object.entries(def).map((x) =>\n (x[1] as (n: string) => SchemaField)(x[0]),\n );\n}\n\nexport function stringField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n ...options,\n });\n}\n\nexport function stringOptionsField(\n displayName: string,\n ...options: FieldOption[]\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n options,\n });\n}\n\nexport function withScalarOptions<\n S extends SchemaField,\n S2 extends Partial<SchemaField>,\n>(options: S2, v: (name: string) => S): (name: string) => S & S2 {\n return (n) => ({ ...v(n), ...options });\n}\n\nexport function makeScalarField<S extends Partial<SchemaField>>(\n options: S,\n): (name: string) => SchemaField & S {\n return (n) => ({ ...defaultScalarField(n, n), ...options });\n}\n\nexport function makeCompoundField<S extends Partial<CompoundField>>(\n options: S,\n): (name: string) => CompoundField & {\n type: FieldType.Compound;\n} & S {\n return (n) => ({ ...defaultCompoundField(n, n, false), ...options });\n}\n\nexport function intField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...options,\n });\n}\n\nexport function boolField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.Bool as const,\n displayName,\n ...options,\n });\n}\n\nexport function compoundField<\n Other extends Partial<Omit<CompoundField, \"type\" | \"schemaType\">>,\n>(\n displayName: string,\n fields: SchemaField[],\n other: Other,\n): (name: string) => CompoundField & {\n collection: Other[\"collection\"];\n} {\n return (field) =>\n ({\n ...defaultCompoundField(field, displayName, false),\n ...other,\n children: fields,\n }) as any;\n}\n\nexport function defaultScalarField(\n field: string,\n displayName: string,\n): Omit<SchemaField, \"type\"> & {\n type: FieldType.String;\n} {\n return {\n field,\n displayName,\n type: FieldType.String,\n };\n}\n\nexport function defaultCompoundField(\n field: string,\n displayName: string,\n collection: boolean,\n): CompoundField & {\n type: FieldType.Compound;\n} {\n return {\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n children: [],\n };\n}\n\nexport function mergeField(\n field: SchemaField,\n mergeInto: SchemaField[],\n): SchemaField[] {\n const existing = mergeInto.find((x) => x.field === field.field);\n if (existing) {\n return mergeInto.map((x) =>\n x !== existing\n ? x\n : {\n ...x,\n onlyForTypes: mergeTypes(x.onlyForTypes, field.onlyForTypes),\n },\n );\n }\n return [...mergeInto, field];\n\n function mergeTypes(f?: string[] | null, s?: string[] | null) {\n if (!f) return s;\n if (!s) return f;\n const extras = s.filter((x) => !f.includes(x));\n return extras.length ? [...f, ...extras] : f;\n }\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DisplayOnlyRenderOptions,\n FieldOption,\n FieldType,\n GridRenderer,\n GroupedControlsDefinition,\n GroupRenderType,\n isDataControlDefinition,\n isDisplayOnlyRenderer,\n SchemaField,\n SchemaInterface,\n visitControlDefinition,\n} from \"./types\";\nimport { MutableRefObject, useRef } from \"react\";\nimport { Control } from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\nimport { DataContext, JsonPath } from \"./controlRender\";\n\nexport interface ControlDataContext extends DataContext {\n fields: SchemaField[];\n schemaInterface: SchemaInterface;\n}\nexport function applyDefaultValues(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return defaultValueForFields(fields);\n const applyValue = fields.filter(\n (x) => isCompoundField(x) || !(x.field in v),\n );\n if (!applyValue.length) return v;\n const out = { ...v };\n applyValue.forEach((x) => {\n out[x.field] =\n x.field in v\n ? applyDefaultForField(v[x.field], x, fields)\n : defaultValueForField(x);\n });\n return out;\n}\n\nexport function applyDefaultForField(\n v: any,\n field: SchemaField,\n parent: SchemaField[],\n notElement?: boolean,\n): any {\n if (field.collection && !notElement) {\n return ((v as any[]) ?? []).map((x) =>\n applyDefaultForField(x, field, parent, true),\n );\n }\n if (isCompoundField(field)) {\n if (!v && !field.required) return v;\n return applyDefaultValues(v, field.treeChildren ? parent : field.children);\n }\n return defaultValueForField(field);\n}\n\nexport function defaultValueForFields(fields: SchemaField[]): any {\n return Object.fromEntries(\n fields.map((x) => [x.field, defaultValueForField(x)]),\n );\n}\n\nexport function defaultValueForField(\n sf: SchemaField,\n required?: boolean | null,\n): any {\n if (sf.defaultValue !== undefined) return sf.defaultValue;\n const isRequired = !!(required || sf.required);\n if (isCompoundField(sf)) {\n if (isRequired) {\n const childValue = defaultValueForFields(sf.children);\n return sf.collection ? [childValue] : childValue;\n }\n return sf.notNullable ? (sf.collection ? [] : {}) : undefined;\n }\n if (sf.collection) {\n return [];\n }\n return undefined;\n}\n\nexport function elementValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return defaultValueForFields(sf.children);\n }\n return sf.defaultValue;\n}\n\nexport function findScalarField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return findField(fields, field);\n}\n\nexport function findCompoundField(\n fields: SchemaField[],\n field: string,\n): CompoundField | undefined {\n return findField(fields, field) as CompoundField | undefined;\n}\n\nexport function findField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return fields.find((x) => x.field === field);\n}\n\nexport function isScalarField(sf: SchemaField): sf is SchemaField {\n return !isCompoundField(sf);\n}\n\nexport function isCompoundField(sf: SchemaField): sf is CompoundField {\n return sf.type === FieldType.Compound;\n}\n\nexport function isDataControl(\n c: ControlDefinition,\n): c is DataControlDefinition {\n return c.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControl(\n c: ControlDefinition,\n): c is GroupedControlsDefinition {\n return c.type === ControlDefinitionType.Group;\n}\n\nexport function fieldHasTag(field: SchemaField, tag: string) {\n return Boolean(field.tags?.includes(tag));\n}\n\nexport function fieldDisplayName(field: SchemaField) {\n return field.displayName ?? field.field;\n}\n\nexport function hasOptions(o: { options: FieldOption[] | undefined | null }) {\n return (o.options?.length ?? 0) > 0;\n}\n\nexport function defaultControlForField(sf: SchemaField): DataControlDefinition {\n if (isCompoundField(sf)) {\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n children: sf.children.map(defaultControlForField),\n };\n } else if (isScalarField(sf)) {\n const htmlEditor = sf.tags?.includes(\"_HtmlEditor\");\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n renderOptions: {\n type: htmlEditor ? DataRenderType.HtmlEditor : DataRenderType.Standard,\n },\n };\n }\n throw \"Unknown schema field\";\n}\nfunction findReferencedControl(\n field: string,\n control: ControlDefinition,\n): ControlDefinition | undefined {\n if (isDataControl(control) && field === control.field) return control;\n if (isGroupControl(control)) {\n if (control.compoundField)\n return field === control.compoundField ? control : undefined;\n return findReferencedControlInArray(field, control.children ?? []);\n }\n return undefined;\n}\n\nfunction findReferencedControlInArray(\n field: string,\n controls: ControlDefinition[],\n): ControlDefinition | undefined {\n for (const c of controls) {\n const ref = findReferencedControl(field, c);\n if (ref) return ref;\n }\n return undefined;\n}\n\nexport function addMissingControls(\n fields: SchemaField[],\n controls: ControlDefinition[],\n): ControlDefinition[] {\n const changes: {\n field: SchemaField;\n existing: ControlDefinition | undefined;\n }[] = fields.flatMap((x) => {\n if (fieldHasTag(x, \"_NoControl\")) return [];\n const existing = findReferencedControlInArray(x.field, controls);\n if (!existing || isCompoundField(x)) return { field: x, existing };\n return [];\n });\n const changedCompounds = controls.map((x) => {\n const ex = changes.find((c) => c.existing === x);\n if (!ex) return x;\n const cf = x as GroupedControlsDefinition;\n return {\n ...cf,\n children: addMissingControls(\n (ex.field as CompoundField).children,\n cf.children ?? [],\n ),\n };\n });\n return changedCompounds.concat(\n changes\n .filter((x) => !x.existing)\n .map((x) => defaultControlForField(x.field)),\n );\n}\n\nexport function useUpdatedRef<A>(a: A): MutableRefObject<A> {\n const r = useRef(a);\n r.current = a;\n return r;\n}\n\nexport function isControlReadonly(c: ControlDefinition): boolean {\n return isDataControl(c) && !!c.readonly;\n}\n\nexport function getDisplayOnlyOptions(\n d: ControlDefinition,\n): DisplayOnlyRenderOptions | undefined {\n return isDataControlDefinition(d) &&\n d.renderOptions &&\n isDisplayOnlyRenderer(d.renderOptions)\n ? d.renderOptions\n : undefined;\n}\n\nexport function getTypeField(\n context: ControlDataContext,\n): Control<string> | undefined {\n const typeSchemaField = context.fields.find((x) => x.isTypeField);\n return typeSchemaField\n ? lookupChildControl(context, typeSchemaField.field)\n : undefined;\n}\n\nexport function visitControlDataArray<A>(\n controls: ControlDefinition[] | undefined | null,\n context: ControlDataContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n if (!controls) return undefined;\n for (const c of controls) {\n const r = visitControlData(c, context, cb);\n if (r !== undefined) return r;\n }\n return undefined;\n}\n\nexport function visitControlData<A>(\n definition: ControlDefinition,\n ctx: ControlDataContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n return processData(def, def.field, def.children);\n },\n group(d: GroupedControlsDefinition) {\n return processData(undefined, d.compoundField, d.children);\n },\n action: () => undefined,\n display: () => undefined,\n },\n () => undefined,\n );\n\n function processData(\n def: DataControlDefinition | undefined,\n fieldName: string | undefined | null,\n children: ControlDefinition[] | null | undefined,\n ) {\n const fieldData = fieldName ? findField(ctx.fields, fieldName) : undefined;\n if (!fieldData)\n return !fieldName ? visitControlDataArray(children, ctx, cb) : undefined;\n\n const thisPath = [...ctx.path, fieldData.field];\n const control = ctx.data.lookupControl(thisPath);\n if (!control) throw \"No control for field\";\n const result = def ? cb(def, fieldData, control, false) : undefined;\n if (result !== undefined) return result;\n if (fieldData.collection) {\n let cIndex = 0;\n for (const c of control!.elements ?? []) {\n const elemResult = def ? cb(def, fieldData, c, true) : undefined;\n if (elemResult !== undefined) return elemResult;\n if (isCompoundField(fieldData)) {\n const cfResult = visitControlDataArray(\n children,\n {\n ...ctx,\n fields: fieldData.children,\n path: [...thisPath, cIndex],\n },\n cb,\n );\n if (cfResult !== undefined) return cfResult;\n }\n cIndex++;\n }\n }\n }\n}\n\nexport function lookupChildControl(\n data: DataContext,\n child: JsonPath,\n): Control<any> | undefined {\n const childPath = [...data.path, child];\n return data.data.lookupControl(childPath);\n}\n\nexport function cleanDataForSchema(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return v;\n const typeField = fields.find((x) => x.isTypeField);\n if (!typeField) return v;\n const typeValue = v[typeField.field];\n const cleanableFields = fields.filter(\n (x) => isCompoundField(x) || (x.onlyForTypes?.length ?? 0) > 0,\n );\n if (!cleanableFields.length) return v;\n const out = { ...v };\n cleanableFields.forEach((x) => {\n const childValue = v[x.field];\n if (\n x.onlyForTypes?.includes(typeValue) === false ||\n (!x.notNullable && canBeNull())\n ) {\n delete out[x.field];\n return;\n }\n if (isCompoundField(x)) {\n const childFields = x.treeChildren ? fields : x.children;\n if (x.collection) {\n if (Array.isArray(childValue)) {\n out[x.field] = childValue.map((cv) =>\n cleanDataForSchema(cv, childFields),\n );\n }\n } else {\n out[x.field] = cleanDataForSchema(childValue, childFields);\n }\n }\n function canBeNull() {\n return (\n x.collection && Array.isArray(childValue) && !childValue.length\n //|| (x.type === FieldType.Bool && childValue === false)\n );\n }\n });\n return out;\n}\n\nexport function getAllReferencedClasses(c: ControlDefinition): string[] {\n const childClasses = c.children?.flatMap(getAllReferencedClasses);\n const tc = clsx(c.styleClass, c.layoutClass);\n if (childClasses && !tc) return childClasses;\n if (!tc) return [];\n if (childClasses) return [tc, ...childClasses];\n return [tc];\n}\n\nexport function jsonPathString(jsonPath: JsonPath[]) {\n let out = \"\";\n jsonPath.forEach((v, i) => {\n if (typeof v === \"number\") {\n out += \"[\" + v + \"]\";\n } else {\n if (i > 0) out += \".\";\n out += v;\n }\n });\n return out;\n}\n\nexport function findChildDefinition(\n parent: ControlDefinition,\n childPath: number | number[],\n): ControlDefinition {\n if (Array.isArray(childPath)) {\n let base = parent;\n childPath.forEach((x) => (base = base.children![x]));\n return base;\n }\n return parent.children![childPath];\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataMatchExpression,\n DisplayControlDefinition,\n DisplayDataType,\n DynamicProperty,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n GroupedControlsDefinition,\n GroupRenderType,\n HtmlDisplay,\n JsonataExpression,\n SchemaField,\n TextDisplay,\n} from \"./types\";\nimport { ActionRendererProps } from \"./controlRender\";\nimport { useMemo } from \"react\";\nimport { addMissingControls, isCompoundField } from \"./util\";\nimport { mergeField } from \"./schemaBuilder\";\n\nexport function dataControl(\n field: string,\n title?: string | null,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, title, ...options };\n}\n\nexport function textDisplayControl(\n text: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Text, text } as TextDisplay,\n ...options,\n };\n}\n\nexport function htmlDisplayControl(\n html: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Html, html } as HtmlDisplay,\n ...options,\n };\n}\n\nexport function dynamicDefaultValue(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.DefaultValue, expr };\n}\n\nexport function dynamicReadonly(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Readonly, expr };\n}\n\nexport function dynamicVisibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\n}\n\nexport function dynamicDisabled(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Disabled, expr };\n}\n\nexport function fieldEqExpr(field: string, value: any): DataMatchExpression {\n return { type: ExpressionType.DataMatch, field, value };\n}\nexport function jsonataExpr(expression: string): JsonataExpression {\n return { type: ExpressionType.Jsonata, expression };\n}\n\nexport function groupedControl(\n children: ControlDefinition[],\n title?: string,\n options?: Partial<GroupedControlsDefinition>,\n): GroupedControlsDefinition {\n return {\n type: ControlDefinitionType.Group,\n children,\n title,\n groupOptions: { type: \"Standard\", hideTitle: !title },\n ...options,\n };\n}\nexport function compoundControl(\n field: string,\n title: string | undefined,\n children: ControlDefinition[],\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return {\n type: ControlDefinitionType.Data,\n field,\n children,\n title,\n renderOptions: { type: \"Standard\" },\n ...options,\n };\n}\n\nexport function createAction(\n actionId: string,\n onClick: () => void,\n actionText?: string,\n): ActionRendererProps {\n return { actionId, onClick, actionText: actionText ?? actionId };\n}\n\nexport const emptyGroupDefinition: GroupedControlsDefinition = {\n type: ControlDefinitionType.Group,\n children: [],\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n};\n\nexport function useControlDefinitionForSchema(\n sf: SchemaField[],\n definition: GroupedControlsDefinition = emptyGroupDefinition,\n): GroupedControlsDefinition {\n return useMemo<GroupedControlsDefinition>(\n () => ({\n ...definition,\n children: addMissingControls(sf, definition.children ?? []),\n }),\n [sf, definition],\n );\n}\n\nexport interface CustomRenderOptions {\n value: string;\n name: string;\n fields: SchemaField[];\n}\n\nexport function addCustomDataRenderOptions(\n controlFields: SchemaField[],\n customRenderOptions: CustomRenderOptions[],\n): SchemaField[] {\n return controlFields.map((x) =>\n x.field === \"renderOptions\" && isCompoundField(x) ? addRenderOptions(x) : x,\n );\n\n function addRenderOptions(roField: CompoundField): CompoundField {\n const children = roField.children;\n const withTypes = children.map((x) =>\n x.field === \"type\" ? addRenderOptionType(x) : x,\n );\n return {\n ...roField,\n children: customRenderOptions.reduce(\n (renderOptionFields, ro) =>\n ro.fields\n .map((x) => ({ ...x, onlyForTypes: [ro.value] }))\n .reduce((af, x) => mergeField(x, af), renderOptionFields),\n withTypes,\n ),\n };\n }\n\n function addRenderOptionType(typeField: SchemaField): SchemaField {\n const options = typeField.options ?? [];\n return {\n ...typeField,\n options: [\n ...options,\n ...customRenderOptions.map(({ name, value }) => ({ name, value })),\n ],\n };\n }\n}\n","import {\n ChangeListenerFunc,\n Control,\n ControlChange,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\n\nexport function useCalculatedControl<V>(calculate: () => V): Control<V> {\n const c = useControl(calculate);\n useControlEffect(calculate, (v) => (c.value = v));\n return c;\n}\n\nexport function cc(n: string | null | undefined): string | undefined {\n return n ? n : undefined;\n}\n\nexport function trackedStructure<A>(\n c: Control<A>,\n tracker: ChangeListenerFunc<any>,\n): A {\n const cc = c.current;\n const cv = cc.value;\n if (cv == null) {\n tracker(c, ControlChange.Structure);\n return cv;\n }\n if (typeof cv !== \"object\") {\n tracker(c, ControlChange.Value);\n return cv;\n }\n return new Proxy(cv, {\n get(target: object, p: string | symbol, receiver: any): any {\n if (Array.isArray(cv)) {\n tracker(c, ControlChange.Structure);\n if (typeof p === \"symbol\" || p[0] >= \"9\" || p[0] < \"0\")\n return Reflect.get(cv, p);\n const nc = (cc.elements as any)[p];\n if (typeof nc === \"function\") return nc;\n if (nc == null) return null;\n return trackedStructure(nc, tracker);\n }\n if (p in cv) return trackedStructure((cc.fields as any)[p], tracker);\n return undefined;\n },\n }) as A;\n}\n","import {\n ControlDefinition,\n DataExpression,\n DataMatchExpression,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n isDataControlDefinition,\n JsonataExpression,\n SchemaField,\n SchemaInterface,\n} from \"./types\";\nimport { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport {\n addAfterChangesCallback,\n collectChanges,\n Control,\n makeChangeTracker,\n useComputed,\n useControl,\n useRefState,\n} from \"@react-typed-forms/core\";\n\nimport {\n ControlDataContext,\n defaultValueForField,\n findField,\n getDisplayOnlyOptions,\n getTypeField,\n isControlReadonly,\n jsonPathString,\n lookupChildControl,\n useUpdatedRef,\n} from \"./util\";\nimport jsonata from \"jsonata\";\nimport { trackedStructure, useCalculatedControl } from \"./internal\";\nimport { DataContext } from \"./controlRender\";\n\nexport type UseEvalExpressionHook = (\n expr: EntityExpression | undefined,\n) => EvalExpressionHook | undefined;\n\nexport function useEvalVisibilityHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook<boolean> {\n const dynamicVisibility = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Visible,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef({ schemaField, definition });\n return useCallback(\n (ctx) => {\n const { schemaField, definition } = r.current;\n return (\n dynamicVisibility?.(ctx) ??\n useComputed(\n () =>\n matchesType(ctx, schemaField?.onlyForTypes) &&\n (!schemaField ||\n !hideDisplayOnly(\n ctx,\n schemaField,\n definition,\n ctx.schemaInterface,\n )),\n )\n );\n },\n [dynamicVisibility, r],\n );\n}\n\nexport function useEvalReadonlyHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicReadonly = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Readonly,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef(definition);\n return useCallback(\n (ctx) => {\n if (dynamicReadonly) return dynamicReadonly(ctx);\n return useCalculatedControl(() => isControlReadonly(r.current));\n },\n [dynamicReadonly, r],\n );\n}\n\nexport function useEvalStyleHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n property: DynamicPropertyType,\n definition: ControlDefinition,\n): EvalExpressionHook<React.CSSProperties> {\n const dynamicStyle = useEvalDynamicHook(\n definition,\n property,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicStyle) return dynamicStyle(ctx);\n return useControl(undefined);\n },\n [dynamicStyle],\n );\n}\n\nexport function useEvalAllowedOptionsHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<any[]> {\n const dynamicAllowed = useEvalDynamicHook(\n definition,\n DynamicPropertyType.AllowedOptions,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicAllowed) return dynamicAllowed(ctx);\n return useControl([]);\n },\n [dynamicAllowed],\n );\n}\n\nexport function useEvalDisabledHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicDisabled = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Disabled,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicDisabled) return dynamicDisabled(ctx);\n return useControl(false);\n },\n [dynamicDisabled],\n );\n}\n\nexport function useEvalDisplayHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): (\n groupContext: ControlDataContext,\n) => Control<string | undefined> | undefined {\n const dynamicDisplay = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Display,\n useEvalExpressionHook,\n );\n return useCallback((ctx) => dynamicDisplay?.(ctx), [dynamicDisplay]);\n}\nexport function useEvalDefaultValueHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.DefaultValue,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef({ definition, schemaField });\n return useCallback(\n (ctx) => {\n const { definition, schemaField } = r.current;\n return dynamicValue?.(ctx) ?? useComputed(calcDefault);\n function calcDefault() {\n const [required, dcv] = isDataControlDefinition(definition)\n ? [definition.required, definition.defaultValue]\n : [false, undefined];\n return (\n dcv ??\n (schemaField\n ? defaultValueForField(schemaField, required)\n : undefined)\n );\n }\n },\n [dynamicValue, r],\n );\n}\n\nexport type EvalExpressionHook<A = any> = (\n groupContext: ControlDataContext,\n) => Control<A | undefined>;\n\nfunction useDataExpression(\n fvExpr: DataExpression,\n fields: SchemaField[],\n data: DataContext,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField\n ? lookupChildControl(data, refField.field)\n : undefined;\n return useCalculatedControl(() => otherField?.value);\n}\n\nfunction useDataMatchExpression(\n fvExpr: DataMatchExpression,\n fields: SchemaField[],\n data: DataContext,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField\n ? lookupChildControl(data, refField.field)\n : undefined;\n return useComputed(() => {\n const fv = otherField?.value;\n return Array.isArray(fv) ? fv.includes(fvExpr.value) : fv === fvExpr.value;\n });\n}\n\nexport function defaultEvalHooks(\n expr: EntityExpression,\n context: ControlDataContext,\n) {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n return useJsonataExpression(\n (expr as JsonataExpression).expression,\n context,\n );\n case ExpressionType.Data:\n return useDataExpression(expr as DataExpression, context.fields, context);\n case ExpressionType.DataMatch:\n return useDataMatchExpression(\n expr as DataMatchExpression,\n context.fields,\n context,\n );\n default:\n return useControl(undefined);\n }\n}\n\nexport const defaultUseEvalExpressionHook =\n makeEvalExpressionHook(defaultEvalHooks);\n\nexport function makeEvalExpressionHook(\n f: (expr: EntityExpression, context: ControlDataContext) => Control<any>,\n): (expr: EntityExpression | undefined) => EvalExpressionHook | undefined {\n return (expr) => {\n const r = useUpdatedRef(expr);\n const cb = useCallback(\n (ctx: ControlDataContext) => {\n const expr = r.current!;\n return f(expr, ctx);\n },\n [expr?.type, r],\n );\n return expr ? cb : undefined;\n };\n}\n\nexport function useEvalDynamicHook(\n definition: ControlDefinition,\n type: DynamicPropertyType,\n useEvalExpressionHook: (\n expr: EntityExpression | undefined,\n ) => EvalExpressionHook | undefined,\n): EvalExpressionHook | undefined {\n const expression = definition.dynamic?.find((x) => x.type === type);\n return useEvalExpressionHook(expression?.expr);\n}\n\nexport function matchesType(\n context: ControlDataContext,\n types?: string[] | null,\n) {\n if (types == null || types.length === 0) return true;\n const typeField = getTypeField(context);\n return typeField && types.includes(typeField.value);\n}\n\nexport function hideDisplayOnly(\n context: ControlDataContext,\n field: SchemaField,\n definition: ControlDefinition,\n schemaInterface: SchemaInterface,\n) {\n const displayOptions = getDisplayOnlyOptions(definition);\n return (\n displayOptions &&\n !displayOptions.emptyText &&\n schemaInterface.isEmptyValue(\n field,\n lookupChildControl(context, field.field)?.value,\n )\n );\n}\n\nexport function useJsonataExpression(\n jExpr: string,\n dataContext: DataContext,\n bindings?: () => Record<string, any>,\n): Control<any> {\n const pathString = jsonPathString(dataContext.path);\n const fullExpr = pathString ? pathString + \".(\" + jExpr + \")\" : jExpr;\n const compiledExpr = useMemo(() => {\n try {\n return jsonata(fullExpr);\n } catch (e) {\n console.error(e);\n return jsonata(\"null\");\n }\n }, [fullExpr]);\n const control = useControl();\n const listenerRef = useRef<() => void>();\n const [ref] = useRefState(() =>\n makeChangeTracker(() => {\n const l = listenerRef.current;\n if (l) {\n listenerRef.current = undefined;\n addAfterChangesCallback(() => {\n l();\n listenerRef.current = l;\n });\n }\n }),\n );\n useEffect(() => {\n listenerRef.current = apply;\n apply();\n async function apply() {\n const [collect, updateSubscriptions] = ref.current;\n try {\n const bindingData = bindings\n ? collectChanges(collect, bindings)\n : undefined;\n control.value = await compiledExpr.evaluate(\n trackedStructure(dataContext.data, collect),\n bindingData,\n );\n } finally {\n updateSubscriptions();\n }\n }\n return () => ref.current[1](true);\n }, [compiledExpr]);\n return control;\n}\n","import {\n ControlDefinition,\n DataControlDefinition,\n DateComparison,\n DateValidator,\n isDataControlDefinition,\n JsonataValidator,\n ValidatorType,\n} from \"./types\";\nimport {\n Control,\n useControlEffect,\n useValidator,\n useValueChangeEffect,\n} from \"@react-typed-forms/core\";\nimport { useCallback } from \"react\";\nimport { ControlDataContext, useUpdatedRef } from \"./util\";\nimport { useJsonataExpression } from \"./hooks\";\n\nexport function useValidationHook(\n definition: ControlDefinition,\n): (\n control: Control<any>,\n hidden: boolean,\n groupContext: ControlDataContext,\n) => void {\n const validatorTypes = isDataControlDefinition(definition)\n ? definition.validators?.map((x) => x.type) ?? []\n : null;\n const r = useUpdatedRef(definition as DataControlDefinition);\n return useCallback(\n (control, hidden, groupContext) => {\n if (!validatorTypes) return;\n const dd = r.current;\n\n useValueChangeEffect(control, () => control.setError(\"default\", \"\"));\n useValidator(\n control,\n (v) =>\n !hidden &&\n dd.required &&\n (v == null || v === \"\" || (Array.isArray(v) && v.length === 0))\n ? \"Please enter a value\"\n : null,\n \"required\",\n );\n (dd.validators ?? []).forEach((x, i) => {\n switch (x.type) {\n case ValidatorType.Jsonata:\n return useJsonataValidator(\n control,\n groupContext,\n x as JsonataValidator,\n hidden,\n i,\n );\n case ValidatorType.Date:\n return useDateValidator(control, x as DateValidator, i);\n }\n });\n },\n validatorTypes ? validatorTypes : [null],\n );\n}\n\nfunction useJsonataValidator(\n control: Control<any>,\n context: ControlDataContext,\n expr: JsonataValidator,\n hidden: boolean,\n i: number,\n) {\n const errorMsg = useJsonataExpression(expr.expression, context);\n useControlEffect(\n () => [hidden, errorMsg.value],\n ([hidden, msg]) => control.setError(\"jsonata\" + i, !hidden ? msg : null),\n true,\n );\n}\n\nfunction useDateValidator(\n control: Control<string | null | undefined>,\n dv: DateValidator,\n i: number,\n) {\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = Date.parse(dv.fixedDate);\n } else {\n const nowDate = new Date();\n comparisonDate = Date.UTC(\n nowDate.getFullYear(),\n nowDate.getMonth(),\n nowDate.getDate(),\n );\n if (dv.daysFromCurrent) {\n comparisonDate += dv.daysFromCurrent * 86400000;\n }\n }\n useValidator(\n control,\n (v) => {\n if (v) {\n const selDate = Date.parse(v);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {\n return `Date must not be ${notAfter ? \"after\" : \"before\"} ${new Date(\n comparisonDate,\n ).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n}\n","import { FieldType, SchemaField, SchemaInterface } from \"./types\";\n\nexport const defaultSchemaInterface: SchemaInterface = {\n isEmptyValue: defaultIsEmpty,\n textValue: defaultTextValue,\n};\n\nexport function defaultIsEmpty(f: SchemaField, value: any): boolean {\n if (f.collection)\n return Array.isArray(value) ? value.length === 0 : value == null;\n switch (f.type) {\n case FieldType.String:\n return !value;\n default:\n return value == null;\n }\n}\n\nexport function defaultTextValue(\n f: SchemaField,\n value: any,\n): string | undefined {\n switch (f.type) {\n case FieldType.DateTime:\n return new Date(value).toLocaleDateString();\n case FieldType.Date:\n return new Date(value).toLocaleDateString();\n default:\n return value != null ? value.toString() : undefined;\n }\n}\n","import React, {\n CSSProperties,\n FC,\n Fragment,\n Key,\n ReactNode,\n useCallback,\n useEffect,\n} from \"react\";\nimport {\n addElement,\n Control,\n ControlChange,\n newControl,\n removeElement,\n trackControlChange,\n useComponentTracking,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {\n AdornmentPlacement,\n ControlAdornment,\n ControlDefinition,\n DataControlDefinition,\n DisplayData,\n DynamicPropertyType,\n FieldOption,\n GroupedControlsDefinition,\n GroupRenderOptions,\n isActionControlsDefinition,\n isDataControlDefinition,\n isDisplayControlsDefinition,\n isGroupControlsDefinition,\n RenderOptions,\n SchemaField,\n SchemaInterface,\n} from \"./types\";\nimport {\n ControlDataContext,\n elementValueForField,\n fieldDisplayName,\n findChildDefinition,\n findField,\n isCompoundField,\n useUpdatedRef,\n} from \"./util\";\nimport { dataControl } from \"./controlBuilder\";\nimport {\n defaultUseEvalExpressionHook,\n useEvalAllowedOptionsHook,\n useEvalDefaultValueHook,\n useEvalDisabledHook,\n useEvalDisplayHook,\n UseEvalExpressionHook,\n useEvalReadonlyHook,\n useEvalStyleHook,\n useEvalVisibilityHook,\n} from \"./hooks\";\nimport { useValidationHook } from \"./validators\";\nimport { cc, useCalculatedControl } from \"./internal\";\nimport { defaultSchemaInterface } from \"./schemaInterface\";\n\nexport interface FormRenderer {\n renderData: (\n props: DataRendererProps,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderGroup: (\n props: GroupRendererProps,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderDisplay: (props: DisplayRendererProps) => ReactNode;\n renderAction: (props: ActionRendererProps) => ReactNode;\n renderArray: (props: ArrayRendererProps) => ReactNode;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n renderLabel: (\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) => ReactNode;\n renderLayout: (props: ControlLayoutProps) => RenderedControl;\n renderVisibility: (props: VisibilityRendererProps) => ReactNode;\n}\n\nexport interface AdornmentProps {\n adornment: ControlAdornment;\n}\n\nexport const AppendAdornmentPriority = 0;\nexport const WrapAdornmentPriority = 1000;\n\nexport interface AdornmentRenderer {\n apply(children: RenderedLayout): void;\n adornment?: ControlAdornment;\n priority: number;\n}\n\nexport interface ArrayRendererProps {\n addAction?: ActionRendererProps;\n required: boolean;\n removeAction?: (elemIndex: number) => ActionRendererProps;\n elementCount: number;\n renderElement: (elemIndex: number) => ReactNode;\n elementKey: (elemIndex: number) => Key;\n arrayControl?: Control<any[] | undefined | null>;\n className?: string;\n style?: React.CSSProperties;\n}\nexport interface Visibility {\n visible: boolean;\n showing: boolean;\n}\n\nexport interface RenderedLayout {\n labelStart?: ReactNode;\n labelEnd?: ReactNode;\n controlStart?: ReactNode;\n controlEnd?: ReactNode;\n label?: ReactNode;\n children?: ReactNode;\n errorControl?: Control<any>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface RenderedControl {\n children: ReactNode;\n className?: string;\n style?: React.CSSProperties;\n divRef?: (cb: HTMLElement | null) => void;\n}\n\nexport interface VisibilityRendererProps extends RenderedControl {\n visibility: Control<Visibility | undefined>;\n}\n\nexport interface ControlLayoutProps {\n label?: LabelRendererProps;\n errorControl?: Control<any>;\n adornments?: AdornmentRenderer[];\n children?: ReactNode;\n processLayout?: (props: ControlLayoutProps) => ControlLayoutProps;\n className?: string | null;\n style?: React.CSSProperties;\n}\n\nexport enum LabelType {\n Control,\n Group,\n}\nexport interface LabelRendererProps {\n type: LabelType;\n hide?: boolean | null;\n label: ReactNode;\n required?: boolean | null;\n forId?: string;\n}\nexport interface DisplayRendererProps {\n data: DisplayData;\n display?: Control<string | undefined>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface GroupRendererProps {\n children: ControlDefinition[];\n renderOptions: GroupRenderOptions;\n renderChild: ChildRenderer;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface DataRendererProps {\n renderOptions: RenderOptions;\n field: SchemaField;\n id: string;\n control: Control<any>;\n readonly: boolean;\n required: boolean;\n options: FieldOption[] | undefined | null;\n hidden: boolean;\n className?: string;\n style?: React.CSSProperties;\n dataContext: ControlDataContext;\n children: ControlDefinition[];\n renderChild: ChildRenderer;\n toArrayProps?: () => ArrayRendererProps;\n}\n\nexport interface ActionRendererProps {\n actionId: string;\n actionText: string;\n onClick: () => void;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface ControlRenderProps {\n control: Control<any>;\n parentPath?: JsonPath[];\n}\n\nexport interface FormContextOptions {\n readonly?: boolean | null;\n hidden?: boolean | null;\n disabled?: boolean | null;\n}\n\nexport interface DataControlProps {\n definition: DataControlDefinition;\n field: SchemaField;\n dataContext: ControlDataContext;\n control: Control<any>;\n options: FormContextOptions;\n style: React.CSSProperties | undefined;\n renderChild: ChildRenderer;\n allowedOptions?: Control<any[] | undefined>;\n elementRenderer?: (elemIndex: number) => ReactNode;\n}\nexport type CreateDataProps = (\n controlProps: DataControlProps,\n) => DataRendererProps;\n\nexport type JsonPath = string | number;\n\nexport interface DataContext {\n data: Control<any>;\n path: JsonPath[];\n}\nexport interface ControlRenderOptions extends FormContextOptions {\n useDataHook?: (c: ControlDefinition) => CreateDataProps;\n useEvalExpressionHook?: UseEvalExpressionHook;\n clearHidden?: boolean;\n schemaInterface?: SchemaInterface;\n}\nexport function useControlRenderer(\n definition: ControlDefinition,\n fields: SchemaField[],\n renderer: FormRenderer,\n options: ControlRenderOptions = {},\n): FC<ControlRenderProps> {\n const dataProps = options.useDataHook?.(definition) ?? defaultDataProps;\n const schemaInterface = options.schemaInterface ?? defaultSchemaInterface;\n const useExpr = options.useEvalExpressionHook ?? defaultUseEvalExpressionHook;\n\n const schemaField = lookupSchemaField(definition, fields);\n const useDefaultValue = useEvalDefaultValueHook(\n useExpr,\n definition,\n schemaField,\n );\n const useIsVisible = useEvalVisibilityHook(useExpr, definition, schemaField);\n const useIsReadonly = useEvalReadonlyHook(useExpr, definition);\n const useIsDisabled = useEvalDisabledHook(useExpr, definition);\n const useAllowedOptions = useEvalAllowedOptionsHook(useExpr, definition);\n const useCustomStyle = useEvalStyleHook(\n useExpr,\n DynamicPropertyType.Style,\n definition,\n );\n const useLayoutStyle = useEvalStyleHook(\n useExpr,\n DynamicPropertyType.LayoutStyle,\n definition,\n );\n const useDynamicDisplay = useEvalDisplayHook(useExpr, definition);\n const useValidation = useValidationHook(definition);\n const r = useUpdatedRef({ options, definition, fields, schemaField });\n\n const Component = useCallback(\n ({ control: rootControl, parentPath = [] }: ControlRenderProps) => {\n const stopTracking = useComponentTracking();\n try {\n const { definition: c, options, fields, schemaField } = r.current;\n const parentDataContext: ControlDataContext = {\n fields,\n schemaInterface,\n data: rootControl,\n path: parentPath,\n };\n const readonlyControl = useIsReadonly(parentDataContext);\n const disabledControl = useIsDisabled(parentDataContext);\n const visibleControl = useIsVisible(parentDataContext);\n const displayControl = useDynamicDisplay(parentDataContext);\n const customStyle = useCustomStyle(parentDataContext).value;\n const layoutStyle = useLayoutStyle(parentDataContext).value;\n const visible = visibleControl.current.value;\n const visibility = useControl<Visibility | undefined>(() =>\n visible != null\n ? {\n visible,\n showing: visible,\n }\n : undefined,\n );\n useControlEffect(\n () => visibleControl.value,\n (visible) => {\n if (visible != null)\n visibility.setValue((ex) => ({\n visible,\n showing: ex ? ex.showing : visible,\n }));\n },\n );\n\n const allowedOptions = useAllowedOptions(parentDataContext);\n const defaultValueControl = useDefaultValue(parentDataContext);\n const [parentControl, control, controlDataContext] = getControlData(\n schemaField,\n parentDataContext,\n );\n useControlEffect(\n () => [\n visibility.value,\n defaultValueControl.value,\n control,\n isDataControlDefinition(definition) && definition.dontClearHidden,\n parentControl?.isNull,\n ],\n ([vc, dv, cd, dontClear, parentNull]) => {\n if (vc && cd && vc.visible === vc.showing) {\n if (!vc.visible) {\n if (options.clearHidden && !dontClear) {\n cd.value = undefined;\n }\n } else if (cd.value == null) {\n cd.value = dv;\n }\n }\n if (parentNull && parentControl?.isNull) {\n parentControl.value = {};\n }\n },\n true,\n );\n const myOptions = useCalculatedControl<FormContextOptions>(() => ({\n hidden: options.hidden || !visibility.fields?.showing.value,\n readonly: options.readonly || readonlyControl.value,\n disabled: options.disabled || disabledControl.value,\n })).value;\n useValidation(\n control ?? newControl(null),\n !!myOptions.hidden,\n parentDataContext,\n );\n const childOptions: ControlRenderOptions = { ...options, ...myOptions };\n\n useEffect(() => {\n if (control && typeof myOptions.disabled === \"boolean\")\n control.disabled = myOptions.disabled;\n }, [control, myOptions.disabled]);\n if (parentControl?.isNull) return <></>;\n\n const adornments =\n definition.adornments?.map((x) =>\n renderer.renderAdornment({ adornment: x }),\n ) ?? [];\n const labelAndChildren = renderControlLayout({\n definition: c,\n renderer,\n renderChild: (k, child, path) => (\n <ControlRenderer\n key={k}\n control={controlDataContext.data}\n fields={controlDataContext.fields}\n definition={findChildDefinition(c, child)}\n parentPath={\n path\n ? [...controlDataContext.path, ...path]\n : controlDataContext.path\n }\n renderer={renderer}\n options={childOptions}\n />\n ),\n createDataProps: dataProps,\n formOptions: myOptions,\n dataContext: controlDataContext,\n control: displayControl ?? control,\n schemaField,\n displayControl,\n style: customStyle,\n allowedOptions,\n });\n const renderedControl = renderer.renderLayout({\n ...labelAndChildren,\n adornments,\n className: c.layoutClass,\n style: layoutStyle,\n });\n return renderer.renderVisibility({ visibility, ...renderedControl });\n } finally {\n stopTracking();\n }\n },\n [\n r,\n dataProps,\n useIsVisible,\n useDefaultValue,\n useIsReadonly,\n useIsDisabled,\n useCustomStyle,\n useLayoutStyle,\n useAllowedOptions,\n useDynamicDisplay,\n useValidation,\n renderer,\n schemaInterface,\n ],\n );\n (Component as any).displayName = \"RenderControl\";\n return Component;\n}\nexport function lookupSchemaField(\n c: ControlDefinition,\n fields: SchemaField[],\n): SchemaField | undefined {\n const fieldName = isGroupControlsDefinition(c)\n ? c.compoundField\n : isDataControlDefinition(c)\n ? c.field\n : undefined;\n return fieldName ? findField(fields, fieldName) : undefined;\n}\nexport function getControlData(\n schemaField: SchemaField | undefined,\n parentContext: ControlDataContext,\n): [Control<any> | undefined, Control<any> | undefined, ControlDataContext] {\n const { data, path } = parentContext;\n const parentControl = data.lookupControl(path);\n const childPath = schemaField ? [...path, schemaField.field] : path;\n const childControl =\n schemaField && parentControl\n ? parentControl.fields?.[schemaField.field]\n : undefined;\n return [\n parentControl,\n childControl,\n schemaField\n ? {\n ...parentContext,\n path: childPath,\n fields: isCompoundField(schemaField)\n ? schemaField.children\n : parentContext.fields,\n }\n : parentContext,\n ];\n}\n\nexport function ControlRenderer({\n definition,\n fields,\n renderer,\n options,\n control,\n parentPath,\n}: {\n definition: ControlDefinition;\n fields: SchemaField[];\n renderer: FormRenderer;\n options?: ControlRenderOptions;\n control: Control<any>;\n parentPath?: JsonPath[];\n}) {\n const Render = useControlRenderer(definition, fields, renderer, options);\n return <Render control={control} parentPath={parentPath} />;\n}\n\nfunction groupProps(\n definition: GroupedControlsDefinition,\n renderChild: ChildRenderer,\n data: DataContext,\n className: string | null | undefined,\n style: React.CSSProperties | undefined,\n): GroupRendererProps {\n return {\n children: definition.children ?? [],\n renderChild,\n renderOptions: definition.groupOptions ?? { type: \"Standard\" },\n className: cc(className),\n style,\n };\n}\n\nexport function defaultDataProps({\n definition,\n field,\n control,\n options,\n elementRenderer,\n style,\n allowedOptions,\n ...props\n}: DataControlProps): DataRendererProps {\n const className = cc(definition.styleClass);\n const required = !!definition.required;\n const fieldOptions =\n (field.options?.length ?? 0) === 0 ? null : field.options;\n const allowed = allowedOptions?.value ?? [];\n return {\n children: definition.children ?? [],\n control,\n field,\n id: \"c\" + control.uniqueId,\n options:\n fieldOptions && allowed.length > 0\n ? fieldOptions.filter((x) => allowed.includes(x.value))\n : fieldOptions,\n readonly: !!options.readonly,\n renderOptions: definition.renderOptions ?? { type: \"Standard\" },\n required,\n hidden: !!options.hidden,\n className,\n style,\n ...props,\n toArrayProps: elementRenderer\n ? () =>\n defaultArrayProps(\n control,\n field,\n required,\n style,\n className,\n elementRenderer,\n )\n : undefined,\n };\n}\n\nexport function defaultArrayProps(\n arrayControl: Control<any[] | undefined | null>,\n field: SchemaField,\n required: boolean,\n style: CSSProperties | undefined,\n className: string | undefined,\n renderElement: (elemIndex: number) => ReactNode,\n): ArrayRendererProps {\n const noun = field.displayName ?? field.field;\n const elems = arrayControl.elements ?? [];\n return {\n arrayControl,\n elementCount: elems.length,\n required,\n addAction: {\n actionId: \"add\",\n actionText: \"Add \" + noun,\n onClick: () => addElement(arrayControl, elementValueForField(field)),\n },\n elementKey: (i) => elems[i].uniqueId,\n removeAction: (i: number) => ({\n actionId: \"\",\n actionText: \"Remove\",\n onClick: () => removeElement(arrayControl, i),\n }),\n renderElement: (i) => renderElement(i),\n className: cc(className),\n style,\n };\n}\n\nexport type ChildRenderer = (\n k: Key,\n child: number | number[],\n parentPath?: JsonPath[],\n) => ReactNode;\n\nexport interface RenderControlProps {\n definition: ControlDefinition;\n renderer: FormRenderer;\n renderChild: ChildRenderer;\n createDataProps: CreateDataProps;\n formOptions: FormContextOptions;\n dataContext: ControlDataContext;\n control?: Control<any>;\n schemaField?: SchemaField;\n displayControl?: Control<string | undefined>;\n style?: React.CSSProperties;\n allowedOptions?: Control<any[] | undefined>;\n}\nexport function renderControlLayout({\n definition: c,\n renderer,\n renderChild: childRenderer,\n control: childControl,\n schemaField,\n dataContext,\n formOptions: dataOptions,\n createDataProps: dataProps,\n displayControl,\n style,\n allowedOptions,\n}: RenderControlProps): ControlLayoutProps {\n if (isDataControlDefinition(c)) {\n return renderData(c);\n }\n if (isGroupControlsDefinition(c)) {\n if (c.compoundField) {\n return renderData(\n dataControl(c.compoundField, c.title, {\n children: c.children,\n hideTitle: c.groupOptions?.hideTitle,\n }),\n );\n }\n return {\n processLayout: renderer.renderGroup(\n groupProps(c, childRenderer, dataContext, c.styleClass, style),\n ),\n label: {\n label: c.title,\n type: LabelType.Group,\n hide: c.groupOptions?.hideTitle,\n },\n };\n }\n if (isActionControlsDefinition(c)) {\n return {\n children: renderer.renderAction({\n actionText: c.title ?? c.actionId,\n actionId: c.actionId,\n onClick: () => {},\n className: cc(c.styleClass),\n style,\n }),\n };\n }\n if (isDisplayControlsDefinition(c)) {\n return {\n children: renderer.renderDisplay({\n data: c.displayData ?? {},\n className: cc(c.styleClass),\n style,\n display: displayControl,\n }),\n };\n }\n return {};\n\n function renderData(c: DataControlDefinition, elemIndex?: number) {\n if (!schemaField) return { children: \"No schema field for: \" + c.field };\n if (!childControl) return { children: \"No control for: \" + c.field };\n const props = dataProps({\n definition: c,\n field: schemaField,\n dataContext:\n elemIndex != null\n ? { ...dataContext, path: [...dataContext.path, elemIndex] }\n : dataContext,\n control:\n elemIndex != null ? childControl!.elements[elemIndex] : childControl,\n options: dataOptions,\n style,\n allowedOptions,\n renderChild:\n elemIndex != null\n ? (k, d, p) =>\n childRenderer(k, d, p ? [elemIndex, ...p] : [elemIndex])\n : childRenderer,\n elementRenderer:\n elemIndex == null && schemaField.collection\n ? (ei) => renderLayoutParts(renderData(c, ei), renderer).children\n : undefined,\n });\n\n const labelText = !c.hideTitle\n ? controlTitle(c.title, schemaField)\n : undefined;\n return {\n processLayout: renderer.renderData(props),\n label: {\n type: LabelType.Control,\n label: labelText,\n forId: props.id,\n required: c.required,\n hide: c.hideTitle,\n },\n errorControl: childControl,\n };\n }\n}\n\nexport function appendMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\">,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) =>\n (layout[k] = (\n <>\n {layout[k]}\n {markup}\n </>\n ));\n}\n\nexport function wrapMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\">,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) => (layout[k] = wrap(layout[k]));\n}\n\nexport function layoutKeyForPlacement(\n pos: AdornmentPlacement,\n): keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\"> {\n switch (pos) {\n case AdornmentPlacement.ControlEnd:\n return \"controlEnd\";\n case AdornmentPlacement.ControlStart:\n return \"controlStart\";\n case AdornmentPlacement.LabelStart:\n return \"labelStart\";\n case AdornmentPlacement.LabelEnd:\n return \"labelEnd\";\n }\n}\n\nexport function appendMarkupAt(\n pos: AdornmentPlacement,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return appendMarkup(layoutKeyForPlacement(pos), markup);\n}\n\nexport function wrapMarkupAt(\n pos: AdornmentPlacement,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return wrapMarkup(layoutKeyForPlacement(pos), wrap);\n}\n\nexport function renderLayoutParts(\n props: ControlLayoutProps,\n renderer: FormRenderer,\n): RenderedLayout {\n const { className, children, style, errorControl, label, adornments } =\n props.processLayout?.(props) ?? props;\n const layout: RenderedLayout = {\n children,\n errorControl,\n style,\n className: cc(className),\n };\n (adornments ?? [])\n .sort((a, b) => a.priority - b.priority)\n .forEach((x) => x.apply(layout));\n layout.label =\n label && !label.hide\n ? renderer.renderLabel(label, layout.labelStart, layout.labelEnd)\n : undefined;\n return layout;\n}\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n\nfunction lookupControl(\n base: Control<any> | undefined,\n path: (string | number)[],\n): Control<any> | undefined {\n let index = 0;\n while (index < path.length && base) {\n const childId = path[index];\n const c = base.current;\n if (typeof childId === \"string\") {\n const next = c.fields?.[childId];\n if (!next) trackControlChange(base, ControlChange.Structure);\n base = next;\n } else {\n base = c.elements?.[childId];\n }\n index++;\n }\n return base;\n}\n","import React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Control, Fcheckbox, formControlProps } from \"@react-typed-forms/core\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n appendMarkupAt,\n ArrayRendererProps,\n ControlLayoutProps,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n LabelType,\n RenderedControl,\n RenderedLayout,\n renderLayoutParts,\n VisibilityRendererProps,\n} from \"./controlRender\";\nimport {\n AdornmentPlacement,\n ControlAdornment,\n ControlAdornmentType,\n ControlDefinitionType,\n DataRenderType,\n DisplayDataType,\n FieldOption,\n FieldType,\n FlexRenderer,\n GridRenderer,\n HtmlDisplay,\n IconAdornment,\n IconDisplay,\n isDisplayOnlyRenderer,\n isFlexRenderer,\n isGridRenderer,\n SchemaField,\n SchemaInterface,\n TextDisplay,\n} from \"./types\";\nimport { hasOptions } from \"./util\";\n\nexport interface DefaultRenderers {\n data: DataRendererRegistration;\n label: LabelRendererRegistration;\n action: ActionRendererRegistration;\n array: ArrayRendererRegistration;\n group: GroupRendererRegistration;\n display: DisplayRendererRegistration;\n adornment: AdornmentRendererRegistration;\n renderLayout: LayoutRendererRegistration;\n visibility: VisibilityRendererRegistration;\n}\n\nexport interface LayoutRendererRegistration {\n type: \"layout\";\n match?: (props: ControlLayoutProps) => boolean;\n render: (\n props: ControlLayoutProps,\n renderers: FormRenderer,\n ) => RenderedControl;\n}\nexport interface DataRendererRegistration {\n type: \"data\";\n schemaType?: string | string[];\n renderType?: string | string[];\n options?: boolean;\n collection?: boolean;\n match?: (props: DataRendererProps) => boolean;\n render: (\n props: DataRendererProps,\n renderers: FormRenderer,\n ) => ReactNode | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n labelType?: LabelType | LabelType[];\n render: (\n labelProps: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\n actionType?: string | string[];\n render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface ArrayRendererRegistration {\n type: \"array\";\n render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface GroupRendererRegistration {\n type: \"group\";\n renderType?: string | string[];\n render: (\n props: GroupRendererProps,\n renderers: FormRenderer,\n ) => ReactElement | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n renderType?: string | string[];\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (props: VisibilityRendererProps) => ReactNode;\n}\n\nexport type RendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | LayoutRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function createFormRenderer(\n customRenderers: RendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const groupRegistrations = customRenderers.filter(isGroupRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const displayRegistrations = customRenderers.filter(isDisplayRegistration);\n const labelRenderers = customRenderers.filter(isLabelRegistration);\n const arrayRenderers = customRenderers.filter(isArrayRegistration);\n const actionRenderers = customRenderers.filter(isActionRegistration);\n const layoutRenderers = customRenderers.filter(isLayoutRegistration);\n const visibilityRenderer =\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility;\n\n const formRenderers: FormRenderer = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderAdornment,\n renderLayout,\n renderVisibility: visibilityRenderer.render,\n };\n\n function renderLayout(props: ControlLayoutProps) {\n const renderer =\n layoutRenderers.find((x) => !x.match || x.match(props)) ??\n defaultRenderers.renderLayout;\n return renderer.render(props, formRenderers);\n }\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.adornment.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return (arrayRenderers[0] ?? defaultRenderers.array).render(\n props,\n formRenderers,\n );\n }\n\n function renderLabel(\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) {\n const renderer =\n labelRenderers.find((x) => isOneOf(x.labelType, props.type)) ??\n defaultRenderers.label;\n return renderer.render(props, labelStart, labelEnd, formRenderers);\n }\n\n function renderData(\n props: DataRendererProps,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const {\n renderOptions: { type: renderType },\n field,\n } = props;\n\n const options = hasOptions(props);\n const renderer =\n dataRegistrations.find(\n (x) =>\n (x.collection ?? false) === (field.collection ?? false) &&\n (x.options ?? false) === options &&\n isOneOf(x.schemaType, field.type) &&\n isOneOf(x.renderType, renderType) &&\n (!x.match || x.match(props)),\n ) ?? defaultRenderers.data;\n\n const result = renderer.render(props, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderGroup(\n props: GroupRendererProps,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const renderType = props.renderOptions.type;\n const renderer =\n groupRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.group;\n const result = renderer.render(props, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderAction(props: ActionRendererProps) {\n const renderer =\n actionRenderers.find((x) => isOneOf(x.actionType, props.actionId)) ??\n defaultRenderers.action;\n return renderer.render(props, formRenderers);\n }\n\n function renderDisplay(props: DisplayRendererProps) {\n const renderType = props.data.type;\n const renderer =\n displayRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.display;\n return renderer.render(props, formRenderers);\n }\n\n return formRenderers;\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n requiredElement?: ReactNode;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render({ onClick, actionText }: ActionRendererProps) {\n return (\n <button className={options.className} onClick={onClick}>\n {actionText}\n </button>\n );\n }\n return { render, type: \"action\" };\n}\nexport function createDefaultLabelRenderer(\n options: DefaultLabelRendererOptions = { requiredElement: <span> *</span> },\n): LabelRendererRegistration {\n const { className, groupLabelClass, requiredElement } = options;\n return {\n render: (props, labelStart, labelEnd) => (\n <>\n {labelStart}\n <label\n htmlFor={props.forId}\n className={clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n )}\n >\n {props.label}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>\n ),\n type: \"label\",\n };\n}\n\ninterface DefaultArrayRendererOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n const {\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n } = options ?? {};\n function render(\n {\n elementCount,\n renderElement,\n addAction,\n removeAction,\n elementKey,\n required,\n }: ArrayRendererProps,\n { renderAction }: FormRenderer,\n ) {\n const showRemove = !required || elementCount > 1;\n return (\n <div>\n <div className={clsx(className, removeAction && removableClass)}>\n {Array.from({ length: elementCount }, (_, x) =>\n removeAction ? (\n <Fragment key={elementKey(x)}>\n <div className={clsx(childClass, removableChildClass)}>\n {renderElement(x)}\n </div>\n <div className={removeActionClass}>\n {showRemove && renderAction(removeAction(x))}\n </div>\n </Fragment>\n ) : (\n <div key={elementKey(x)} className={childClass}>\n {renderElement(x)}\n </div>\n ),\n )}\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n }\n return { render, type: \"array\" };\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\ninterface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n flexClassName?: string;\n defaultFlexGap?: string;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n flexClassName,\n defaultFlexGap,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function flexStyles(options: FlexRenderer): StyleProps {\n return {\n className: flexClassName,\n style: {\n display: \"flex\",\n gap: options.gap ? options.gap : defaultFlexGap,\n flexDirection: options.direction\n ? (options.direction as any)\n : undefined,\n },\n };\n }\n\n function render(props: GroupRendererProps) {\n const { renderChild, renderOptions, children } = props;\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : isFlexRenderer(renderOptions)\n ? flexStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n\n return (cp: ControlLayoutProps) => {\n return {\n ...cp,\n children: (\n <div className={clsx(props.className, className, gcn)} style={style}>\n {children?.map((c, i) => renderChild(i, i))}\n </div>\n ),\n };\n };\n }\n return { type: \"group\", render };\n}\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n return {\n render: (props) => <DefaultDisplay {...options} {...props} />,\n type: \"display\",\n };\n}\n\nexport function DefaultDisplay({\n data,\n display,\n className,\n style,\n ...options\n}: DefaultDisplayRendererOptions & DisplayRendererProps) {\n switch (data.type) {\n case DisplayDataType.Icon:\n return (\n <i\n style={style}\n className={clsx(\n className,\n display ? display.value : (data as IconDisplay).iconClass,\n )}\n />\n );\n case DisplayDataType.Text:\n return (\n <div style={style} className={clsx(className, options.textClassName)}>\n {display ? display.value : (data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n style={style}\n className={clsx(className, options.htmlClassName)}\n dangerouslySetInnerHTML={{\n __html: display ? display.value ?? \"\" : (data as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\ninterface DefaultDataRendererOptions {\n inputClass?: string;\n displayOnlyClass?: string;\n selectOptions?: SelectRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const selectRenderer = createSelectRenderer(options.selectOptions ?? {});\n const { inputClass, booleanOptions, optionRenderer, displayOnlyClass } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n return createDataRenderer((props, renderers) => {\n const fieldType = props.field.type;\n if (props.toArrayProps) {\n return (p) => ({\n ...p,\n children: renderers.renderArray(props.toArrayProps!()),\n });\n }\n if (fieldType === FieldType.Compound) {\n return renderers.renderGroup({\n style: props.style,\n className: props.className,\n children: props.children,\n renderOptions: { type: \"Standard\", hideTitle: true },\n renderChild: props.renderChild,\n });\n }\n const renderOptions = props.renderOptions;\n let renderType = renderOptions.type;\n if (fieldType == FieldType.Any) return <>No control for Any</>;\n if (isDisplayOnlyRenderer(renderOptions))\n return (p) => ({\n ...p,\n className: displayOnlyClass,\n children: (\n <DefaultDisplayOnly\n field={props.field}\n schemaInterface={props.dataContext.schemaInterface}\n control={props.control}\n className={props.className}\n style={props.style}\n emptyText={renderOptions.emptyText}\n />\n ),\n });\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, renderers);\n }\n switch (renderType) {\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, renderers);\n }\n return renderType === DataRenderType.Checkbox ? (\n <Fcheckbox\n style={props.style}\n className={props.className}\n control={props.control}\n />\n ) : (\n <ControlInput\n className={clsx(props.className, inputClass)}\n style={props.style}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport function DefaultDisplayOnly({\n control,\n className,\n emptyText,\n schemaInterface,\n field,\n style,\n}: {\n control: Control<any>;\n field: SchemaField;\n schemaInterface: SchemaInterface;\n className?: string;\n style?: React.CSSProperties;\n emptyText?: string | null;\n}) {\n const v = control.value;\n const text =\n (schemaInterface.isEmptyValue(field, v)\n ? emptyText\n : schemaInterface.textValue(field, v)) ?? \"\";\n return (\n <div style={style} className={className}>\n {text}\n </div>\n );\n}\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={value == null ? \"\" : convert[2](value)}\n onChange={(e) => {\n control.value = convert[1](e.target.value);\n }}\n {...props}\n />\n );\n}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return {\n type: \"adornment\",\n render: ({ adornment }) => ({\n apply: (rl) => {\n if (isIconAdornment(adornment)) {\n return appendMarkupAt(\n adornment.placement ?? AdornmentPlacement.ControlStart,\n <i className={adornment.iconClass} />,\n )(rl);\n }\n },\n priority: 0,\n adornment,\n }),\n };\n}\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n}\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createDefaultActionRenderer(options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n\nfunction createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n const layout = renderLayoutParts(\n { ...props, className: clsx(props.className, options.className) },\n renderers,\n );\n return {\n children: <DefaultLayout layout={layout} {...options} />,\n className: layout.className,\n style: layout.style,\n divRef: (e) =>\n e && props.errorControl\n ? (props.errorControl.meta.scrollElement = e)\n : undefined,\n };\n });\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n\nfunction isAdornmentRegistration(\n x: RendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: RendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isGroupRegistration(\n x: RendererRegistration,\n): x is GroupRendererRegistration {\n return x.type === \"group\";\n}\n\nfunction isLabelRegistration(\n x: RendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isLayoutRegistration(\n x: RendererRegistration,\n): x is LayoutRendererRegistration {\n return x.type === \"layout\";\n}\n\nfunction isVisibilityRegistration(\n x: RendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isActionRegistration(\n x: RendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isDisplayRegistration(\n x: RendererRegistration,\n): x is DisplayRendererRegistration {\n return x.type === \"display\";\n}\n\nfunction isArrayRegistration(\n x: RendererRegistration,\n): x is ArrayRendererRegistration {\n return x.type === \"array\";\n}\nfunction isOneOf<A>(x: A | A[] | undefined, v: A) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\n}\n\nexport function isIconAdornment(a: ControlAdornment): a is IconAdornment {\n return a.type === ControlAdornmentType.Icon;\n}\n\nexport function createLayoutRenderer(\n render: LayoutRendererRegistration[\"render\"],\n options?: Partial<LayoutRendererRegistration>,\n): LayoutRendererRegistration {\n return { type: \"layout\", render, ...options };\n}\n\nexport function createArrayRenderer(\n render: ArrayRendererRegistration[\"render\"],\n options?: Partial<ArrayRendererRegistration>,\n): ArrayRendererRegistration {\n return { type: \"array\", render, ...options };\n}\n\nexport function createDataRenderer(\n render: DataRendererRegistration[\"render\"],\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return { type: \"data\", render, ...options };\n}\n\nexport function createLabelRenderer(\n render: LabelRendererRegistration[\"render\"],\n options?: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", render, ...options };\n}\n\nexport function createVisibilityRenderer(\n render: VisibilityRendererRegistration[\"render\"],\n options?: Partial<VisibilityRendererRegistration>,\n): VisibilityRendererRegistration {\n return { type: \"visibility\", render, ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Partial<AdornmentRendererRegistration>,\n): AdornmentRendererRegistration {\n return { type: \"adornment\", ...options, render };\n}\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={clsx(props.className, options.className)}\n state={props.control}\n id={props.id}\n options={props.options!}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\ninterface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: {\n name: string;\n value: any;\n disabled?: boolean;\n }[];\n emptyText?: string;\n requiredText?: string;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {options.map((x, i) => (\n <option key={i} value={convert(x.value)} disabled={x.disabled}>\n {x.name}\n </option>\n ))}\n </select>\n );\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n\ntype InputConversion = [string, (s: any) => any, (a: any) => string | number];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\"text\", (a) => a === \"true\", (a) => a?.toString() ?? \"\"];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.Date:\n return [\"date\", (a) => a, (a) => a];\n case FieldType.Double:\n return [\"number\", (a) => parseFloat(a), (a) => a];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((props) => <DefaultVisibility {...props} />);\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n className,\n style,\n divRef,\n}: VisibilityRendererProps) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? (\n <div className={clsx(className)} style={style} ref={divRef}>\n {children}\n </div>\n ) : (\n <></>\n );\n}\n\nexport function DefaultLayout({\n errorClass,\n className,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n return (\n <>\n {label}\n {controlStart}\n {children}\n {errorText && <div className={errorClass}>{errorText}</div>}\n {controlEnd}\n </>\n );\n}\n","import React from \"react\";\nimport { DefaultRendererOptions } from \"./renderers\";\n\nexport const defaultTailwindTheme: DefaultRendererOptions = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"flex flex-col gap-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n flexClassName: \"gap-2\",\n },\n action: {\n className: \"bg-primary rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n data: {\n displayOnlyClass: \"flex flex-row items-center gap-2\",\n },\n};\n"],"names":["FieldType","ControlDefinitionType","DynamicPropertyType","ExpressionType","AdornmentPlacement","ControlAdornmentType","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ValidatorType","DateComparison","isDataControlDefinition","x","type","Data","isGroupControlsDefinition","Group","isDisplayControlsDefinition","Display","isActionControlsDefinition","Action","visitControlDefinition","visitor","defaultValue","action","data","display","group","isGridRenderer","options","Grid","isFlexRenderer","Flex","isDisplayOnlyRenderer","DisplayOnly","buildSchema","def","Object","entries","map","stringField","displayName","makeScalarField","_extends","String","stringOptionsField","slice","call","arguments","withScalarOptions","v","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","compoundField","fields","other","field","children","collection","Compound","mergeField","mergeInto","existing","find","onlyForTypes","mergeTypes","concat","f","s","extras","filter","includes","length","applyDefaultValues","defaultValueForFields","applyValue","isCompoundField","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","required","treeChildren","fromEntries","sf","undefined","isRequired","childValue","notNullable","elementValueForField","findScalarField","findField","findCompoundField","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","tags","fieldDisplayName","_field$displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","title","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findReferencedControl","control","_control$children","findReferencedControlInArray","controls","_iterator","_createForOfIteratorHelperLoose","_step","done","value","ref","addMissingControls","changes","flatMap","changedCompounds","_cf$children","ex","cf","useUpdatedRef","a","r","useRef","current","isControlReadonly","readonly","getDisplayOnlyOptions","d","getTypeField","context","typeSchemaField","isTypeField","lookupChildControl","visitControlDataArray","cb","_iterator2","_step2","visitControlData","definition","ctx","processData","fieldName","fieldData","thisPath","path","lookupControl","result","cIndex","_iterator3","_control$elements","elements","_step3","elemResult","cfResult","child","childPath","cleanDataForSchema","typeField","typeValue","cleanableFields","_x$onlyForTypes$lengt","_x$onlyForTypes","_x$onlyForTypes2","canBeNull","childFields","Array","isArray","cv","getAllReferencedClasses","_c$children","childClasses","tc","clsx","styleClass","layoutClass","jsonPathString","jsonPath","i","findChildDefinition","base","dataControl","textDisplayControl","text","displayData","Text","htmlDisplayControl","html","Html","dynamicDefaultValue","expr","DefaultValue","dynamicReadonly","Readonly","dynamicVisibility","Visible","dynamicDisabled","Disabled","fieldEqExpr","DataMatch","jsonataExpr","expression","Jsonata","groupedControl","groupOptions","hideTitle","compoundControl","createAction","actionId","onClick","actionText","emptyGroupDefinition","useControlDefinitionForSchema","useMemo","_definition$children","addCustomDataRenderOptions","controlFields","customRenderOptions","addRenderOptions","roField","withTypes","addRenderOptionType","reduce","renderOptionFields","ro","af","_typeField$options","_ref","name","useCalculatedControl","calculate","useControl","useControlEffect","cc","trackedStructure","tracker","ControlChange","Structure","Value","Proxy","get","target","p","receiver","Reflect","nc","useEvalVisibilityHook","useEvalExpressionHook","schemaField","useEvalDynamicHook","useCallback","_dynamicVisibility","_r$current","useComputed","matchesType","hideDisplayOnly","schemaInterface","useEvalReadonlyHook","useEvalStyleHook","property","dynamicStyle","useEvalAllowedOptionsHook","dynamicAllowed","AllowedOptions","useEvalDisabledHook","useEvalDisplayHook","dynamicDisplay","useEvalDefaultValueHook","dynamicValue","_dynamicValue","_r$current2","calcDefault","dcv","useDataExpression","fvExpr","refField","otherField","useDataMatchExpression","fv","defaultEvalHooks","useJsonataExpression","defaultUseEvalExpressionHook","makeEvalExpressionHook","_definition$dynamic","dynamic","types","_lookupChildControl","displayOptions","emptyText","isEmptyValue","jExpr","dataContext","bindings","pathString","fullExpr","compiledExpr","jsonata","e","console","error","listenerRef","_useRefState","useRefState","makeChangeTracker","l","addAfterChangesCallback","useEffect","apply","_ref$current","collect","updateSubscriptions","_temp","_finallyRethrows","bindingData","collectChanges","Promise","resolve","evaluate","then","_compiledExpr$evaluat","_wasThrown","_result","reject","useValidationHook","_definition$validator","_definition$validator2","validatorTypes","validators","hidden","groupContext","_dd$validators","dd","useValueChangeEffect","setError","useValidator","useJsonataValidator","Date","useDateValidator","errorMsg","msg","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","defaultSchemaInterface","defaultIsEmpty","textValue","defaultTextValue","DateTime","toLocaleDateString","toString","AppendAdornmentPriority","WrapAdornmentPriority","LabelType","useControlRenderer","renderer","_options$useDataHook","_options$schemaInterf","_options$useEvalExpre","dataProps","useDataHook","defaultDataProps","useExpr","lookupSchemaField","useDefaultValue","useIsVisible","useIsReadonly","useIsDisabled","useAllowedOptions","useCustomStyle","Style","useLayoutStyle","LayoutStyle","useDynamicDisplay","useValidation","Component","rootControl","_ref$parentPath","parentPath","stopTracking","useComponentTracking","_definition$adornment","_definition$adornment2","parentDataContext","readonlyControl","disabledControl","visibleControl","displayControl","customStyle","layoutStyle","visible","visibility","showing","setValue","allowedOptions","defaultValueControl","_getControlData","getControlData","parentControl","controlDataContext","dontClearHidden","isNull","_ref2","vc","cd","dontClear","parentNull","clearHidden","myOptions","_visibility$fields","disabled","newControl","childOptions","React","createElement","Fragment","adornments","renderAdornment","adornment","labelAndChildren","renderControlLayout","renderChild","k","ControlRenderer","key","createDataProps","formOptions","style","renderedControl","renderLayout","className","renderVisibility","parentContext","_parentControl$fields","childControl","_ref3","_effect","_useComponentTracking","Render","groupProps","_definition$groupOpti","_ref4","_field$options$length","_field$options","_allowedOptions$value","_definition$children2","_definition$renderOpt","elementRenderer","props","_objectWithoutPropertiesLoose","_excluded","fieldOptions","allowed","id","uniqueId","toArrayProps","defaultArrayProps","arrayControl","renderElement","_arrayControl$element","noun","elems","elementCount","addAction","addElement","elementKey","removeAction","removeElement","_ref5","childRenderer","dataOptions","renderData","_c$groupOptions2","_c$groupOptions","processLayout","renderGroup","label","hide","_c$title","renderAction","_c$displayData","renderDisplay","elemIndex","ei","renderLayoutParts","labelText","controlTitle","Control","forId","errorControl","appendMarkup","markup","layout","wrapMarkup","wrap","layoutKeyForPlacement","pos","ControlEnd","ControlStart","LabelStart","LabelEnd","appendMarkupAt","wrapMarkupAt","_props$processLayout","_ref6","sort","b","priority","renderLabel","labelStart","labelEnd","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","createClassStyledRenderers","dataRegistrations","isDataRegistration","groupRegistrations","isGroupRegistration","adornmentRegistrations","isAdornmentRegistration","displayRegistrations","isDisplayRegistration","labelRenderers","isLabelRegistration","arrayRenderers","isArrayRegistration","actionRenderers","isActionRegistration","layoutRenderers","isLayoutRegistration","visibilityRenderer","isVisibilityRegistration","formRenderers","renderArray","render","_layoutRenderers$find","match","_adornmentRegistratio","isOneOf","adornmentType","_arrayRenderers$","array","_labelRenderers$find","labelType","_dataRegistrations$fi","renderType","_x$collection","_field$collection","_x$options","schemaType","_groupRegistrations$f","_actionRenderers$find","actionType","_displayRegistrations","createDefaultActionRenderer","createDefaultLabelRenderer","requiredElement","_options","groupLabelClass","htmlFor","createDefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","showRemove","from","_","createDefaultGroupRenderer","_ref5$gridStyles","gridStyles","defaultGridStyles","_ref5$defaultGridColu","defaultGridColumns","gridClassName","standardClassName","flexClassName","defaultFlexGap","_ref6$columns","columns","gridTemplateColumns","flexStyles","gap","flexDirection","direction","_ref7","gcn","cp","createDefaultDisplayRenderer","DefaultDisplay","_ref8","_display$value","Icon","iconClass","textClassName","htmlClassName","dangerouslySetInnerHTML","__html","DefaultBoolOptions","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","displayOnlyClass","createDataRenderer","renderers","fieldType","Any","DefaultDisplayOnly","isBool","Dropdown","Checkbox","Fcheckbox","ControlInput","readOnly","convert","createInputConversion","_ref9","_effect2","_ref10","_ref11","_effect3","_excluded2","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded3","createDefaultAdornmentRenderer","_ref12","rl","isIconAdornment","_adornment$placement","placement","createDefaultRenderers","createDefaultLayoutRenderer","createDefaultVisibilityRenderer","createLayoutRenderer","DefaultLayout","divRef","meta","scrollElement","createArrayRenderer","createLabelRenderer","createVisibilityRenderer","createAdornmentRenderer","asArray","SelectDataRenderer","state","requiredText","createSelectConversion","_ref13","_effect4","_ref13$emptyText","_ref13$requiredText","_excluded4","_useState","useState","showEmpty","optionStringMap","ft","Double","_a$toString","_a$toString2","parseInt","parseFloat","DefaultVisibility","_ref14","_effect5","_ref15","_effect6","errorClass","_ref15$layout","controlEnd","controlStart","ec","touched","defaultTailwindTheme"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/types.ts","../src/schemaBuilder.ts","../src/util.ts","../src/controlBuilder.ts","../src/internal.ts","../src/hooks.tsx","../src/validators.ts","../src/schemaInterface.ts","../src/controlRender.tsx","../src/renderers.tsx","../src/tailwind.tsx"],"sourcesContent":["export interface SchemaField {\n type: string;\n field: string;\n displayName?: string | null;\n tags?: string[] | null;\n system?: boolean | null;\n collection?: boolean | null;\n onlyForTypes?: string[] | null;\n required?: boolean | null;\n notNullable?: boolean | null;\n defaultValue?: any;\n isTypeField?: boolean | null;\n searchable?: boolean | null;\n options?: FieldOption[] | null;\n validators?: SchemaValidator[] | null;\n}\n\nexport enum FieldType {\n String = \"String\",\n Bool = \"Bool\",\n Int = \"Int\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n EntityRef = \"EntityRef\",\n Compound = \"Compound\",\n AutoId = \"AutoId\",\n Image = \"Image\",\n Any = \"Any\",\n}\n\nexport interface EntityRefField extends SchemaField {\n type: FieldType.EntityRef;\n entityRefType: string;\n parentField: string;\n}\n\nexport interface FieldOption {\n name: string;\n value: any;\n}\n\nexport interface CompoundField extends SchemaField {\n type: FieldType.Compound;\n children: SchemaField[];\n treeChildren?: boolean;\n}\n\nexport type AnyControlDefinition =\n | DataControlDefinition\n | GroupedControlsDefinition\n | ActionControlDefinition\n | DisplayControlDefinition;\n\nexport interface SchemaInterface {\n isEmptyValue(field: SchemaField, value: any): boolean;\n textValue(\n field: SchemaField,\n value: any,\n element?: boolean,\n ): string | undefined;\n}\nexport interface ControlDefinition {\n type: string;\n title?: string | null;\n styleClass?: string | null;\n layoutClass?: string | null;\n labelClass?: string | null;\n dynamic?: DynamicProperty[] | null;\n adornments?: ControlAdornment[] | null;\n children?: ControlDefinition[] | null;\n}\n\nexport enum ControlDefinitionType {\n Data = \"Data\",\n Group = \"Group\",\n Display = \"Display\",\n Action = \"Action\",\n}\n\nexport interface DynamicProperty {\n type: string;\n expr: EntityExpression;\n}\n\nexport enum DynamicPropertyType {\n Visible = \"Visible\",\n DefaultValue = \"DefaultValue\",\n Readonly = \"Readonly\",\n Disabled = \"Disabled\",\n Display = \"Display\",\n Style = \"Style\",\n LayoutStyle = \"LayoutStyle\",\n AllowedOptions = \"AllowedOptions\",\n Label = \"Label\",\n}\n\nexport interface EntityExpression {\n type: string;\n}\n\nexport enum ExpressionType {\n Jsonata = \"Jsonata\",\n Data = \"Data\",\n DataMatch = \"FieldValue\",\n UserMatch = \"UserMatch\",\n}\n\nexport interface JsonataExpression extends EntityExpression {\n type: ExpressionType.Jsonata;\n expression: string;\n}\n\nexport interface DataExpression extends EntityExpression {\n type: ExpressionType.Data;\n field: string;\n}\n\nexport interface DataMatchExpression extends EntityExpression {\n type: ExpressionType.DataMatch;\n field: string;\n value: any;\n}\n\nexport interface UserMatchExpression extends EntityExpression {\n type: ExpressionType.UserMatch;\n userMatch: string;\n}\n\nexport interface ControlAdornment {\n type: string;\n}\n\nexport enum AdornmentPlacement {\n ControlStart = \"ControlStart\",\n ControlEnd = \"ControlEnd\",\n LabelStart = \"LabelStart\",\n LabelEnd = \"LabelEnd\",\n}\n\nexport enum ControlAdornmentType {\n Tooltip = \"Tooltip\",\n Accordion = \"Accordion\",\n HelpText = \"HelpText\",\n Icon = \"Icon\",\n}\n\nexport interface IconAdornment extends ControlAdornment {\n type: ControlAdornmentType.Icon;\n iconClass: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface TooltipAdornment extends ControlAdornment {\n type: ControlAdornmentType.Tooltip;\n tooltip: string;\n}\n\nexport interface AccordionAdornment extends ControlAdornment {\n type: ControlAdornmentType.Accordion;\n title: string;\n defaultExpanded: boolean;\n}\n\nexport interface HelpTextAdornment extends ControlAdornment {\n type: ControlAdornmentType.HelpText;\n helpText: string;\n placement?: AdornmentPlacement | null;\n}\n\nexport interface DataControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Data;\n field: string;\n required?: boolean | null;\n renderOptions?: RenderOptions | null;\n defaultValue?: any;\n readonly?: boolean | null;\n validators?: SchemaValidator[] | null;\n hideTitle?: boolean | null;\n dontClearHidden?: boolean | null;\n}\n\nexport interface RenderOptions {\n type: string;\n}\n\nexport enum DataRenderType {\n Standard = \"Standard\",\n Radio = \"Radio\",\n HtmlEditor = \"HtmlEditor\",\n IconList = \"IconList\",\n CheckList = \"CheckList\",\n UserSelection = \"UserSelection\",\n Synchronised = \"Synchronised\",\n IconSelector = \"IconSelector\",\n DateTime = \"DateTime\",\n Checkbox = \"Checkbox\",\n Dropdown = \"Dropdown\",\n DisplayOnly = \"DisplayOnly\",\n}\n\nexport interface RadioButtonRenderOptions extends RenderOptions {\n type: DataRenderType.Radio;\n}\n\nexport interface StandardRenderer extends RenderOptions {\n type: DataRenderType.Standard;\n}\n\nexport interface HtmlEditorRenderOptions extends RenderOptions {\n type: DataRenderType.HtmlEditor;\n allowImages: boolean;\n}\n\nexport interface DateTimeRenderOptions extends RenderOptions {\n type: DataRenderType.DateTime;\n format?: string | null;\n}\n\nexport interface IconListRenderOptions extends RenderOptions {\n type: DataRenderType.IconList;\n iconMappings: IconMapping[];\n}\n\nexport interface DisplayOnlyRenderOptions extends RenderOptions {\n type: DataRenderType.DisplayOnly;\n emptyText?: string | null;\n sampleText?: string | null;\n}\nexport interface IconMapping {\n value: string;\n materialIcon?: string | null;\n}\n\nexport interface CheckListRenderOptions extends RenderOptions {\n type: DataRenderType.CheckList;\n}\n\nexport interface SynchronisedRenderOptions extends RenderOptions {\n type: DataRenderType.Synchronised;\n fieldToSync: string;\n syncType: SyncTextType;\n}\n\nexport enum SyncTextType {\n Camel = \"Camel\",\n Snake = \"Snake\",\n Pascal = \"Pascal\",\n}\n\nexport interface UserSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.UserSelection;\n noGroups: boolean;\n noUsers: boolean;\n}\n\nexport interface IconSelectionRenderOptions extends RenderOptions {\n type: DataRenderType.IconSelector;\n}\n\nexport interface GroupedControlsDefinition extends ControlDefinition {\n type: ControlDefinitionType.Group;\n compoundField?: string | null;\n groupOptions?: GroupRenderOptions;\n}\n\nexport interface GroupRenderOptions {\n type: string;\n hideTitle?: boolean | null;\n}\n\nexport enum GroupRenderType {\n Standard = \"Standard\",\n Grid = \"Grid\",\n Flex = \"Flex\",\n GroupElement = \"GroupElement\",\n}\n\nexport interface StandardGroupRenderer extends GroupRenderOptions {\n type: GroupRenderType.Standard;\n}\n\nexport interface FlexRenderer extends GroupRenderOptions {\n type: GroupRenderType.Flex;\n direction?: string | null;\n gap?: string | null;\n}\n\nexport interface GroupElementRenderer extends GroupRenderOptions {\n type: GroupRenderType.GroupElement;\n value: any;\n}\n\nexport interface GridRenderer extends GroupRenderOptions {\n type: GroupRenderType.Grid;\n columns?: number | null;\n}\n\nexport interface DisplayControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Display;\n displayData: DisplayData;\n}\n\nexport interface DisplayData {\n type: string;\n}\n\nexport enum DisplayDataType {\n Text = \"Text\",\n Html = \"Html\",\n Icon = \"Icon\",\n}\nexport interface TextDisplay extends DisplayData {\n type: DisplayDataType.Text;\n text: string;\n}\n\nexport interface IconDisplay extends DisplayData {\n type: DisplayDataType.Icon;\n iconClass: string;\n}\n\nexport interface HtmlDisplay extends DisplayData {\n type: DisplayDataType.Html;\n html: string;\n}\n\nexport interface ActionControlDefinition extends ControlDefinition {\n type: ControlDefinitionType.Action;\n actionId: string;\n}\n\nexport enum ValidatorType {\n Jsonata = \"Jsonata\",\n Date = \"Date\",\n}\nexport interface SchemaValidator {\n type: string;\n}\n\nexport interface JsonataValidator extends SchemaValidator {\n type: ValidatorType.Jsonata;\n expression: string;\n}\n\nexport enum DateComparison {\n NotBefore = \"NotBefore\",\n NotAfter = \"NotAfter\",\n}\n\nexport interface DateValidator extends SchemaValidator {\n type: ValidatorType.Date;\n comparison: DateComparison;\n fixedDate?: string | null;\n daysFromCurrent?: number | null;\n}\n\nexport function isDataControlDefinition(\n x: ControlDefinition,\n): x is DataControlDefinition {\n return x.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControlsDefinition(\n x: ControlDefinition,\n): x is GroupedControlsDefinition {\n return x.type === ControlDefinitionType.Group;\n}\n\nexport function isDisplayControlsDefinition(\n x: ControlDefinition,\n): x is DisplayControlDefinition {\n return x.type === ControlDefinitionType.Display;\n}\n\nexport function isActionControlsDefinition(\n x: ControlDefinition,\n): x is ActionControlDefinition {\n return x.type === ControlDefinitionType.Action;\n}\n\nexport interface ControlVisitor<A> {\n data(d: DataControlDefinition): A;\n group(d: GroupedControlsDefinition): A;\n display(d: DisplayControlDefinition): A;\n action(d: ActionControlDefinition): A;\n}\n\nexport function visitControlDefinition<A>(\n x: ControlDefinition,\n visitor: ControlVisitor<A>,\n defaultValue: (c: ControlDefinition) => A,\n): A {\n switch (x.type) {\n case ControlDefinitionType.Action:\n return visitor.action(x as ActionControlDefinition);\n case ControlDefinitionType.Data:\n return visitor.data(x as DataControlDefinition);\n case ControlDefinitionType.Display:\n return visitor.display(x as DisplayControlDefinition);\n case ControlDefinitionType.Group:\n return visitor.group(x as GroupedControlsDefinition);\n default:\n return defaultValue(x);\n }\n}\nexport function isGridRenderer(\n options: GroupRenderOptions,\n): options is GridRenderer {\n return options.type === GroupRenderType.Grid;\n}\n\nexport function isFlexRenderer(\n options: GroupRenderOptions,\n): options is FlexRenderer {\n return options.type === GroupRenderType.Flex;\n}\n\nexport function isDisplayOnlyRenderer(\n options: RenderOptions,\n): options is DisplayOnlyRenderOptions {\n return options.type === DataRenderType.DisplayOnly;\n}\n","import { CompoundField, FieldOption, FieldType, SchemaField } from \"./types\";\n\ntype AllowedSchema<T> = T extends string\n ? SchemaField & {\n type: FieldType.String | FieldType.Date | FieldType.DateTime;\n }\n : T extends number\n ? SchemaField & {\n type: FieldType.Int | FieldType.Double;\n }\n : T extends boolean\n ? SchemaField & {\n type: FieldType.Bool;\n }\n : T extends Array<infer E>\n ? AllowedSchema<E> & {\n collection: true;\n }\n : T extends { [key: string]: any }\n ? CompoundField & {\n type: FieldType.Compound;\n }\n : SchemaField & { type: FieldType.Any };\n\ntype AllowedField<T, K> = (\n name: string,\n) => (SchemaField & { type: K }) | AllowedSchema<T>;\n\nexport function buildSchema<T, Custom = \"\">(def: {\n [K in keyof T]-?: AllowedField<T[K], Custom>;\n}): SchemaField[] {\n return Object.entries(def).map((x) =>\n (x[1] as (n: string) => SchemaField)(x[0]),\n );\n}\n\nexport function stringField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n ...options,\n });\n}\n\nexport function stringOptionsField(\n displayName: string,\n ...options: FieldOption[]\n) {\n return makeScalarField({\n type: FieldType.String as const,\n displayName,\n options,\n });\n}\n\nexport function withScalarOptions<\n S extends SchemaField,\n S2 extends Partial<SchemaField>,\n>(options: S2, v: (name: string) => S): (name: string) => S & S2 {\n return (n) => ({ ...v(n), ...options });\n}\n\nexport function makeScalarField<S extends Partial<SchemaField>>(\n options: S,\n): (name: string) => SchemaField & S {\n return (n) => ({ ...defaultScalarField(n, n), ...options });\n}\n\nexport function makeCompoundField<S extends Partial<CompoundField>>(\n options: S,\n): (name: string) => CompoundField & {\n type: FieldType.Compound;\n} & S {\n return (n) => ({ ...defaultCompoundField(n, n, false), ...options });\n}\n\nexport function intField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.Int as const,\n displayName,\n ...options,\n });\n}\n\nexport function boolField(\n displayName: string,\n options?: Partial<Omit<SchemaField, \"type\">>,\n) {\n return makeScalarField({\n type: FieldType.Bool as const,\n displayName,\n ...options,\n });\n}\n\nexport function compoundField<\n Other extends Partial<Omit<CompoundField, \"type\" | \"schemaType\">>,\n>(\n displayName: string,\n fields: SchemaField[],\n other: Other,\n): (name: string) => CompoundField & {\n collection: Other[\"collection\"];\n} {\n return (field) =>\n ({\n ...defaultCompoundField(field, displayName, false),\n ...other,\n children: fields,\n }) as any;\n}\n\nexport function defaultScalarField(\n field: string,\n displayName: string,\n): Omit<SchemaField, \"type\"> & {\n type: FieldType.String;\n} {\n return {\n field,\n displayName,\n type: FieldType.String,\n };\n}\n\nexport function defaultCompoundField(\n field: string,\n displayName: string,\n collection: boolean,\n): CompoundField & {\n type: FieldType.Compound;\n} {\n return {\n field,\n displayName,\n type: FieldType.Compound,\n collection,\n children: [],\n };\n}\n\nexport function mergeField(\n field: SchemaField,\n mergeInto: SchemaField[],\n): SchemaField[] {\n const existing = mergeInto.find((x) => x.field === field.field);\n if (existing) {\n return mergeInto.map((x) =>\n x !== existing\n ? x\n : {\n ...x,\n onlyForTypes: mergeTypes(x.onlyForTypes, field.onlyForTypes),\n },\n );\n }\n return [...mergeInto, field];\n\n function mergeTypes(f?: string[] | null, s?: string[] | null) {\n if (!f) return s;\n if (!s) return f;\n const extras = s.filter((x) => !f.includes(x));\n return extras.length ? [...f, ...extras] : f;\n }\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataRenderType,\n DisplayOnlyRenderOptions,\n FieldOption,\n FieldType,\n GridRenderer,\n GroupedControlsDefinition,\n GroupRenderType,\n isDataControlDefinition,\n isDisplayOnlyRenderer,\n SchemaField,\n SchemaInterface,\n visitControlDefinition,\n} from \"./types\";\nimport { MutableRefObject, useRef } from \"react\";\nimport { Control } from \"@react-typed-forms/core\";\nimport clsx from \"clsx\";\nimport { DataContext, JsonPath } from \"./controlRender\";\n\nexport interface ControlDataContext extends DataContext {\n fields: SchemaField[];\n schemaInterface: SchemaInterface;\n}\nexport function applyDefaultValues(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return defaultValueForFields(fields);\n const applyValue = fields.filter(\n (x) => isCompoundField(x) || !(x.field in v),\n );\n if (!applyValue.length) return v;\n const out = { ...v };\n applyValue.forEach((x) => {\n out[x.field] =\n x.field in v\n ? applyDefaultForField(v[x.field], x, fields)\n : defaultValueForField(x);\n });\n return out;\n}\n\nexport function applyDefaultForField(\n v: any,\n field: SchemaField,\n parent: SchemaField[],\n notElement?: boolean,\n): any {\n if (field.collection && !notElement) {\n return ((v as any[]) ?? []).map((x) =>\n applyDefaultForField(x, field, parent, true),\n );\n }\n if (isCompoundField(field)) {\n if (!v && !field.required) return v;\n return applyDefaultValues(v, field.treeChildren ? parent : field.children);\n }\n return defaultValueForField(field);\n}\n\nexport function defaultValueForFields(fields: SchemaField[]): any {\n return Object.fromEntries(\n fields.map((x) => [x.field, defaultValueForField(x)]),\n );\n}\n\nexport function defaultValueForField(\n sf: SchemaField,\n required?: boolean | null,\n): any {\n if (sf.defaultValue !== undefined) return sf.defaultValue;\n const isRequired = !!(required || sf.required);\n if (isCompoundField(sf)) {\n if (isRequired) {\n const childValue = defaultValueForFields(sf.children);\n return sf.collection ? [childValue] : childValue;\n }\n return sf.notNullable ? (sf.collection ? [] : {}) : undefined;\n }\n if (sf.collection) {\n return [];\n }\n return undefined;\n}\n\nexport function elementValueForField(sf: SchemaField): any {\n if (isCompoundField(sf)) {\n return defaultValueForFields(sf.children);\n }\n return sf.defaultValue;\n}\n\nexport function findScalarField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return findField(fields, field);\n}\n\nexport function findCompoundField(\n fields: SchemaField[],\n field: string,\n): CompoundField | undefined {\n return findField(fields, field) as CompoundField | undefined;\n}\n\nexport function findField(\n fields: SchemaField[],\n field: string,\n): SchemaField | undefined {\n return fields.find((x) => x.field === field);\n}\n\nexport function isScalarField(sf: SchemaField): sf is SchemaField {\n return !isCompoundField(sf);\n}\n\nexport function isCompoundField(sf: SchemaField): sf is CompoundField {\n return sf.type === FieldType.Compound;\n}\n\nexport function isDataControl(\n c: ControlDefinition,\n): c is DataControlDefinition {\n return c.type === ControlDefinitionType.Data;\n}\n\nexport function isGroupControl(\n c: ControlDefinition,\n): c is GroupedControlsDefinition {\n return c.type === ControlDefinitionType.Group;\n}\n\nexport function fieldHasTag(field: SchemaField, tag: string) {\n return Boolean(field.tags?.includes(tag));\n}\n\nexport function fieldDisplayName(field: SchemaField) {\n return field.displayName ?? field.field;\n}\n\nexport function hasOptions(o: { options: FieldOption[] | undefined | null }) {\n return (o.options?.length ?? 0) > 0;\n}\n\nexport function defaultControlForField(sf: SchemaField): DataControlDefinition {\n if (isCompoundField(sf)) {\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n children: sf.children.map(defaultControlForField),\n };\n } else if (isScalarField(sf)) {\n const htmlEditor = sf.tags?.includes(\"_HtmlEditor\");\n return {\n type: ControlDefinitionType.Data,\n title: sf.displayName,\n field: sf.field,\n required: sf.required,\n renderOptions: {\n type: htmlEditor ? DataRenderType.HtmlEditor : DataRenderType.Standard,\n },\n };\n }\n throw \"Unknown schema field\";\n}\nfunction findReferencedControl(\n field: string,\n control: ControlDefinition,\n): ControlDefinition | undefined {\n if (isDataControl(control) && field === control.field) return control;\n if (isGroupControl(control)) {\n if (control.compoundField)\n return field === control.compoundField ? control : undefined;\n return findReferencedControlInArray(field, control.children ?? []);\n }\n return undefined;\n}\n\nfunction findReferencedControlInArray(\n field: string,\n controls: ControlDefinition[],\n): ControlDefinition | undefined {\n for (const c of controls) {\n const ref = findReferencedControl(field, c);\n if (ref) return ref;\n }\n return undefined;\n}\n\nexport function addMissingControls(\n fields: SchemaField[],\n controls: ControlDefinition[],\n): ControlDefinition[] {\n const changes: {\n field: SchemaField;\n existing: ControlDefinition | undefined;\n }[] = fields.flatMap((x) => {\n if (fieldHasTag(x, \"_NoControl\")) return [];\n const existing = findReferencedControlInArray(x.field, controls);\n if (!existing || isCompoundField(x)) return { field: x, existing };\n return [];\n });\n const changedCompounds = controls.map((x) => {\n const ex = changes.find((c) => c.existing === x);\n if (!ex) return x;\n const cf = x as GroupedControlsDefinition;\n return {\n ...cf,\n children: addMissingControls(\n (ex.field as CompoundField).children,\n cf.children ?? [],\n ),\n };\n });\n return changedCompounds.concat(\n changes\n .filter((x) => !x.existing)\n .map((x) => defaultControlForField(x.field)),\n );\n}\n\nexport function useUpdatedRef<A>(a: A): MutableRefObject<A> {\n const r = useRef(a);\n r.current = a;\n return r;\n}\n\nexport function isControlReadonly(c: ControlDefinition): boolean {\n return isDataControl(c) && !!c.readonly;\n}\n\nexport function getDisplayOnlyOptions(\n d: ControlDefinition,\n): DisplayOnlyRenderOptions | undefined {\n return isDataControlDefinition(d) &&\n d.renderOptions &&\n isDisplayOnlyRenderer(d.renderOptions)\n ? d.renderOptions\n : undefined;\n}\n\nexport function getTypeField(\n context: ControlDataContext,\n): Control<string> | undefined {\n const typeSchemaField = context.fields.find((x) => x.isTypeField);\n return typeSchemaField\n ? lookupChildControl(context, typeSchemaField.field)\n : undefined;\n}\n\nexport function visitControlDataArray<A>(\n controls: ControlDefinition[] | undefined | null,\n context: ControlDataContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n if (!controls) return undefined;\n for (const c of controls) {\n const r = visitControlData(c, context, cb);\n if (r !== undefined) return r;\n }\n return undefined;\n}\n\nexport function visitControlData<A>(\n definition: ControlDefinition,\n ctx: ControlDataContext,\n cb: (\n definition: DataControlDefinition,\n field: SchemaField,\n control: Control<any>,\n element: boolean,\n ) => A | undefined,\n): A | undefined {\n return visitControlDefinition<A | undefined>(\n definition,\n {\n data(def: DataControlDefinition) {\n return processData(def, def.field, def.children);\n },\n group(d: GroupedControlsDefinition) {\n return processData(undefined, d.compoundField, d.children);\n },\n action: () => undefined,\n display: () => undefined,\n },\n () => undefined,\n );\n\n function processData(\n def: DataControlDefinition | undefined,\n fieldName: string | undefined | null,\n children: ControlDefinition[] | null | undefined,\n ) {\n const fieldData = fieldName ? findField(ctx.fields, fieldName) : undefined;\n if (!fieldData)\n return !fieldName ? visitControlDataArray(children, ctx, cb) : undefined;\n\n const thisPath = [...ctx.path, fieldData.field];\n const control = ctx.data.lookupControl(thisPath);\n if (!control) throw \"No control for field\";\n const result = def ? cb(def, fieldData, control, false) : undefined;\n if (result !== undefined) return result;\n if (fieldData.collection) {\n let cIndex = 0;\n for (const c of control!.elements ?? []) {\n const elemResult = def ? cb(def, fieldData, c, true) : undefined;\n if (elemResult !== undefined) return elemResult;\n if (isCompoundField(fieldData)) {\n const cfResult = visitControlDataArray(\n children,\n {\n ...ctx,\n fields: fieldData.children,\n path: [...thisPath, cIndex],\n },\n cb,\n );\n if (cfResult !== undefined) return cfResult;\n }\n cIndex++;\n }\n }\n }\n}\n\nexport function lookupChildControl(\n data: DataContext,\n child: JsonPath,\n): Control<any> | undefined {\n const childPath = [...data.path, child];\n return data.data.lookupControl(childPath);\n}\n\nexport function cleanDataForSchema(\n v: { [k: string]: any } | undefined,\n fields: SchemaField[],\n): any {\n if (!v) return v;\n const typeField = fields.find((x) => x.isTypeField);\n if (!typeField) return v;\n const typeValue = v[typeField.field];\n const cleanableFields = fields.filter(\n (x) => isCompoundField(x) || (x.onlyForTypes?.length ?? 0) > 0,\n );\n if (!cleanableFields.length) return v;\n const out = { ...v };\n cleanableFields.forEach((x) => {\n const childValue = v[x.field];\n if (\n x.onlyForTypes?.includes(typeValue) === false ||\n (!x.notNullable && canBeNull())\n ) {\n delete out[x.field];\n return;\n }\n if (isCompoundField(x)) {\n const childFields = x.treeChildren ? fields : x.children;\n if (x.collection) {\n if (Array.isArray(childValue)) {\n out[x.field] = childValue.map((cv) =>\n cleanDataForSchema(cv, childFields),\n );\n }\n } else {\n out[x.field] = cleanDataForSchema(childValue, childFields);\n }\n }\n function canBeNull() {\n return (\n x.collection && Array.isArray(childValue) && !childValue.length\n //|| (x.type === FieldType.Bool && childValue === false)\n );\n }\n });\n return out;\n}\n\nexport function getAllReferencedClasses(\n c: ControlDefinition,\n collectExtra?: (c: ControlDefinition) => (string | undefined | null)[],\n): string[] {\n const childClasses = c.children?.flatMap((x) =>\n getAllReferencedClasses(x, collectExtra),\n );\n const tc = clsx(\n [\n c.styleClass,\n c.layoutClass,\n c.labelClass,\n ...(collectExtra?.(c) ?? []),\n ].map(getOverrideClass),\n );\n if (childClasses && !tc) return childClasses;\n if (!tc) return [];\n if (childClasses) return [tc, ...childClasses];\n return [tc];\n}\n\nexport function jsonPathString(\n jsonPath: JsonPath[],\n customIndex?: (n: number) => string,\n) {\n let out = \"\";\n jsonPath.forEach((v, i) => {\n if (typeof v === \"number\") {\n out += customIndex?.(v) ?? \"[\" + v + \"]\";\n } else {\n if (i > 0) out += \".\";\n out += v;\n }\n });\n return out;\n}\n\nexport function findChildDefinition(\n parent: ControlDefinition,\n childPath: number | number[],\n): ControlDefinition {\n if (Array.isArray(childPath)) {\n let base = parent;\n childPath.forEach((x) => (base = base.children![x]));\n return base;\n }\n return parent.children![childPath];\n}\n\nexport function getOverrideClass(className?: string | null) {\n if (className && className.startsWith(\"@ \")) {\n return className.substring(2);\n }\n return className;\n}\n\nexport function rendererClass(\n controlClass?: string | null,\n globalClass?: string | null,\n) {\n const oc = getOverrideClass(controlClass);\n if (oc === controlClass) return clsx(controlClass, globalClass);\n return oc ? oc : undefined;\n}\n","import {\n CompoundField,\n ControlDefinition,\n ControlDefinitionType,\n DataControlDefinition,\n DataMatchExpression,\n DisplayControlDefinition,\n DisplayDataType,\n DynamicProperty,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n GroupedControlsDefinition,\n GroupRenderType,\n HtmlDisplay,\n JsonataExpression,\n SchemaField,\n TextDisplay,\n} from \"./types\";\nimport { ActionRendererProps } from \"./controlRender\";\nimport { useMemo } from \"react\";\nimport { addMissingControls, isCompoundField } from \"./util\";\nimport { mergeField } from \"./schemaBuilder\";\n\nexport function dataControl(\n field: string,\n title?: string | null,\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return { type: ControlDefinitionType.Data, field, title, ...options };\n}\n\nexport function textDisplayControl(\n text: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Text, text } as TextDisplay,\n ...options,\n };\n}\n\nexport function htmlDisplayControl(\n html: string,\n options?: Partial<DisplayControlDefinition>,\n): DisplayControlDefinition {\n return {\n type: ControlDefinitionType.Display,\n displayData: { type: DisplayDataType.Html, html } as HtmlDisplay,\n ...options,\n };\n}\n\nexport function dynamicDefaultValue(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.DefaultValue, expr };\n}\n\nexport function dynamicReadonly(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Readonly, expr };\n}\n\nexport function dynamicVisibility(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Visible, expr };\n}\n\nexport function dynamicDisabled(expr: EntityExpression): DynamicProperty {\n return { type: DynamicPropertyType.Disabled, expr };\n}\n\nexport function fieldEqExpr(field: string, value: any): DataMatchExpression {\n return { type: ExpressionType.DataMatch, field, value };\n}\nexport function jsonataExpr(expression: string): JsonataExpression {\n return { type: ExpressionType.Jsonata, expression };\n}\n\nexport function groupedControl(\n children: ControlDefinition[],\n title?: string,\n options?: Partial<GroupedControlsDefinition>,\n): GroupedControlsDefinition {\n return {\n type: ControlDefinitionType.Group,\n children,\n title,\n groupOptions: { type: \"Standard\", hideTitle: !title },\n ...options,\n };\n}\nexport function compoundControl(\n field: string,\n title: string | undefined,\n children: ControlDefinition[],\n options?: Partial<DataControlDefinition>,\n): DataControlDefinition {\n return {\n type: ControlDefinitionType.Data,\n field,\n children,\n title,\n renderOptions: { type: \"Standard\" },\n ...options,\n };\n}\n\nexport function createAction(\n actionId: string,\n onClick: () => void,\n actionText?: string,\n): ActionRendererProps {\n return { actionId, onClick, actionText: actionText ?? actionId };\n}\n\nexport const emptyGroupDefinition: GroupedControlsDefinition = {\n type: ControlDefinitionType.Group,\n children: [],\n groupOptions: { type: GroupRenderType.Standard, hideTitle: true },\n};\n\nexport function useControlDefinitionForSchema(\n sf: SchemaField[],\n definition: GroupedControlsDefinition = emptyGroupDefinition,\n): GroupedControlsDefinition {\n return useMemo<GroupedControlsDefinition>(\n () => ({\n ...definition,\n children: addMissingControls(sf, definition.children ?? []),\n }),\n [sf, definition],\n );\n}\n\nexport interface CustomRenderOptions {\n value: string;\n name: string;\n fields: SchemaField[];\n}\n\nexport function addCustomDataRenderOptions(\n controlFields: SchemaField[],\n customRenderOptions: CustomRenderOptions[],\n): SchemaField[] {\n return controlFields.map((x) =>\n x.field === \"renderOptions\" && isCompoundField(x) ? addRenderOptions(x) : x,\n );\n\n function addRenderOptions(roField: CompoundField): CompoundField {\n const children = roField.children;\n const withTypes = children.map((x) =>\n x.field === \"type\" ? addRenderOptionType(x) : x,\n );\n return {\n ...roField,\n children: customRenderOptions.reduce(\n (renderOptionFields, ro) =>\n ro.fields\n .map((x) => ({ ...x, onlyForTypes: [ro.value] }))\n .reduce((af, x) => mergeField(x, af), renderOptionFields),\n withTypes,\n ),\n };\n }\n\n function addRenderOptionType(typeField: SchemaField): SchemaField {\n const options = typeField.options ?? [];\n return {\n ...typeField,\n options: [\n ...options,\n ...customRenderOptions.map(({ name, value }) => ({ name, value })),\n ],\n };\n }\n}\n","import {\n ChangeListenerFunc,\n Control,\n ControlChange,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\n\nexport function useCalculatedControl<V>(calculate: () => V): Control<V> {\n const c = useControl(calculate);\n useControlEffect(calculate, (v) => (c.value = v));\n return c;\n}\n\nexport function cc(n: string | null | undefined): string | undefined {\n return n ? n : undefined;\n}\n\nexport function trackedStructure<A>(\n c: Control<A>,\n tracker: ChangeListenerFunc<any>,\n): A {\n const cc = c.current;\n const cv = cc.value;\n if (cv == null) {\n tracker(c, ControlChange.Structure);\n return cv;\n }\n if (typeof cv !== \"object\") {\n tracker(c, ControlChange.Value);\n return cv;\n }\n return new Proxy(cv, {\n get(target: object, p: string | symbol, receiver: any): any {\n if (Array.isArray(cv)) {\n tracker(c, ControlChange.Structure);\n if (typeof p === \"symbol\" || p[0] >= \"9\" || p[0] < \"0\")\n return Reflect.get(cv, p);\n const nc = (cc.elements as any)[p];\n if (typeof nc === \"function\") return nc;\n if (nc == null) return null;\n return trackedStructure(nc, tracker);\n }\n if (p in cv) return trackedStructure((cc.fields as any)[p], tracker);\n return undefined;\n },\n }) as A;\n}\n","import {\n ControlDefinition,\n DataExpression,\n DataMatchExpression,\n DynamicPropertyType,\n EntityExpression,\n ExpressionType,\n isDataControlDefinition,\n JsonataExpression,\n SchemaField,\n SchemaInterface,\n} from \"./types\";\nimport { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport {\n addAfterChangesCallback,\n collectChanges,\n Control,\n makeChangeTracker,\n useComputed,\n useControl,\n useRefState,\n} from \"@react-typed-forms/core\";\n\nimport {\n ControlDataContext,\n defaultValueForField,\n findField,\n getDisplayOnlyOptions,\n getTypeField,\n isControlReadonly,\n jsonPathString,\n lookupChildControl,\n useUpdatedRef,\n} from \"./util\";\nimport jsonata from \"jsonata\";\nimport { trackedStructure, useCalculatedControl } from \"./internal\";\nimport { DataContext } from \"./controlRender\";\n\nexport type UseEvalExpressionHook = (\n expr: EntityExpression | undefined,\n) => EvalExpressionHook | undefined;\n\nexport function useEvalVisibilityHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook<boolean> {\n const dynamicVisibility = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Visible,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef({ schemaField, definition });\n return useCallback(\n (ctx) => {\n const { schemaField, definition } = r.current;\n return (\n dynamicVisibility?.(ctx) ??\n useComputed(\n () =>\n matchesType(ctx, schemaField?.onlyForTypes) &&\n (!schemaField ||\n !hideDisplayOnly(\n ctx,\n schemaField,\n definition,\n ctx.schemaInterface,\n )),\n )\n );\n },\n [dynamicVisibility, r],\n );\n}\n\nexport function useEvalReadonlyHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicReadonly = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Readonly,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef(definition);\n return useCallback(\n (ctx) => {\n if (dynamicReadonly) return dynamicReadonly(ctx);\n return useCalculatedControl(() => isControlReadonly(r.current));\n },\n [dynamicReadonly, r],\n );\n}\n\nexport function useEvalStyleHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n property: DynamicPropertyType,\n definition: ControlDefinition,\n): EvalExpressionHook<React.CSSProperties> {\n const dynamicStyle = useEvalDynamicHook(\n definition,\n property,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicStyle) return dynamicStyle(ctx);\n return useControl(undefined);\n },\n [dynamicStyle],\n );\n}\n\nexport function useEvalAllowedOptionsHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<any[]> {\n const dynamicAllowed = useEvalDynamicHook(\n definition,\n DynamicPropertyType.AllowedOptions,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicAllowed) return dynamicAllowed(ctx);\n return useControl([]);\n },\n [dynamicAllowed],\n );\n}\n\nexport function useEvalDisabledHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<boolean> {\n const dynamicDisabled = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Disabled,\n useEvalExpressionHook,\n );\n return useCallback(\n (ctx) => {\n if (dynamicDisabled) return dynamicDisabled(ctx);\n return useControl(false);\n },\n [dynamicDisabled],\n );\n}\n\nexport function useEvalDisplayHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n): (\n groupContext: ControlDataContext,\n) => Control<string | undefined> | undefined {\n const dynamicDisplay = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Display,\n useEvalExpressionHook,\n );\n return useCallback((ctx) => dynamicDisplay?.(ctx), [dynamicDisplay]);\n}\nexport function useEvalDefaultValueHook(\n useEvalExpressionHook: UseEvalExpressionHook,\n definition: ControlDefinition,\n schemaField?: SchemaField,\n): EvalExpressionHook {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.DefaultValue,\n useEvalExpressionHook,\n );\n const r = useUpdatedRef({ definition, schemaField });\n return useCallback(\n (ctx) => {\n const { definition, schemaField } = r.current;\n return dynamicValue?.(ctx) ?? useComputed(calcDefault);\n function calcDefault() {\n const [required, dcv] = isDataControlDefinition(definition)\n ? [definition.required, definition.defaultValue]\n : [false, undefined];\n return (\n dcv ??\n (schemaField\n ? defaultValueForField(schemaField, required)\n : undefined)\n );\n }\n },\n [dynamicValue, r],\n );\n}\n\nexport type EvalExpressionHook<A = any> = (\n groupContext: ControlDataContext,\n) => Control<A | undefined>;\n\nfunction useDataExpression(\n fvExpr: DataExpression,\n fields: SchemaField[],\n data: DataContext,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField\n ? lookupChildControl(data, refField.field)\n : undefined;\n return useCalculatedControl(() => otherField?.value);\n}\n\nfunction useDataMatchExpression(\n fvExpr: DataMatchExpression,\n fields: SchemaField[],\n data: DataContext,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField\n ? lookupChildControl(data, refField.field)\n : undefined;\n return useComputed(() => {\n const fv = otherField?.value;\n return Array.isArray(fv) ? fv.includes(fvExpr.value) : fv === fvExpr.value;\n });\n}\n\nexport function defaultEvalHooks(\n expr: EntityExpression,\n context: ControlDataContext,\n) {\n switch (expr.type) {\n case ExpressionType.Jsonata:\n return useJsonataExpression(\n (expr as JsonataExpression).expression,\n context,\n );\n case ExpressionType.Data:\n return useDataExpression(expr as DataExpression, context.fields, context);\n case ExpressionType.DataMatch:\n return useDataMatchExpression(\n expr as DataMatchExpression,\n context.fields,\n context,\n );\n default:\n return useControl(undefined);\n }\n}\n\nexport const defaultUseEvalExpressionHook =\n makeEvalExpressionHook(defaultEvalHooks);\n\nexport function makeEvalExpressionHook(\n f: (expr: EntityExpression, context: ControlDataContext) => Control<any>,\n): (expr: EntityExpression | undefined) => EvalExpressionHook | undefined {\n return (expr) => {\n const r = useUpdatedRef(expr);\n const cb = useCallback(\n (ctx: ControlDataContext) => {\n const expr = r.current!;\n return f(expr, ctx);\n },\n [expr?.type, r],\n );\n return expr ? cb : undefined;\n };\n}\n\nexport function useEvalDynamicHook(\n definition: ControlDefinition,\n type: DynamicPropertyType,\n useEvalExpressionHook: (\n expr: EntityExpression | undefined,\n ) => EvalExpressionHook | undefined,\n): EvalExpressionHook | undefined {\n const expression = definition.dynamic?.find((x) => x.type === type);\n return useEvalExpressionHook(expression?.expr);\n}\n\nexport function matchesType(\n context: ControlDataContext,\n types?: string[] | null,\n) {\n if (types == null || types.length === 0) return true;\n const typeField = getTypeField(context);\n return typeField && types.includes(typeField.value);\n}\n\nexport function hideDisplayOnly(\n context: ControlDataContext,\n field: SchemaField,\n definition: ControlDefinition,\n schemaInterface: SchemaInterface,\n) {\n const displayOptions = getDisplayOnlyOptions(definition);\n return (\n displayOptions &&\n !displayOptions.emptyText &&\n schemaInterface.isEmptyValue(\n field,\n lookupChildControl(context, field.field)?.value,\n )\n );\n}\n\nexport function useJsonataExpression(\n jExpr: string,\n dataContext: DataContext,\n bindings?: () => Record<string, any>,\n): Control<any> {\n const pathString = jsonPathString(dataContext.path, (x) => `#$i[${x}]`);\n const fullExpr = pathString ? pathString + \".(\" + jExpr + \")\" : jExpr;\n const compiledExpr = useMemo(() => {\n try {\n return jsonata(fullExpr);\n } catch (e) {\n console.error(e);\n return jsonata(\"null\");\n }\n }, [fullExpr]);\n const control = useControl();\n const listenerRef = useRef<() => void>();\n const [ref] = useRefState(() =>\n makeChangeTracker(() => {\n const l = listenerRef.current;\n if (l) {\n listenerRef.current = undefined;\n addAfterChangesCallback(() => {\n l();\n listenerRef.current = l;\n });\n }\n }),\n );\n useEffect(() => {\n listenerRef.current = apply;\n apply();\n async function apply() {\n const [collect, updateSubscriptions] = ref.current;\n try {\n const bindingData = bindings\n ? collectChanges(collect, bindings)\n : undefined;\n control.value = await compiledExpr.evaluate(\n trackedStructure(dataContext.data, collect),\n bindingData,\n );\n } finally {\n updateSubscriptions();\n }\n }\n return () => ref.current[1](true);\n }, [compiledExpr]);\n return control;\n}\n\nexport function useEvalLabelText(\n useExpr: UseEvalExpressionHook,\n definition: ControlDefinition,\n): EvalExpressionHook<string | null> {\n const dynamicValue = useEvalDynamicHook(\n definition,\n DynamicPropertyType.Label,\n useExpr,\n );\n return useCallback(\n (ctx) => {\n if (dynamicValue) {\n return dynamicValue(ctx);\n }\n return useControl(null);\n },\n [dynamicValue],\n );\n}\n","import {\n ControlDefinition,\n DataControlDefinition,\n DateComparison,\n DateValidator,\n isDataControlDefinition,\n JsonataValidator,\n ValidatorType,\n} from \"./types\";\nimport {\n Control,\n useControlEffect,\n useValidator,\n useValueChangeEffect,\n} from \"@react-typed-forms/core\";\nimport { useCallback } from \"react\";\nimport { ControlDataContext, useUpdatedRef } from \"./util\";\nimport { useJsonataExpression } from \"./hooks\";\n\nexport function useValidationHook(\n definition: ControlDefinition,\n): (\n control: Control<any>,\n hidden: boolean,\n groupContext: ControlDataContext,\n) => void {\n const validatorTypes = isDataControlDefinition(definition)\n ? definition.validators?.map((x) => x.type) ?? []\n : null;\n const r = useUpdatedRef(definition as DataControlDefinition);\n return useCallback(\n (control, hidden, groupContext) => {\n if (!validatorTypes) return;\n const dd = r.current;\n\n useValueChangeEffect(control, () => control.setError(\"default\", \"\"));\n useValidator(\n control,\n (v) =>\n !hidden &&\n dd.required &&\n (v == null || v === \"\" || (Array.isArray(v) && v.length === 0))\n ? \"Please enter a value\"\n : null,\n \"required\",\n );\n (dd.validators ?? []).forEach((x, i) => {\n switch (x.type) {\n case ValidatorType.Jsonata:\n return useJsonataValidator(\n control,\n groupContext,\n x as JsonataValidator,\n hidden,\n i,\n );\n case ValidatorType.Date:\n return useDateValidator(control, x as DateValidator, i);\n }\n });\n },\n validatorTypes ? validatorTypes : [null],\n );\n}\n\nfunction useJsonataValidator(\n control: Control<any>,\n context: ControlDataContext,\n expr: JsonataValidator,\n hidden: boolean,\n i: number,\n) {\n const errorMsg = useJsonataExpression(expr.expression, context);\n useControlEffect(\n () => [hidden, errorMsg.value],\n ([hidden, msg]) => control.setError(\"jsonata\" + i, !hidden ? msg : null),\n true,\n );\n}\n\nfunction useDateValidator(\n control: Control<string | null | undefined>,\n dv: DateValidator,\n i: number,\n) {\n let comparisonDate: number;\n if (dv.fixedDate) {\n comparisonDate = Date.parse(dv.fixedDate);\n } else {\n const nowDate = new Date();\n comparisonDate = Date.UTC(\n nowDate.getFullYear(),\n nowDate.getMonth(),\n nowDate.getDate(),\n );\n if (dv.daysFromCurrent) {\n comparisonDate += dv.daysFromCurrent * 86400000;\n }\n }\n useValidator(\n control,\n (v) => {\n if (v) {\n const selDate = Date.parse(v);\n const notAfter = dv.comparison === DateComparison.NotAfter;\n if (notAfter ? selDate > comparisonDate : selDate < comparisonDate) {\n return `Date must not be ${notAfter ? \"after\" : \"before\"} ${new Date(\n comparisonDate,\n ).toDateString()}`;\n }\n }\n return null;\n },\n \"date\" + i,\n );\n}\n","import { FieldType, SchemaField, SchemaInterface } from \"./types\";\n\nexport const defaultSchemaInterface: SchemaInterface = {\n isEmptyValue: defaultIsEmpty,\n textValue: defaultTextValue,\n};\n\nexport function defaultIsEmpty(f: SchemaField, value: any): boolean {\n if (f.collection)\n return Array.isArray(value) ? value.length === 0 : value == null;\n switch (f.type) {\n case FieldType.String:\n return !value;\n default:\n return value == null;\n }\n}\n\nexport function defaultTextValue(\n f: SchemaField,\n value: any,\n): string | undefined {\n switch (f.type) {\n case FieldType.DateTime:\n return new Date(value).toLocaleDateString();\n case FieldType.Date:\n return new Date(value).toLocaleDateString();\n default:\n return value != null ? value.toString() : undefined;\n }\n}\n","import React, {\n CSSProperties,\n FC,\n Fragment,\n Key,\n ReactNode,\n useCallback,\n useEffect,\n} from \"react\";\nimport {\n addElement,\n Control,\n ControlChange,\n newControl,\n removeElement,\n trackControlChange,\n useComponentTracking,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\nimport {\n AdornmentPlacement,\n ControlAdornment,\n ControlDefinition,\n DataControlDefinition,\n DisplayData,\n DynamicPropertyType,\n FieldOption,\n GroupedControlsDefinition,\n GroupRenderOptions,\n isActionControlsDefinition,\n isDataControlDefinition,\n isDisplayControlsDefinition,\n isGroupControlsDefinition,\n RenderOptions,\n SchemaField,\n SchemaInterface,\n} from \"./types\";\nimport {\n ControlDataContext,\n elementValueForField,\n fieldDisplayName,\n findChildDefinition,\n findField,\n isCompoundField,\n useUpdatedRef,\n} from \"./util\";\nimport { dataControl } from \"./controlBuilder\";\nimport {\n defaultUseEvalExpressionHook,\n useEvalAllowedOptionsHook,\n useEvalDefaultValueHook,\n useEvalDisabledHook,\n useEvalDisplayHook,\n UseEvalExpressionHook,\n useEvalLabelText,\n useEvalReadonlyHook,\n useEvalStyleHook,\n useEvalVisibilityHook,\n} from \"./hooks\";\nimport { useValidationHook } from \"./validators\";\nimport { cc, useCalculatedControl } from \"./internal\";\nimport { defaultSchemaInterface } from \"./schemaInterface\";\n\nexport interface FormRenderer {\n renderData: (\n props: DataRendererProps,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderGroup: (\n props: GroupRendererProps,\n ) => (layout: ControlLayoutProps) => ControlLayoutProps;\n renderDisplay: (props: DisplayRendererProps) => ReactNode;\n renderAction: (props: ActionRendererProps) => ReactNode;\n renderArray: (props: ArrayRendererProps) => ReactNode;\n renderAdornment: (props: AdornmentProps) => AdornmentRenderer;\n renderLabel: (\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) => ReactNode;\n renderLayout: (props: ControlLayoutProps) => RenderedControl;\n renderVisibility: (props: VisibilityRendererProps) => ReactNode;\n}\n\nexport interface AdornmentProps {\n adornment: ControlAdornment;\n}\n\nexport const AppendAdornmentPriority = 0;\nexport const WrapAdornmentPriority = 1000;\n\nexport interface AdornmentRenderer {\n apply(children: RenderedLayout): void;\n adornment?: ControlAdornment;\n priority: number;\n}\n\nexport interface ArrayRendererProps {\n addAction?: ActionRendererProps;\n required: boolean;\n removeAction?: (elemIndex: number) => ActionRendererProps;\n elementCount: number;\n renderElement: (elemIndex: number) => ReactNode;\n elementKey: (elemIndex: number) => Key;\n arrayControl: Control<any[] | undefined | null>;\n className?: string;\n style?: React.CSSProperties;\n}\nexport interface Visibility {\n visible: boolean;\n showing: boolean;\n}\n\nexport interface RenderedLayout {\n labelStart?: ReactNode;\n labelEnd?: ReactNode;\n controlStart?: ReactNode;\n controlEnd?: ReactNode;\n label?: ReactNode;\n children?: ReactNode;\n errorControl?: Control<any>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface RenderedControl {\n children: ReactNode;\n className?: string;\n style?: React.CSSProperties;\n divRef?: (cb: HTMLElement | null) => void;\n}\n\nexport interface VisibilityRendererProps extends RenderedControl {\n visibility: Control<Visibility | undefined>;\n}\n\nexport interface ControlLayoutProps {\n label?: LabelRendererProps;\n errorControl?: Control<any>;\n adornments?: AdornmentRenderer[];\n children?: ReactNode;\n processLayout?: (props: ControlLayoutProps) => ControlLayoutProps;\n className?: string | null;\n style?: React.CSSProperties;\n}\n\nexport enum LabelType {\n Control,\n Group,\n}\nexport interface LabelRendererProps {\n type: LabelType;\n hide?: boolean | null;\n label: ReactNode;\n required?: boolean | null;\n forId?: string;\n className?: string;\n}\nexport interface DisplayRendererProps {\n data: DisplayData;\n display?: Control<string | undefined>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface GroupRendererProps {\n children: ControlDefinition[];\n renderOptions: GroupRenderOptions;\n renderChild: ChildRenderer;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface DataRendererProps {\n renderOptions: RenderOptions;\n field: SchemaField;\n id: string;\n control: Control<any>;\n readonly: boolean;\n required: boolean;\n options: FieldOption[] | undefined | null;\n hidden: boolean;\n className?: string;\n style?: React.CSSProperties;\n dataContext: ControlDataContext;\n children: ControlDefinition[];\n renderChild: ChildRenderer;\n toArrayProps?: () => ArrayRendererProps;\n}\n\nexport interface ActionRendererProps {\n actionId: string;\n actionText: string;\n onClick: () => void;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport interface ControlRenderProps {\n control: Control<any>;\n parentPath?: JsonPath[];\n}\n\nexport interface FormContextOptions {\n readonly?: boolean | null;\n hidden?: boolean | null;\n disabled?: boolean | null;\n}\n\nexport interface DataControlProps {\n definition: DataControlDefinition;\n field: SchemaField;\n dataContext: ControlDataContext;\n control: Control<any>;\n options: FormContextOptions;\n style: React.CSSProperties | undefined;\n renderChild: ChildRenderer;\n allowedOptions?: Control<any[] | undefined>;\n elementRenderer?: (elemIndex: number) => ReactNode;\n}\nexport type CreateDataProps = (\n controlProps: DataControlProps,\n) => DataRendererProps;\n\nexport type JsonPath = string | number;\n\nexport interface DataContext {\n data: Control<any>;\n path: JsonPath[];\n}\nexport interface ControlRenderOptions extends FormContextOptions {\n useDataHook?: (c: ControlDefinition) => CreateDataProps;\n useEvalExpressionHook?: UseEvalExpressionHook;\n clearHidden?: boolean;\n schemaInterface?: SchemaInterface;\n}\nexport function useControlRenderer(\n definition: ControlDefinition,\n fields: SchemaField[],\n renderer: FormRenderer,\n options: ControlRenderOptions = {},\n): FC<ControlRenderProps> {\n const dataProps = options.useDataHook?.(definition) ?? defaultDataProps;\n const schemaInterface = options.schemaInterface ?? defaultSchemaInterface;\n const useExpr = options.useEvalExpressionHook ?? defaultUseEvalExpressionHook;\n\n const schemaField = lookupSchemaField(definition, fields);\n const useDefaultValue = useEvalDefaultValueHook(\n useExpr,\n definition,\n schemaField,\n );\n const useIsVisible = useEvalVisibilityHook(useExpr, definition, schemaField);\n const useIsReadonly = useEvalReadonlyHook(useExpr, definition);\n const useIsDisabled = useEvalDisabledHook(useExpr, definition);\n const useAllowedOptions = useEvalAllowedOptionsHook(useExpr, definition);\n const useLabelText = useEvalLabelText(useExpr, definition);\n const useCustomStyle = useEvalStyleHook(\n useExpr,\n DynamicPropertyType.Style,\n definition,\n );\n const useLayoutStyle = useEvalStyleHook(\n useExpr,\n DynamicPropertyType.LayoutStyle,\n definition,\n );\n const useDynamicDisplay = useEvalDisplayHook(useExpr, definition);\n const useValidation = useValidationHook(definition);\n const r = useUpdatedRef({ options, definition, fields, schemaField });\n\n const Component = useCallback(\n ({ control: rootControl, parentPath = [] }: ControlRenderProps) => {\n const stopTracking = useComponentTracking();\n try {\n const { definition: c, options, fields, schemaField } = r.current;\n const parentDataContext: ControlDataContext = {\n fields,\n schemaInterface,\n data: rootControl,\n path: parentPath,\n };\n const readonlyControl = useIsReadonly(parentDataContext);\n const disabledControl = useIsDisabled(parentDataContext);\n const visibleControl = useIsVisible(parentDataContext);\n const displayControl = useDynamicDisplay(parentDataContext);\n const customStyle = useCustomStyle(parentDataContext).value;\n const layoutStyle = useLayoutStyle(parentDataContext).value;\n const labelText = useLabelText(parentDataContext);\n const visible = visibleControl.current.value;\n const visibility = useControl<Visibility | undefined>(() =>\n visible != null\n ? {\n visible,\n showing: visible,\n }\n : undefined,\n );\n useControlEffect(\n () => visibleControl.value,\n (visible) => {\n if (visible != null)\n visibility.setValue((ex) => ({\n visible,\n showing: ex ? ex.showing : visible,\n }));\n },\n );\n\n const allowedOptions = useAllowedOptions(parentDataContext);\n const defaultValueControl = useDefaultValue(parentDataContext);\n const [parentControl, control, controlDataContext] = getControlData(\n schemaField,\n parentDataContext,\n );\n useControlEffect(\n () => [\n visibility.value,\n defaultValueControl.value,\n control,\n isDataControlDefinition(definition) && definition.dontClearHidden,\n parentControl?.isNull,\n ],\n ([vc, dv, cd, dontClear, parentNull]) => {\n if (vc && cd && vc.visible === vc.showing) {\n if (!vc.visible) {\n if (options.clearHidden && !dontClear) {\n cd.value = undefined;\n }\n } else if (cd.value == null) {\n cd.value = dv;\n }\n }\n if (parentNull && parentControl?.isNull) {\n parentControl.value = {};\n }\n },\n true,\n );\n const myOptions = useCalculatedControl<FormContextOptions>(() => ({\n hidden: options.hidden || !visibility.fields?.showing.value,\n readonly: options.readonly || readonlyControl.value,\n disabled: options.disabled || disabledControl.value,\n })).value;\n useValidation(\n control ?? newControl(null),\n !!myOptions.hidden,\n parentDataContext,\n );\n const childOptions: ControlRenderOptions = { ...options, ...myOptions };\n\n useEffect(() => {\n if (control && typeof myOptions.disabled === \"boolean\")\n control.disabled = myOptions.disabled;\n }, [control, myOptions.disabled]);\n if (parentControl?.isNull) return <></>;\n\n const adornments =\n definition.adornments?.map((x) =>\n renderer.renderAdornment({ adornment: x }),\n ) ?? [];\n const labelAndChildren = renderControlLayout({\n definition: c,\n renderer,\n renderChild: (k, child, path) => (\n <ControlRenderer\n key={k}\n control={controlDataContext.data}\n fields={controlDataContext.fields}\n definition={findChildDefinition(c, child)}\n parentPath={\n path\n ? [...controlDataContext.path, ...path]\n : controlDataContext.path\n }\n renderer={renderer}\n options={childOptions}\n />\n ),\n createDataProps: dataProps,\n formOptions: myOptions,\n dataContext: controlDataContext,\n control: displayControl ?? control,\n labelText,\n schemaField,\n displayControl,\n style: customStyle,\n allowedOptions,\n });\n const renderedControl = renderer.renderLayout({\n ...labelAndChildren,\n adornments,\n className: c.layoutClass,\n style: layoutStyle,\n });\n return renderer.renderVisibility({ visibility, ...renderedControl });\n } finally {\n stopTracking();\n }\n },\n [\n r,\n dataProps,\n useIsVisible,\n useDefaultValue,\n useIsReadonly,\n useIsDisabled,\n useCustomStyle,\n useLayoutStyle,\n useAllowedOptions,\n useLabelText,\n useDynamicDisplay,\n useValidation,\n renderer,\n schemaInterface,\n ],\n );\n (Component as any).displayName = \"RenderControl\";\n return Component;\n}\nexport function lookupSchemaField(\n c: ControlDefinition,\n fields: SchemaField[],\n): SchemaField | undefined {\n const fieldName = isGroupControlsDefinition(c)\n ? c.compoundField\n : isDataControlDefinition(c)\n ? c.field\n : undefined;\n return fieldName ? findField(fields, fieldName) : undefined;\n}\nexport function getControlData(\n schemaField: SchemaField | undefined,\n parentContext: ControlDataContext,\n): [Control<any> | undefined, Control<any> | undefined, ControlDataContext] {\n const { data, path } = parentContext;\n const parentControl = data.lookupControl(path);\n const childPath = schemaField ? [...path, schemaField.field] : path;\n const childControl =\n schemaField && parentControl\n ? parentControl.fields?.[schemaField.field]\n : undefined;\n return [\n parentControl,\n childControl,\n schemaField\n ? {\n ...parentContext,\n path: childPath,\n fields: isCompoundField(schemaField)\n ? schemaField.children\n : parentContext.fields,\n }\n : parentContext,\n ];\n}\n\nexport function ControlRenderer({\n definition,\n fields,\n renderer,\n options,\n control,\n parentPath,\n}: {\n definition: ControlDefinition;\n fields: SchemaField[];\n renderer: FormRenderer;\n options?: ControlRenderOptions;\n control: Control<any>;\n parentPath?: JsonPath[];\n}) {\n const Render = useControlRenderer(definition, fields, renderer, options);\n return <Render control={control} parentPath={parentPath} />;\n}\n\nfunction groupProps(\n definition: GroupedControlsDefinition,\n renderChild: ChildRenderer,\n data: DataContext,\n className: string | null | undefined,\n style: React.CSSProperties | undefined,\n): GroupRendererProps {\n return {\n children: definition.children ?? [],\n renderChild,\n renderOptions: definition.groupOptions ?? { type: \"Standard\" },\n className: cc(className),\n style,\n };\n}\n\nexport function defaultDataProps({\n definition,\n field,\n control,\n options,\n elementRenderer,\n style,\n allowedOptions,\n ...props\n}: DataControlProps): DataRendererProps {\n const className = cc(definition.styleClass);\n const required = !!definition.required;\n const fieldOptions =\n (field.options?.length ?? 0) === 0 ? null : field.options;\n const allowed = allowedOptions?.value ?? [];\n return {\n children: definition.children ?? [],\n control,\n field,\n id: \"c\" + control.uniqueId,\n options:\n fieldOptions && allowed.length > 0\n ? fieldOptions.filter((x) => allowed.includes(x.value))\n : fieldOptions,\n readonly: !!options.readonly,\n renderOptions: definition.renderOptions ?? { type: \"Standard\" },\n required,\n hidden: !!options.hidden,\n className,\n style,\n ...props,\n toArrayProps: elementRenderer\n ? () =>\n defaultArrayProps(\n control,\n field,\n required,\n style,\n className,\n elementRenderer,\n )\n : undefined,\n };\n}\n\nexport function defaultArrayProps(\n arrayControl: Control<any[] | undefined | null>,\n field: SchemaField,\n required: boolean,\n style: CSSProperties | undefined,\n className: string | undefined,\n renderElement: (elemIndex: number) => ReactNode,\n): ArrayRendererProps {\n const noun = field.displayName ?? field.field;\n const elems = arrayControl.elements ?? [];\n return {\n arrayControl,\n elementCount: elems.length,\n required,\n addAction: {\n actionId: \"add\",\n actionText: \"Add \" + noun,\n onClick: () => addElement(arrayControl, elementValueForField(field)),\n },\n elementKey: (i) => elems[i].uniqueId,\n removeAction: (i: number) => ({\n actionId: \"\",\n actionText: \"Remove\",\n onClick: () => removeElement(arrayControl, i),\n }),\n renderElement: (i) => renderElement(i),\n className: cc(className),\n style,\n };\n}\n\nexport type ChildRenderer = (\n k: Key,\n child: number | number[],\n parentPath?: JsonPath[],\n) => ReactNode;\n\nexport interface RenderControlProps {\n definition: ControlDefinition;\n renderer: FormRenderer;\n renderChild: ChildRenderer;\n createDataProps: CreateDataProps;\n formOptions: FormContextOptions;\n dataContext: ControlDataContext;\n control?: Control<any>;\n labelText?: Control<string | null | undefined>;\n schemaField?: SchemaField;\n displayControl?: Control<string | undefined>;\n style?: React.CSSProperties;\n allowedOptions?: Control<any[] | undefined>;\n}\nexport function renderControlLayout({\n definition: c,\n renderer,\n renderChild: childRenderer,\n control: childControl,\n schemaField,\n dataContext,\n formOptions: dataOptions,\n createDataProps: dataProps,\n displayControl,\n style,\n labelText,\n allowedOptions,\n}: RenderControlProps): ControlLayoutProps {\n if (isDataControlDefinition(c)) {\n return renderData(c);\n }\n if (isGroupControlsDefinition(c)) {\n if (c.compoundField) {\n return renderData(\n dataControl(c.compoundField, c.title, {\n children: c.children,\n hideTitle: c.groupOptions?.hideTitle,\n }),\n );\n }\n return {\n processLayout: renderer.renderGroup(\n groupProps(c, childRenderer, dataContext, c.styleClass, style),\n ),\n label: {\n label: labelText?.value ?? c.title,\n className: cc(c.labelClass),\n type: LabelType.Group,\n hide: c.groupOptions?.hideTitle,\n },\n };\n }\n if (isActionControlsDefinition(c)) {\n return {\n children: renderer.renderAction({\n actionText: labelText?.value ?? c.title ?? c.actionId,\n actionId: c.actionId,\n onClick: () => {},\n className: cc(c.styleClass),\n style,\n }),\n };\n }\n if (isDisplayControlsDefinition(c)) {\n return {\n children: renderer.renderDisplay({\n data: c.displayData ?? {},\n className: cc(c.styleClass),\n style,\n display: displayControl,\n }),\n };\n }\n return {};\n\n function renderData(c: DataControlDefinition, elemIndex?: number) {\n if (!schemaField) return { children: \"No schema field for: \" + c.field };\n if (!childControl) return { children: \"No control for: \" + c.field };\n const props = dataProps({\n definition: c,\n field: schemaField,\n dataContext:\n elemIndex != null\n ? { ...dataContext, path: [...dataContext.path, elemIndex] }\n : dataContext,\n control:\n elemIndex != null ? childControl!.elements[elemIndex] : childControl,\n options: dataOptions,\n style,\n allowedOptions,\n renderChild:\n elemIndex != null\n ? (k, d, p) =>\n childRenderer(k, d, p ? [elemIndex, ...p] : [elemIndex])\n : childRenderer,\n elementRenderer:\n elemIndex == null && schemaField.collection\n ? (ei) => renderLayoutParts(renderData(c, ei), renderer).children\n : undefined,\n });\n\n const label = !c.hideTitle\n ? controlTitle(labelText?.value ?? c.title, schemaField)\n : undefined;\n return {\n processLayout: renderer.renderData(props),\n label: {\n type: LabelType.Control,\n label,\n forId: props.id,\n required: c.required,\n hide: c.hideTitle,\n className: cc(c.labelClass),\n },\n errorControl: childControl,\n };\n }\n}\n\nexport function appendMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\">,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) =>\n (layout[k] = (\n <>\n {layout[k]}\n {markup}\n </>\n ));\n}\n\nexport function wrapMarkup(\n k: keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\">,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return (layout) => (layout[k] = wrap(layout[k]));\n}\n\nexport function layoutKeyForPlacement(\n pos: AdornmentPlacement,\n): keyof Omit<RenderedLayout, \"errorControl\" | \"style\" | \"className\"> {\n switch (pos) {\n case AdornmentPlacement.ControlEnd:\n return \"controlEnd\";\n case AdornmentPlacement.ControlStart:\n return \"controlStart\";\n case AdornmentPlacement.LabelStart:\n return \"labelStart\";\n case AdornmentPlacement.LabelEnd:\n return \"labelEnd\";\n }\n}\n\nexport function appendMarkupAt(\n pos: AdornmentPlacement,\n markup: ReactNode,\n): (layout: RenderedLayout) => void {\n return appendMarkup(layoutKeyForPlacement(pos), markup);\n}\n\nexport function wrapMarkupAt(\n pos: AdornmentPlacement,\n wrap: (ex: ReactNode) => ReactNode,\n): (layout: RenderedLayout) => void {\n return wrapMarkup(layoutKeyForPlacement(pos), wrap);\n}\n\nexport function renderLayoutParts(\n props: ControlLayoutProps,\n renderer: FormRenderer,\n): RenderedLayout {\n const { className, children, style, errorControl, label, adornments } =\n props.processLayout?.(props) ?? props;\n const layout: RenderedLayout = {\n children,\n errorControl,\n style,\n className: cc(className),\n };\n (adornments ?? [])\n .sort((a, b) => a.priority - b.priority)\n .forEach((x) => x.apply(layout));\n layout.label =\n label && !label.hide\n ? renderer.renderLabel(label, layout.labelStart, layout.labelEnd)\n : undefined;\n return layout;\n}\n\nexport function controlTitle(\n title: string | undefined | null,\n field: SchemaField,\n) {\n return title ? title : fieldDisplayName(field);\n}\n\nfunction lookupControl(\n base: Control<any> | undefined,\n path: (string | number)[],\n): Control<any> | undefined {\n let index = 0;\n while (index < path.length && base) {\n const childId = path[index];\n const c = base.current;\n if (typeof childId === \"string\") {\n const next = c.fields?.[childId];\n if (!next) trackControlChange(base, ControlChange.Structure);\n base = next;\n } else {\n base = c.elements?.[childId];\n }\n index++;\n }\n return base;\n}\n","import React, {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Control, Fcheckbox, formControlProps } from \"@react-typed-forms/core\";\nimport {\n ActionRendererProps,\n AdornmentProps,\n AdornmentRenderer,\n appendMarkupAt,\n ArrayRendererProps,\n ControlLayoutProps,\n DataRendererProps,\n DisplayRendererProps,\n FormRenderer,\n GroupRendererProps,\n LabelRendererProps,\n LabelType,\n RenderedControl,\n RenderedLayout,\n renderLayoutParts,\n VisibilityRendererProps,\n} from \"./controlRender\";\nimport {\n AdornmentPlacement,\n ControlAdornment,\n ControlAdornmentType,\n ControlDefinitionType,\n DataRenderType,\n DisplayDataType,\n FieldOption,\n FieldType,\n FlexRenderer,\n GridRenderer,\n HtmlDisplay,\n IconAdornment,\n IconDisplay,\n isDisplayOnlyRenderer,\n isFlexRenderer,\n isGridRenderer,\n SchemaField,\n SchemaInterface,\n TextDisplay,\n} from \"./types\";\nimport { getOverrideClass, hasOptions, rendererClass } from \"./util\";\n\nexport interface DefaultRenderers {\n data: DataRendererRegistration;\n label: LabelRendererRegistration;\n action: ActionRendererRegistration;\n array: ArrayRendererRegistration;\n group: GroupRendererRegistration;\n display: DisplayRendererRegistration;\n adornment: AdornmentRendererRegistration;\n renderLayout: LayoutRendererRegistration;\n visibility: VisibilityRendererRegistration;\n}\n\nexport interface LayoutRendererRegistration {\n type: \"layout\";\n match?: (props: ControlLayoutProps) => boolean;\n render: (\n props: ControlLayoutProps,\n renderers: FormRenderer,\n ) => RenderedControl;\n}\nexport interface DataRendererRegistration {\n type: \"data\";\n schemaType?: string | string[];\n renderType?: string | string[];\n options?: boolean;\n collection?: boolean;\n match?: (props: DataRendererProps) => boolean;\n render: (\n props: DataRendererProps,\n renderers: FormRenderer,\n ) => ReactNode | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface LabelRendererRegistration {\n type: \"label\";\n labelType?: LabelType | LabelType[];\n render: (\n labelProps: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface ActionRendererRegistration {\n type: \"action\";\n actionType?: string | string[];\n render: (props: ActionRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface ArrayRendererRegistration {\n type: \"array\";\n render: (props: ArrayRendererProps, renderers: FormRenderer) => ReactElement;\n}\n\nexport interface GroupRendererRegistration {\n type: \"group\";\n renderType?: string | string[];\n render: (\n props: GroupRendererProps,\n renderers: FormRenderer,\n ) => ReactElement | ((layout: ControlLayoutProps) => ControlLayoutProps);\n}\n\nexport interface DisplayRendererRegistration {\n type: \"display\";\n renderType?: string | string[];\n render: (\n props: DisplayRendererProps,\n renderers: FormRenderer,\n ) => ReactElement;\n}\n\nexport interface AdornmentRendererRegistration {\n type: \"adornment\";\n adornmentType?: string | string[];\n render: (props: AdornmentProps) => AdornmentRenderer;\n}\n\nexport interface VisibilityRendererRegistration {\n type: \"visibility\";\n render: (props: VisibilityRendererProps) => ReactNode;\n}\n\nexport type RendererRegistration =\n | DataRendererRegistration\n | GroupRendererRegistration\n | DisplayRendererRegistration\n | ActionRendererRegistration\n | LabelRendererRegistration\n | ArrayRendererRegistration\n | AdornmentRendererRegistration\n | LayoutRendererRegistration\n | VisibilityRendererRegistration;\n\nexport function createFormRenderer(\n customRenderers: RendererRegistration[] = [],\n defaultRenderers: DefaultRenderers = createClassStyledRenderers(),\n): FormRenderer {\n const dataRegistrations = customRenderers.filter(isDataRegistration);\n const groupRegistrations = customRenderers.filter(isGroupRegistration);\n const adornmentRegistrations = customRenderers.filter(\n isAdornmentRegistration,\n );\n const displayRegistrations = customRenderers.filter(isDisplayRegistration);\n const labelRenderers = customRenderers.filter(isLabelRegistration);\n const arrayRenderers = customRenderers.filter(isArrayRegistration);\n const actionRenderers = customRenderers.filter(isActionRegistration);\n const layoutRenderers = customRenderers.filter(isLayoutRegistration);\n const visibilityRenderer =\n customRenderers.find(isVisibilityRegistration) ??\n defaultRenderers.visibility;\n\n const formRenderers: FormRenderer = {\n renderAction,\n renderData,\n renderGroup,\n renderDisplay,\n renderLabel,\n renderArray,\n renderAdornment,\n renderLayout,\n renderVisibility: visibilityRenderer.render,\n };\n\n function renderLayout(props: ControlLayoutProps) {\n const renderer =\n layoutRenderers.find((x) => !x.match || x.match(props)) ??\n defaultRenderers.renderLayout;\n return renderer.render(props, formRenderers);\n }\n\n function renderAdornment(props: AdornmentProps): AdornmentRenderer {\n const renderer =\n adornmentRegistrations.find((x) =>\n isOneOf(x.adornmentType, props.adornment.type),\n ) ?? defaultRenderers.adornment;\n return renderer.render(props);\n }\n\n function renderArray(props: ArrayRendererProps) {\n return (arrayRenderers[0] ?? defaultRenderers.array).render(\n props,\n formRenderers,\n );\n }\n\n function renderLabel(\n props: LabelRendererProps,\n labelStart: ReactNode,\n labelEnd: ReactNode,\n ) {\n const renderer =\n labelRenderers.find((x) => isOneOf(x.labelType, props.type)) ??\n defaultRenderers.label;\n return renderer.render(props, labelStart, labelEnd, formRenderers);\n }\n\n function renderData(\n props: DataRendererProps,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const {\n renderOptions: { type: renderType },\n field,\n } = props;\n\n const options = hasOptions(props);\n const renderer =\n dataRegistrations.find(\n (x) =>\n (x.collection ?? false) === (field.collection ?? false) &&\n (x.options ?? false) === options &&\n isOneOf(x.schemaType, field.type) &&\n isOneOf(x.renderType, renderType) &&\n (!x.match || x.match(props)),\n ) ?? defaultRenderers.data;\n\n const result = renderer.render(props, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderGroup(\n props: GroupRendererProps,\n ): (layout: ControlLayoutProps) => ControlLayoutProps {\n const renderType = props.renderOptions.type;\n const renderer =\n groupRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.group;\n const result = renderer.render(props, formRenderers);\n if (typeof result === \"function\") return result;\n return (l) => ({ ...l, children: result });\n }\n\n function renderAction(props: ActionRendererProps) {\n const renderer =\n actionRenderers.find((x) => isOneOf(x.actionType, props.actionId)) ??\n defaultRenderers.action;\n return renderer.render(props, formRenderers);\n }\n\n function renderDisplay(props: DisplayRendererProps) {\n const renderType = props.data.type;\n const renderer =\n displayRegistrations.find((x) => isOneOf(x.renderType, renderType)) ??\n defaultRenderers.display;\n return renderer.render(props, formRenderers);\n }\n\n return formRenderers;\n}\n\ninterface DefaultLabelRendererOptions {\n className?: string;\n groupLabelClass?: string;\n controlLabelClass?: string;\n requiredElement?: ReactNode;\n}\n\ninterface DefaultActionRendererOptions {\n className?: string;\n}\n\nexport function createDefaultActionRenderer(\n options: DefaultActionRendererOptions = {},\n): ActionRendererRegistration {\n function render({ onClick, actionText }: ActionRendererProps) {\n return (\n <button className={options.className} onClick={onClick}>\n {actionText}\n </button>\n );\n }\n return { render, type: \"action\" };\n}\nexport function createDefaultLabelRenderer(\n options: DefaultLabelRendererOptions = { requiredElement: <span> *</span> },\n): LabelRendererRegistration {\n const { className, groupLabelClass, controlLabelClass, requiredElement } =\n options;\n return {\n render: (props, labelStart, labelEnd) => (\n <>\n {labelStart}\n <label\n htmlFor={props.forId}\n className={rendererClass(\n props.className,\n clsx(\n className,\n props.type === LabelType.Group && groupLabelClass,\n props.type === LabelType.Control && controlLabelClass,\n ),\n )}\n >\n {props.label}\n {props.required && requiredElement}\n </label>\n {labelEnd}\n </>\n ),\n type: \"label\",\n };\n}\n\ninterface DefaultArrayRendererOptions {\n className?: string;\n removableClass?: string;\n childClass?: string;\n removableChildClass?: string;\n removeActionClass?: string;\n addActionClass?: string;\n}\n\nexport function createDefaultArrayRenderer(\n options?: DefaultArrayRendererOptions,\n): ArrayRendererRegistration {\n const {\n className,\n removableClass,\n childClass,\n removableChildClass,\n removeActionClass,\n addActionClass,\n } = options ?? {};\n function render(\n {\n elementCount,\n renderElement,\n addAction,\n removeAction,\n elementKey,\n required,\n }: ArrayRendererProps,\n { renderAction }: FormRenderer,\n ) {\n const showRemove = !required || elementCount > 1;\n return (\n <div>\n <div className={clsx(className, removeAction && removableClass)}>\n {Array.from({ length: elementCount }, (_, x) =>\n removeAction ? (\n <Fragment key={elementKey(x)}>\n <div className={clsx(childClass, removableChildClass)}>\n {renderElement(x)}\n </div>\n <div className={removeActionClass}>\n {showRemove && renderAction(removeAction(x))}\n </div>\n </Fragment>\n ) : (\n <div key={elementKey(x)} className={childClass}>\n {renderElement(x)}\n </div>\n ),\n )}\n </div>\n {addAction && (\n <div className={addActionClass}>{renderAction(addAction)}</div>\n )}\n </div>\n );\n }\n return { render, type: \"array\" };\n}\n\ninterface StyleProps {\n className?: string;\n style?: CSSProperties;\n}\n\ninterface DefaultGroupRendererOptions {\n className?: string;\n standardClassName?: string;\n gridStyles?: (columns: GridRenderer) => StyleProps;\n gridClassName?: string;\n defaultGridColumns?: number;\n flexClassName?: string;\n defaultFlexGap?: string;\n}\n\nexport function createDefaultGroupRenderer(\n options?: DefaultGroupRendererOptions,\n): GroupRendererRegistration {\n const {\n className,\n gridStyles = defaultGridStyles,\n defaultGridColumns = 2,\n gridClassName,\n standardClassName,\n flexClassName,\n defaultFlexGap,\n } = options ?? {};\n\n function defaultGridStyles({\n columns = defaultGridColumns,\n }: GridRenderer): StyleProps {\n return {\n className: gridClassName,\n style: {\n display: \"grid\",\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n },\n };\n }\n\n function flexStyles(options: FlexRenderer): StyleProps {\n return {\n className: flexClassName,\n style: {\n display: \"flex\",\n gap: options.gap ? options.gap : defaultFlexGap,\n flexDirection: options.direction\n ? (options.direction as any)\n : undefined,\n },\n };\n }\n\n function render(props: GroupRendererProps) {\n const { renderChild, renderOptions, children } = props;\n\n const { style, className: gcn } = isGridRenderer(renderOptions)\n ? gridStyles(renderOptions)\n : isFlexRenderer(renderOptions)\n ? flexStyles(renderOptions)\n : ({ className: standardClassName } as StyleProps);\n\n return (cp: ControlLayoutProps) => {\n return {\n ...cp,\n children: (\n <div\n className={rendererClass(props.className, clsx(className, gcn))}\n style={style}\n >\n {children?.map((c, i) => renderChild(i, i))}\n </div>\n ),\n };\n };\n }\n return { type: \"group\", render };\n}\n\nexport interface DefaultDisplayRendererOptions {\n textClassName?: string;\n htmlClassName?: string;\n}\nexport function createDefaultDisplayRenderer(\n options: DefaultDisplayRendererOptions = {},\n): DisplayRendererRegistration {\n return {\n render: (props) => <DefaultDisplay {...options} {...props} />,\n type: \"display\",\n };\n}\n\nexport function DefaultDisplay({\n data,\n display,\n className,\n style,\n ...options\n}: DefaultDisplayRendererOptions & DisplayRendererProps) {\n switch (data.type) {\n case DisplayDataType.Icon:\n return (\n <i\n style={style}\n className={clsx(\n getOverrideClass(className),\n display ? display.value : (data as IconDisplay).iconClass,\n )}\n />\n );\n case DisplayDataType.Text:\n return (\n <div\n style={style}\n className={rendererClass(className, options.textClassName)}\n >\n {display ? display.value : (data as TextDisplay).text}\n </div>\n );\n case DisplayDataType.Html:\n return (\n <div\n style={style}\n className={rendererClass(className, options.htmlClassName)}\n dangerouslySetInnerHTML={{\n __html: display ? display.value ?? \"\" : (data as HtmlDisplay).html,\n }}\n />\n );\n default:\n return <h1>Unknown display type: {data.type}</h1>;\n }\n}\n\nexport const DefaultBoolOptions: FieldOption[] = [\n { name: \"Yes\", value: true },\n { name: \"No\", value: false },\n];\ninterface DefaultDataRendererOptions {\n inputClass?: string;\n displayOnlyClass?: string;\n selectOptions?: SelectRendererOptions;\n booleanOptions?: FieldOption[];\n optionRenderer?: DataRendererRegistration;\n}\n\nexport function createDefaultDataRenderer(\n options: DefaultDataRendererOptions = {},\n): DataRendererRegistration {\n const selectRenderer = createSelectRenderer(options.selectOptions ?? {});\n const { inputClass, booleanOptions, optionRenderer, displayOnlyClass } = {\n optionRenderer: selectRenderer,\n booleanOptions: DefaultBoolOptions,\n ...options,\n };\n return createDataRenderer((props, renderers) => {\n const fieldType = props.field.type;\n if (props.toArrayProps) {\n return (p) => ({\n ...p,\n children: renderers.renderArray(props.toArrayProps!()),\n });\n }\n if (fieldType === FieldType.Compound) {\n return renderers.renderGroup({\n style: props.style,\n className: props.className,\n children: props.children,\n renderOptions: { type: \"Standard\", hideTitle: true },\n renderChild: props.renderChild,\n });\n }\n const renderOptions = props.renderOptions;\n let renderType = renderOptions.type;\n if (fieldType == FieldType.Any) return <>No control for Any</>;\n if (isDisplayOnlyRenderer(renderOptions))\n return (p) => ({\n ...p,\n className: displayOnlyClass,\n children: (\n <DefaultDisplayOnly\n field={props.field}\n schemaInterface={props.dataContext.schemaInterface}\n control={props.control}\n className={props.className}\n style={props.style}\n emptyText={renderOptions.emptyText}\n />\n ),\n });\n const isBool = fieldType === FieldType.Bool;\n if (booleanOptions != null && isBool && props.options == null) {\n return renderers.renderData({ ...props, options: booleanOptions });\n }\n if (renderType === DataRenderType.Standard && hasOptions(props)) {\n return optionRenderer.render(props, renderers);\n }\n switch (renderType) {\n case DataRenderType.Dropdown:\n return selectRenderer.render(props, renderers);\n }\n return renderType === DataRenderType.Checkbox ? (\n <Fcheckbox\n style={props.style}\n className={props.className}\n control={props.control}\n />\n ) : (\n <ControlInput\n className={rendererClass(props.className, inputClass)}\n style={props.style}\n id={props.id}\n readOnly={props.readonly}\n control={props.control}\n convert={createInputConversion(props.field.type)}\n />\n );\n });\n}\n\nexport function DefaultDisplayOnly({\n control,\n className,\n emptyText,\n schemaInterface,\n field,\n style,\n}: {\n control: Control<any>;\n field: SchemaField;\n schemaInterface: SchemaInterface;\n className?: string;\n style?: React.CSSProperties;\n emptyText?: string | null;\n}) {\n const v = control.value;\n const text =\n (schemaInterface.isEmptyValue(field, v)\n ? emptyText\n : schemaInterface.textValue(field, v)) ?? \"\";\n return (\n <div style={style} className={rendererClass(className)}>\n {text}\n </div>\n );\n}\n\nexport function ControlInput({\n control,\n convert,\n ...props\n}: React.InputHTMLAttributes<HTMLInputElement> & {\n control: Control<any>;\n convert: InputConversion;\n}) {\n const { errorText, value, onChange, ...inputProps } =\n formControlProps(control);\n return (\n <input\n {...inputProps}\n type={convert[0]}\n value={value == null ? \"\" : convert[2](value)}\n onChange={(e) => {\n control.value = convert[1](e.target.value);\n }}\n {...props}\n />\n );\n}\n\nexport interface DefaultAdornmentRendererOptions {}\n\nexport function createDefaultAdornmentRenderer(\n options: DefaultAdornmentRendererOptions = {},\n): AdornmentRendererRegistration {\n return {\n type: \"adornment\",\n render: ({ adornment }) => ({\n apply: (rl) => {\n if (isIconAdornment(adornment)) {\n return appendMarkupAt(\n adornment.placement ?? AdornmentPlacement.ControlStart,\n <i className={adornment.iconClass} />,\n )(rl);\n }\n },\n priority: 0,\n adornment,\n }),\n };\n}\n\nexport interface DefaultLayoutRendererOptions {\n className?: string;\n errorClass?: string;\n}\n\nexport interface DefaultRendererOptions {\n data?: DefaultDataRendererOptions;\n display?: DefaultDisplayRendererOptions;\n action?: DefaultActionRendererOptions;\n array?: DefaultArrayRendererOptions;\n group?: DefaultGroupRendererOptions;\n label?: DefaultLabelRendererOptions;\n adornment?: DefaultAdornmentRendererOptions;\n layout?: DefaultLayoutRendererOptions;\n}\n\nexport function createDefaultRenderers(\n options: DefaultRendererOptions = {},\n): DefaultRenderers {\n return {\n data: createDefaultDataRenderer(options.data),\n display: createDefaultDisplayRenderer(options.display),\n action: createDefaultActionRenderer(options.action),\n array: createDefaultArrayRenderer(options.array),\n group: createDefaultGroupRenderer(options.group),\n label: createDefaultLabelRenderer(options.label),\n adornment: createDefaultAdornmentRenderer(options.adornment),\n renderLayout: createDefaultLayoutRenderer(options.layout),\n visibility: createDefaultVisibilityRenderer(),\n };\n}\n\nfunction createDefaultLayoutRenderer(\n options: DefaultLayoutRendererOptions = {},\n) {\n return createLayoutRenderer((props, renderers) => {\n const layout = renderLayoutParts(\n {\n ...props,\n className: rendererClass(props.className, options.className),\n },\n renderers,\n );\n return {\n children: <DefaultLayout layout={layout} {...options} />,\n className: layout.className,\n style: layout.style,\n divRef: (e) =>\n e && props.errorControl\n ? (props.errorControl.meta.scrollElement = e)\n : undefined,\n };\n });\n}\n\nfunction createClassStyledRenderers() {\n return createDefaultRenderers({\n layout: { className: \"control\" },\n group: { className: \"group\" },\n array: { className: \"control-array\" },\n action: { className: \"action\" },\n data: { inputClass: \"data\" },\n display: { htmlClassName: \"html\", textClassName: \"text\" },\n });\n}\n\nfunction isAdornmentRegistration(\n x: RendererRegistration,\n): x is AdornmentRendererRegistration {\n return x.type === \"adornment\";\n}\n\nfunction isDataRegistration(\n x: RendererRegistration,\n): x is DataRendererRegistration {\n return x.type === \"data\";\n}\n\nfunction isGroupRegistration(\n x: RendererRegistration,\n): x is GroupRendererRegistration {\n return x.type === \"group\";\n}\n\nfunction isLabelRegistration(\n x: RendererRegistration,\n): x is LabelRendererRegistration {\n return x.type === \"label\";\n}\n\nfunction isLayoutRegistration(\n x: RendererRegistration,\n): x is LayoutRendererRegistration {\n return x.type === \"layout\";\n}\n\nfunction isVisibilityRegistration(\n x: RendererRegistration,\n): x is VisibilityRendererRegistration {\n return x.type === \"visibility\";\n}\n\nfunction isActionRegistration(\n x: RendererRegistration,\n): x is ActionRendererRegistration {\n return x.type === \"action\";\n}\n\nfunction isDisplayRegistration(\n x: RendererRegistration,\n): x is DisplayRendererRegistration {\n return x.type === \"display\";\n}\n\nfunction isArrayRegistration(\n x: RendererRegistration,\n): x is ArrayRendererRegistration {\n return x.type === \"array\";\n}\nfunction isOneOf<A>(x: A | A[] | undefined, v: A) {\n return x == null ? true : Array.isArray(x) ? x.includes(v) : v === x;\n}\n\nexport function isIconAdornment(a: ControlAdornment): a is IconAdornment {\n return a.type === ControlAdornmentType.Icon;\n}\n\nexport function createLayoutRenderer(\n render: LayoutRendererRegistration[\"render\"],\n options?: Partial<LayoutRendererRegistration>,\n): LayoutRendererRegistration {\n return { type: \"layout\", render, ...options };\n}\n\nexport function createArrayRenderer(\n render: ArrayRendererRegistration[\"render\"],\n options?: Partial<ArrayRendererRegistration>,\n): ArrayRendererRegistration {\n return { type: \"array\", render, ...options };\n}\n\nexport function createDataRenderer(\n render: DataRendererRegistration[\"render\"],\n options?: Partial<DataRendererRegistration>,\n): DataRendererRegistration {\n return { type: \"data\", render, ...options };\n}\n\nexport function createLabelRenderer(\n render: LabelRendererRegistration[\"render\"],\n options?: Omit<LabelRendererRegistration, \"type\">,\n): LabelRendererRegistration {\n return { type: \"label\", render, ...options };\n}\n\nexport function createVisibilityRenderer(\n render: VisibilityRendererRegistration[\"render\"],\n options?: Partial<VisibilityRendererRegistration>,\n): VisibilityRendererRegistration {\n return { type: \"visibility\", render, ...options };\n}\n\nexport function createAdornmentRenderer(\n render: (props: AdornmentProps) => AdornmentRenderer,\n options?: Partial<AdornmentRendererRegistration>,\n): AdornmentRendererRegistration {\n return { type: \"adornment\", ...options, render };\n}\n\nexport interface SelectRendererOptions {\n className?: string;\n emptyText?: string;\n requiredText?: string;\n}\n\nexport function createSelectRenderer(options: SelectRendererOptions = {}) {\n return createDataRenderer(\n (props, asArray) => (\n <SelectDataRenderer\n className={rendererClass(props.className, options.className)}\n state={props.control}\n id={props.id}\n options={props.options!}\n required={props.required}\n emptyText={options.emptyText}\n requiredText={options.requiredText}\n convert={createSelectConversion(props.field.type)}\n />\n ),\n {\n options: true,\n },\n );\n}\n\ntype SelectConversion = (a: any) => string | number;\n\ninterface SelectDataRendererProps {\n id?: string;\n className?: string;\n options: {\n name: string;\n value: any;\n disabled?: boolean;\n }[];\n emptyText?: string;\n requiredText?: string;\n required: boolean;\n state: Control<any>;\n convert: SelectConversion;\n}\n\nexport function SelectDataRenderer({\n state,\n options,\n className,\n convert,\n required,\n emptyText = \"N/A\",\n requiredText = \"<please select>\",\n ...props\n}: SelectDataRendererProps) {\n const { value, disabled } = state;\n const [showEmpty] = useState(!required || value == null);\n const optionStringMap = useMemo(\n () => Object.fromEntries(options.map((x) => [convert(x.value), x.value])),\n [options],\n );\n return (\n <select\n {...props}\n className={className}\n onChange={(v) => (state.value = optionStringMap[v.target.value])}\n value={convert(value)}\n disabled={disabled}\n >\n {showEmpty && (\n <option value=\"\">{required ? requiredText : emptyText}</option>\n )}\n {options.map((x, i) => (\n <option key={i} value={convert(x.value)} disabled={x.disabled}>\n {x.name}\n </option>\n ))}\n </select>\n );\n}\n\nexport function createSelectConversion(ft: string): SelectConversion {\n switch (ft) {\n case FieldType.String:\n case FieldType.Int:\n case FieldType.Double:\n return (a) => a;\n default:\n return (a) => a?.toString() ?? \"\";\n }\n}\n\ntype InputConversion = [string, (s: any) => any, (a: any) => string | number];\n\nexport function createInputConversion(ft: string): InputConversion {\n switch (ft) {\n case FieldType.String:\n return [\"text\", (a) => a, (a) => a];\n case FieldType.Bool:\n return [\"text\", (a) => a === \"true\", (a) => a?.toString() ?? \"\"];\n case FieldType.Int:\n return [\n \"number\",\n (a) => (a !== \"\" ? parseInt(a) : null),\n (a) => (a == null ? \"\" : a),\n ];\n case FieldType.Date:\n return [\"date\", (a) => a, (a) => a];\n case FieldType.Double:\n return [\"number\", (a) => parseFloat(a), (a) => a];\n default:\n return [\"text\", (a) => a, (a) => a];\n }\n}\n\nexport function createDefaultVisibilityRenderer() {\n return createVisibilityRenderer((props) => <DefaultVisibility {...props} />);\n}\n\nexport function DefaultVisibility({\n visibility,\n children,\n className,\n style,\n divRef,\n}: VisibilityRendererProps) {\n const v = visibility.value;\n useEffect(() => {\n if (v) {\n visibility.setValue((ex) => ({ visible: v.visible, showing: v.visible }));\n }\n }, [v?.visible]);\n return v?.visible ? (\n <div className={clsx(className)} style={style} ref={divRef}>\n {children}\n </div>\n ) : (\n <></>\n );\n}\n\nexport function DefaultLayout({\n errorClass,\n layout: { controlEnd, controlStart, label, children, errorControl },\n}: DefaultLayoutRendererOptions & {\n layout: RenderedLayout;\n}) {\n const ec = errorControl;\n const errorText = ec && ec.touched ? ec.error : undefined;\n return (\n <>\n {label}\n {controlStart}\n {children}\n {errorText && <div className={errorClass}>{errorText}</div>}\n {controlEnd}\n </>\n );\n}\n","import React from \"react\";\nimport { DefaultRendererOptions } from \"./renderers\";\n\nexport const defaultTailwindTheme = {\n label: {\n groupLabelClass: \"font-bold\",\n requiredElement: <span className=\"text-red-500\"> *</span>,\n },\n array: {\n removableClass: \"grid grid-cols-[1fr_auto] items-center gap-x-2\",\n childClass: \"grow my-2\",\n addActionClass: \"my-2\",\n },\n group: {\n standardClassName: \"flex flex-col gap-4\",\n gridClassName: \"gap-x-2 gap-y-4\",\n flexClassName: \"gap-2\",\n },\n action: {\n className: \"bg-primary rounded-lg p-3 text-white\",\n },\n layout: {\n className: \"flex flex-col\",\n errorClass: \"text-sm text-danger-500\",\n },\n data: {\n displayOnlyClass: \"flex flex-row items-center gap-2\",\n },\n} satisfies DefaultRendererOptions;\n"],"names":["FieldType","ControlDefinitionType","DynamicPropertyType","ExpressionType","AdornmentPlacement","ControlAdornmentType","DataRenderType","SyncTextType","GroupRenderType","DisplayDataType","ValidatorType","DateComparison","isDataControlDefinition","x","type","Data","isGroupControlsDefinition","Group","isDisplayControlsDefinition","Display","isActionControlsDefinition","Action","visitControlDefinition","visitor","defaultValue","action","data","display","group","isGridRenderer","options","Grid","isFlexRenderer","Flex","isDisplayOnlyRenderer","DisplayOnly","buildSchema","def","Object","entries","map","stringField","displayName","makeScalarField","_extends","String","stringOptionsField","slice","call","arguments","withScalarOptions","v","n","defaultScalarField","makeCompoundField","defaultCompoundField","intField","Int","boolField","Bool","compoundField","fields","other","field","children","collection","Compound","mergeField","mergeInto","existing","find","onlyForTypes","mergeTypes","concat","f","s","extras","filter","includes","length","applyDefaultValues","defaultValueForFields","applyValue","isCompoundField","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","required","treeChildren","fromEntries","sf","undefined","isRequired","childValue","notNullable","elementValueForField","findScalarField","findField","findCompoundField","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","tags","fieldDisplayName","_field$displayName","hasOptions","o","_o$options$length","_o$options","defaultControlForField","title","_sf$tags","htmlEditor","renderOptions","HtmlEditor","Standard","findReferencedControl","control","_control$children","findReferencedControlInArray","controls","_iterator","_createForOfIteratorHelperLoose","_step","done","value","ref","addMissingControls","changes","flatMap","changedCompounds","_cf$children","ex","cf","useUpdatedRef","a","r","useRef","current","isControlReadonly","readonly","getDisplayOnlyOptions","d","getTypeField","context","typeSchemaField","isTypeField","lookupChildControl","visitControlDataArray","cb","_iterator2","_step2","visitControlData","definition","ctx","processData","fieldName","fieldData","thisPath","path","lookupControl","result","cIndex","_iterator3","_control$elements","elements","_step3","elemResult","cfResult","child","childPath","cleanDataForSchema","typeField","typeValue","cleanableFields","_x$onlyForTypes$lengt","_x$onlyForTypes","_x$onlyForTypes2","canBeNull","childFields","Array","isArray","cv","getAllReferencedClasses","collectExtra","_c$children","_collectExtra","childClasses","tc","clsx","styleClass","layoutClass","labelClass","getOverrideClass","jsonPathString","jsonPath","customIndex","i","_customIndex","findChildDefinition","base","className","startsWith","substring","rendererClass","controlClass","globalClass","oc","dataControl","textDisplayControl","text","displayData","Text","htmlDisplayControl","html","Html","dynamicDefaultValue","expr","DefaultValue","dynamicReadonly","Readonly","dynamicVisibility","Visible","dynamicDisabled","Disabled","fieldEqExpr","DataMatch","jsonataExpr","expression","Jsonata","groupedControl","groupOptions","hideTitle","compoundControl","createAction","actionId","onClick","actionText","emptyGroupDefinition","useControlDefinitionForSchema","useMemo","_definition$children","addCustomDataRenderOptions","controlFields","customRenderOptions","addRenderOptions","roField","withTypes","addRenderOptionType","reduce","renderOptionFields","ro","af","_typeField$options","_ref","name","useCalculatedControl","calculate","useControl","useControlEffect","cc","trackedStructure","tracker","ControlChange","Structure","Value","Proxy","get","target","p","receiver","Reflect","nc","useEvalVisibilityHook","useEvalExpressionHook","schemaField","useEvalDynamicHook","useCallback","_dynamicVisibility","_r$current","useComputed","matchesType","hideDisplayOnly","schemaInterface","useEvalReadonlyHook","useEvalStyleHook","property","dynamicStyle","useEvalAllowedOptionsHook","dynamicAllowed","AllowedOptions","useEvalDisabledHook","useEvalDisplayHook","dynamicDisplay","useEvalDefaultValueHook","dynamicValue","_dynamicValue","_r$current2","calcDefault","dcv","useDataExpression","fvExpr","refField","otherField","useDataMatchExpression","fv","defaultEvalHooks","useJsonataExpression","defaultUseEvalExpressionHook","makeEvalExpressionHook","_definition$dynamic","dynamic","types","_lookupChildControl","displayOptions","emptyText","isEmptyValue","jExpr","dataContext","bindings","pathString","fullExpr","compiledExpr","jsonata","e","console","error","listenerRef","_useRefState","useRefState","makeChangeTracker","l","addAfterChangesCallback","useEffect","apply","_ref$current","collect","updateSubscriptions","_temp","_finallyRethrows","bindingData","collectChanges","Promise","resolve","evaluate","then","_compiledExpr$evaluat","_wasThrown","_result","reject","useEvalLabelText","useExpr","Label","useValidationHook","_definition$validator","_definition$validator2","validatorTypes","validators","hidden","groupContext","_dd$validators","dd","useValueChangeEffect","setError","useValidator","useJsonataValidator","Date","useDateValidator","errorMsg","msg","dv","comparisonDate","fixedDate","parse","nowDate","UTC","getFullYear","getMonth","getDate","daysFromCurrent","selDate","notAfter","comparison","NotAfter","toDateString","defaultSchemaInterface","defaultIsEmpty","textValue","defaultTextValue","DateTime","toLocaleDateString","toString","AppendAdornmentPriority","WrapAdornmentPriority","LabelType","useControlRenderer","renderer","_options$useDataHook","_options$schemaInterf","_options$useEvalExpre","dataProps","useDataHook","defaultDataProps","lookupSchemaField","useDefaultValue","useIsVisible","useIsReadonly","useIsDisabled","useAllowedOptions","useLabelText","useCustomStyle","Style","useLayoutStyle","LayoutStyle","useDynamicDisplay","useValidation","Component","rootControl","_ref$parentPath","parentPath","stopTracking","useComponentTracking","_definition$adornment","_definition$adornment2","parentDataContext","readonlyControl","disabledControl","visibleControl","displayControl","customStyle","layoutStyle","labelText","visible","visibility","showing","setValue","allowedOptions","defaultValueControl","_getControlData","getControlData","parentControl","controlDataContext","dontClearHidden","isNull","_ref2","vc","cd","dontClear","parentNull","clearHidden","myOptions","_visibility$fields","disabled","newControl","childOptions","React","createElement","Fragment","adornments","renderAdornment","adornment","labelAndChildren","renderControlLayout","renderChild","k","ControlRenderer","key","createDataProps","formOptions","style","renderedControl","renderLayout","renderVisibility","parentContext","_parentControl$fields","childControl","_ref3","_effect","_useComponentTracking","Render","groupProps","_definition$groupOpti","_ref4","_field$options$length","_field$options","_allowedOptions$value","_definition$children2","_definition$renderOpt","elementRenderer","props","_objectWithoutPropertiesLoose","_excluded","fieldOptions","allowed","id","uniqueId","toArrayProps","defaultArrayProps","arrayControl","renderElement","_arrayControl$element","noun","elems","elementCount","addAction","addElement","elementKey","removeAction","removeElement","_ref5","childRenderer","dataOptions","renderData","_labelText$value","_c$groupOptions2","_c$groupOptions","processLayout","renderGroup","label","hide","_ref6","_labelText$value2","renderAction","_c$displayData","renderDisplay","elemIndex","_labelText$value3","ei","renderLayoutParts","controlTitle","Control","forId","errorControl","appendMarkup","markup","layout","wrapMarkup","wrap","layoutKeyForPlacement","pos","ControlEnd","ControlStart","LabelStart","LabelEnd","appendMarkupAt","wrapMarkupAt","_props$processLayout","_ref7","sort","b","priority","renderLabel","labelStart","labelEnd","createFormRenderer","customRenderers","defaultRenderers","_customRenderers$find","createClassStyledRenderers","dataRegistrations","isDataRegistration","groupRegistrations","isGroupRegistration","adornmentRegistrations","isAdornmentRegistration","displayRegistrations","isDisplayRegistration","labelRenderers","isLabelRegistration","arrayRenderers","isArrayRegistration","actionRenderers","isActionRegistration","layoutRenderers","isLayoutRegistration","visibilityRenderer","isVisibilityRegistration","formRenderers","renderArray","render","_layoutRenderers$find","match","_adornmentRegistratio","isOneOf","adornmentType","_arrayRenderers$","array","_labelRenderers$find","labelType","_dataRegistrations$fi","renderType","_x$collection","_field$collection","_x$options","schemaType","_groupRegistrations$f","_actionRenderers$find","actionType","_displayRegistrations","createDefaultActionRenderer","createDefaultLabelRenderer","requiredElement","_options","groupLabelClass","controlLabelClass","htmlFor","createDefaultArrayRenderer","removableClass","childClass","removableChildClass","removeActionClass","addActionClass","showRemove","from","_","createDefaultGroupRenderer","_ref5$gridStyles","gridStyles","defaultGridStyles","_ref5$defaultGridColu","defaultGridColumns","gridClassName","standardClassName","flexClassName","defaultFlexGap","_ref6$columns","columns","gridTemplateColumns","flexStyles","gap","flexDirection","direction","gcn","cp","createDefaultDisplayRenderer","DefaultDisplay","_ref8","_display$value","Icon","iconClass","textClassName","htmlClassName","dangerouslySetInnerHTML","__html","DefaultBoolOptions","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","displayOnlyClass","createDataRenderer","renderers","fieldType","Any","DefaultDisplayOnly","isBool","Dropdown","Checkbox","Fcheckbox","ControlInput","readOnly","convert","createInputConversion","_ref9","_effect2","_ref10","_ref11","_effect3","_excluded2","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded3","createDefaultAdornmentRenderer","_ref12","rl","isIconAdornment","_adornment$placement","placement","createDefaultRenderers","createDefaultLayoutRenderer","createDefaultVisibilityRenderer","createLayoutRenderer","DefaultLayout","divRef","meta","scrollElement","createArrayRenderer","createLabelRenderer","createVisibilityRenderer","createAdornmentRenderer","asArray","SelectDataRenderer","state","requiredText","createSelectConversion","_ref13","_effect4","_ref13$emptyText","_ref13$requiredText","_excluded4","_useState","useState","showEmpty","optionStringMap","ft","Double","_a$toString","_a$toString2","parseInt","parseFloat","DefaultVisibility","_ref14","_effect5","_ref15","_effect6","errorClass","_ref15$layout","controlEnd","controlStart","ec","touched","defaultTailwindTheme"],"mappings":";;;;;;;;;;;AAiBYA,2BAYX;AAZD,CAAA,UAAYA,SAAS,EAAA;AACnBA,EAAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjBA,EAAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACXA,EAAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjBA,EAAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvBA,EAAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjBA,EAAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACfA,EAAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACb,CAAC,EAZWA,iBAAS,KAATA,iBAAS,GAYpB,EAAA,CAAA,CAAA,CAAA;AA4CWC,uCAKX;AALD,CAAA,UAAYA,qBAAqB,EAAA;AAC/BA,EAAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACfA,EAAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EALWA,6BAAqB,KAArBA,6BAAqB,GAKhC,EAAA,CAAA,CAAA,CAAA;AAOWC,qCAUX;AAVD,CAAA,UAAYA,mBAAmB,EAAA;AAC7BA,EAAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7BA,EAAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACfA,EAAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3BA,EAAAA,mBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjCA,EAAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAVWA,2BAAmB,KAAnBA,2BAAmB,GAU9B,EAAA,CAAA,CAAA,CAAA;AAMWC,gCAKX;AALD,CAAA,UAAYA,cAAc,EAAA;AACxBA,EAAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,cAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxBA,EAAAA,cAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACzB,CAAC,EALWA,sBAAc,KAAdA,sBAAc,GAKzB,EAAA,CAAA,CAAA,CAAA;AA2BWC,oCAKX;AALD,CAAA,UAAYA,kBAAkB,EAAA;AAC5BA,EAAAA,kBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7BA,EAAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzBA,EAAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzBA,EAAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EALWA,0BAAkB,KAAlBA,0BAAkB,GAK7B,EAAA,CAAA,CAAA,CAAA;AAEWC,sCAKX;AALD,CAAA,UAAYA,oBAAoB,EAAA;AAC9BA,EAAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvBA,EAAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EALWA,4BAAoB,KAApBA,4BAAoB,GAK/B,EAAA,CAAA,CAAA,CAAA;AAyCWC,gCAaX;AAbD,CAAA,UAAYA,cAAc,EAAA;AACxBA,EAAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACfA,EAAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzBA,EAAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,cAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvBA,EAAAA,cAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/BA,EAAAA,cAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7BA,EAAAA,cAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7BA,EAAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,cAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC7B,CAAC,EAbWA,sBAAc,KAAdA,sBAAc,GAazB,EAAA,CAAA,CAAA,CAAA;AA6CWC,8BAIX;AAJD,CAAA,UAAYA,YAAY,EAAA;AACtBA,EAAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACfA,EAAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACfA,EAAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAJWA,oBAAY,KAAZA,oBAAY,GAIvB,EAAA,CAAA,CAAA,CAAA;AAuBWC,iCAKX;AALD,CAAA,UAAYA,eAAe,EAAA;AACzBA,EAAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC/B,CAAC,EALWA,uBAAe,KAAfA,uBAAe,GAK1B,EAAA,CAAA,CAAA,CAAA;AA+BWC,iCAIX;AAJD,CAAA,UAAYA,eAAe,EAAA;AACzBA,EAAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJWA,uBAAe,KAAfA,uBAAe,GAI1B,EAAA,CAAA,CAAA,CAAA;AAqBWC,+BAGX;AAHD,CAAA,UAAYA,aAAa,EAAA;AACvBA,EAAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAHWA,qBAAa,KAAbA,qBAAa,GAGxB,EAAA,CAAA,CAAA,CAAA;AAUWC,gCAGX;AAHD,CAAA,UAAYA,cAAc,EAAA;AACxBA,EAAAA,cAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvBA,EAAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAHWA,sBAAc,KAAdA,sBAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AASK,SAAUC,uBAAuBA,CACrCC,CAAoB,EAAA;AAEpB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAKb,6BAAqB,CAACc,IAAI,CAAA;AAC9C,CAAA;AAEM,SAAUC,yBAAyBA,CACvCH,CAAoB,EAAA;AAEpB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAKb,6BAAqB,CAACgB,KAAK,CAAA;AAC/C,CAAA;AAEM,SAAUC,2BAA2BA,CACzCL,CAAoB,EAAA;AAEpB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAKb,6BAAqB,CAACkB,OAAO,CAAA;AACjD,CAAA;AAEM,SAAUC,0BAA0BA,CACxCP,CAAoB,EAAA;AAEpB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAKb,6BAAqB,CAACoB,MAAM,CAAA;AAChD,CAAA;SASgBC,sBAAsBA,CACpCT,CAAoB,EACpBU,OAA0B,EAC1BC,YAAyC,EAAA;EAEzC,QAAQX,CAAC,CAACC,IAAI;IACZ,KAAKb,6BAAqB,CAACoB,MAAM;AAC/B,MAAA,OAAOE,OAAO,CAACE,MAAM,CAACZ,CAA4B,CAAC,CAAA;IACrD,KAAKZ,6BAAqB,CAACc,IAAI;AAC7B,MAAA,OAAOQ,OAAO,CAACG,IAAI,CAACb,CAA0B,CAAC,CAAA;IACjD,KAAKZ,6BAAqB,CAACkB,OAAO;AAChC,MAAA,OAAOI,OAAO,CAACI,OAAO,CAACd,CAA6B,CAAC,CAAA;IACvD,KAAKZ,6BAAqB,CAACgB,KAAK;AAC9B,MAAA,OAAOM,OAAO,CAACK,KAAK,CAACf,CAA8B,CAAC,CAAA;AACtD,IAAA;MACE,OAAOW,YAAY,CAACX,CAAC,CAAC,CAAA;AACzB,GAAA;AACH,CAAA;AACM,SAAUgB,cAAcA,CAC5BC,OAA2B,EAAA;AAE3B,EAAA,OAAOA,OAAO,CAAChB,IAAI,KAAKN,uBAAe,CAACuB,IAAI,CAAA;AAC9C,CAAA;AAEM,SAAUC,cAAcA,CAC5BF,OAA2B,EAAA;AAE3B,EAAA,OAAOA,OAAO,CAAChB,IAAI,KAAKN,uBAAe,CAACyB,IAAI,CAAA;AAC9C,CAAA;AAEM,SAAUC,qBAAqBA,CACnCJ,OAAsB,EAAA;AAEtB,EAAA,OAAOA,OAAO,CAAChB,IAAI,KAAKR,sBAAc,CAAC6B,WAAW,CAAA;AACpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1YM,SAAUC,WAAWA,CAAiBC,GAE3C,EAAA;EACC,OAAOC,MAAM,CAACC,OAAO,CAACF,GAAG,CAAC,CAACG,GAAG,CAAC,UAAC3B,CAAC,EAAA;IAAA,OAC9BA,CAAC,CAAC,CAAC,CAAgC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;GAC3C,CAAA,CAAA;AACH,CAAA;AAEgB,SAAA4B,WAAWA,CACzBC,WAAmB,EACnBZ,OAA4C,EAAA;EAE5C,OAAOa,eAAe,CAAAC,QAAA,CAAA;IACpB9B,IAAI,EAAEd,iBAAS,CAAC6C,MAAe;AAC/BH,IAAAA,WAAW,EAAXA,WAAAA;GACGZ,EAAAA,OAAO,CACX,CAAC,CAAA;AACJ,CAAA;SAEgBgB,kBAAkBA,CAChCJ,WAAmB,EACM;AAEzB,EAAA,OAAOC,eAAe,CAAC;IACrB7B,IAAI,EAAEd,iBAAS,CAAC6C,MAAe;AAC/BH,IAAAA,WAAW,EAAXA,WAAW;AACXZ,IAAAA,OAAO,EAAAiB,EAAAA,CAAAA,KAAA,CAAAC,IAAA,CAAAC,SAAA,EAAA,CAAA,CAAA;AACR,GAAA,CAAC,CAAA;AACJ,CAAA;AAEgB,SAAAC,iBAAiBA,CAG/BpB,OAAW,EAAEqB,CAAsB,EAAA;AACnC,EAAA,OAAO,UAACC,CAAC,EAAA;AAAA,IAAA,OAAAR,QAAA,CAAWO,EAAAA,EAAAA,CAAC,CAACC,CAAC,CAAC,EAAKtB,OAAO,CAAA,CAAA;GAAG,CAAA;AACzC,CAAA;AAEM,SAAUa,eAAeA,CAC7Bb,OAAU,EAAA;AAEV,EAAA,OAAO,UAACsB,CAAC,EAAA;IAAA,OAAAR,QAAA,KAAWS,kBAAkB,CAACD,CAAC,EAAEA,CAAC,CAAC,EAAKtB,OAAO,CAAA,CAAA;GAAG,CAAA;AAC7D,CAAA;AAEM,SAAUwB,iBAAiBA,CAC/BxB,OAAU,EAAA;AAIV,EAAA,OAAO,UAACsB,CAAC,EAAA;IAAA,OAAAR,QAAA,CAAWW,EAAAA,EAAAA,oBAAoB,CAACH,CAAC,EAAEA,CAAC,EAAE,KAAK,CAAC,EAAKtB,OAAO,CAAA,CAAA;GAAG,CAAA;AACtE,CAAA;AAEgB,SAAA0B,QAAQA,CACtBd,WAAmB,EACnBZ,OAA4C,EAAA;EAE5C,OAAOa,eAAe,CAAAC,QAAA,CAAA;IACpB9B,IAAI,EAAEd,iBAAS,CAACyD,GAAY;AAC5Bf,IAAAA,WAAW,EAAXA,WAAAA;GACGZ,EAAAA,OAAO,CACX,CAAC,CAAA;AACJ,CAAA;AAEgB,SAAA4B,SAASA,CACvBhB,WAAmB,EACnBZ,OAA4C,EAAA;EAE5C,OAAOa,eAAe,CAAAC,QAAA,CAAA;IACpB9B,IAAI,EAAEd,iBAAS,CAAC2D,IAAa;AAC7BjB,IAAAA,WAAW,EAAXA,WAAAA;GACGZ,EAAAA,OAAO,CACX,CAAC,CAAA;AACJ,CAAA;SAEgB8B,aAAaA,CAG3BlB,WAAmB,EACnBmB,MAAqB,EACrBC,KAAY,EAAA;AAIZ,EAAA,OAAO,UAACC,KAAK,EAAA;IAAA,OAAAnB,QAAA,CAENW,EAAAA,EAAAA,oBAAoB,CAACQ,KAAK,EAAErB,WAAW,EAAE,KAAK,CAAC,EAC/CoB,KAAK,EAAA;AACRE,MAAAA,QAAQ,EAAEH,MAAAA;AAAM,KAAA,CAAA,CAAA;GACT,CAAA;AACb,CAAA;AAEgB,SAAAR,kBAAkBA,CAChCU,KAAa,EACbrB,WAAmB,EAAA;EAInB,OAAO;AACLqB,IAAAA,KAAK,EAALA,KAAK;AACLrB,IAAAA,WAAW,EAAXA,WAAW;IACX5B,IAAI,EAAEd,iBAAS,CAAC6C,MAAAA;GACjB,CAAA;AACH,CAAA;SAEgBU,oBAAoBA,CAClCQ,KAAa,EACbrB,WAAmB,EACnBuB,UAAmB,EAAA;EAInB,OAAO;AACLF,IAAAA,KAAK,EAALA,KAAK;AACLrB,IAAAA,WAAW,EAAXA,WAAW;IACX5B,IAAI,EAAEd,iBAAS,CAACkE,QAAQ;AACxBD,IAAAA,UAAU,EAAVA,UAAU;AACVD,IAAAA,QAAQ,EAAE,EAAA;GACX,CAAA;AACH,CAAA;AAEgB,SAAAG,UAAUA,CACxBJ,KAAkB,EAClBK,SAAwB,EAAA;AAExB,EAAA,IAAMC,QAAQ,GAAGD,SAAS,CAACE,IAAI,CAAC,UAACzD,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,CAACkD,KAAK,KAAKA,KAAK,CAACA,KAAK,CAAA;GAAC,CAAA,CAAA;AAC/D,EAAA,IAAIM,QAAQ,EAAE;AACZ,IAAA,OAAOD,SAAS,CAAC5B,GAAG,CAAC,UAAC3B,CAAC,EAAA;MAAA,OACrBA,CAAC,KAAKwD,QAAQ,GACVxD,CAAC,GAAA+B,QAAA,KAEI/B,CAAC,EAAA;QACJ0D,YAAY,EAAEC,UAAU,CAAC3D,CAAC,CAAC0D,YAAY,EAAER,KAAK,CAACQ,YAAY,CAAA;OAC5D,CAAA,CAAA;KACN,CAAA,CAAA;AACF,GAAA;AACD,EAAA,OAAA,EAAA,CAAAE,MAAA,CAAWL,SAAS,EAAA,CAAEL,KAAK,CAAA,CAAA,CAAA;AAE3B,EAAA,SAASS,UAAUA,CAACE,CAAmB,EAAEC,CAAmB,EAAA;AAC1D,IAAA,IAAI,CAACD,CAAC,EAAE,OAAOC,CAAC,CAAA;AAChB,IAAA,IAAI,CAACA,CAAC,EAAE,OAAOD,CAAC,CAAA;AAChB,IAAA,IAAME,MAAM,GAAGD,CAAC,CAACE,MAAM,CAAC,UAAChE,CAAC,EAAA;AAAA,MAAA,OAAK,CAAC6D,CAAC,CAACI,QAAQ,CAACjE,CAAC,CAAC,CAAA;KAAC,CAAA,CAAA;IAC9C,OAAO+D,MAAM,CAACG,MAAM,GAAAN,EAAAA,CAAAA,MAAA,CAAOC,CAAC,EAAKE,MAAM,CAAA,GAAIF,CAAC,CAAA;AAC9C,GAAA;AACF;;AC/IgB,SAAAM,kBAAkBA,CAChC7B,CAAmC,EACnCU,MAAqB,EAAA;AAErB,EAAA,IAAI,CAACV,CAAC,EAAE,OAAO8B,qBAAqB,CAACpB,MAAM,CAAC,CAAA;AAC5C,EAAA,IAAMqB,UAAU,GAAGrB,MAAM,CAACgB,MAAM,CAC9B,UAAChE,CAAC,EAAA;IAAA,OAAKsE,eAAe,CAACtE,CAAC,CAAC,IAAI,EAAEA,CAAC,CAACkD,KAAK,IAAIZ,CAAC,CAAC,CAAA;GAC7C,CAAA,CAAA;AACD,EAAA,IAAI,CAAC+B,UAAU,CAACH,MAAM,EAAE,OAAO5B,CAAC,CAAA;AAChC,EAAA,IAAMiC,GAAG,GAAAxC,QAAA,CAAA,EAAA,EAAQO,CAAC,CAAE,CAAA;AACpB+B,EAAAA,UAAU,CAACG,OAAO,CAAC,UAACxE,CAAC,EAAI;AACvBuE,IAAAA,GAAG,CAACvE,CAAC,CAACkD,KAAK,CAAC,GACVlD,CAAC,CAACkD,KAAK,IAAIZ,CAAC,GACRmC,oBAAoB,CAACnC,CAAC,CAACtC,CAAC,CAACkD,KAAK,CAAC,EAAElD,CAAC,EAAEgD,MAAM,CAAC,GAC3C0B,oBAAoB,CAAC1E,CAAC,CAAC,CAAA;AAC/B,GAAC,CAAC,CAAA;AACF,EAAA,OAAOuE,GAAG,CAAA;AACZ,CAAA;AAEM,SAAUE,oBAAoBA,CAClCnC,CAAM,EACNY,KAAkB,EAClByB,MAAqB,EACrBC,UAAoB,EAAA;AAEpB,EAAA,IAAI1B,KAAK,CAACE,UAAU,IAAI,CAACwB,UAAU,EAAE;IACnC,OAAO,CAAEtC,CAAW,IAAA,IAAA,GAAXA,CAAW,GAAI,EAAE,EAAEX,GAAG,CAAC,UAAC3B,CAAC,EAAA;MAAA,OAChCyE,oBAAoB,CAACzE,CAAC,EAAEkD,KAAK,EAAEyB,MAAM,EAAE,IAAI,CAAC,CAAA;KAC7C,CAAA,CAAA;AACF,GAAA;AACD,EAAA,IAAIL,eAAe,CAACpB,KAAK,CAAC,EAAE;IAC1B,IAAI,CAACZ,CAAC,IAAI,CAACY,KAAK,CAAC2B,QAAQ,EAAE,OAAOvC,CAAC,CAAA;AACnC,IAAA,OAAO6B,kBAAkB,CAAC7B,CAAC,EAAEY,KAAK,CAAC4B,YAAY,GAAGH,MAAM,GAAGzB,KAAK,CAACC,QAAQ,CAAC,CAAA;AAC3E,GAAA;EACD,OAAOuB,oBAAoB,CAACxB,KAAK,CAAC,CAAA;AACpC,CAAA;AAEM,SAAUkB,qBAAqBA,CAACpB,MAAqB,EAAA;EACzD,OAAOvB,MAAM,CAACsD,WAAW,CACvB/B,MAAM,CAACrB,GAAG,CAAC,UAAC3B,CAAC,EAAA;IAAA,OAAK,CAACA,CAAC,CAACkD,KAAK,EAAEwB,oBAAoB,CAAC1E,CAAC,CAAC,CAAC,CAAA;AAAA,GAAA,CAAC,CACtD,CAAA;AACH,CAAA;AAEgB,SAAA0E,oBAAoBA,CAClCM,EAAe,EACfH,QAAyB,EAAA;EAEzB,IAAIG,EAAE,CAACrE,YAAY,KAAKsE,SAAS,EAAE,OAAOD,EAAE,CAACrE,YAAY,CAAA;EACzD,IAAMuE,UAAU,GAAG,CAAC,EAAEL,QAAQ,IAAIG,EAAE,CAACH,QAAQ,CAAC,CAAA;AAC9C,EAAA,IAAIP,eAAe,CAACU,EAAE,CAAC,EAAE;AACvB,IAAA,IAAIE,UAAU,EAAE;AACd,MAAA,IAAMC,UAAU,GAAGf,qBAAqB,CAACY,EAAE,CAAC7B,QAAQ,CAAC,CAAA;MACrD,OAAO6B,EAAE,CAAC5B,UAAU,GAAG,CAAC+B,UAAU,CAAC,GAAGA,UAAU,CAAA;AACjD,KAAA;AACD,IAAA,OAAOH,EAAE,CAACI,WAAW,GAAIJ,EAAE,CAAC5B,UAAU,GAAG,EAAE,GAAG,EAAE,GAAI6B,SAAS,CAAA;AAC9D,GAAA;EACD,IAAID,EAAE,CAAC5B,UAAU,EAAE;AACjB,IAAA,OAAO,EAAE,CAAA;AACV,GAAA;AACD,EAAA,OAAO6B,SAAS,CAAA;AAClB,CAAA;AAEM,SAAUI,oBAAoBA,CAACL,EAAe,EAAA;AAClD,EAAA,IAAIV,eAAe,CAACU,EAAE,CAAC,EAAE;AACvB,IAAA,OAAOZ,qBAAqB,CAACY,EAAE,CAAC7B,QAAQ,CAAC,CAAA;AAC1C,GAAA;EACD,OAAO6B,EAAE,CAACrE,YAAY,CAAA;AACxB,CAAA;AAEgB,SAAA2E,eAAeA,CAC7BtC,MAAqB,EACrBE,KAAa,EAAA;AAEb,EAAA,OAAOqC,SAAS,CAACvC,MAAM,EAAEE,KAAK,CAAC,CAAA;AACjC,CAAA;AAEgB,SAAAsC,iBAAiBA,CAC/BxC,MAAqB,EACrBE,KAAa,EAAA;AAEb,EAAA,OAAOqC,SAAS,CAACvC,MAAM,EAAEE,KAAK,CAA8B,CAAA;AAC9D,CAAA;AAEgB,SAAAqC,SAASA,CACvBvC,MAAqB,EACrBE,KAAa,EAAA;AAEb,EAAA,OAAOF,MAAM,CAACS,IAAI,CAAC,UAACzD,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,CAACkD,KAAK,KAAKA,KAAK,CAAA;GAAC,CAAA,CAAA;AAC9C,CAAA;AAEM,SAAUuC,aAAaA,CAACT,EAAe,EAAA;AAC3C,EAAA,OAAO,CAACV,eAAe,CAACU,EAAE,CAAC,CAAA;AAC7B,CAAA;AAEM,SAAUV,eAAeA,CAACU,EAAe,EAAA;AAC7C,EAAA,OAAOA,EAAE,CAAC/E,IAAI,KAAKd,iBAAS,CAACkE,QAAQ,CAAA;AACvC,CAAA;AAEM,SAAUqC,aAAaA,CAC3BC,CAAoB,EAAA;AAEpB,EAAA,OAAOA,CAAC,CAAC1F,IAAI,KAAKb,6BAAqB,CAACc,IAAI,CAAA;AAC9C,CAAA;AAEM,SAAU0F,cAAcA,CAC5BD,CAAoB,EAAA;AAEpB,EAAA,OAAOA,CAAC,CAAC1F,IAAI,KAAKb,6BAAqB,CAACgB,KAAK,CAAA;AAC/C,CAAA;AAEgB,SAAAyF,WAAWA,CAAC3C,KAAkB,EAAE4C,GAAW,EAAA;AAAA,EAAA,IAAAC,WAAA,CAAA;AACzD,EAAA,OAAOC,OAAO,CAAA,CAAAD,WAAA,GAAC7C,KAAK,CAAC+C,IAAI,KAAVF,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAY9B,QAAQ,CAAC6B,GAAG,CAAC,CAAC,CAAA;AAC3C,CAAA;AAEM,SAAUI,gBAAgBA,CAAChD,KAAkB,EAAA;AAAA,EAAA,IAAAiD,kBAAA,CAAA;EACjD,OAAAA,CAAAA,kBAAA,GAAOjD,KAAK,CAACrB,WAAW,YAAAsE,kBAAA,GAAIjD,KAAK,CAACA,KAAK,CAAA;AACzC,CAAA;AAEM,SAAUkD,UAAUA,CAACC,CAAgD,EAAA;EAAA,IAAAC,iBAAA,EAAAC,UAAA,CAAA;AACzE,EAAA,OAAO,EAAAD,iBAAA,GAAA,CAAAC,UAAA,GAACF,CAAC,CAACpF,OAAO,KAATsF,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAA,CAAWrC,MAAM,KAAA,IAAA,GAAAoC,iBAAA,GAAI,CAAC,IAAI,CAAC,CAAA;AACrC,CAAA;AAEM,SAAUE,sBAAsBA,CAACxB,EAAe,EAAA;AACpD,EAAA,IAAIV,eAAe,CAACU,EAAE,CAAC,EAAE;IACvB,OAAO;MACL/E,IAAI,EAAEb,6BAAqB,CAACc,IAAI;MAChCuG,KAAK,EAAEzB,EAAE,CAACnD,WAAW;MACrBqB,KAAK,EAAE8B,EAAE,CAAC9B,KAAK;MACf2B,QAAQ,EAAEG,EAAE,CAACH,QAAQ;AACrB1B,MAAAA,QAAQ,EAAE6B,EAAE,CAAC7B,QAAQ,CAACxB,GAAG,CAAC6E,sBAAsB,CAAA;KACjD,CAAA;AACF,GAAA,MAAM,IAAIf,aAAa,CAACT,EAAE,CAAC,EAAE;AAAA,IAAA,IAAA0B,QAAA,CAAA;AAC5B,IAAA,IAAMC,UAAU,GAAA,CAAAD,QAAA,GAAG1B,EAAE,CAACiB,IAAI,KAAA,IAAA,GAAA,KAAA,CAAA,GAAPS,QAAA,CAASzC,QAAQ,CAAC,aAAa,CAAC,CAAA;IACnD,OAAO;MACLhE,IAAI,EAAEb,6BAAqB,CAACc,IAAI;MAChCuG,KAAK,EAAEzB,EAAE,CAACnD,WAAW;MACrBqB,KAAK,EAAE8B,EAAE,CAAC9B,KAAK;MACf2B,QAAQ,EAAEG,EAAE,CAACH,QAAQ;AACrB+B,MAAAA,aAAa,EAAE;QACb3G,IAAI,EAAE0G,UAAU,GAAGlH,sBAAc,CAACoH,UAAU,GAAGpH,sBAAc,CAACqH,QAAAA;AAC/D,OAAA;KACF,CAAA;AACF,GAAA;AACD,EAAA,MAAM,sBAAsB,CAAA;AAC9B,CAAA;AACA,SAASC,qBAAqBA,CAC5B7D,KAAa,EACb8D,OAA0B,EAAA;AAE1B,EAAA,IAAItB,aAAa,CAACsB,OAAO,CAAC,IAAI9D,KAAK,KAAK8D,OAAO,CAAC9D,KAAK,EAAE,OAAO8D,OAAO,CAAA;AACrE,EAAA,IAAIpB,cAAc,CAACoB,OAAO,CAAC,EAAE;AAAA,IAAA,IAAAC,iBAAA,CAAA;AAC3B,IAAA,IAAID,OAAO,CAACjE,aAAa,EACvB,OAAOG,KAAK,KAAK8D,OAAO,CAACjE,aAAa,GAAGiE,OAAO,GAAG/B,SAAS,CAAA;AAC9D,IAAA,OAAOiC,4BAA4B,CAAChE,KAAK,EAAA,CAAA+D,iBAAA,GAAED,OAAO,CAAC7D,QAAQ,KAAA,IAAA,GAAA8D,iBAAA,GAAI,EAAE,CAAC,CAAA;AACnE,GAAA;AACD,EAAA,OAAOhC,SAAS,CAAA;AAClB,CAAA;AAEA,SAASiC,4BAA4BA,CACnChE,KAAa,EACbiE,QAA6B,EAAA;AAE7B,EAAA,KAAA,IAAAC,SAAA,GAAAC,+BAAA,CAAgBF,QAAQ,CAAA,EAAAG,KAAA,EAAA,CAAA,CAAAA,KAAA,GAAAF,SAAA,EAAA,EAAAG,IAAA,GAAE;AAAA,IAAA,IAAf5B,CAAC,GAAA2B,KAAA,CAAAE,KAAA,CAAA;AACV,IAAA,IAAMC,GAAG,GAAGV,qBAAqB,CAAC7D,KAAK,EAAEyC,CAAC,CAAC,CAAA;IAC3C,IAAI8B,GAAG,EAAE,OAAOA,GAAG,CAAA;AACpB,GAAA;AACD,EAAA,OAAOxC,SAAS,CAAA;AAClB,CAAA;AAEgB,SAAAyC,kBAAkBA,CAChC1E,MAAqB,EACrBmE,QAA6B,EAAA;EAE7B,IAAMQ,OAAO,GAGP3E,MAAM,CAAC4E,OAAO,CAAC,UAAC5H,CAAC,EAAI;IACzB,IAAI6F,WAAW,CAAC7F,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAA;IAC3C,IAAMwD,QAAQ,GAAG0D,4BAA4B,CAAClH,CAAC,CAACkD,KAAK,EAAEiE,QAAQ,CAAC,CAAA;IAChE,IAAI,CAAC3D,QAAQ,IAAIc,eAAe,CAACtE,CAAC,CAAC,EAAE,OAAO;AAAEkD,MAAAA,KAAK,EAAElD,CAAC;AAAEwD,MAAAA,QAAQ,EAARA,QAAAA;KAAU,CAAA;AAClE,IAAA,OAAO,EAAE,CAAA;AACX,GAAC,CAAC,CAAA;EACF,IAAMqE,gBAAgB,GAAGV,QAAQ,CAACxF,GAAG,CAAC,UAAC3B,CAAC,EAAI;AAAA,IAAA,IAAA8H,YAAA,CAAA;AAC1C,IAAA,IAAMC,EAAE,GAAGJ,OAAO,CAAClE,IAAI,CAAC,UAACkC,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC,CAACnC,QAAQ,KAAKxD,CAAC,CAAA;KAAC,CAAA,CAAA;AAChD,IAAA,IAAI,CAAC+H,EAAE,EAAE,OAAO/H,CAAC,CAAA;IACjB,IAAMgI,EAAE,GAAGhI,CAA8B,CAAA;IACzC,OAAA+B,QAAA,KACKiG,EAAE,EAAA;AACL7E,MAAAA,QAAQ,EAAEuE,kBAAkB,CACzBK,EAAE,CAAC7E,KAAuB,CAACC,QAAQ,EAAA2E,CAAAA,YAAA,GACpCE,EAAE,CAAC7E,QAAQ,KAAA2E,IAAAA,GAAAA,YAAA,GAAI,EAAE,CAAA;AAClB,KAAA,CAAA,CAAA;AAEL,GAAC,CAAC,CAAA;EACF,OAAOD,gBAAgB,CAACjE,MAAM,CAC5B+D,OAAO,CACJ3D,MAAM,CAAC,UAAChE,CAAC,EAAA;IAAA,OAAK,CAACA,CAAC,CAACwD,QAAQ,CAAA;AAAA,GAAA,CAAC,CAC1B7B,GAAG,CAAC,UAAC3B,CAAC,EAAA;AAAA,IAAA,OAAKwG,sBAAsB,CAACxG,CAAC,CAACkD,KAAK,CAAC,CAAA;AAAA,GAAA,CAAC,CAC/C,CAAA;AACH,CAAA;AAEM,SAAU+E,aAAaA,CAAIC,CAAI,EAAA;AACnC,EAAA,IAAMC,CAAC,GAAGC,YAAM,CAACF,CAAC,CAAC,CAAA;EACnBC,CAAC,CAACE,OAAO,GAAGH,CAAC,CAAA;AACb,EAAA,OAAOC,CAAC,CAAA;AACV,CAAA;AAEM,SAAUG,iBAAiBA,CAAC3C,CAAoB,EAAA;EACpD,OAAOD,aAAa,CAACC,CAAC,CAAC,IAAI,CAAC,CAACA,CAAC,CAAC4C,QAAQ,CAAA;AACzC,CAAA;AAEM,SAAUC,qBAAqBA,CACnCC,CAAoB,EAAA;EAEpB,OAAO1I,uBAAuB,CAAC0I,CAAC,CAAC,IAC/BA,CAAC,CAAC7B,aAAa,IACfvF,qBAAqB,CAACoH,CAAC,CAAC7B,aAAa,CAAC,GACpC6B,CAAC,CAAC7B,aAAa,GACf3B,SAAS,CAAA;AACf,CAAA;AAEM,SAAUyD,YAAYA,CAC1BC,OAA2B,EAAA;EAE3B,IAAMC,eAAe,GAAGD,OAAO,CAAC3F,MAAM,CAACS,IAAI,CAAC,UAACzD,CAAC,EAAA;IAAA,OAAKA,CAAC,CAAC6I,WAAW,CAAA;GAAC,CAAA,CAAA;EACjE,OAAOD,eAAe,GAClBE,kBAAkB,CAACH,OAAO,EAAEC,eAAe,CAAC1F,KAAK,CAAC,GAClD+B,SAAS,CAAA;AACf,CAAA;SAEgB8D,qBAAqBA,CACnC5B,QAAgD,EAChDwB,OAA2B,EAC3BK,EAKkB,EAAA;AAElB,EAAA,IAAI,CAAC7B,QAAQ,EAAE,OAAOlC,SAAS,CAAA;AAC/B,EAAA,KAAA,IAAAgE,UAAA,GAAA5B,+BAAA,CAAgBF,QAAQ,CAAA,EAAA+B,MAAA,EAAA,CAAA,CAAAA,MAAA,GAAAD,UAAA,EAAA,EAAA1B,IAAA,GAAE;AAAA,IAAA,IAAf5B,CAAC,GAAAuD,MAAA,CAAA1B,KAAA,CAAA;IACV,IAAMW,CAAC,GAAGgB,gBAAgB,CAACxD,CAAC,EAAEgD,OAAO,EAAEK,EAAE,CAAC,CAAA;AAC1C,IAAA,IAAIb,CAAC,KAAKlD,SAAS,EAAE,OAAOkD,CAAC,CAAA;AAC9B,GAAA;AACD,EAAA,OAAOlD,SAAS,CAAA;AAClB,CAAA;SAEgBkE,gBAAgBA,CAC9BC,UAA6B,EAC7BC,GAAuB,EACvBL,EAKkB,EAAA;EAElB,OAAOvI,sBAAsB,CAC3B2I,UAAU,EACV;IACEvI,IAAI,EAAA,SAAAA,IAACW,CAAAA,GAA0B,EAAA;MAC7B,OAAO8H,WAAW,CAAC9H,GAAG,EAAEA,GAAG,CAAC0B,KAAK,EAAE1B,GAAG,CAAC2B,QAAQ,CAAC,CAAA;KACjD;IACDpC,KAAK,EAAA,SAAAA,KAAC0H,CAAAA,CAA4B,EAAA;MAChC,OAAOa,WAAW,CAACrE,SAAS,EAAEwD,CAAC,CAAC1F,aAAa,EAAE0F,CAAC,CAACtF,QAAQ,CAAC,CAAA;KAC3D;IACDvC,MAAM,EAAE,SAAAA,MAAA,GAAA;AAAA,MAAA,OAAMqE,SAAS,CAAA;AAAA,KAAA;IACvBnE,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,MAAA,OAAMmE,SAAS,CAAA;AAAA,KAAA;AACzB,GAAA,EACD,YAAA;AAAA,IAAA,OAAMA,SAAS,CAAA;GAChB,CAAA,CAAA;AAED,EAAA,SAASqE,WAAWA,CAClB9H,GAAsC,EACtC+H,SAAoC,EACpCpG,QAAgD,EAAA;AAEhD,IAAA,IAAMqG,SAAS,GAAGD,SAAS,GAAGhE,SAAS,CAAC8D,GAAG,CAACrG,MAAM,EAAEuG,SAAS,CAAC,GAAGtE,SAAS,CAAA;AAC1E,IAAA,IAAI,CAACuE,SAAS,EACZ,OAAO,CAACD,SAAS,GAAGR,qBAAqB,CAAC5F,QAAQ,EAAEkG,GAAG,EAAEL,EAAE,CAAC,GAAG/D,SAAS,CAAA;IAE1E,IAAMwE,QAAQ,GAAA7F,EAAAA,CAAAA,MAAA,CAAOyF,GAAG,CAACK,IAAI,EAAEF,CAAAA,SAAS,CAACtG,KAAK,CAAC,CAAA,CAAA;IAC/C,IAAM8D,OAAO,GAAGqC,GAAG,CAACxI,IAAI,CAAC8I,aAAa,CAACF,QAAQ,CAAC,CAAA;AAChD,IAAA,IAAI,CAACzC,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC1C,IAAA,IAAM4C,MAAM,GAAGpI,GAAG,GAAGwH,EAAE,CAACxH,GAAG,EAAEgI,SAAS,EAAExC,OAAO,EAAE,KAAK,CAAC,GAAG/B,SAAS,CAAA;AACnE,IAAA,IAAI2E,MAAM,KAAK3E,SAAS,EAAE,OAAO2E,MAAM,CAAA;IACvC,IAAIJ,SAAS,CAACpG,UAAU,EAAE;MACxB,IAAIyG,MAAM,GAAG,CAAC,CAAA;MACd,KAAAC,IAAAA,UAAA,GAAAzC,+BAAA,CAAA,CAAA0C,iBAAA,GAAgB/C,OAAQ,CAACgD,QAAQ,KAAA,IAAA,GAAAD,iBAAA,GAAI,EAAE,GAAAE,MAAA,EAAA,CAAA,CAAAA,MAAA,GAAAH,UAAA,EAAAvC,EAAAA,IAAA,GAAE;AAAA,QAAA,IAAAwC,iBAAA,CAAA;AAAA,QAAA,IAA9BpE,CAAC,GAAAsE,MAAA,CAAAzC,KAAA,CAAA;AACV,QAAA,IAAM0C,UAAU,GAAG1I,GAAG,GAAGwH,EAAE,CAACxH,GAAG,EAAEgI,SAAS,EAAE7D,CAAC,EAAE,IAAI,CAAC,GAAGV,SAAS,CAAA;AAChE,QAAA,IAAIiF,UAAU,KAAKjF,SAAS,EAAE,OAAOiF,UAAU,CAAA;AAC/C,QAAA,IAAI5F,eAAe,CAACkF,SAAS,CAAC,EAAE;UAC9B,IAAMW,QAAQ,GAAGpB,qBAAqB,CACpC5F,QAAQ,EAAApB,QAAA,KAEHsH,GAAG,EAAA;YACNrG,MAAM,EAAEwG,SAAS,CAACrG,QAAQ;AAC1BuG,YAAAA,IAAI,EAAA9F,EAAAA,CAAAA,MAAA,CAAM6F,QAAQ,GAAEI,MAAM,CAAA,CAAA;AAAC,WAAA,CAAA,EAE7Bb,EAAE,CACH,CAAA;AACD,UAAA,IAAImB,QAAQ,KAAKlF,SAAS,EAAE,OAAOkF,QAAQ,CAAA;AAC5C,SAAA;AACDN,QAAAA,MAAM,EAAE,CAAA;AACT,OAAA;AACF,KAAA;AACH,GAAA;AACF,CAAA;AAEgB,SAAAf,kBAAkBA,CAChCjI,IAAiB,EACjBuJ,KAAe,EAAA;EAEf,IAAMC,SAAS,MAAAzG,MAAA,CAAO/C,IAAI,CAAC6I,IAAI,EAAEU,CAAAA,KAAK,CAAC,CAAA,CAAA;AACvC,EAAA,OAAOvJ,IAAI,CAACA,IAAI,CAAC8I,aAAa,CAACU,SAAS,CAAC,CAAA;AAC3C,CAAA;AAEgB,SAAAC,kBAAkBA,CAChChI,CAAmC,EACnCU,MAAqB,EAAA;AAErB,EAAA,IAAI,CAACV,CAAC,EAAE,OAAOA,CAAC,CAAA;AAChB,EAAA,IAAMiI,SAAS,GAAGvH,MAAM,CAACS,IAAI,CAAC,UAACzD,CAAC,EAAA;IAAA,OAAKA,CAAC,CAAC6I,WAAW,CAAA;GAAC,CAAA,CAAA;AACnD,EAAA,IAAI,CAAC0B,SAAS,EAAE,OAAOjI,CAAC,CAAA;AACxB,EAAA,IAAMkI,SAAS,GAAGlI,CAAC,CAACiI,SAAS,CAACrH,KAAK,CAAC,CAAA;AACpC,EAAA,IAAMuH,eAAe,GAAGzH,MAAM,CAACgB,MAAM,CACnC,UAAChE,CAAC,EAAA;IAAA,IAAA0K,qBAAA,EAAAC,eAAA,CAAA;IAAA,OAAKrG,eAAe,CAACtE,CAAC,CAAC,IAAI,CAAA0K,CAAAA,qBAAA,GAAAC,CAAAA,eAAA,GAAC3K,CAAC,CAAC0D,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAdiH,eAAA,CAAgBzG,MAAM,YAAAwG,qBAAA,GAAI,CAAC,IAAI,CAAC,CAAA;GAC/D,CAAA,CAAA;AACD,EAAA,IAAI,CAACD,eAAe,CAACvG,MAAM,EAAE,OAAO5B,CAAC,CAAA;AACrC,EAAA,IAAMiC,GAAG,GAAAxC,QAAA,CAAA,EAAA,EAAQO,CAAC,CAAE,CAAA;AACpBmI,EAAAA,eAAe,CAACjG,OAAO,CAAC,UAACxE,CAAC,EAAI;AAAA,IAAA,IAAA4K,gBAAA,CAAA;AAC5B,IAAA,IAAMzF,UAAU,GAAG7C,CAAC,CAACtC,CAAC,CAACkD,KAAK,CAAC,CAAA;IAC7B,IACE,CAAA,CAAA0H,gBAAA,GAAA5K,CAAC,CAAC0D,YAAY,KAAdkH,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAA,CAAgB3G,QAAQ,CAACuG,SAAS,CAAC,MAAK,KAAK,IAC5C,CAACxK,CAAC,CAACoF,WAAW,IAAIyF,SAAS,EAAG,EAC/B;AACA,MAAA,OAAOtG,GAAG,CAACvE,CAAC,CAACkD,KAAK,CAAC,CAAA;AACnB,MAAA,OAAA;AACD,KAAA;AACD,IAAA,IAAIoB,eAAe,CAACtE,CAAC,CAAC,EAAE;MACtB,IAAM8K,WAAW,GAAG9K,CAAC,CAAC8E,YAAY,GAAG9B,MAAM,GAAGhD,CAAC,CAACmD,QAAQ,CAAA;MACxD,IAAInD,CAAC,CAACoD,UAAU,EAAE;AAChB,QAAA,IAAI2H,KAAK,CAACC,OAAO,CAAC7F,UAAU,CAAC,EAAE;UAC7BZ,GAAG,CAACvE,CAAC,CAACkD,KAAK,CAAC,GAAGiC,UAAU,CAACxD,GAAG,CAAC,UAACsJ,EAAE,EAAA;AAAA,YAAA,OAC/BX,kBAAkB,CAACW,EAAE,EAAEH,WAAW,CAAC,CAAA;WACpC,CAAA,CAAA;AACF,SAAA;AACF,OAAA,MAAM;QACLvG,GAAG,CAACvE,CAAC,CAACkD,KAAK,CAAC,GAAGoH,kBAAkB,CAACnF,UAAU,EAAE2F,WAAW,CAAC,CAAA;AAC3D,OAAA;AACF,KAAA;IACD,SAASD,SAASA,GAAA;AAChB,MAAA,OACE7K,CAAC,CAACoD,UAAU,IAAI2H,KAAK,CAACC,OAAO,CAAC7F,UAAU,CAAC,IAAI,CAACA,UAAU,CAACjB,MAAAA;AACzD;AAAA,OAAA;AAEJ,KAAA;AACF,GAAC,CAAC,CAAA;AACF,EAAA,OAAOK,GAAG,CAAA;AACZ,CAAA;AAEgB,SAAA2G,uBAAuBA,CACrCvF,CAAoB,EACpBwF,YAAsE,EAAA;EAAA,IAAAC,WAAA,EAAAC,aAAA,CAAA;AAEtE,EAAA,IAAMC,YAAY,GAAA,CAAAF,WAAA,GAAGzF,CAAC,CAACxC,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAViI,WAAA,CAAYxD,OAAO,CAAC,UAAC5H,CAAC,EAAA;AAAA,IAAA,OACzCkL,uBAAuB,CAAClL,CAAC,EAAEmL,YAAY,CAAC,CAAA;GACzC,CAAA,CAAA;AACD,EAAA,IAAMI,EAAE,GAAGC,wBAAI,CACb,CACE7F,CAAC,CAAC8F,UAAU,EACZ9F,CAAC,CAAC+F,WAAW,EACb/F,CAAC,CAACgG,UAAU,CAAA/H,CAAAA,MAAA,CAAAyH,CAAAA,aAAA,GACRF,YAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAGxF,CAAC,CAAC,KAAA,IAAA,GAAA0F,aAAA,GAAI,EAAE,CAC3B1J,CAAAA,GAAG,CAACiK,gBAAgB,CAAC,CACxB,CAAA;AACD,EAAA,IAAIN,YAAY,IAAI,CAACC,EAAE,EAAE,OAAOD,YAAY,CAAA;AAC5C,EAAA,IAAI,CAACC,EAAE,EAAE,OAAO,EAAE,CAAA;AAClB,EAAA,IAAID,YAAY,EAAE,OAAA,CAAQC,EAAE,CAAA3H,CAAAA,MAAA,CAAK0H,YAAY,CAAA,CAAA;EAC7C,OAAO,CAACC,EAAE,CAAC,CAAA;AACb,CAAA;AAEgB,SAAAM,cAAcA,CAC5BC,QAAoB,EACpBC,WAAmC,EAAA;EAEnC,IAAIxH,GAAG,GAAG,EAAE,CAAA;AACZuH,EAAAA,QAAQ,CAACtH,OAAO,CAAC,UAAClC,CAAC,EAAE0J,CAAC,EAAI;AACxB,IAAA,IAAI,OAAO1J,CAAC,KAAK,QAAQ,EAAE;AAAA,MAAA,IAAA2J,YAAA,CAAA;AACzB1H,MAAAA,GAAG,KAAA0H,YAAA,GAAIF,WAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAXA,WAAW,CAAGzJ,CAAC,CAAC,KAAA,IAAA,GAAA2J,YAAA,GAAI,GAAG,GAAG3J,CAAC,GAAG,GAAG,CAAA;AACzC,KAAA,MAAM;AACL,MAAA,IAAI0J,CAAC,GAAG,CAAC,EAAEzH,GAAG,IAAI,GAAG,CAAA;AACrBA,MAAAA,GAAG,IAAIjC,CAAC,CAAA;AACT,KAAA;AACH,GAAC,CAAC,CAAA;AACF,EAAA,OAAOiC,GAAG,CAAA;AACZ,CAAA;AAEgB,SAAA2H,mBAAmBA,CACjCvH,MAAyB,EACzB0F,SAA4B,EAAA;AAE5B,EAAA,IAAIU,KAAK,CAACC,OAAO,CAACX,SAAS,CAAC,EAAE;IAC5B,IAAI8B,IAAI,GAAGxH,MAAM,CAAA;AACjB0F,IAAAA,SAAS,CAAC7F,OAAO,CAAC,UAACxE,CAAC,EAAA;AAAA,MAAA,OAAMmM,IAAI,GAAGA,IAAI,CAAChJ,QAAS,CAACnD,CAAC,CAAC,CAAA;AAAA,KAAC,CAAC,CAAA;AACpD,IAAA,OAAOmM,IAAI,CAAA;AACZ,GAAA;AACD,EAAA,OAAOxH,MAAM,CAACxB,QAAS,CAACkH,SAAS,CAAC,CAAA;AACpC,CAAA;AAEM,SAAUuB,gBAAgBA,CAACQ,SAAyB,EAAA;EACxD,IAAIA,SAAS,IAAIA,SAAS,CAACC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC3C,IAAA,OAAOD,SAAS,CAACE,SAAS,CAAC,CAAC,CAAC,CAAA;AAC9B,GAAA;AACD,EAAA,OAAOF,SAAS,CAAA;AAClB,CAAA;AAEgB,SAAAG,aAAaA,CAC3BC,YAA4B,EAC5BC,WAA2B,EAAA;AAE3B,EAAA,IAAMC,EAAE,GAAGd,gBAAgB,CAACY,YAAY,CAAC,CAAA;EACzC,IAAIE,EAAE,KAAKF,YAAY,EAAE,OAAOhB,wBAAI,CAACgB,YAAY,EAAEC,WAAW,CAAC,CAAA;AAC/D,EAAA,OAAOC,EAAE,GAAGA,EAAE,GAAGzH,SAAS,CAAA;AAC5B;;SC5agB0H,WAAWA,CACzBzJ,KAAa,EACbuD,KAAqB,EACrBxF,OAAwC,EAAA;AAExC,EAAA,OAAAc,QAAA,CAAA;IAAS9B,IAAI,EAAEb,6BAAqB,CAACc,IAAI;AAAEgD,IAAAA,KAAK,EAALA,KAAK;AAAEuD,IAAAA,KAAK,EAALA,KAAAA;AAAK,GAAA,EAAKxF,OAAO,CAAA,CAAA;AACrE,CAAA;AAEgB,SAAA2L,kBAAkBA,CAChCC,IAAY,EACZ5L,OAA2C,EAAA;AAE3C,EAAA,OAAAc,QAAA,CAAA;IACE9B,IAAI,EAAEb,6BAAqB,CAACkB,OAAO;AACnCwM,IAAAA,WAAW,EAAE;MAAE7M,IAAI,EAAEL,uBAAe,CAACmN,IAAI;AAAEF,MAAAA,IAAI,EAAJA,IAAAA;AAAqB,KAAA;AAAA,GAAA,EAC7D5L,OAAO,CAAA,CAAA;AAEd,CAAA;AAEgB,SAAA+L,kBAAkBA,CAChCC,IAAY,EACZhM,OAA2C,EAAA;AAE3C,EAAA,OAAAc,QAAA,CAAA;IACE9B,IAAI,EAAEb,6BAAqB,CAACkB,OAAO;AACnCwM,IAAAA,WAAW,EAAE;MAAE7M,IAAI,EAAEL,uBAAe,CAACsN,IAAI;AAAED,MAAAA,IAAI,EAAJA,IAAAA;AAAqB,KAAA;AAAA,GAAA,EAC7DhM,OAAO,CAAA,CAAA;AAEd,CAAA;AAEM,SAAUkM,mBAAmBA,CAACC,IAAsB,EAAA;EACxD,OAAO;IAAEnN,IAAI,EAAEZ,2BAAmB,CAACgO,YAAY;AAAED,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AACzD,CAAA;AAEM,SAAUE,eAAeA,CAACF,IAAsB,EAAA;EACpD,OAAO;IAAEnN,IAAI,EAAEZ,2BAAmB,CAACkO,QAAQ;AAAEH,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AACrD,CAAA;AAEM,SAAUI,iBAAiBA,CAACJ,IAAsB,EAAA;EACtD,OAAO;IAAEnN,IAAI,EAAEZ,2BAAmB,CAACoO,OAAO;AAAEL,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AACpD,CAAA;AAEM,SAAUM,eAAeA,CAACN,IAAsB,EAAA;EACpD,OAAO;IAAEnN,IAAI,EAAEZ,2BAAmB,CAACsO,QAAQ;AAAEP,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AACrD,CAAA;AAEgB,SAAAQ,WAAWA,CAAC1K,KAAa,EAAEsE,KAAU,EAAA;EACnD,OAAO;IAAEvH,IAAI,EAAEX,sBAAc,CAACuO,SAAS;AAAE3K,IAAAA,KAAK,EAALA,KAAK;AAAEsE,IAAAA,KAAK,EAALA,KAAAA;GAAO,CAAA;AACzD,CAAA;AACM,SAAUsG,WAAWA,CAACC,UAAkB,EAAA;EAC5C,OAAO;IAAE9N,IAAI,EAAEX,sBAAc,CAAC0O,OAAO;AAAED,IAAAA,UAAU,EAAVA,UAAAA;GAAY,CAAA;AACrD,CAAA;SAEgBE,cAAcA,CAC5B9K,QAA6B,EAC7BsD,KAAc,EACdxF,OAA4C,EAAA;AAE5C,EAAA,OAAAc,QAAA,CAAA;IACE9B,IAAI,EAAEb,6BAAqB,CAACgB,KAAK;AACjC+C,IAAAA,QAAQ,EAARA,QAAQ;AACRsD,IAAAA,KAAK,EAALA,KAAK;AACLyH,IAAAA,YAAY,EAAE;AAAEjO,MAAAA,IAAI,EAAE,UAAU;AAAEkO,MAAAA,SAAS,EAAE,CAAC1H,KAAAA;AAAO,KAAA;AAAA,GAAA,EAClDxF,OAAO,CAAA,CAAA;AAEd,CAAA;AACM,SAAUmN,eAAeA,CAC7BlL,KAAa,EACbuD,KAAyB,EACzBtD,QAA6B,EAC7BlC,OAAwC,EAAA;AAExC,EAAA,OAAAc,QAAA,CAAA;IACE9B,IAAI,EAAEb,6BAAqB,CAACc,IAAI;AAChCgD,IAAAA,KAAK,EAALA,KAAK;AACLC,IAAAA,QAAQ,EAARA,QAAQ;AACRsD,IAAAA,KAAK,EAALA,KAAK;AACLG,IAAAA,aAAa,EAAE;AAAE3G,MAAAA,IAAI,EAAE,UAAA;AAAY,KAAA;AAAA,GAAA,EAChCgB,OAAO,CAAA,CAAA;AAEd,CAAA;SAEgBoN,YAAYA,CAC1BC,QAAgB,EAChBC,OAAmB,EACnBC,UAAmB,EAAA;EAEnB,OAAO;AAAEF,IAAAA,QAAQ,EAARA,QAAQ;AAAEC,IAAAA,OAAO,EAAPA,OAAO;AAAEC,IAAAA,UAAU,EAAEA,UAAU,IAAVA,IAAAA,GAAAA,UAAU,GAAIF,QAAAA;GAAU,CAAA;AAClE,CAAA;AAEO,IAAMG,oBAAoB,GAA8B;EAC7DxO,IAAI,EAAEb,6BAAqB,CAACgB,KAAK;AACjC+C,EAAAA,QAAQ,EAAE,EAAE;AACZ+K,EAAAA,YAAY,EAAE;IAAEjO,IAAI,EAAEN,uBAAe,CAACmH,QAAQ;AAAEqH,IAAAA,SAAS,EAAE,IAAA;AAAM,GAAA;EAClE;SAEeO,6BAA6BA,CAC3C1J,EAAiB,EACjBoE,YAA4D;AAAA,EAAA,IAA5DA;AAAAA,IAAAA,aAAwCqF,oBAAoB,CAAA;AAAA,GAAA;AAE5D,EAAA,OAAOE,aAAO,CACZ,YAAA;AAAA,IAAA,IAAAC,oBAAA,CAAA;IAAA,OAAA7M,QAAA,KACKqH,UAAU,EAAA;AACbjG,MAAAA,QAAQ,EAAEuE,kBAAkB,CAAC1C,EAAE,EAAA4J,CAAAA,oBAAA,GAAExF,UAAU,CAACjG,QAAQ,KAAAyL,IAAAA,GAAAA,oBAAA,GAAI,EAAE,CAAA;AAAC,KAAA,CAAA,CAAA;AAAA,GAC3D,EACF,CAAC5J,EAAE,EAAEoE,UAAU,CAAC,CACjB,CAAA;AACH,CAAA;AAQgB,SAAAyF,0BAA0BA,CACxCC,aAA4B,EAC5BC,mBAA0C,EAAA;AAE1C,EAAA,OAAOD,aAAa,CAACnN,GAAG,CAAC,UAAC3B,CAAC,EAAA;AAAA,IAAA,OACzBA,CAAC,CAACkD,KAAK,KAAK,eAAe,IAAIoB,eAAe,CAACtE,CAAC,CAAC,GAAGgP,gBAAgB,CAAChP,CAAC,CAAC,GAAGA,CAAC,CAAA;GAC5E,CAAA,CAAA;EAED,SAASgP,gBAAgBA,CAACC,OAAsB,EAAA;AAC9C,IAAA,IAAM9L,QAAQ,GAAG8L,OAAO,CAAC9L,QAAQ,CAAA;AACjC,IAAA,IAAM+L,SAAS,GAAG/L,QAAQ,CAACxB,GAAG,CAAC,UAAC3B,CAAC,EAAA;MAAA,OAC/BA,CAAC,CAACkD,KAAK,KAAK,MAAM,GAAGiM,mBAAmB,CAACnP,CAAC,CAAC,GAAGA,CAAC,CAAA;KAChD,CAAA,CAAA;IACD,OAAA+B,QAAA,KACKkN,OAAO,EAAA;MACV9L,QAAQ,EAAE4L,mBAAmB,CAACK,MAAM,CAClC,UAACC,kBAAkB,EAAEC,EAAE,EAAA;AAAA,QAAA,OACrBA,EAAE,CAACtM,MAAM,CACNrB,GAAG,CAAC,UAAC3B,CAAC,EAAA;UAAA,OAAA+B,QAAA,KAAW/B,CAAC,EAAA;AAAE0D,YAAAA,YAAY,EAAE,CAAC4L,EAAE,CAAC9H,KAAK,CAAA;AAAC,WAAA,CAAA,CAAA;AAAA,SAAG,CAAC,CAChD4H,MAAM,CAAC,UAACG,EAAE,EAAEvP,CAAC,EAAA;AAAA,UAAA,OAAKsD,UAAU,CAACtD,CAAC,EAAEuP,EAAE,CAAC,CAAA;AAAA,SAAA,EAAEF,kBAAkB,CAAC,CAAA;AAAA,OAAA,EAC7DH,SAAS,CAAA;AACV,KAAA,CAAA,CAAA;AAEL,GAAA;EAEA,SAASC,mBAAmBA,CAAC5E,SAAsB,EAAA;AAAA,IAAA,IAAAiF,kBAAA,CAAA;IACjD,IAAMvO,OAAO,GAAAuO,CAAAA,kBAAA,GAAGjF,SAAS,CAACtJ,OAAO,KAAA,IAAA,GAAAuO,kBAAA,GAAI,EAAE,CAAA;IACvC,OAAAzN,QAAA,KACKwI,SAAS,EAAA;MACZtJ,OAAO,EAAA,EAAA,CAAA2C,MAAA,CACF3C,OAAO,EACP8N,mBAAmB,CAACpN,GAAG,CAAC,UAAA8N,IAAA,EAAA;AAAA,QAAA,IAAGC,IAAI,GAAAD,IAAA,CAAJC,IAAI;UAAElI,KAAK,GAAAiI,IAAA,CAALjI,KAAK,CAAA;QAAA,OAAQ;AAAEkI,UAAAA,IAAI,EAAJA,IAAI;AAAElI,UAAAA,KAAK,EAALA,KAAAA;SAAO,CAAA;AAAA,OAAC,CAAC,CAAA;AACnE,KAAA,CAAA,CAAA;AAEL,GAAA;AACF;;ACtKM,SAAUmI,oBAAoBA,CAAIC,SAAkB,EAAA;AACxD,EAAA,IAAMjK,CAAC,GAAGkK,eAAU,CAACD,SAAS,CAAC,CAAA;AAC/BE,EAAAA,qBAAgB,CAACF,SAAS,EAAE,UAACtN,CAAC,EAAA;AAAA,IAAA,OAAMqD,CAAC,CAAC6B,KAAK,GAAGlF,CAAC,CAAA;AAAA,GAAC,CAAC,CAAA;AACjD,EAAA,OAAOqD,CAAC,CAAA;AACV,CAAA;AAEM,SAAUoK,EAAEA,CAACxN,CAA4B,EAAA;AAC7C,EAAA,OAAOA,CAAC,GAAGA,CAAC,GAAG0C,SAAS,CAAA;AAC1B,CAAA;AAEgB,SAAA+K,gBAAgBA,CAC9BrK,CAAa,EACbsK,OAAgC,EAAA;AAEhC,EAAA,IAAMF,EAAE,GAAGpK,CAAC,CAAC0C,OAAO,CAAA;AACpB,EAAA,IAAM4C,EAAE,GAAG8E,EAAE,CAACvI,KAAK,CAAA;EACnB,IAAIyD,EAAE,IAAI,IAAI,EAAE;AACdgF,IAAAA,OAAO,CAACtK,CAAC,EAAEuK,kBAAa,CAACC,SAAS,CAAC,CAAA;AACnC,IAAA,OAAOlF,EAAE,CAAA;AACV,GAAA;AACD,EAAA,IAAI,OAAOA,EAAE,KAAK,QAAQ,EAAE;AAC1BgF,IAAAA,OAAO,CAACtK,CAAC,EAAEuK,kBAAa,CAACE,KAAK,CAAC,CAAA;AAC/B,IAAA,OAAOnF,EAAE,CAAA;AACV,GAAA;AACD,EAAA,OAAO,IAAIoF,KAAK,CAACpF,EAAE,EAAE;AACnBqF,IAAAA,GAAG,WAAAA,GAACC,CAAAA,MAAc,EAAEC,CAAkB,EAAEC,QAAa,EAAA;AACnD,MAAA,IAAI1F,KAAK,CAACC,OAAO,CAACC,EAAE,CAAC,EAAE;AACrBgF,QAAAA,OAAO,CAACtK,CAAC,EAAEuK,kBAAa,CAACC,SAAS,CAAC,CAAA;QACnC,IAAI,OAAOK,CAAC,KAAK,QAAQ,IAAIA,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAIA,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EACpD,OAAOE,OAAO,CAACJ,GAAG,CAACrF,EAAE,EAAEuF,CAAC,CAAC,CAAA;AAC3B,QAAA,IAAMG,EAAE,GAAIZ,EAAE,CAAC/F,QAAgB,CAACwG,CAAC,CAAC,CAAA;AAClC,QAAA,IAAI,OAAOG,EAAE,KAAK,UAAU,EAAE,OAAOA,EAAE,CAAA;AACvC,QAAA,IAAIA,EAAE,IAAI,IAAI,EAAE,OAAO,IAAI,CAAA;AAC3B,QAAA,OAAOX,gBAAgB,CAACW,EAAE,EAAEV,OAAO,CAAC,CAAA;AACrC,OAAA;AACD,MAAA,IAAIO,CAAC,IAAIvF,EAAE,EAAE,OAAO+E,gBAAgB,CAAED,EAAE,CAAC/M,MAAc,CAACwN,CAAC,CAAC,EAAEP,OAAO,CAAC,CAAA;AACpE,MAAA,OAAOhL,SAAS,CAAA;AAClB,KAAA;AACD,GAAA,CAAM,CAAA;AACT;;;;;;;;;;;;;SCLgB2L,qBAAqBA,CACnCC,qBAA4C,EAC5CzH,UAA6B,EAC7B0H,WAAyB,EAAA;EAEzB,IAAMtD,iBAAiB,GAAGuD,kBAAkB,CAC1C3H,UAAU,EACV/J,2BAAmB,CAACoO,OAAO,EAC3BoD,qBAAqB,CACtB,CAAA;EACD,IAAM1I,CAAC,GAAGF,aAAa,CAAC;AAAE6I,IAAAA,WAAW,EAAXA,WAAW;AAAE1H,IAAAA,UAAU,EAAVA,UAAAA;AAAY,GAAA,CAAC,CAAA;AACpD,EAAA,OAAO4H,iBAAW,CAChB,UAAC3H,GAAG,EAAI;AAAA,IAAA,IAAA4H,kBAAA,CAAA;AACN,IAAA,IAAAC,UAAA,GAAoC/I,CAAC,CAACE,OAAO;MAArCyI,WAAW,GAAAI,UAAA,CAAXJ,WAAW;MAAE1H,UAAU,GAAA8H,UAAA,CAAV9H,UAAU,CAAA;AAC/B,IAAA,OAAA,CAAA6H,kBAAA,GACEzD,iBAAiB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAjBA,iBAAiB,CAAGnE,GAAG,CAAC,KAAA4H,IAAAA,GAAAA,kBAAA,GACxBE,gBAAW,CACT,YAAA;MAAA,OACEC,WAAW,CAAC/H,GAAG,EAAEyH,WAAW,IAAXA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAW,CAAEpN,YAAY,CAAC,KAC1C,CAACoN,WAAW,IACX,CAACO,eAAe,CACdhI,GAAG,EACHyH,WAAW,EACX1H,UAAU,EACVC,GAAG,CAACiI,eAAe,CACpB,CAAC,CAAA;KACP,CAAA,CAAA;AAEL,GAAC,EACD,CAAC9D,iBAAiB,EAAErF,CAAC,CAAC,CACvB,CAAA;AACH,CAAA;AAEgB,SAAAoJ,mBAAmBA,CACjCV,qBAA4C,EAC5CzH,UAA6B,EAAA;EAE7B,IAAMkE,eAAe,GAAGyD,kBAAkB,CACxC3H,UAAU,EACV/J,2BAAmB,CAACkO,QAAQ,EAC5BsD,qBAAqB,CACtB,CAAA;AACD,EAAA,IAAM1I,CAAC,GAAGF,aAAa,CAACmB,UAAU,CAAC,CAAA;AACnC,EAAA,OAAO4H,iBAAW,CAChB,UAAC3H,GAAG,EAAI;AACN,IAAA,IAAIiE,eAAe,EAAE,OAAOA,eAAe,CAACjE,GAAG,CAAC,CAAA;AAChD,IAAA,OAAOsG,oBAAoB,CAAC,YAAA;AAAA,MAAA,OAAMrH,iBAAiB,CAACH,CAAC,CAACE,OAAO,CAAC,CAAA;KAAC,CAAA,CAAA;AACjE,GAAC,EACD,CAACiF,eAAe,EAAEnF,CAAC,CAAC,CACrB,CAAA;AACH,CAAA;SAEgBqJ,gBAAgBA,CAC9BX,qBAA4C,EAC5CY,QAA6B,EAC7BrI,UAA6B,EAAA;EAE7B,IAAMsI,YAAY,GAAGX,kBAAkB,CACrC3H,UAAU,EACVqI,QAAQ,EACRZ,qBAAqB,CACtB,CAAA;AACD,EAAA,OAAOG,iBAAW,CAChB,UAAC3H,GAAG,EAAI;AACN,IAAA,IAAIqI,YAAY,EAAE,OAAOA,YAAY,CAACrI,GAAG,CAAC,CAAA;IAC1C,OAAOwG,eAAU,CAAC5K,SAAS,CAAC,CAAA;AAC9B,GAAC,EACD,CAACyM,YAAY,CAAC,CACf,CAAA;AACH,CAAA;AAEgB,SAAAC,yBAAyBA,CACvCd,qBAA4C,EAC5CzH,UAA6B,EAAA;EAE7B,IAAMwI,cAAc,GAAGb,kBAAkB,CACvC3H,UAAU,EACV/J,2BAAmB,CAACwS,cAAc,EAClChB,qBAAqB,CACtB,CAAA;AACD,EAAA,OAAOG,iBAAW,CAChB,UAAC3H,GAAG,EAAI;AACN,IAAA,IAAIuI,cAAc,EAAE,OAAOA,cAAc,CAACvI,GAAG,CAAC,CAAA;IAC9C,OAAOwG,eAAU,CAAC,EAAE,CAAC,CAAA;AACvB,GAAC,EACD,CAAC+B,cAAc,CAAC,CACjB,CAAA;AACH,CAAA;AAEgB,SAAAE,mBAAmBA,CACjCjB,qBAA4C,EAC5CzH,UAA6B,EAAA;EAE7B,IAAMsE,eAAe,GAAGqD,kBAAkB,CACxC3H,UAAU,EACV/J,2BAAmB,CAACsO,QAAQ,EAC5BkD,qBAAqB,CACtB,CAAA;AACD,EAAA,OAAOG,iBAAW,CAChB,UAAC3H,GAAG,EAAI;AACN,IAAA,IAAIqE,eAAe,EAAE,OAAOA,eAAe,CAACrE,GAAG,CAAC,CAAA;IAChD,OAAOwG,eAAU,CAAC,KAAK,CAAC,CAAA;AAC1B,GAAC,EACD,CAACnC,eAAe,CAAC,CAClB,CAAA;AACH,CAAA;AAEgB,SAAAqE,kBAAkBA,CAChClB,qBAA4C,EAC5CzH,UAA6B,EAAA;EAI7B,IAAM4I,cAAc,GAAGjB,kBAAkB,CACvC3H,UAAU,EACV/J,2BAAmB,CAACiB,OAAO,EAC3BuQ,qBAAqB,CACtB,CAAA;EACD,OAAOG,iBAAW,CAAC,UAAC3H,GAAG,EAAA;AAAA,IAAA,OAAK2I,cAAc,IAAA,IAAA,GAAA,KAAA,CAAA,GAAdA,cAAc,CAAG3I,GAAG,CAAC,CAAA;GAAE,EAAA,CAAC2I,cAAc,CAAC,CAAC,CAAA;AACtE,CAAA;SACgBC,uBAAuBA,CACrCpB,qBAA4C,EAC5CzH,UAA6B,EAC7B0H,WAAyB,EAAA;EAEzB,IAAMoB,YAAY,GAAGnB,kBAAkB,CACrC3H,UAAU,EACV/J,2BAAmB,CAACgO,YAAY,EAChCwD,qBAAqB,CACtB,CAAA;EACD,IAAM1I,CAAC,GAAGF,aAAa,CAAC;AAAEmB,IAAAA,UAAU,EAAVA,UAAU;AAAE0H,IAAAA,WAAW,EAAXA,WAAAA;AAAa,GAAA,CAAC,CAAA;AACpD,EAAA,OAAOE,iBAAW,CAChB,UAAC3H,GAAG,EAAI;AAAA,IAAA,IAAA8I,aAAA,CAAA;AACN,IAAA,IAAAC,WAAA,GAAoCjK,CAAC,CAACE,OAAO;MAArCe,UAAU,GAAAgJ,WAAA,CAAVhJ,UAAU;MAAE0H,WAAW,GAAAsB,WAAA,CAAXtB,WAAW,CAAA;AAC/B,IAAA,OAAA,CAAAqB,aAAA,GAAOD,YAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAG7I,GAAG,CAAC,KAAA,IAAA,GAAA8I,aAAA,GAAIhB,gBAAW,CAACkB,WAAW,CAAC,CAAA;IACtD,SAASA,WAAWA,GAAA;MAClB,IAAA5C,IAAA,GAAwB1P,uBAAuB,CAACqJ,UAAU,CAAC,GACvD,CAACA,UAAU,CAACvE,QAAQ,EAAEuE,UAAU,CAACzI,YAAY,CAAC,GAC9C,CAAC,KAAK,EAAEsE,SAAS,CAAC;AAFfJ,QAAAA,QAAQ,GAAA4K,IAAA,CAAA,CAAA,CAAA;AAAE6C,QAAAA,GAAG,GAAA7C,IAAA,CAAA,CAAA,CAAA,CAAA;AAGpB,MAAA,OACE6C,GAAG,IAAA,IAAA,GAAHA,GAAG,GACFxB,WAAW,GACRpM,oBAAoB,CAACoM,WAAW,EAAEjM,QAAQ,CAAC,GAC3CI,SAAS,CAAA;AAEjB,KAAA;AACF,GAAC,EACD,CAACiN,YAAY,EAAE/J,CAAC,CAAC,CAClB,CAAA;AACH,CAAA;AAMA,SAASoK,iBAAiBA,CACxBC,MAAsB,EACtBxP,MAAqB,EACrBnC,IAAiB,EAAA;EAEjB,IAAM4R,QAAQ,GAAGlN,SAAS,CAACvC,MAAM,EAAEwP,MAAM,CAACtP,KAAK,CAAC,CAAA;AAChD,EAAA,IAAMwP,UAAU,GAAGD,QAAQ,GACvB3J,kBAAkB,CAACjI,IAAI,EAAE4R,QAAQ,CAACvP,KAAK,CAAC,GACxC+B,SAAS,CAAA;AACb,EAAA,OAAO0K,oBAAoB,CAAC,YAAA;AAAA,IAAA,OAAM+C,UAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAElL,KAAK,CAAA;GAAC,CAAA,CAAA;AACtD,CAAA;AAEA,SAASmL,sBAAsBA,CAC7BH,MAA2B,EAC3BxP,MAAqB,EACrBnC,IAAiB,EAAA;EAEjB,IAAM4R,QAAQ,GAAGlN,SAAS,CAACvC,MAAM,EAAEwP,MAAM,CAACtP,KAAK,CAAC,CAAA;AAChD,EAAA,IAAMwP,UAAU,GAAGD,QAAQ,GACvB3J,kBAAkB,CAACjI,IAAI,EAAE4R,QAAQ,CAACvP,KAAK,CAAC,GACxC+B,SAAS,CAAA;EACb,OAAOkM,gBAAW,CAAC,YAAK;AACtB,IAAA,IAAMyB,EAAE,GAAGF,UAAU,IAAVA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAElL,KAAK,CAAA;IAC5B,OAAOuD,KAAK,CAACC,OAAO,CAAC4H,EAAE,CAAC,GAAGA,EAAE,CAAC3O,QAAQ,CAACuO,MAAM,CAAChL,KAAK,CAAC,GAAGoL,EAAE,KAAKJ,MAAM,CAAChL,KAAK,CAAA;AAC5E,GAAC,CAAC,CAAA;AACJ,CAAA;AAEgB,SAAAqL,gBAAgBA,CAC9BzF,IAAsB,EACtBzE,OAA2B,EAAA;EAE3B,QAAQyE,IAAI,CAACnN,IAAI;IACf,KAAKX,sBAAc,CAAC0O,OAAO;AACzB,MAAA,OAAO8E,oBAAoB,CACxB1F,IAA0B,CAACW,UAAU,EACtCpF,OAAO,CACR,CAAA;IACH,KAAKrJ,sBAAc,CAACY,IAAI;MACtB,OAAOqS,iBAAiB,CAACnF,IAAsB,EAAEzE,OAAO,CAAC3F,MAAM,EAAE2F,OAAO,CAAC,CAAA;IAC3E,KAAKrJ,sBAAc,CAACuO,SAAS;MAC3B,OAAO8E,sBAAsB,CAC3BvF,IAA2B,EAC3BzE,OAAO,CAAC3F,MAAM,EACd2F,OAAO,CACR,CAAA;AACH,IAAA;MACE,OAAOkH,eAAU,CAAC5K,SAAS,CAAC,CAAA;AAC/B,GAAA;AACH,CAAA;IAEa8N,4BAA4B,GACvCC,sBAAsB,CAACH,gBAAgB,EAAC;AAEpC,SAAUG,sBAAsBA,CACpCnP,CAAwE,EAAA;EAExE,OAAO,UAACuJ,IAAI,EAAI;AACd,IAAA,IAAMjF,CAAC,GAAGF,aAAa,CAACmF,IAAI,CAAC,CAAA;AAC7B,IAAA,IAAMpE,EAAE,GAAGgI,iBAAW,CACpB,UAAC3H,GAAuB,EAAI;AAC1B,MAAA,IAAM+D,IAAI,GAAGjF,CAAC,CAACE,OAAQ,CAAA;AACvB,MAAA,OAAOxE,CAAC,CAACuJ,IAAI,EAAE/D,GAAG,CAAC,CAAA;KACpB,EACD,CAAC+D,IAAI,IAAJA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEnN,IAAI,EAAEkI,CAAC,CAAC,CAChB,CAAA;AACD,IAAA,OAAOiF,IAAI,GAAGpE,EAAE,GAAG/D,SAAS,CAAA;GAC7B,CAAA;AACH,CAAA;SAEgB8L,kBAAkBA,CAChC3H,UAA6B,EAC7BnJ,IAAyB,EACzB4Q,qBAEmC,EAAA;AAAA,EAAA,IAAAoC,mBAAA,CAAA;AAEnC,EAAA,IAAMlF,UAAU,GAAA,CAAAkF,mBAAA,GAAG7J,UAAU,CAAC8J,OAAO,KAAA,IAAA,GAAA,KAAA,CAAA,GAAlBD,mBAAA,CAAoBxP,IAAI,CAAC,UAACzD,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,CAACC,IAAI,KAAKA,IAAI,CAAA;GAAC,CAAA,CAAA;AACnE,EAAA,OAAO4Q,qBAAqB,CAAC9C,UAAU,oBAAVA,UAAU,CAAEX,IAAI,CAAC,CAAA;AAChD,CAAA;AAEgB,SAAAgE,WAAWA,CACzBzI,OAA2B,EAC3BwK,KAAuB,EAAA;EAEvB,IAAIA,KAAK,IAAI,IAAI,IAAIA,KAAK,CAACjP,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,CAAA;AACpD,EAAA,IAAMqG,SAAS,GAAG7B,YAAY,CAACC,OAAO,CAAC,CAAA;EACvC,OAAO4B,SAAS,IAAI4I,KAAK,CAAClP,QAAQ,CAACsG,SAAS,CAAC/C,KAAK,CAAC,CAAA;AACrD,CAAA;AAEM,SAAU6J,eAAeA,CAC7B1I,OAA2B,EAC3BzF,KAAkB,EAClBkG,UAA6B,EAC7BkI,eAAgC,EAAA;AAAA,EAAA,IAAA8B,mBAAA,CAAA;AAEhC,EAAA,IAAMC,cAAc,GAAG7K,qBAAqB,CAACY,UAAU,CAAC,CAAA;EACxD,OACEiK,cAAc,IACd,CAACA,cAAc,CAACC,SAAS,IACzBhC,eAAe,CAACiC,YAAY,CAC1BrQ,KAAK,EAAA,CAAAkQ,mBAAA,GACLtK,kBAAkB,CAACH,OAAO,EAAEzF,KAAK,CAACA,KAAK,CAAC,KAAxCkQ,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAA,CAA0C5L,KAAK,CAChD,CAAA;AAEL,CAAA;SAEgBsL,oBAAoBA,CAClCU,KAAa,EACbC,WAAwB,EACxBC,QAAoC,EAAA;EAEpC,IAAMC,UAAU,GAAG9H,cAAc,CAAC4H,WAAW,CAAC/J,IAAI,EAAE,UAAC1J,CAAC,EAAA;AAAA,IAAA,OAAA,MAAA,GAAYA,CAAC,GAAA,GAAA,CAAA;AAAA,GAAG,CAAC,CAAA;AACvE,EAAA,IAAM4T,QAAQ,GAAGD,UAAU,GAAGA,UAAU,GAAG,IAAI,GAAGH,KAAK,GAAG,GAAG,GAAGA,KAAK,CAAA;AACrE,EAAA,IAAMK,YAAY,GAAGlF,aAAO,CAAC,YAAK;IAChC,IAAI;MACF,OAAOmF,2BAAO,CAACF,QAAQ,CAAC,CAAA;KACzB,CAAC,OAAOG,CAAC,EAAE;AACVC,MAAAA,OAAO,CAACC,KAAK,CAACF,CAAC,CAAC,CAAA;MAChB,OAAOD,2BAAO,CAAC,MAAM,CAAC,CAAA;AACvB,KAAA;AACH,GAAC,EAAE,CAACF,QAAQ,CAAC,CAAC,CAAA;AACd,EAAA,IAAM5M,OAAO,GAAG6I,eAAU,EAAE,CAAA;AAC5B,EAAA,IAAMqE,WAAW,GAAG9L,YAAM,EAAc,CAAA;EACxC,IAAA+L,YAAA,GAAcC,gBAAW,CAAC,YAAA;MAAA,OACxBC,sBAAiB,CAAC,YAAK;AACrB,QAAA,IAAMC,CAAC,GAAGJ,WAAW,CAAC7L,OAAO,CAAA;AAC7B,QAAA,IAAIiM,CAAC,EAAE;UACLJ,WAAW,CAAC7L,OAAO,GAAGpD,SAAS,CAAA;AAC/BsP,UAAAA,4BAAuB,CAAC,YAAK;AAC3BD,YAAAA,CAAC,EAAE,CAAA;YACHJ,WAAW,CAAC7L,OAAO,GAAGiM,CAAC,CAAA;AACzB,WAAC,CAAC,CAAA;AACH,SAAA;AACH,OAAC,CAAC,CAAA;KACH,CAAA;AAXM7M,IAAAA,GAAG,GAAA0M,YAAA,CAAA,CAAA,CAAA,CAAA;AAYVK,EAAAA,eAAS,CAAC,YAAK;IAAA,IAGEC,KAAK,GAALA,SAAAA,KAAKA,GAAA;MAAA,IAAA;AAClB,QAAA,IAAAC,YAAA,GAAuCjN,GAAG,CAACY,OAAO;AAA3CsM,UAAAA,OAAO,GAAAD,YAAA,CAAA,CAAA,CAAA;AAAEE,UAAAA,mBAAmB,GAAAF,YAAA,CAAA,CAAA,CAAA,CAAA;QAAgB,IAAAG,KAAA,GAAAC,gBAAA,CAC/C,YAAA;UACF,IAAMC,WAAW,GAAGrB,QAAQ,GACxBsB,mBAAc,CAACL,OAAO,EAAEjB,QAAQ,CAAC,GACjCzO,SAAS,CAAA;UAAC,OAAAgQ,OAAA,CAAAC,OAAA,CACQrB,YAAY,CAACsB,QAAQ,CACzCnF,gBAAgB,CAACyD,WAAW,CAAC5S,IAAI,EAAE8T,OAAO,CAAC,EAC3CI,WAAW,CACZ,CAAA,CAAAK,IAAA,CAAA,UAAAC,qBAAA,EAAA;YAHDrO,OAAO,CAACQ,KAAK,GAAA6N,qBAGZ,CAAA;AAAC,WAAA,CAAA,CAAA;SACH,EAAA,UAAAC,UAAA,EAAAC,OAAA,EAAA;AACCX,UAAAA,mBAAmB,EAAE,CAAA;UAAC,IAAAU,UAAA,QAAAC,OAAA,CAAA;AAAA,UAAA,OAAAA,OAAA,CAAA;AAAA,SAAA,CAAA,CAAA;AAAA,QAAA,OAAAN,OAAA,CAAAC,OAAA,CAAAL,KAAA,IAAAA,KAAA,CAAAO,IAAA,GAAAP,KAAA,CAAAO,IAAA,CAAA,YAAA,EAAA,CAAA,GAAA,KAAA,CAAA,CAAA,CAAA;AAE1B,OAAC,QAAArB,CAAA,EAAA;AAAA,QAAA,OAAAkB,OAAA,CAAAO,MAAA,CAAAzB,CAAA,CAAA,CAAA;AAAA,OAAA;AAAA,KAAA,CAAA;IAfDG,WAAW,CAAC7L,OAAO,GAAGoM,KAAK,CAAA;AAC3BA,IAAAA,KAAK,EAAE,CAAA;IAeP,OAAO,YAAA;MAAA,OAAMhN,GAAG,CAACY,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAAA,KAAA,CAAA;AACnC,GAAC,EAAE,CAACwL,YAAY,CAAC,CAAC,CAAA;AAClB,EAAA,OAAO7M,OAAO,CAAA;AAChB,CAAA;AAEgB,SAAAyO,gBAAgBA,CAC9BC,OAA8B,EAC9BtM,UAA6B,EAAA;EAE7B,IAAM8I,YAAY,GAAGnB,kBAAkB,CACrC3H,UAAU,EACV/J,2BAAmB,CAACsW,KAAK,EACzBD,OAAO,CACR,CAAA;AACD,EAAA,OAAO1E,iBAAW,CAChB,UAAC3H,GAAG,EAAI;AACN,IAAA,IAAI6I,YAAY,EAAE;MAChB,OAAOA,YAAY,CAAC7I,GAAG,CAAC,CAAA;AACzB,KAAA;IACD,OAAOwG,eAAU,CAAC,IAAI,CAAC,CAAA;AACzB,GAAC,EACD,CAACqC,YAAY,CAAC,CACf,CAAA;AACH;;ACjWM,SAAU0D,iBAAiBA,CAC/BxM,UAA6B,EAAA;EAAA,IAAAyM,qBAAA,EAAAC,sBAAA,CAAA;EAM7B,IAAMC,cAAc,GAAGhW,uBAAuB,CAACqJ,UAAU,CAAC,GAAA,CAAAyM,qBAAA,GAAAC,CAAAA,sBAAA,GACtD1M,UAAU,CAAC4M,UAAU,KAArBF,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAuBnU,GAAG,CAAC,UAAC3B,CAAC,EAAA;IAAA,OAAKA,CAAC,CAACC,IAAI,CAAA;AAAA,GAAA,CAAC,KAAA4V,IAAAA,GAAAA,qBAAA,GAAI,EAAE,GAC/C,IAAI,CAAA;AACR,EAAA,IAAM1N,CAAC,GAAGF,aAAa,CAACmB,UAAmC,CAAC,CAAA;EAC5D,OAAO4H,iBAAW,CAChB,UAAChK,OAAO,EAAEiP,MAAM,EAAEC,YAAY,EAAI;AAAA,IAAA,IAAAC,cAAA,CAAA;IAChC,IAAI,CAACJ,cAAc,EAAE,OAAA;AACrB,IAAA,IAAMK,EAAE,GAAGjO,CAAC,CAACE,OAAO,CAAA;IAEpBgO,yBAAoB,CAACrP,OAAO,EAAE,YAAA;AAAA,MAAA,OAAMA,OAAO,CAACsP,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;KAAC,CAAA,CAAA;AACpEC,IAAAA,iBAAY,CACVvP,OAAO,EACP,UAAC1E,CAAC,EAAA;AAAA,MAAA,OACA,CAAC2T,MAAM,IACPG,EAAE,CAACvR,QAAQ,KACVvC,CAAC,IAAI,IAAI,IAAIA,CAAC,KAAK,EAAE,IAAKyI,KAAK,CAACC,OAAO,CAAC1I,CAAC,CAAC,IAAIA,CAAC,CAAC4B,MAAM,KAAK,CAAE,CAAC,GAC3D,sBAAsB,GACtB,IAAI,CAAA;AAAA,KAAA,EACV,UAAU,CACX,CAAA;AACD,IAAA,CAAA,CAAAiS,cAAA,GAACC,EAAE,CAACJ,UAAU,YAAAG,cAAA,GAAI,EAAE,EAAE3R,OAAO,CAAC,UAACxE,CAAC,EAAEgM,CAAC,EAAI;MACrC,QAAQhM,CAAC,CAACC,IAAI;QACZ,KAAKJ,qBAAa,CAACmO,OAAO;UACxB,OAAOwI,mBAAmB,CACxBxP,OAAO,EACPkP,YAAY,EACZlW,CAAqB,EACrBiW,MAAM,EACNjK,CAAC,CACF,CAAA;QACH,KAAKnM,qBAAa,CAAC4W,IAAI;AACrB,UAAA,OAAOC,gBAAgB,CAAC1P,OAAO,EAAEhH,CAAkB,EAAEgM,CAAC,CAAC,CAAA;AAC1D,OAAA;AACH,KAAC,CAAC,CAAA;GACH,EACD+J,cAAc,GAAGA,cAAc,GAAG,CAAC,IAAI,CAAC,CACzC,CAAA;AACH,CAAA;AAEA,SAASS,mBAAmBA,CAC1BxP,OAAqB,EACrB2B,OAA2B,EAC3ByE,IAAsB,EACtB6I,MAAe,EACfjK,CAAS,EAAA;EAET,IAAM2K,QAAQ,GAAG7D,oBAAoB,CAAC1F,IAAI,CAACW,UAAU,EAAEpF,OAAO,CAAC,CAAA;AAC/DmH,EAAAA,qBAAgB,CACd,YAAA;AAAA,IAAA,OAAM,CAACmG,MAAM,EAAEU,QAAQ,CAACnP,KAAK,CAAC,CAAA;AAAA,GAAA,EAC9B,UAAAiI,IAAA,EAAA;IAAA,IAAEwG,MAAM,GAAAxG,IAAA,CAAA,CAAA,CAAA;AAAEmH,MAAAA,GAAG,GAAAnH,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,OAAMzI,OAAO,CAACsP,QAAQ,CAAC,SAAS,GAAGtK,CAAC,EAAE,CAACiK,MAAM,GAAGW,GAAG,GAAG,IAAI,CAAC,CAAA;AAAA,GAAA,EACxE,IAAI,CACL,CAAA;AACH,CAAA;AAEA,SAASF,gBAAgBA,CACvB1P,OAA2C,EAC3C6P,EAAiB,EACjB7K,CAAS,EAAA;AAET,EAAA,IAAI8K,cAAsB,CAAA;EAC1B,IAAID,EAAE,CAACE,SAAS,EAAE;IAChBD,cAAc,GAAGL,IAAI,CAACO,KAAK,CAACH,EAAE,CAACE,SAAS,CAAC,CAAA;AAC1C,GAAA,MAAM;AACL,IAAA,IAAME,OAAO,GAAG,IAAIR,IAAI,EAAE,CAAA;IAC1BK,cAAc,GAAGL,IAAI,CAACS,GAAG,CACvBD,OAAO,CAACE,WAAW,EAAE,EACrBF,OAAO,CAACG,QAAQ,EAAE,EAClBH,OAAO,CAACI,OAAO,EAAE,CAClB,CAAA;IACD,IAAIR,EAAE,CAACS,eAAe,EAAE;AACtBR,MAAAA,cAAc,IAAID,EAAE,CAACS,eAAe,GAAG,QAAQ,CAAA;AAChD,KAAA;AACF,GAAA;AACDf,EAAAA,iBAAY,CACVvP,OAAO,EACP,UAAC1E,CAAC,EAAI;AACJ,IAAA,IAAIA,CAAC,EAAE;AACL,MAAA,IAAMiV,OAAO,GAAGd,IAAI,CAACO,KAAK,CAAC1U,CAAC,CAAC,CAAA;MAC7B,IAAMkV,QAAQ,GAAGX,EAAE,CAACY,UAAU,KAAK3X,sBAAc,CAAC4X,QAAQ,CAAA;MAC1D,IAAIF,QAAQ,GAAGD,OAAO,GAAGT,cAAc,GAAGS,OAAO,GAAGT,cAAc,EAAE;AAClE,QAAA,OAAA,mBAAA,IAA2BU,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAI,GAAA,GAAA,GAAA,IAAIf,IAAI,CAClEK,cAAc,CACf,CAACa,YAAY,EAAE,CAAA;AACjB,OAAA;AACF,KAAA;AACD,IAAA,OAAO,IAAI,CAAA;AACb,GAAC,EACD,MAAM,GAAG3L,CAAC,CACX,CAAA;AACH;;ACjHO,IAAM4L,sBAAsB,GAAoB;AACrDrE,EAAAA,YAAY,EAAEsE,cAAc;AAC5BC,EAAAA,SAAS,EAAEC,gBAAAA;EACZ;AAEe,SAAAF,cAAcA,CAAChU,CAAc,EAAE2D,KAAU,EAAA;EACvD,IAAI3D,CAAC,CAACT,UAAU,EACd,OAAO2H,KAAK,CAACC,OAAO,CAACxD,KAAK,CAAC,GAAGA,KAAK,CAACtD,MAAM,KAAK,CAAC,GAAGsD,KAAK,IAAI,IAAI,CAAA;EAClE,QAAQ3D,CAAC,CAAC5D,IAAI;IACZ,KAAKd,iBAAS,CAAC6C,MAAM;AACnB,MAAA,OAAO,CAACwF,KAAK,CAAA;AACf,IAAA;MACE,OAAOA,KAAK,IAAI,IAAI,CAAA;AACvB,GAAA;AACH,CAAA;AAEgB,SAAAuQ,gBAAgBA,CAC9BlU,CAAc,EACd2D,KAAU,EAAA;EAEV,QAAQ3D,CAAC,CAAC5D,IAAI;IACZ,KAAKd,iBAAS,CAAC6Y,QAAQ;MACrB,OAAO,IAAIvB,IAAI,CAACjP,KAAK,CAAC,CAACyQ,kBAAkB,EAAE,CAAA;IAC7C,KAAK9Y,iBAAS,CAACsX,IAAI;MACjB,OAAO,IAAIA,IAAI,CAACjP,KAAK,CAAC,CAACyQ,kBAAkB,EAAE,CAAA;AAC7C,IAAA;MACE,OAAOzQ,KAAK,IAAI,IAAI,GAAGA,KAAK,CAAC0Q,QAAQ,EAAE,GAAGjT,SAAS,CAAA;AACtD,GAAA;AACH;;;AC0DO,IAAMkT,uBAAuB,GAAG,EAAC;AACjC,IAAMC,qBAAqB,GAAG,KAAI;AAyD7BC,2BAGX;AAHD,CAAA,UAAYA,SAAS,EAAA;EACnBA,SAAA,CAAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;EACPA,SAAA,CAAAA,SAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACP,CAAC,EAHWA,iBAAS,KAATA,iBAAS,GAGpB,EAAA,CAAA,CAAA,CAAA;AAuFK,SAAUC,kBAAkBA,CAChClP,UAA6B,EAC7BpG,MAAqB,EACrBuV,QAAsB,EACtBtX,OAAA,EAAkC;AAAA,EAAA,IAAAuX,oBAAA,EAAAC,qBAAA,EAAAC,qBAAA,CAAA;AAAA,EAAA,IAAlCzX,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAgC,EAAE,CAAA;AAAA,GAAA;AAElC,EAAA,IAAM0X,SAAS,GAAAH,CAAAA,oBAAA,GAAGvX,OAAO,CAAC2X,WAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAnB3X,OAAO,CAAC2X,WAAW,CAAGxP,UAAU,CAAC,KAAAoP,IAAAA,GAAAA,oBAAA,GAAIK,gBAAgB,CAAA;EACvE,IAAMvH,eAAe,GAAAmH,CAAAA,qBAAA,GAAGxX,OAAO,CAACqQ,eAAe,KAAA,IAAA,GAAAmH,qBAAA,GAAIb,sBAAsB,CAAA;EACzE,IAAMlC,OAAO,GAAAgD,CAAAA,qBAAA,GAAGzX,OAAO,CAAC4P,qBAAqB,KAAA,IAAA,GAAA6H,qBAAA,GAAI3F,4BAA4B,CAAA;AAE7E,EAAA,IAAMjC,WAAW,GAAGgI,iBAAiB,CAAC1P,UAAU,EAAEpG,MAAM,CAAC,CAAA;EACzD,IAAM+V,eAAe,GAAG9G,uBAAuB,CAC7CyD,OAAO,EACPtM,UAAU,EACV0H,WAAW,CACZ,CAAA;EACD,IAAMkI,YAAY,GAAGpI,qBAAqB,CAAC8E,OAAO,EAAEtM,UAAU,EAAE0H,WAAW,CAAC,CAAA;AAC5E,EAAA,IAAMmI,aAAa,GAAG1H,mBAAmB,CAACmE,OAAO,EAAEtM,UAAU,CAAC,CAAA;AAC9D,EAAA,IAAM8P,aAAa,GAAGpH,mBAAmB,CAAC4D,OAAO,EAAEtM,UAAU,CAAC,CAAA;AAC9D,EAAA,IAAM+P,iBAAiB,GAAGxH,yBAAyB,CAAC+D,OAAO,EAAEtM,UAAU,CAAC,CAAA;AACxE,EAAA,IAAMgQ,YAAY,GAAG3D,gBAAgB,CAACC,OAAO,EAAEtM,UAAU,CAAC,CAAA;EAC1D,IAAMiQ,cAAc,GAAG7H,gBAAgB,CACrCkE,OAAO,EACPrW,2BAAmB,CAACia,KAAK,EACzBlQ,UAAU,CACX,CAAA;EACD,IAAMmQ,cAAc,GAAG/H,gBAAgB,CACrCkE,OAAO,EACPrW,2BAAmB,CAACma,WAAW,EAC/BpQ,UAAU,CACX,CAAA;AACD,EAAA,IAAMqQ,iBAAiB,GAAG1H,kBAAkB,CAAC2D,OAAO,EAAEtM,UAAU,CAAC,CAAA;AACjE,EAAA,IAAMsQ,aAAa,GAAG9D,iBAAiB,CAACxM,UAAU,CAAC,CAAA;EACnD,IAAMjB,CAAC,GAAGF,aAAa,CAAC;AAAEhH,IAAAA,OAAO,EAAPA,OAAO;AAAEmI,IAAAA,UAAU,EAAVA,UAAU;AAAEpG,IAAAA,MAAM,EAANA,MAAM;AAAE8N,IAAAA,WAAW,EAAXA,WAAAA;AAAW,GAAE,CAAC,CAAA;AAErE,EAAA,IAAM6I,SAAS,GAAG3I,iBAAW,CAC3B,UAAAvB,IAAA,EAAkE;AAAA,IAAA,IAAtDmK,WAAW,GAAAnK,IAAA,CAApBzI,OAAO;MAAA6S,eAAA,GAAApK,IAAA,CAAeqK,UAAU;AAAVA,MAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,eAAA,CAAA;AACtC,IAAA,IAAME,YAAY,GAAGC,yBAAoB,EAAE,CAAA;IAC3C,IAAI;MAAA,IAAAC,qBAAA,EAAAC,sBAAA,CAAA;AACF,MAAA,IAAAhJ,UAAA,GAAwD/I,CAAC,CAACE,OAAO;QAA7C1C,CAAC,GAAAuL,UAAA,CAAb9H,UAAU;QAAKnI,QAAO,GAAAiQ,UAAA,CAAPjQ,OAAO;QAAE+B,OAAM,GAAAkO,UAAA,CAANlO,MAAM;QAAE8N,YAAW,GAAAI,UAAA,CAAXJ,WAAW,CAAA;AACnD,MAAA,IAAMqJ,iBAAiB,GAAuB;AAC5CnX,QAAAA,MAAM,EAANA,OAAM;AACNsO,QAAAA,eAAe,EAAfA,eAAe;AACfzQ,QAAAA,IAAI,EAAE+Y,WAAW;AACjBlQ,QAAAA,IAAI,EAAEoQ,UAAAA;OACP,CAAA;AACD,MAAA,IAAMM,eAAe,GAAGnB,aAAa,CAACkB,iBAAiB,CAAC,CAAA;AACxD,MAAA,IAAME,eAAe,GAAGnB,aAAa,CAACiB,iBAAiB,CAAC,CAAA;AACxD,MAAA,IAAMG,cAAc,GAAGtB,YAAY,CAACmB,iBAAiB,CAAC,CAAA;AACtD,MAAA,IAAMI,cAAc,GAAGd,iBAAiB,CAACU,iBAAiB,CAAC,CAAA;AAC3D,MAAA,IAAMK,WAAW,GAAGnB,cAAc,CAACc,iBAAiB,CAAC,CAAC3S,KAAK,CAAA;AAC3D,MAAA,IAAMiT,WAAW,GAAGlB,cAAc,CAACY,iBAAiB,CAAC,CAAC3S,KAAK,CAAA;AAC3D,MAAA,IAAMkT,SAAS,GAAGtB,YAAY,CAACe,iBAAiB,CAAC,CAAA;AACjD,MAAA,IAAMQ,OAAO,GAAGL,cAAc,CAACjS,OAAO,CAACb,KAAK,CAAA;MAC5C,IAAMoT,UAAU,GAAG/K,eAAU,CAAyB,YAAA;QAAA,OACpD8K,OAAO,IAAI,IAAI,GACX;AACEA,UAAAA,OAAO,EAAPA,OAAO;AACPE,UAAAA,OAAO,EAAEF,OAAAA;AACV,SAAA,GACD1V,SAAS,CAAA;OACd,CAAA,CAAA;AACD6K,MAAAA,qBAAgB,CACd,YAAA;QAAA,OAAMwK,cAAc,CAAC9S,KAAK,CAAA;OAC1B,EAAA,UAACmT,OAAO,EAAI;QACV,IAAIA,OAAO,IAAI,IAAI,EACjBC,UAAU,CAACE,QAAQ,CAAC,UAAC/S,EAAE,EAAA;UAAA,OAAM;AAC3B4S,YAAAA,OAAO,EAAPA,OAAO;AACPE,YAAAA,OAAO,EAAE9S,EAAE,GAAGA,EAAE,CAAC8S,OAAO,GAAGF,OAAAA;WAC5B,CAAA;AAAA,SAAC,CAAC,CAAA;AACP,OAAC,CACF,CAAA;AAED,MAAA,IAAMI,cAAc,GAAG5B,iBAAiB,CAACgB,iBAAiB,CAAC,CAAA;AAC3D,MAAA,IAAMa,mBAAmB,GAAGjC,eAAe,CAACoB,iBAAiB,CAAC,CAAA;AAC9D,MAAA,IAAAc,eAAA,GAAqDC,cAAc,CACjEpK,YAAW,EACXqJ,iBAAiB,CAClB;AAHMgB,QAAAA,aAAa,GAAAF,eAAA,CAAA,CAAA,CAAA;AAAEjU,QAAAA,OAAO,GAAAiU,eAAA,CAAA,CAAA,CAAA;AAAEG,QAAAA,kBAAkB,GAAAH,eAAA,CAAA,CAAA,CAAA,CAAA;AAIjDnL,MAAAA,qBAAgB,CACd,YAAA;QAAA,OAAM,CACJ8K,UAAU,CAACpT,KAAK,EAChBwT,mBAAmB,CAACxT,KAAK,EACzBR,OAAO,EACPjH,uBAAuB,CAACqJ,UAAU,CAAC,IAAIA,UAAU,CAACiS,eAAe,EACjEF,aAAa,IAAbA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAa,CAAEG,MAAM,CACtB,CAAA;OACD,EAAA,UAAAC,KAAA,EAAwC;QAAA,IAAtCC,EAAE,GAAAD,KAAA,CAAA,CAAA,CAAA;AAAE1E,UAAAA,EAAE,GAAA0E,KAAA,CAAA,CAAA,CAAA;AAAEE,UAAAA,EAAE,GAAAF,KAAA,CAAA,CAAA,CAAA;AAAEG,UAAAA,SAAS,GAAAH,KAAA,CAAA,CAAA,CAAA;AAAEI,UAAAA,UAAU,GAAAJ,KAAA,CAAA,CAAA,CAAA,CAAA;QACjC,IAAIC,EAAE,IAAIC,EAAE,IAAID,EAAE,CAACb,OAAO,KAAKa,EAAE,CAACX,OAAO,EAAE;AACzC,UAAA,IAAI,CAACW,EAAE,CAACb,OAAO,EAAE;AACf,YAAA,IAAI1Z,QAAO,CAAC2a,WAAW,IAAI,CAACF,SAAS,EAAE;cACrCD,EAAE,CAACjU,KAAK,GAAGvC,SAAS,CAAA;AACrB,aAAA;AACF,WAAA,MAAM,IAAIwW,EAAE,CAACjU,KAAK,IAAI,IAAI,EAAE;YAC3BiU,EAAE,CAACjU,KAAK,GAAGqP,EAAE,CAAA;AACd,WAAA;AACF,SAAA;AACD,QAAA,IAAI8E,UAAU,IAAIR,aAAa,YAAbA,aAAa,CAAEG,MAAM,EAAE;AACvCH,UAAAA,aAAa,CAAC3T,KAAK,GAAG,EAAE,CAAA;AACzB,SAAA;OACF,EACD,IAAI,CACL,CAAA;MACD,IAAMqU,SAAS,GAAGlM,oBAAoB,CAAqB,YAAA;AAAA,QAAA,IAAAmM,kBAAA,CAAA;QAAA,OAAO;AAChE7F,UAAAA,MAAM,EAAEhV,QAAO,CAACgV,MAAM,IAAI,GAAA6F,kBAAA,GAAClB,UAAU,CAAC5X,MAAM,KAAjB8Y,IAAAA,IAAAA,kBAAA,CAAmBjB,OAAO,CAACrT,KAAK,CAAA;AAC3De,UAAAA,QAAQ,EAAEtH,QAAO,CAACsH,QAAQ,IAAI6R,eAAe,CAAC5S,KAAK;AACnDuU,UAAAA,QAAQ,EAAE9a,QAAO,CAAC8a,QAAQ,IAAI1B,eAAe,CAAC7S,KAAAA;SAC/C,CAAA;OAAC,CAAC,CAACA,KAAK,CAAA;AACTkS,MAAAA,aAAa,CACX1S,OAAO,IAAA,IAAA,GAAPA,OAAO,GAAIgV,eAAU,CAAC,IAAI,CAAC,EAC3B,CAAC,CAACH,SAAS,CAAC5F,MAAM,EAClBkE,iBAAiB,CAClB,CAAA;AACD,MAAA,IAAM8B,YAAY,GAAAla,QAAA,KAA8Bd,QAAO,EAAK4a,SAAS,CAAE,CAAA;AAEvErH,MAAAA,eAAS,CAAC,YAAK;AACb,QAAA,IAAIxN,OAAO,IAAI,OAAO6U,SAAS,CAACE,QAAQ,KAAK,SAAS,EACpD/U,OAAO,CAAC+U,QAAQ,GAAGF,SAAS,CAACE,QAAQ,CAAA;OACxC,EAAE,CAAC/U,OAAO,EAAE6U,SAAS,CAACE,QAAQ,CAAC,CAAC,CAAA;AACjC,MAAA,IAAIZ,aAAa,IAAA,IAAA,IAAbA,aAAa,CAAEG,MAAM,EAAE,oBAAOY,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,OAAK,CAAA;AAEvC,MAAA,IAAMC,UAAU,GAAA,CAAApC,qBAAA,GAAA,CAAAC,sBAAA,GACd9Q,UAAU,CAACiT,UAAU,qBAArBnC,sBAAA,CAAuBvY,GAAG,CAAC,UAAC3B,CAAC,EAAA;QAAA,OAC3BuY,QAAQ,CAAC+D,eAAe,CAAC;AAAEC,UAAAA,SAAS,EAAEvc,CAAAA;AAAC,SAAE,CAAC,CAAA;OAC3C,CAAA,KAAA,IAAA,GAAAia,qBAAA,GAAI,EAAE,CAAA;MACT,IAAMuC,gBAAgB,GAAGC,mBAAmB,CAAC;AAC3CrT,QAAAA,UAAU,EAAEzD,CAAC;AACb4S,QAAAA,QAAQ,EAARA,QAAQ;AACRmE,QAAAA,WAAW,EAAE,SAAAA,WAAAA,CAACC,CAAC,EAAEvS,KAAK,EAAEV,IAAI,EAAA;AAAA,UAAA,oBAC1BwS,yBAAA,CAAAC,aAAA,CAACS,eAAe,EAAA;AACdC,YAAAA,GAAG,EAAEF,CAAE;YACP3V,OAAO,EAAEoU,kBAAkB,CAACva,IAAK;YACjCmC,MAAM,EAAEoY,kBAAkB,CAACpY,MAAO;AAClCoG,YAAAA,UAAU,EAAE8C,mBAAmB,CAACvG,CAAC,EAAEyE,KAAK,CAAE;AAC1C0P,YAAAA,UAAU,EACRpQ,IAAI,GAAA9F,EAAAA,CAAAA,MAAA,CACIwX,kBAAkB,CAAC1R,IAAI,EAAKA,IAAI,CACpC0R,GAAAA,kBAAkB,CAAC1R,IACxB;AACD6O,YAAAA,QAAQ,EAAEA,QAAS;AACnBtX,YAAAA,OAAO,EAAEgb,YAAAA;AAAa,YACtB,CAAA;SACH;AACDa,QAAAA,eAAe,EAAEnE,SAAS;AAC1BoE,QAAAA,WAAW,EAAElB,SAAS;AACtBpI,QAAAA,WAAW,EAAE2H,kBAAkB;AAC/BpU,QAAAA,OAAO,EAAEuT,cAAc,IAAdA,IAAAA,GAAAA,cAAc,GAAIvT,OAAO;AAClC0T,QAAAA,SAAS,EAATA,SAAS;AACT5J,QAAAA,WAAW,EAAXA,YAAW;AACXyJ,QAAAA,cAAc,EAAdA,cAAc;AACdyC,QAAAA,KAAK,EAAExC,WAAW;AAClBO,QAAAA,cAAc,EAAdA,cAAAA;AACD,OAAA,CAAC,CAAA;MACF,IAAMkC,eAAe,GAAG1E,QAAQ,CAAC2E,YAAY,CAAAnb,QAAA,KACxCya,gBAAgB,EAAA;AACnBH,QAAAA,UAAU,EAAVA,UAAU;QACVjQ,SAAS,EAAEzG,CAAC,CAAC+F,WAAW;AACxBsR,QAAAA,KAAK,EAAEvC,WAAAA;AAAW,OAAA,CACnB,CAAC,CAAA;AACF,MAAA,OAAOlC,QAAQ,CAAC4E,gBAAgB,CAAApb,QAAA,CAAA;AAAG6Y,QAAAA,UAAU,EAAVA,UAAAA;OAAeqC,EAAAA,eAAe,CAAE,CAAC,CAAA;AACrE,KAAA,SAAS;AACRlD,MAAAA,YAAY,EAAE,CAAA;AACf,KAAA;AACH,GAAC,EACD,CACE5R,CAAC,EACDwQ,SAAS,EACTK,YAAY,EACZD,eAAe,EACfE,aAAa,EACbC,aAAa,EACbG,cAAc,EACdE,cAAc,EACdJ,iBAAiB,EACjBC,YAAY,EACZK,iBAAiB,EACjBC,aAAa,EACbnB,QAAQ,EACRjH,eAAe,CAChB,CACF,CAAA;EACAqI,SAAiB,CAAC9X,WAAW,GAAG,eAAe,CAAA;AAChD,EAAA,OAAO8X,SAAS,CAAA;AAClB,CAAA;AACgB,SAAAb,iBAAiBA,CAC/BnT,CAAoB,EACpB3C,MAAqB,EAAA;EAErB,IAAMuG,SAAS,GAAGpJ,yBAAyB,CAACwF,CAAC,CAAC,GAC1CA,CAAC,CAAC5C,aAAa,GACfhD,uBAAuB,CAAC4F,CAAC,CAAC,GACxBA,CAAC,CAACzC,KAAK,GACP+B,SAAS,CAAA;EACf,OAAOsE,SAAS,GAAGhE,SAAS,CAACvC,MAAM,EAAEuG,SAAS,CAAC,GAAGtE,SAAS,CAAA;AAC7D,CAAA;AACgB,SAAAiW,cAAcA,CAC5BpK,WAAoC,EACpCsM,aAAiC,EAAA;AAAA,EAAA,IAAAC,qBAAA,CAAA;AAEjC,EAAA,IAAQxc,IAAI,GAAWuc,aAAa,CAA5Bvc,IAAI;IAAE6I,IAAI,GAAK0T,aAAa,CAAtB1T,IAAI,CAAA;AAClB,EAAA,IAAMyR,aAAa,GAAGta,IAAI,CAAC8I,aAAa,CAACD,IAAI,CAAC,CAAA;AAC9C,EAAA,IAAMW,SAAS,GAAGyG,WAAW,GAAA,EAAA,CAAAlN,MAAA,CAAO8F,IAAI,EAAA,CAAEoH,WAAW,CAAC5N,KAAK,CAAA,CAAA,GAAIwG,IAAI,CAAA;AACnE,EAAA,IAAM4T,YAAY,GAChBxM,WAAW,IAAIqK,aAAa,GAAA,CAAAkC,qBAAA,GACxBlC,aAAa,CAACnY,MAAM,KAAA,IAAA,GAAA,KAAA,CAAA,GAApBqa,qBAAA,CAAuBvM,WAAW,CAAC5N,KAAK,CAAC,GACzC+B,SAAS,CAAA;EACf,OAAO,CACLkW,aAAa,EACbmC,YAAY,EACZxM,WAAW,GAAA/O,QAAA,CAAA,EAAA,EAEFqb,aAAa,EAAA;AAChB1T,IAAAA,IAAI,EAAEW,SAAS;IACfrH,MAAM,EAAEsB,eAAe,CAACwM,WAAW,CAAC,GAChCA,WAAW,CAAC3N,QAAQ,GACpBia,aAAa,CAACpa,MAAAA;AAAM,GAAA,CAAA,GAE1Boa,aAAa,CAClB,CAAA;AACH,CAAA;AAEgB,SAAAR,eAAeA,CAAAW,KAAA,EAAA;EAAA,IAAAC,OAAA,GAAAC,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAC7BrU,UAAU,GAAAmU,KAAA,CAAVnU,UAAU;MACVpG,MAAM,GAAAua,KAAA,CAANva,MAAM;MACNuV,QAAQ,GAAAgF,KAAA,CAARhF,QAAQ;MACRtX,OAAO,GAAAsc,KAAA,CAAPtc,OAAO;MACP+F,OAAO,GAAAuW,KAAA,CAAPvW,OAAO;MACP8S,UAAU,GAAAyD,KAAA,CAAVzD,UAAU,CAAA;IASV,IAAM4D,MAAM,GAAGpF,kBAAkB,CAAClP,UAAU,EAAEpG,MAAM,EAAEuV,QAAQ,EAAEtX,OAAO,CAAC,CAAA;AACxE,IAAA,oBAAOib,yBAAA,CAAAC,aAAA,CAACuB,MAAM,EAAA;AAAC1W,MAAAA,OAAO,EAAEA,OAAQ;AAAC8S,MAAAA,UAAU,EAAEA,UAAAA;AAAW,MAAG,CAAA;AAAC,GAAA,SAAA;IAAA0D,OAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAG9D,SAASG,UAAUA,CACjBvU,UAAqC,EACrCsT,WAA0B,EAC1B7b,IAAiB,EACjBuL,SAAoC,EACpC4Q,KAAsC,EAAA;EAAA,IAAApO,oBAAA,EAAAgP,qBAAA,CAAA;EAEtC,OAAO;IACLza,QAAQ,EAAA,CAAAyL,oBAAA,GAAExF,UAAU,CAACjG,QAAQ,KAAA,IAAA,GAAAyL,oBAAA,GAAI,EAAE;AACnC8N,IAAAA,WAAW,EAAXA,WAAW;IACX9V,aAAa,EAAA,CAAAgX,qBAAA,GAAExU,UAAU,CAAC8E,YAAY,KAAA,IAAA,GAAA0P,qBAAA,GAAI;AAAE3d,MAAAA,IAAI,EAAE,UAAA;KAAY;AAC9DmM,IAAAA,SAAS,EAAE2D,EAAE,CAAC3D,SAAS,CAAC;AACxB4Q,IAAAA,KAAK,EAALA,KAAAA;GACD,CAAA;AACH,CAAA;AAEM,SAAUnE,gBAAgBA,CAAAgF,KAAA,EASb;EAAA,IAAAC,qBAAA,EAAAC,cAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,CAAA;AAAA,EAAA,IARjB9U,UAAU,GAAAyU,KAAA,CAAVzU,UAAU;IACVlG,KAAK,GAAA2a,KAAA,CAAL3a,KAAK;IACL8D,OAAO,GAAA6W,KAAA,CAAP7W,OAAO;IACP/F,OAAO,GAAA4c,KAAA,CAAP5c,OAAO;IACPkd,eAAe,GAAAN,KAAA,CAAfM,eAAe;IACfnB,KAAK,GAAAa,KAAA,CAALb,KAAK;IACLjC,cAAc,GAAA8C,KAAA,CAAd9C,cAAc;AACXqD,IAAAA,KAAK,GAAAC,6BAAA,CAAAR,KAAA,EAAAS,WAAA,CAAA,CAAA;AAER,EAAA,IAAMlS,SAAS,GAAG2D,EAAE,CAAC3G,UAAU,CAACqC,UAAU,CAAC,CAAA;AAC3C,EAAA,IAAM5G,QAAQ,GAAG,CAAC,CAACuE,UAAU,CAACvE,QAAQ,CAAA;EACtC,IAAM0Z,YAAY,GAChB,CAAA,CAAAT,qBAAA,GAAA,CAAAC,cAAA,GAAC7a,KAAK,CAACjC,OAAO,KAAb8c,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAA,CAAe7Z,MAAM,KAAA,IAAA,GAAA4Z,qBAAA,GAAI,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG5a,KAAK,CAACjC,OAAO,CAAA;AAC3D,EAAA,IAAMud,OAAO,GAAA,CAAAR,qBAAA,GAAGjD,cAAc,IAAA,IAAA,GAAA,KAAA,CAAA,GAAdA,cAAc,CAAEvT,KAAK,KAAA,IAAA,GAAAwW,qBAAA,GAAI,EAAE,CAAA;AAC3C,EAAA,OAAAjc,QAAA,CAAA;IACEoB,QAAQ,EAAA,CAAA8a,qBAAA,GAAE7U,UAAU,CAACjG,QAAQ,KAAA,IAAA,GAAA8a,qBAAA,GAAI,EAAE;AACnCjX,IAAAA,OAAO,EAAPA,OAAO;AACP9D,IAAAA,KAAK,EAALA,KAAK;AACLub,IAAAA,EAAE,EAAE,GAAG,GAAGzX,OAAO,CAAC0X,QAAQ;AAC1Bzd,IAAAA,OAAO,EACLsd,YAAY,IAAIC,OAAO,CAACta,MAAM,GAAG,CAAC,GAC9Bqa,YAAY,CAACva,MAAM,CAAC,UAAChE,CAAC,EAAA;AAAA,MAAA,OAAKwe,OAAO,CAACva,QAAQ,CAACjE,CAAC,CAACwH,KAAK,CAAC,CAAA;AAAA,KAAA,CAAC,GACrD+W,YAAY;AAClBhW,IAAAA,QAAQ,EAAE,CAAC,CAACtH,OAAO,CAACsH,QAAQ;IAC5B3B,aAAa,EAAA,CAAAsX,qBAAA,GAAE9U,UAAU,CAACxC,aAAa,KAAA,IAAA,GAAAsX,qBAAA,GAAI;AAAEje,MAAAA,IAAI,EAAE,UAAA;KAAY;AAC/D4E,IAAAA,QAAQ,EAARA,QAAQ;AACRoR,IAAAA,MAAM,EAAE,CAAC,CAAChV,OAAO,CAACgV,MAAM;AACxB7J,IAAAA,SAAS,EAATA,SAAS;AACT4Q,IAAAA,KAAK,EAALA,KAAAA;AAAK,GAAA,EACFoB,KAAK,EAAA;IACRO,YAAY,EAAER,eAAe,GACzB,YAAA;AAAA,MAAA,OACES,iBAAiB,CACf5X,OAAO,EACP9D,KAAK,EACL2B,QAAQ,EACRmY,KAAK,EACL5Q,SAAS,EACT+R,eAAe,CAChB,CAAA;KACHlZ,GAAAA,SAAAA;AAAS,GAAA,CAAA,CAAA;AAEjB,CAAA;AAEgB,SAAA2Z,iBAAiBA,CAC/BC,YAA+C,EAC/C3b,KAAkB,EAClB2B,QAAiB,EACjBmY,KAAgC,EAChC5Q,SAA6B,EAC7B0S,cAA+C,EAAA;EAAA,IAAA3Y,kBAAA,EAAA4Y,qBAAA,CAAA;AAE/C,EAAA,IAAMC,IAAI,GAAA,CAAA7Y,kBAAA,GAAGjD,KAAK,CAACrB,WAAW,KAAA,IAAA,GAAAsE,kBAAA,GAAIjD,KAAK,CAACA,KAAK,CAAA;EAC7C,IAAM+b,KAAK,GAAAF,CAAAA,qBAAA,GAAGF,YAAY,CAAC7U,QAAQ,KAAA,IAAA,GAAA+U,qBAAA,GAAI,EAAE,CAAA;EACzC,OAAO;AACLF,IAAAA,YAAY,EAAZA,YAAY;IACZK,YAAY,EAAED,KAAK,CAAC/a,MAAM;AAC1BW,IAAAA,QAAQ,EAARA,QAAQ;AACRsa,IAAAA,SAAS,EAAE;AACT7Q,MAAAA,QAAQ,EAAE,KAAK;MACfE,UAAU,EAAE,MAAM,GAAGwQ,IAAI;MACzBzQ,OAAO,EAAE,SAAAA,OAAA,GAAA;QAAA,OAAM6Q,eAAU,CAACP,YAAY,EAAExZ,oBAAoB,CAACnC,KAAK,CAAC,CAAC,CAAA;AAAA,OAAA;KACrE;IACDmc,UAAU,EAAE,SAAAA,UAAAA,CAACrT,CAAC,EAAA;AAAA,MAAA,OAAKiT,KAAK,CAACjT,CAAC,CAAC,CAAC0S,QAAQ,CAAA;AAAA,KAAA;IACpCY,YAAY,EAAE,SAAAA,YAAAA,CAACtT,CAAS,EAAA;MAAA,OAAM;AAC5BsC,QAAAA,QAAQ,EAAE,EAAE;AACZE,QAAAA,UAAU,EAAE,QAAQ;QACpBD,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,UAAA,OAAMgR,kBAAa,CAACV,YAAY,EAAE7S,CAAC,CAAC,CAAA;AAAA,SAAA;OAC9C,CAAA;KAAC;IACF8S,aAAa,EAAE,SAAAA,aAAAA,CAAC9S,CAAC,EAAA;MAAA,OAAK8S,cAAa,CAAC9S,CAAC,CAAC,CAAA;AAAA,KAAA;AACtCI,IAAAA,SAAS,EAAE2D,EAAE,CAAC3D,SAAS,CAAC;AACxB4Q,IAAAA,KAAK,EAALA,KAAAA;GACD,CAAA;AACH,CAAA;SAsBgBP,mBAAmBA,CAAA+C,KAAA,EAad;AAAA,EAAA,IAZP7Z,CAAC,GAAA6Z,KAAA,CAAbpW,UAAU;IACVmP,QAAQ,GAAAiH,KAAA,CAARjH,QAAQ;IACKkH,aAAa,GAAAD,KAAA,CAA1B9C,WAAW;IACFY,YAAY,GAAAkC,KAAA,CAArBxY,OAAO;IACP8J,WAAW,GAAA0O,KAAA,CAAX1O,WAAW;IACX2C,WAAW,GAAA+L,KAAA,CAAX/L,WAAW;IACEiM,WAAW,GAAAF,KAAA,CAAxBzC,WAAW;IACMpE,SAAS,GAAA6G,KAAA,CAA1B1C,eAAe;IACfvC,cAAc,GAAAiF,KAAA,CAAdjF,cAAc;IACdyC,KAAK,GAAAwC,KAAA,CAALxC,KAAK;IACLtC,SAAS,GAAA8E,KAAA,CAAT9E,SAAS;IACTK,cAAc,GAAAyE,KAAA,CAAdzE,cAAc,CAAA;AAEd,EAAA,IAAIhb,uBAAuB,CAAC4F,CAAC,CAAC,EAAE;IAC9B,OAAOga,UAAU,CAACha,CAAC,CAAC,CAAA;AACrB,GAAA;AACD,EAAA,IAAIxF,yBAAyB,CAACwF,CAAC,CAAC,EAAE;IAAA,IAAAia,gBAAA,EAAAC,gBAAA,CAAA;IAChC,IAAIla,CAAC,CAAC5C,aAAa,EAAE;AAAA,MAAA,IAAA+c,eAAA,CAAA;MACnB,OAAOH,UAAU,CACfhT,WAAW,CAAChH,CAAC,CAAC5C,aAAa,EAAE4C,CAAC,CAACc,KAAK,EAAE;QACpCtD,QAAQ,EAAEwC,CAAC,CAACxC,QAAQ;QACpBgL,SAAS,EAAA,CAAA2R,eAAA,GAAEna,CAAC,CAACuI,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAd4R,eAAA,CAAgB3R,SAAAA;AAC5B,OAAA,CAAC,CACH,CAAA;AACF,KAAA;IACD,OAAO;AACL4R,MAAAA,aAAa,EAAExH,QAAQ,CAACyH,WAAW,CACjCrC,UAAU,CAAChY,CAAC,EAAE8Z,aAAa,EAAEhM,WAAW,EAAE9N,CAAC,CAAC8F,UAAU,EAAEuR,KAAK,CAAC,CAC/D;AACDiD,MAAAA,KAAK,EAAE;AACLA,QAAAA,KAAK,EAAAL,CAAAA,gBAAA,GAAElF,SAAS,IAATA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAS,CAAElT,KAAK,KAAAoY,IAAAA,GAAAA,gBAAA,GAAIja,CAAC,CAACc,KAAK;AAClC2F,QAAAA,SAAS,EAAE2D,EAAE,CAACpK,CAAC,CAACgG,UAAU,CAAC;QAC3B1L,IAAI,EAAEoY,iBAAS,CAACjY,KAAK;QACrB8f,IAAI,EAAA,CAAAL,gBAAA,GAAEla,CAAC,CAACuI,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAd2R,gBAAA,CAAgB1R,SAAAA;AACvB,OAAA;KACF,CAAA;AACF,GAAA;AACD,EAAA,IAAI5N,0BAA0B,CAACoF,CAAC,CAAC,EAAE;IAAA,IAAAwa,KAAA,EAAAC,iBAAA,CAAA;IACjC,OAAO;AACLjd,MAAAA,QAAQ,EAAEoV,QAAQ,CAAC8H,YAAY,CAAC;QAC9B7R,UAAU,EAAA,CAAA2R,KAAA,GAAAC,CAAAA,iBAAA,GAAE1F,SAAS,IAAA,IAAA,GAAA,KAAA,CAAA,GAATA,SAAS,CAAElT,KAAK,YAAA4Y,iBAAA,GAAIza,CAAC,CAACc,KAAK,YAAA0Z,KAAA,GAAIxa,CAAC,CAAC2I,QAAQ;QACrDA,QAAQ,EAAE3I,CAAC,CAAC2I,QAAQ;AACpBC,QAAAA,OAAO,EAAE,SAAAA,OAAA,GAAK,EAAG;AACjBnC,QAAAA,SAAS,EAAE2D,EAAE,CAACpK,CAAC,CAAC8F,UAAU,CAAC;AAC3BuR,QAAAA,KAAK,EAALA,KAAAA;OACD,CAAA;KACF,CAAA;AACF,GAAA;AACD,EAAA,IAAI3c,2BAA2B,CAACsF,CAAC,CAAC,EAAE;AAAA,IAAA,IAAA2a,cAAA,CAAA;IAClC,OAAO;AACLnd,MAAAA,QAAQ,EAAEoV,QAAQ,CAACgI,aAAa,CAAC;QAC/B1f,IAAI,EAAA,CAAAyf,cAAA,GAAE3a,CAAC,CAACmH,WAAW,KAAAwT,IAAAA,GAAAA,cAAA,GAAI,EAAE;AACzBlU,QAAAA,SAAS,EAAE2D,EAAE,CAACpK,CAAC,CAAC8F,UAAU,CAAC;AAC3BuR,QAAAA,KAAK,EAALA,KAAK;AACLlc,QAAAA,OAAO,EAAEyZ,cAAAA;OACV,CAAA;KACF,CAAA;AACF,GAAA;AACD,EAAA,OAAO,EAAE,CAAA;AAET,EAAA,SAASoF,UAAUA,CAACha,CAAwB,EAAE6a,SAAkB,EAAA;AAAA,IAAA,IAAAC,iBAAA,CAAA;IAC9D,IAAI,CAAC3P,WAAW,EAAE,OAAO;AAAE3N,MAAAA,QAAQ,EAAE,uBAAuB,GAAGwC,CAAC,CAACzC,KAAAA;KAAO,CAAA;IACxE,IAAI,CAACoa,YAAY,EAAE,OAAO;AAAEna,MAAAA,QAAQ,EAAE,kBAAkB,GAAGwC,CAAC,CAACzC,KAAAA;KAAO,CAAA;IACpE,IAAMkb,KAAK,GAAGzF,SAAS,CAAC;AACtBvP,MAAAA,UAAU,EAAEzD,CAAC;AACbzC,MAAAA,KAAK,EAAE4N,WAAW;AAClB2C,MAAAA,WAAW,EACT+M,SAAS,IAAI,IAAI,GAAAze,QAAA,KACR0R,WAAW,EAAA;AAAE/J,QAAAA,IAAI,KAAA9F,MAAA,CAAM6P,WAAW,CAAC/J,IAAI,GAAE8W,SAAS,CAAA,CAAA;AAAC,OAAA,CAAA,GACxD/M,WAAW;AACjBzM,MAAAA,OAAO,EACLwZ,SAAS,IAAI,IAAI,GAAGlD,YAAa,CAACtT,QAAQ,CAACwW,SAAS,CAAC,GAAGlD,YAAY;AACtErc,MAAAA,OAAO,EAAEye,WAAW;AACpB1C,MAAAA,KAAK,EAALA,KAAK;AACLjC,MAAAA,cAAc,EAAdA,cAAc;MACd2B,WAAW,EACT8D,SAAS,IAAI,IAAI,GACb,UAAC7D,CAAC,EAAElU,CAAC,EAAE+H,CAAC,EAAA;AAAA,QAAA,OACNiP,aAAa,CAAC9C,CAAC,EAAElU,CAAC,EAAE+H,CAAC,GAAA,CAAIgQ,SAAS,CAAA,CAAA5c,MAAA,CAAK4M,CAAC,IAAI,CAACgQ,SAAS,CAAC,CAAC,CAAA;AAAA,OAAA,GAC1Df,aAAa;MACnBtB,eAAe,EACbqC,SAAS,IAAI,IAAI,IAAI1P,WAAW,CAAC1N,UAAU,GACvC,UAACsd,EAAE,EAAA;AAAA,QAAA,OAAKC,iBAAiB,CAAChB,UAAU,CAACha,CAAC,EAAE+a,EAAE,CAAC,EAAEnI,QAAQ,CAAC,CAACpV,QAAQ,CAAA;OAC/D8B,GAAAA,SAAAA;AACP,KAAA,CAAC,CAAA;IAEF,IAAMgb,KAAK,GAAG,CAACta,CAAC,CAACwI,SAAS,GACtByS,YAAY,CAAA,CAAAH,iBAAA,GAAC/F,SAAS,IAAA,IAAA,GAAA,KAAA,CAAA,GAATA,SAAS,CAAElT,KAAK,KAAAiZ,IAAAA,GAAAA,iBAAA,GAAI9a,CAAC,CAACc,KAAK,EAAEqK,WAAW,CAAC,GACtD7L,SAAS,CAAA;IACb,OAAO;AACL8a,MAAAA,aAAa,EAAExH,QAAQ,CAACoH,UAAU,CAACvB,KAAK,CAAC;AACzC6B,MAAAA,KAAK,EAAE;QACLhgB,IAAI,EAAEoY,iBAAS,CAACwI,OAAO;AACvBZ,QAAAA,KAAK,EAALA,KAAK;QACLa,KAAK,EAAE1C,KAAK,CAACK,EAAE;QACf5Z,QAAQ,EAAEc,CAAC,CAACd,QAAQ;QACpBqb,IAAI,EAAEva,CAAC,CAACwI,SAAS;AACjB/B,QAAAA,SAAS,EAAE2D,EAAE,CAACpK,CAAC,CAACgG,UAAU,CAAA;OAC3B;AACDoV,MAAAA,YAAY,EAAEzD,YAAAA;KACf,CAAA;AACH,GAAA;AACF,CAAA;AAEgB,SAAA0D,YAAYA,CAC1BrE,CAAqE,EACrEsE,MAAiB,EAAA;AAEjB,EAAA,OAAO,UAACC,MAAM,EAAA;AAAA,IAAA,OACXA,MAAM,CAACvE,CAAC,CAAC,gBACRT,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,QACG8E,MAAM,CAACvE,CAAC,CAAC,EACTsE,MACA,CACJ,CAAA;GAAC,CAAA;AACN,CAAA;AAEgB,SAAAE,UAAUA,CACxBxE,CAAqE,EACrEyE,IAAkC,EAAA;AAElC,EAAA,OAAO,UAACF,MAAM,EAAA;IAAA,OAAMA,MAAM,CAACvE,CAAC,CAAC,GAAGyE,IAAI,CAACF,MAAM,CAACvE,CAAC,CAAC,CAAC,CAAA;GAAC,CAAA;AAClD,CAAA;AAEM,SAAU0E,qBAAqBA,CACnCC,GAAuB,EAAA;AAEvB,EAAA,QAAQA,GAAG;IACT,KAAK/hB,0BAAkB,CAACgiB,UAAU;AAChC,MAAA,OAAO,YAAY,CAAA;IACrB,KAAKhiB,0BAAkB,CAACiiB,YAAY;AAClC,MAAA,OAAO,cAAc,CAAA;IACvB,KAAKjiB,0BAAkB,CAACkiB,UAAU;AAChC,MAAA,OAAO,YAAY,CAAA;IACrB,KAAKliB,0BAAkB,CAACmiB,QAAQ;AAC9B,MAAA,OAAO,UAAU,CAAA;AACpB,GAAA;AACH,CAAA;AAEgB,SAAAC,cAAcA,CAC5BL,GAAuB,EACvBL,MAAiB,EAAA;EAEjB,OAAOD,YAAY,CAACK,qBAAqB,CAACC,GAAG,CAAC,EAAEL,MAAM,CAAC,CAAA;AACzD,CAAA;AAEgB,SAAAW,YAAYA,CAC1BN,GAAuB,EACvBF,IAAkC,EAAA;EAElC,OAAOD,UAAU,CAACE,qBAAqB,CAACC,GAAG,CAAC,EAAEF,IAAI,CAAC,CAAA;AACrD,CAAA;AAEgB,SAAAT,iBAAiBA,CAC/BvC,KAAyB,EACzB7F,QAAsB,EAAA;AAAA,EAAA,IAAAsJ,oBAAA,CAAA;AAEtB,EAAA,IAAAC,KAAA,GAAAD,CAAAA,oBAAA,GACEzD,KAAK,CAAC2B,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAnB3B,KAAK,CAAC2B,aAAa,CAAG3B,KAAK,CAAC,KAAAyD,IAAAA,GAAAA,oBAAA,GAAIzD,KAAK;IAD/BhS,SAAS,GAAA0V,KAAA,CAAT1V,SAAS;IAAEjJ,QAAQ,GAAA2e,KAAA,CAAR3e,QAAQ;IAAE6Z,KAAK,GAAA8E,KAAA,CAAL9E,KAAK;IAAE+D,YAAY,GAAAe,KAAA,CAAZf,YAAY;IAAEd,KAAK,GAAA6B,KAAA,CAAL7B,KAAK;IAAE5D,UAAU,GAAAyF,KAAA,CAAVzF,UAAU,CAAA;AAEnE,EAAA,IAAM6E,MAAM,GAAmB;AAC7B/d,IAAAA,QAAQ,EAARA,QAAQ;AACR4d,IAAAA,YAAY,EAAZA,YAAY;AACZ/D,IAAAA,KAAK,EAALA,KAAK;IACL5Q,SAAS,EAAE2D,EAAE,CAAC3D,SAAS,CAAA;GACxB,CAAA;EACD,CAACiQ,UAAU,IAAVA,IAAAA,GAAAA,UAAU,GAAI,EAAE,EACd0F,IAAI,CAAC,UAAC7Z,CAAC,EAAE8Z,CAAC,EAAA;AAAA,IAAA,OAAK9Z,CAAC,CAAC+Z,QAAQ,GAAGD,CAAC,CAACC,QAAQ,CAAA;AAAA,GAAA,CAAC,CACvCzd,OAAO,CAAC,UAACxE,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,CAACyU,KAAK,CAACyM,MAAM,CAAC,CAAA;GAAC,CAAA,CAAA;EAClCA,MAAM,CAACjB,KAAK,GACVA,KAAK,IAAI,CAACA,KAAK,CAACC,IAAI,GAChB3H,QAAQ,CAAC2J,WAAW,CAACjC,KAAK,EAAEiB,MAAM,CAACiB,UAAU,EAAEjB,MAAM,CAACkB,QAAQ,CAAC,GAC/Dnd,SAAS,CAAA;AACf,EAAA,OAAOic,MAAM,CAAA;AACf,CAAA;AAEgB,SAAAN,YAAYA,CAC1Bna,KAAgC,EAChCvD,KAAkB,EAAA;AAElB,EAAA,OAAOuD,KAAK,GAAGA,KAAK,GAAGP,gBAAgB,CAAChD,KAAK,CAAC,CAAA;AAChD;;;;;;AC9mBM,SAAUmf,kBAAkBA,CAChCC,eAAA,EACAC,gBAAA,EAAiE;AAAA,EAAA,IAAAC,qBAAA,CAAA;AAAA,EAAA,IADjEF,eAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,IAAAA,eAAA,GAA0C,EAAE,CAAA;AAAA,GAAA;AAAA,EAAA,IAC5CC,gBAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,gBAAA,GAAqCE,0BAA0B,EAAE,CAAA;AAAA,GAAA;AAEjE,EAAA,IAAMC,iBAAiB,GAAGJ,eAAe,CAACte,MAAM,CAAC2e,kBAAkB,CAAC,CAAA;AACpE,EAAA,IAAMC,kBAAkB,GAAGN,eAAe,CAACte,MAAM,CAAC6e,mBAAmB,CAAC,CAAA;AACtE,EAAA,IAAMC,sBAAsB,GAAGR,eAAe,CAACte,MAAM,CACnD+e,uBAAuB,CACxB,CAAA;AACD,EAAA,IAAMC,oBAAoB,GAAGV,eAAe,CAACte,MAAM,CAACif,qBAAqB,CAAC,CAAA;AAC1E,EAAA,IAAMC,cAAc,GAAGZ,eAAe,CAACte,MAAM,CAACmf,mBAAmB,CAAC,CAAA;AAClE,EAAA,IAAMC,cAAc,GAAGd,eAAe,CAACte,MAAM,CAACqf,mBAAmB,CAAC,CAAA;AAClE,EAAA,IAAMC,eAAe,GAAGhB,eAAe,CAACte,MAAM,CAACuf,oBAAoB,CAAC,CAAA;AACpE,EAAA,IAAMC,eAAe,GAAGlB,eAAe,CAACte,MAAM,CAACyf,oBAAoB,CAAC,CAAA;AACpE,EAAA,IAAMC,kBAAkB,GAAA,CAAAlB,qBAAA,GACtBF,eAAe,CAAC7e,IAAI,CAACkgB,wBAAwB,CAAC,KAAAnB,IAAAA,GAAAA,qBAAA,GAC9CD,gBAAgB,CAAC3H,UAAU,CAAA;AAE7B,EAAA,IAAMgJ,aAAa,GAAiB;AAClCvD,IAAAA,YAAY,EAAZA,YAAY;AACZV,IAAAA,UAAU,EAAVA,UAAU;AACVK,IAAAA,WAAW,EAAXA,WAAW;AACXO,IAAAA,aAAa,EAAbA,aAAa;AACb2B,IAAAA,WAAW,EAAXA,WAAW;AACX2B,IAAAA,WAAW,EAAXA,WAAW;AACXvH,IAAAA,eAAe,EAAfA,eAAe;AACfY,IAAAA,YAAY,EAAZA,YAAY;IACZC,gBAAgB,EAAEuG,kBAAkB,CAACI,MAAAA;GACtC,CAAA;EAED,SAAS5G,YAAYA,CAACkB,KAAyB,EAAA;AAAA,IAAA,IAAA2F,qBAAA,CAAA;IAC7C,IAAMxL,QAAQ,IAAAwL,qBAAA,GACZP,eAAe,CAAC/f,IAAI,CAAC,UAACzD,CAAC,EAAA;MAAA,OAAK,CAACA,CAAC,CAACgkB,KAAK,IAAIhkB,CAAC,CAACgkB,KAAK,CAAC5F,KAAK,CAAC,CAAA;AAAA,KAAA,CAAC,KAAA2F,IAAAA,GAAAA,qBAAA,GACvDxB,gBAAgB,CAACrF,YAAY,CAAA;AAC/B,IAAA,OAAO3E,QAAQ,CAACuL,MAAM,CAAC1F,KAAK,EAAEwF,aAAa,CAAC,CAAA;AAC9C,GAAA;EAEA,SAAStH,eAAeA,CAAC8B,KAAqB,EAAA;AAAA,IAAA,IAAA6F,qBAAA,CAAA;IAC5C,IAAM1L,QAAQ,IAAA0L,qBAAA,GACZnB,sBAAsB,CAACrf,IAAI,CAAC,UAACzD,CAAC,EAAA;MAAA,OAC5BkkB,OAAO,CAAClkB,CAAC,CAACmkB,aAAa,EAAE/F,KAAK,CAAC7B,SAAS,CAACtc,IAAI,CAAC,CAAA;AAAA,KAAA,CAC/C,KAAAgkB,IAAAA,GAAAA,qBAAA,GAAI1B,gBAAgB,CAAChG,SAAS,CAAA;AACjC,IAAA,OAAOhE,QAAQ,CAACuL,MAAM,CAAC1F,KAAK,CAAC,CAAA;AAC/B,GAAA;EAEA,SAASyF,WAAWA,CAACzF,KAAyB,EAAA;AAAA,IAAA,IAAAgG,gBAAA,CAAA;AAC5C,IAAA,OAAO,EAAAA,gBAAA,GAAChB,cAAc,CAAC,CAAC,CAAC,KAAAgB,IAAAA,GAAAA,gBAAA,GAAI7B,gBAAgB,CAAC8B,KAAK,EAAEP,MAAM,CACzD1F,KAAK,EACLwF,aAAa,CACd,CAAA;AACH,GAAA;AAEA,EAAA,SAAS1B,WAAWA,CAClB9D,KAAyB,EACzB+D,UAAqB,EACrBC,QAAmB,EAAA;AAAA,IAAA,IAAAkC,oBAAA,CAAA;IAEnB,IAAM/L,QAAQ,IAAA+L,oBAAA,GACZpB,cAAc,CAACzf,IAAI,CAAC,UAACzD,CAAC,EAAA;MAAA,OAAKkkB,OAAO,CAAClkB,CAAC,CAACukB,SAAS,EAAEnG,KAAK,CAACne,IAAI,CAAC,CAAA;AAAA,KAAA,CAAC,KAAAqkB,IAAAA,GAAAA,oBAAA,GAC5D/B,gBAAgB,CAACtC,KAAK,CAAA;IACxB,OAAO1H,QAAQ,CAACuL,MAAM,CAAC1F,KAAK,EAAE+D,UAAU,EAAEC,QAAQ,EAAEwB,aAAa,CAAC,CAAA;AACpE,GAAA;EAEA,SAASjE,UAAUA,CACjBvB,KAAwB,EAAA;AAAA,IAAA,IAAAoG,qBAAA,CAAA;AAExB,IAAA,IACyBC,UAAU,GAE/BrG,KAAK,CAFPxX,aAAa,CAAI3G,IAAI;MACrBiD,KAAK,GACHkb,KAAK,CADPlb,KAAK,CAAA;AAGP,IAAA,IAAMjC,OAAO,GAAGmF,UAAU,CAACgY,KAAK,CAAC,CAAA;IACjC,IAAM7F,QAAQ,IAAAiM,qBAAA,GACZ9B,iBAAiB,CAACjf,IAAI,CACpB,UAACzD,CAAC,EAAA;AAAA,MAAA,IAAA0kB,aAAA,EAAAC,iBAAA,EAAAC,UAAA,CAAA;AAAA,MAAA,OACA,CAAAF,CAAAA,aAAA,GAAC1kB,CAAC,CAACoD,UAAU,KAAAshB,IAAAA,GAAAA,aAAA,GAAI,KAAK,OAAAC,CAAAA,iBAAA,GAAOzhB,KAAK,CAACE,UAAU,KAAA,IAAA,GAAAuhB,iBAAA,GAAI,KAAK,CAAC,IACvD,CAAAC,CAAAA,UAAA,GAAC5kB,CAAC,CAACiB,OAAO,KAAA2jB,IAAAA,GAAAA,UAAA,GAAI,KAAK,MAAM3jB,OAAO,IAChCijB,OAAO,CAAClkB,CAAC,CAAC6kB,UAAU,EAAE3hB,KAAK,CAACjD,IAAI,CAAC,IACjCikB,OAAO,CAAClkB,CAAC,CAACykB,UAAU,EAAEA,UAAU,CAAC,KAChC,CAACzkB,CAAC,CAACgkB,KAAK,IAAIhkB,CAAC,CAACgkB,KAAK,CAAC5F,KAAK,CAAC,CAAC,CAAA;AAAA,KAAA,CAC/B,KAAAoG,IAAAA,GAAAA,qBAAA,GAAIjC,gBAAgB,CAAC1hB,IAAI,CAAA;IAE5B,IAAM+I,MAAM,GAAG2O,QAAQ,CAACuL,MAAM,CAAC1F,KAAK,EAAEwF,aAAa,CAAC,CAAA;AACpD,IAAA,IAAI,OAAOha,MAAM,KAAK,UAAU,EAAE,OAAOA,MAAM,CAAA;AAC/C,IAAA,OAAO,UAAC0K,CAAC,EAAA;MAAA,OAAAvS,QAAA,KAAWuS,CAAC,EAAA;AAAEnR,QAAAA,QAAQ,EAAEyG,MAAAA;AAAM,OAAA,CAAA,CAAA;KAAG,CAAA;AAC5C,GAAA;EAEA,SAASoW,WAAWA,CAClB5B,KAAyB,EAAA;AAAA,IAAA,IAAA0G,qBAAA,CAAA;AAEzB,IAAA,IAAML,UAAU,GAAGrG,KAAK,CAACxX,aAAa,CAAC3G,IAAI,CAAA;IAC3C,IAAMsY,QAAQ,IAAAuM,qBAAA,GACZlC,kBAAkB,CAACnf,IAAI,CAAC,UAACzD,CAAC,EAAA;AAAA,MAAA,OAAKkkB,OAAO,CAAClkB,CAAC,CAACykB,UAAU,EAAEA,UAAU,CAAC,CAAA;AAAA,KAAA,CAAC,KAAAK,IAAAA,GAAAA,qBAAA,GACjEvC,gBAAgB,CAACxhB,KAAK,CAAA;IACxB,IAAM6I,MAAM,GAAG2O,QAAQ,CAACuL,MAAM,CAAC1F,KAAK,EAAEwF,aAAa,CAAC,CAAA;AACpD,IAAA,IAAI,OAAOha,MAAM,KAAK,UAAU,EAAE,OAAOA,MAAM,CAAA;AAC/C,IAAA,OAAO,UAAC0K,CAAC,EAAA;MAAA,OAAAvS,QAAA,KAAWuS,CAAC,EAAA;AAAEnR,QAAAA,QAAQ,EAAEyG,MAAAA;AAAM,OAAA,CAAA,CAAA;KAAG,CAAA;AAC5C,GAAA;EAEA,SAASyW,YAAYA,CAACjC,KAA0B,EAAA;AAAA,IAAA,IAAA2G,qBAAA,CAAA;IAC9C,IAAMxM,QAAQ,IAAAwM,qBAAA,GACZzB,eAAe,CAAC7f,IAAI,CAAC,UAACzD,CAAC,EAAA;MAAA,OAAKkkB,OAAO,CAAClkB,CAAC,CAACglB,UAAU,EAAE5G,KAAK,CAAC9P,QAAQ,CAAC,CAAA;AAAA,KAAA,CAAC,KAAAyW,IAAAA,GAAAA,qBAAA,GAClExC,gBAAgB,CAAC3hB,MAAM,CAAA;AACzB,IAAA,OAAO2X,QAAQ,CAACuL,MAAM,CAAC1F,KAAK,EAAEwF,aAAa,CAAC,CAAA;AAC9C,GAAA;EAEA,SAASrD,aAAaA,CAACnC,KAA2B,EAAA;AAAA,IAAA,IAAA6G,qBAAA,CAAA;AAChD,IAAA,IAAMR,UAAU,GAAGrG,KAAK,CAACvd,IAAI,CAACZ,IAAI,CAAA;IAClC,IAAMsY,QAAQ,IAAA0M,qBAAA,GACZjC,oBAAoB,CAACvf,IAAI,CAAC,UAACzD,CAAC,EAAA;AAAA,MAAA,OAAKkkB,OAAO,CAAClkB,CAAC,CAACykB,UAAU,EAAEA,UAAU,CAAC,CAAA;AAAA,KAAA,CAAC,KAAAQ,IAAAA,GAAAA,qBAAA,GACnE1C,gBAAgB,CAACzhB,OAAO,CAAA;AAC1B,IAAA,OAAOyX,QAAQ,CAACuL,MAAM,CAAC1F,KAAK,EAAEwF,aAAa,CAAC,CAAA;AAC9C,GAAA;AAEA,EAAA,OAAOA,aAAa,CAAA;AACtB,CAAA;AAagB,SAAAsB,2BAA2BA,CACzCjkB,OAAA,EAA0C;AAAA,EAAA,IAA1CA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAwC,EAAE,CAAA;AAAA,GAAA;EAE1C,SAAS6iB,MAAMA,CAAArU,IAAA,EAA6C;AAAA,IAAA,IAA1ClB,OAAO,GAAAkB,IAAA,CAAPlB,OAAO;MAAEC,UAAU,GAAAiB,IAAA,CAAVjB,UAAU,CAAA;IACnC,oBACE0N,yBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;MAAQ/P,SAAS,EAAEnL,OAAO,CAACmL,SAAU;AAACmC,MAAAA,OAAO,EAAEA,OAAAA;AAAQ,KAAA,EACpDC,UACK,CAAC,CAAA;AAEb,GAAA;EACA,OAAO;AAAEsV,IAAAA,MAAM,EAANA,MAAM;AAAE7jB,IAAAA,IAAI,EAAE,QAAA;GAAU,CAAA;AACnC,CAAA;AACgB,SAAAklB,0BAA0BA,CACxClkB,OAAA,EAA2E;AAAA,EAAA,IAA3EA,OAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,IAAAA,OAAA,GAAuC;AAAEmkB,MAAAA,eAAe,eAAElJ,yBAAA,CAAAC,aAAA,eAAO,IAAO,CAAA;KAAG,CAAA;AAAA,GAAA;EAE3E,IAAAkJ,QAAA,GACEpkB,OAAO;IADDmL,SAAS,GAAAiZ,QAAA,CAATjZ,SAAS;IAAEkZ,eAAe,GAAAD,QAAA,CAAfC,eAAe;IAAEC,iBAAiB,GAAAF,QAAA,CAAjBE,iBAAiB;IAAEH,eAAe,GAAAC,QAAA,CAAfD,eAAe,CAAA;EAEtE,OAAO;AACLtB,IAAAA,MAAM,EAAE,SAAAA,MAAAA,CAAC1F,KAAK,EAAE+D,UAAU,EAAEC,QAAQ,EAAA;AAAA,MAAA,oBAClClG,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EAAA,IAAA,EACG+F,UAAU,eACXjG,yBAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;QACEqJ,OAAO,EAAEpH,KAAK,CAAC0C,KAAM;AACrB1U,QAAAA,SAAS,EAAEG,aAAa,CACtB6R,KAAK,CAAChS,SAAS,EACfZ,wBAAI,CACFY,SAAS,EACTgS,KAAK,CAACne,IAAI,KAAKoY,iBAAS,CAACjY,KAAK,IAAIklB,eAAe,EACjDlH,KAAK,CAACne,IAAI,KAAKoY,iBAAS,CAACwI,OAAO,IAAI0E,iBAAiB,CACtD,CAAA;AACD,OAAA,EAEDnH,KAAK,CAAC6B,KAAK,EACX7B,KAAK,CAACvZ,QAAQ,IAAIugB,eACd,CACP,EAAChD,QACH,CAAG,CAAA;KACJ;AACDniB,IAAAA,IAAI,EAAE,OAAA;GACP,CAAA;AACH,CAAA;AAWM,SAAUwlB,0BAA0BA,CACxCxkB,OAAqC,EAAA;AAErC,EAAA,IAAAsa,KAAA,GAOIta,OAAO,WAAPA,OAAO,GAAI,EAAE;IANfmL,SAAS,GAAAmP,KAAA,CAATnP,SAAS;IACTsZ,cAAc,GAAAnK,KAAA,CAAdmK,cAAc;IACdC,UAAU,GAAApK,KAAA,CAAVoK,UAAU;IACVC,mBAAmB,GAAArK,KAAA,CAAnBqK,mBAAmB;IACnBC,iBAAiB,GAAAtK,KAAA,CAAjBsK,iBAAiB;IACjBC,cAAc,GAAAvK,KAAA,CAAduK,cAAc,CAAA;AAEhB,EAAA,SAAShC,MAAMA,CAAAvG,KAAA,EAAAM,KAAA,EASiB;AAAA,IAAA,IAP5BqB,YAAY,GAAA3B,KAAA,CAAZ2B,YAAY;MACZJ,aAAa,GAAAvB,KAAA,CAAbuB,aAAa;MACbK,SAAS,GAAA5B,KAAA,CAAT4B,SAAS;MACTG,YAAY,GAAA/B,KAAA,CAAZ+B,YAAY;MACZD,UAAU,GAAA9B,KAAA,CAAV8B,UAAU;MACVxa,QAAQ,GAAA0Y,KAAA,CAAR1Y,QAAQ,CAAA;AAAA,IAAA,IAERwb,YAAY,GAAAxC,KAAA,CAAZwC,YAAY,CAAA;AAEd,IAAA,IAAM0F,UAAU,GAAG,CAAClhB,QAAQ,IAAIqa,YAAY,GAAG,CAAC,CAAA;AAChD,IAAA,oBACEhD,yBAAA,CAAAC,aAAA,CACED,KAAAA,EAAAA,IAAAA,eAAAA,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK/P,MAAAA,SAAS,EAAEZ,wBAAI,CAACY,SAAS,EAAEkT,YAAY,IAAIoG,cAAc,CAAA;KAC3D3a,EAAAA,KAAK,CAACib,IAAI,CAAC;AAAE9hB,MAAAA,MAAM,EAAEgb,YAAAA;AAAY,KAAE,EAAE,UAAC+G,CAAC,EAAEjmB,CAAC,EAAA;AAAA,MAAA,OACzCsf,YAAY,gBACVpD,yBAAA,CAAAC,aAAA,CAACC,cAAQ,EAAA;QAACS,GAAG,EAAEwC,UAAU,CAACrf,CAAC,CAAA;OACzBkc,eAAAA,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK/P,QAAAA,SAAS,EAAEZ,wBAAI,CAACma,UAAU,EAAEC,mBAAmB,CAAA;OACjD9G,EAAAA,aAAa,CAAC9e,CAAC,CACb,CACL,eAAAkc,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK/P,QAAAA,SAAS,EAAEyZ,iBAAAA;AAAkB,OAAA,EAC/BE,UAAU,IAAI1F,YAAY,CAACf,YAAY,CAACtf,CAAC,CAAC,CACxC,CACG,CAAC,gBAEXkc,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKU,QAAAA,GAAG,EAAEwC,UAAU,CAACrf,CAAC,CAAE;AAACoM,QAAAA,SAAS,EAAEuZ,UAAAA;AAAW,OAAA,EAC5C7G,aAAa,CAAC9e,CAAC,CACb,CACN,CAAA;AAAA,KAAA,CAEA,CACL,EAACmf,SAAS,iBACRjD,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK/P,MAAAA,SAAS,EAAE0Z,cAAAA;AAAe,KAAA,EAAEzF,YAAY,CAAClB,SAAS,CAAO,CAE7D,CAAC,CAAA;AAEV,GAAA;EACA,OAAO;AAAE2E,IAAAA,MAAM,EAANA,MAAM;AAAE7jB,IAAAA,IAAI,EAAE,OAAA;GAAS,CAAA;AAClC,CAAA;AAiBM,SAAUimB,0BAA0BA,CACxCjlB,OAAqC,EAAA;AAErC,EAAA,IAAAue,KAAA,GAQIve,OAAO,WAAPA,OAAO,GAAI,EAAE;IAPfmL,SAAS,GAAAoT,KAAA,CAATpT,SAAS;IAAA+Z,gBAAA,GAAA3G,KAAA,CACT4G,UAAU;AAAVA,IAAAA,UAAU,GAAAD,gBAAA,KAAGE,KAAAA,CAAAA,GAAAA,iBAAiB,GAAAF,gBAAA;IAAAG,qBAAA,GAAA9G,KAAA,CAC9B+G,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,qBAAA;IACtBE,aAAa,GAAAhH,KAAA,CAAbgH,aAAa;IACbC,iBAAiB,GAAAjH,KAAA,CAAjBiH,iBAAiB;IACjBC,aAAa,GAAAlH,KAAA,CAAbkH,aAAa;IACbC,cAAc,GAAAnH,KAAA,CAAdmH,cAAc,CAAA;EAGhB,SAASN,iBAAiBA,CAAAlG,KAAA,EAEX;AAAA,IAAA,IAAAyG,aAAA,GAAAzG,KAAA,CADb0G,OAAO;AAAPA,MAAAA,OAAO,GAAAD,aAAA,KAAGL,KAAAA,CAAAA,GAAAA,kBAAkB,GAAAK,aAAA,CAAA;IAE5B,OAAO;AACLxa,MAAAA,SAAS,EAAEoa,aAAa;AACxBxJ,MAAAA,KAAK,EAAE;AACLlc,QAAAA,OAAO,EAAE,MAAM;AACfgmB,QAAAA,mBAAmB,cAAYD,OAAO,GAAA,QAAA;AACvC,OAAA;KACF,CAAA;AACH,GAAA;EAEA,SAASE,UAAUA,CAAC9lB,OAAqB,EAAA;IACvC,OAAO;AACLmL,MAAAA,SAAS,EAAEsa,aAAa;AACxB1J,MAAAA,KAAK,EAAE;AACLlc,QAAAA,OAAO,EAAE,MAAM;QACfkmB,GAAG,EAAE/lB,OAAO,CAAC+lB,GAAG,GAAG/lB,OAAO,CAAC+lB,GAAG,GAAGL,cAAc;QAC/CM,aAAa,EAAEhmB,OAAO,CAACimB,SAAS,GAC3BjmB,OAAO,CAACimB,SAAiB,GAC1BjiB,SAAAA;AACL,OAAA;KACF,CAAA;AACH,GAAA;EAEA,SAAS6e,MAAMA,CAAC1F,KAAyB,EAAA;AACvC,IAAA,IAAQ1B,WAAW,GAA8B0B,KAAK,CAA9C1B,WAAW;MAAE9V,aAAa,GAAewX,KAAK,CAAjCxX,aAAa;MAAEzD,QAAQ,GAAKib,KAAK,CAAlBjb,QAAQ,CAAA;IAE5C,IAAA2e,KAAA,GAAkC9gB,cAAc,CAAC4F,aAAa,CAAC,GAC3Dwf,UAAU,CAACxf,aAAa,CAAC,GACzBzF,cAAc,CAACyF,aAAa,CAAC,GAC3BmgB,UAAU,CAACngB,aAAa,CAAC,GACxB;AAAEwF,QAAAA,SAAS,EAAEqa,iBAAAA;OAAkC;MAJ9CzJ,KAAK,GAAA8E,KAAA,CAAL9E,KAAK;MAAamK,GAAG,GAAArF,KAAA,CAAd1V,SAAS,CAAA;IAMxB,OAAO,UAACgb,EAAsB,EAAI;MAChC,OAAArlB,QAAA,KACKqlB,EAAE,EAAA;QACLjkB,QAAQ,eACN+Y,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACE/P,UAAAA,SAAS,EAAEG,aAAa,CAAC6R,KAAK,CAAChS,SAAS,EAAEZ,wBAAI,CAACY,SAAS,EAAE+a,GAAG,CAAC,CAAE;AAChEnK,UAAAA,KAAK,EAAEA,KAAAA;SAEN7Z,EAAAA,QAAQ,oBAARA,QAAQ,CAAExB,GAAG,CAAC,UAACgE,CAAC,EAAEqG,CAAC,EAAA;AAAA,UAAA,OAAK0Q,WAAW,CAAC1Q,CAAC,EAAEA,CAAC,CAAC,CAAA;SACvC,CAAA,CAAA;AACN,OAAA,CAAA,CAAA;KAEJ,CAAA;AACH,GAAA;EACA,OAAO;AAAE/L,IAAAA,IAAI,EAAE,OAAO;AAAE6jB,IAAAA,MAAM,EAANA,MAAAA;GAAQ,CAAA;AAClC,CAAA;AAMgB,SAAAuD,4BAA4BA,CAC1CpmB,OAAA,EAA2C;AAAA,EAAA,IAA3CA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAyC,EAAE,CAAA;AAAA,GAAA;EAE3C,OAAO;IACL6iB,MAAM,EAAE,SAAAA,MAAAA,CAAC1F,KAAK,EAAA;AAAA,MAAA,oBAAKlC,yBAAA,CAAAC,aAAA,CAACmL,cAAc,EAAAvlB,QAAA,CAAA,EAAA,EAAKd,OAAO,EAAMmd,KAAK,CAAI,CAAA,CAAA;AAAA,KAAA;AAC7Dne,IAAAA,IAAI,EAAE,SAAA;GACP,CAAA;AACH,CAAA;AAEgB,SAAAqnB,cAAcA,CAAAC,KAAA,EAAA;EAAA,IAAA/J,OAAA,GAAAC,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAAA+J,cAAA,CAAA;AAAA,IAAA,IAC5B3mB,IAAI,GAAA0mB,KAAA,CAAJ1mB,IAAI;MACJC,OAAO,GAAAymB,KAAA,CAAPzmB,OAAO;MACPsL,SAAS,GAAAmb,KAAA,CAATnb,SAAS;MACT4Q,KAAK,GAAAuK,KAAA,CAALvK,KAAK;AACF/b,MAAAA,OAAO,GAAAod,6BAAA,CAAAkJ,KAAA,EAAAjJ,SAAA,CAAA,CAAA;IAEV,QAAQzd,IAAI,CAACZ,IAAI;MACf,KAAKL,uBAAe,CAAC6nB,IAAI;QACvB,oBACEvL,yBAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACEa,UAAAA,KAAK,EAAEA,KAAM;AACb5Q,UAAAA,SAAS,EAAEZ,wBAAI,CACbI,gBAAgB,CAACQ,SAAS,CAAC,EAC3BtL,OAAO,GAAGA,OAAO,CAAC0G,KAAK,GAAI3G,IAAoB,CAAC6mB,SAAS,CAAA;AACzD,SAAA,CACF,CAAA;MAEN,KAAK9nB,uBAAe,CAACmN,IAAI;QACvB,oBACEmP,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEa,UAAAA,KAAK,EAAEA,KAAM;AACb5Q,UAAAA,SAAS,EAAEG,aAAa,CAACH,SAAS,EAAEnL,OAAO,CAAC0mB,aAAa,CAAA;SAExD7mB,EAAAA,OAAO,GAAGA,OAAO,CAAC0G,KAAK,GAAI3G,IAAoB,CAACgM,IAC9C,CAAC,CAAA;MAEV,KAAKjN,uBAAe,CAACsN,IAAI;QACvB,oBACEgP,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEa,UAAAA,KAAK,EAAEA,KAAM;UACb5Q,SAAS,EAAEG,aAAa,CAACH,SAAS,EAAEnL,OAAO,CAAC2mB,aAAa,CAAE;AAC3DC,UAAAA,uBAAuB,EAAE;AACvBC,YAAAA,MAAM,EAAEhnB,OAAO,GAAA0mB,CAAAA,cAAA,GAAG1mB,OAAO,CAAC0G,KAAK,KAAA,IAAA,GAAAggB,cAAA,GAAI,EAAE,GAAI3mB,IAAoB,CAACoM,IAAAA;;AAC9D,SAAA,CACF,CAAA;AAEN,MAAA;QACE,oBAAOiP,yBAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,EAAI,wBAAsB,EAACtb,IAAI,CAACZ,IAAS,CAAC,CAAA;AACpD,KAAA;AAAA,GAAA,SAAA;IAAAud,OAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAGI,IAAMuK,kBAAkB,GAAkB,CAC/C;AAAErY,EAAAA,IAAI,EAAE,KAAK;AAAElI,EAAAA,KAAK,EAAE,IAAA;AAAM,CAAA,EAC5B;AAAEkI,EAAAA,IAAI,EAAE,IAAI;AAAElI,EAAAA,KAAK,EAAE,KAAA;AAAO,CAAA,EAC7B;AASe,SAAAwgB,yBAAyBA,CACvC/mB,OAAA,EAAwC;AAAA,EAAA,IAAAgnB,qBAAA,CAAA;AAAA,EAAA,IAAxChnB,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAsC,EAAE,CAAA;AAAA,GAAA;AAExC,EAAA,IAAMinB,cAAc,GAAGC,oBAAoB,CAAA,CAAAF,qBAAA,GAAChnB,OAAO,CAACmnB,aAAa,KAAAH,IAAAA,GAAAA,qBAAA,GAAI,EAAE,CAAC,CAAA;EACxE,IAAAI,qBAAA,GAAAtmB,QAAA,CAAA;AACEumB,MAAAA,cAAc,EAAEJ,cAAc;AAC9BK,MAAAA,cAAc,EAAER,kBAAAA;AAAkB,KAAA,EAC/B9mB,OAAO,CAAA;IAHJunB,UAAU,GAAAH,qBAAA,CAAVG,UAAU;IAAED,cAAc,GAAAF,qBAAA,CAAdE,cAAc;IAAED,cAAc,GAAAD,qBAAA,CAAdC,cAAc;IAAEG,gBAAgB,GAAAJ,qBAAA,CAAhBI,gBAAgB,CAAA;AAKpE,EAAA,OAAOC,kBAAkB,CAAC,UAACtK,KAAK,EAAEuK,SAAS,EAAI;AAC7C,IAAA,IAAMC,SAAS,GAAGxK,KAAK,CAAClb,KAAK,CAACjD,IAAI,CAAA;IAClC,IAAIme,KAAK,CAACO,YAAY,EAAE;AACtB,MAAA,OAAO,UAACnO,CAAC,EAAA;QAAA,OAAAzO,QAAA,KACJyO,CAAC,EAAA;UACJrN,QAAQ,EAAEwlB,SAAS,CAAC9E,WAAW,CAACzF,KAAK,CAACO,YAAa,EAAE,CAAA;AAAC,SAAA,CAAA,CAAA;OACtD,CAAA;AACH,KAAA;AACD,IAAA,IAAIiK,SAAS,KAAKzpB,iBAAS,CAACkE,QAAQ,EAAE;MACpC,OAAOslB,SAAS,CAAC3I,WAAW,CAAC;QAC3BhD,KAAK,EAAEoB,KAAK,CAACpB,KAAK;QAClB5Q,SAAS,EAAEgS,KAAK,CAAChS,SAAS;QAC1BjJ,QAAQ,EAAEib,KAAK,CAACjb,QAAQ;AACxByD,QAAAA,aAAa,EAAE;AAAE3G,UAAAA,IAAI,EAAE,UAAU;AAAEkO,UAAAA,SAAS,EAAE,IAAA;SAAM;QACpDuO,WAAW,EAAE0B,KAAK,CAAC1B,WAAAA;AACpB,OAAA,CAAC,CAAA;AACH,KAAA;AACD,IAAA,IAAM9V,aAAa,GAAGwX,KAAK,CAACxX,aAAa,CAAA;AACzC,IAAA,IAAI6d,UAAU,GAAG7d,aAAa,CAAC3G,IAAI,CAAA;AACnC,IAAA,IAAI2oB,SAAS,IAAIzpB,iBAAS,CAAC0pB,GAAG,EAAE,oBAAO3M,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EAAA,IAAA,EAAE,oBAAkB,CAAG,CAAA;AAC9D,IAAA,IAAI/a,qBAAqB,CAACuF,aAAa,CAAC,EACtC,OAAO,UAAC4J,CAAC,EAAA;MAAA,OAAAzO,QAAA,KACJyO,CAAC,EAAA;AACJpE,QAAAA,SAAS,EAAEqc,gBAAgB;AAC3BtlB,QAAAA,QAAQ,eACN+Y,yBAAA,CAAAC,aAAA,CAAC2M,kBAAkB,EAAA;UACjB5lB,KAAK,EAAEkb,KAAK,CAAClb,KAAM;AACnBoO,UAAAA,eAAe,EAAE8M,KAAK,CAAC3K,WAAW,CAACnC,eAAgB;UACnDtK,OAAO,EAAEoX,KAAK,CAACpX,OAAQ;UACvBoF,SAAS,EAAEgS,KAAK,CAAChS,SAAU;UAC3B4Q,KAAK,EAAEoB,KAAK,CAACpB,KAAM;UACnB1J,SAAS,EAAE1M,aAAa,CAAC0M,SAAAA;SAAU,CAAA;AAEtC,OAAA,CAAA,CAAA;KACD,CAAA;AACJ,IAAA,IAAMyV,MAAM,GAAGH,SAAS,KAAKzpB,iBAAS,CAAC2D,IAAI,CAAA;IAC3C,IAAIylB,cAAc,IAAI,IAAI,IAAIQ,MAAM,IAAI3K,KAAK,CAACnd,OAAO,IAAI,IAAI,EAAE;AAC7D,MAAA,OAAO0nB,SAAS,CAAChJ,UAAU,CAAA5d,QAAA,KAAMqc,KAAK,EAAA;AAAEnd,QAAAA,OAAO,EAAEsnB,cAAAA;AAAc,OAAA,CAAE,CAAC,CAAA;AACnE,KAAA;IACD,IAAI9D,UAAU,KAAKhlB,sBAAc,CAACqH,QAAQ,IAAIV,UAAU,CAACgY,KAAK,CAAC,EAAE;AAC/D,MAAA,OAAOkK,cAAc,CAACxE,MAAM,CAAC1F,KAAK,EAAEuK,SAAS,CAAC,CAAA;AAC/C,KAAA;AACD,IAAA,QAAQlE,UAAU;MAChB,KAAKhlB,sBAAc,CAACupB,QAAQ;AAC1B,QAAA,OAAOd,cAAc,CAACpE,MAAM,CAAC1F,KAAK,EAAEuK,SAAS,CAAC,CAAA;AACjD,KAAA;IACD,OAAOlE,UAAU,KAAKhlB,sBAAc,CAACwpB,QAAQ,gBAC3C/M,yBAAA,CAAAC,aAAA,CAAC+M,cAAS,EAAA;MACRlM,KAAK,EAAEoB,KAAK,CAACpB,KAAM;MACnB5Q,SAAS,EAAEgS,KAAK,CAAChS,SAAU;MAC3BpF,OAAO,EAAEoX,KAAK,CAACpX,OAAAA;AAAQ,KACvB,CAAA,gBAEFkV,yBAAA,CAAAC,aAAA,CAACgN,YAAY,EAAA;MACX/c,SAAS,EAAEG,aAAa,CAAC6R,KAAK,CAAChS,SAAS,EAAEoc,UAAU,CAAE;MACtDxL,KAAK,EAAEoB,KAAK,CAACpB,KAAM;MACnByB,EAAE,EAAEL,KAAK,CAACK,EAAG;MACb2K,QAAQ,EAAEhL,KAAK,CAAC7V,QAAS;MACzBvB,OAAO,EAAEoX,KAAK,CAACpX,OAAQ;AACvBqiB,MAAAA,OAAO,EAAEC,qBAAqB,CAAClL,KAAK,CAAClb,KAAK,CAACjD,IAAI,CAAA;AAAE,KACjD,CACH,CAAA;AACH,GAAC,CAAC,CAAA;AACJ,CAAA;AAEgB,SAAA6oB,kBAAkBA,CAAAS,KAAA,EAAA;EAAA,IAAAC,QAAA,GAAA/L,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAAAgM,MAAA,CAAA;AAAA,IAAA,IAChCziB,OAAO,GAAAuiB,KAAA,CAAPviB,OAAO;MACPoF,SAAS,GAAAmd,KAAA,CAATnd,SAAS;MACTkH,SAAS,GAAAiW,KAAA,CAATjW,SAAS;MACThC,eAAe,GAAAiY,KAAA,CAAfjY,eAAe;MACfpO,KAAK,GAAAqmB,KAAA,CAALrmB,KAAK;MACL8Z,KAAK,GAAAuM,KAAA,CAALvM,KAAK,CAAA;AASL,IAAA,IAAM1a,CAAC,GAAG0E,OAAO,CAACQ,KAAK,CAAA;IACvB,IAAMqF,IAAI,GAAA4c,CAAAA,MAAA,GACPnY,eAAe,CAACiC,YAAY,CAACrQ,KAAK,EAAEZ,CAAC,CAAC,GACnCgR,SAAS,GACThC,eAAe,CAACwG,SAAS,CAAC5U,KAAK,EAAEZ,CAAC,CAAC,KAAA,IAAA,GAAAmnB,MAAA,GAAK,EAAE,CAAA;IAChD,oBACEvN,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKa,MAAAA,KAAK,EAAEA,KAAM;MAAC5Q,SAAS,EAAEG,aAAa,CAACH,SAAS,CAAA;AAAE,KAAA,EACpDS,IACE,CAAC,CAAA;AACN,GAAA,SAAA;IAAA2c,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAGE,SAAUL,YAAYA,CAAAO,MAAA,EAAA;EAAA,IAAAC,QAAA,GAAAlM,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAC1BzW,OAAO,GAAA0iB,MAAA,CAAP1iB,OAAO;MACPqiB,OAAO,GAAAK,MAAA,CAAPL,OAAO;AACJjL,MAAAA,KAAK,GAAAC,6BAAA,CAAAqL,MAAA,EAAAE,UAAA,CAAA,CAAA;AAKR,IAAA,IAAAC,iBAAA,GACEC,qBAAgB,CAAC9iB,OAAO,CAAC;MADnB+iB,SAAS,GAAAF,iBAAA,CAATE,SAAS;MAAEviB,KAAK,GAAAqiB,iBAAA,CAALriB,KAAK;MAAEwiB,QAAQ,GAAAH,iBAAA,CAARG,QAAQ;AAAKC,MAAAA,UAAU,GAAA5L,6BAAA,CAAAwL,iBAAA,EAAAK,UAAA,CAAA,CAAA;AAEjD,IAAA,oBACEhO,yBAAA,CAAAC,aAAA,CAAApa,OAAAA,EAAAA,QAAA,KACMkoB,UAAU,EAAA;AACdhqB,MAAAA,IAAI,EAAEopB,OAAO,CAAC,CAAC,CAAE;AACjB7hB,MAAAA,KAAK,EAAEA,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG6hB,OAAO,CAAC,CAAC,CAAC,CAAC7hB,KAAK,CAAE;AAC9CwiB,MAAAA,QAAQ,EAAE,SAAAA,QAACjW,CAAAA,CAAC,EAAI;AACd/M,QAAAA,OAAO,CAACQ,KAAK,GAAG6hB,OAAO,CAAC,CAAC,CAAC,CAACtV,CAAC,CAACxD,MAAM,CAAC/I,KAAK,CAAC,CAAA;AAC5C,OAAA;KACI4W,EAAAA,KAAK,CAAC,CACV,CAAA;AACF,GAAA,SAAA;IAAAuL,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAKY,SAAAQ,8BAA8BA,CAC5ClpB,OAAA,EAA6C;EAE7C,OAAO;AACLhB,IAAAA,IAAI,EAAE,WAAW;IACjB6jB,MAAM,EAAE,SAAAA,MAAAA,CAAAsG,MAAA,EAAA;AAAA,MAAA,IAAG7N,SAAS,GAAA6N,MAAA,CAAT7N,SAAS,CAAA;MAAA,OAAQ;AAC1B9H,QAAAA,KAAK,EAAE,SAAAA,KAAC4V,CAAAA,EAAE,EAAI;AACZ,UAAA,IAAIC,eAAe,CAAC/N,SAAS,CAAC,EAAE;AAAA,YAAA,IAAAgO,oBAAA,CAAA;AAC9B,YAAA,OAAO5I,cAAc,CAAA4I,CAAAA,oBAAA,GACnBhO,SAAS,CAACiO,SAAS,KAAA,IAAA,GAAAD,oBAAA,GAAIhrB,0BAAkB,CAACiiB,YAAY,eACtDtF,yBAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;cAAG/P,SAAS,EAAEmQ,SAAS,CAACmL,SAAAA;AAAU,aAAA,CAAG,CACtC,CAAC2C,EAAE,CAAC,CAAA;AACN,WAAA;SACF;AACDpI,QAAAA,QAAQ,EAAE,CAAC;AACX1F,QAAAA,SAAS,EAATA,SAAAA;OACD,CAAA;AAAA,KAAA;GACF,CAAA;AACH,CAAA;AAkBgB,SAAAkO,sBAAsBA,CACpCxpB,OAAA,EAAoC;AAAA,EAAA,IAApCA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAkC,EAAE,CAAA;AAAA,GAAA;EAEpC,OAAO;AACLJ,IAAAA,IAAI,EAAEmnB,yBAAyB,CAAC/mB,OAAO,CAACJ,IAAI,CAAC;AAC7CC,IAAAA,OAAO,EAAEumB,4BAA4B,CAACpmB,OAAO,CAACH,OAAO,CAAC;AACtDF,IAAAA,MAAM,EAAEskB,2BAA2B,CAACjkB,OAAO,CAACL,MAAM,CAAC;AACnDyjB,IAAAA,KAAK,EAAEoB,0BAA0B,CAACxkB,OAAO,CAACojB,KAAK,CAAC;AAChDtjB,IAAAA,KAAK,EAAEmlB,0BAA0B,CAACjlB,OAAO,CAACF,KAAK,CAAC;AAChDkf,IAAAA,KAAK,EAAEkF,0BAA0B,CAAClkB,OAAO,CAACgf,KAAK,CAAC;AAChD1D,IAAAA,SAAS,EAAE4N,8BAA8B,CAAkB,CAAC;AAC5DjN,IAAAA,YAAY,EAAEwN,2BAA2B,CAACzpB,OAAO,CAACigB,MAAM,CAAC;IACzDtG,UAAU,EAAE+P,+BAA+B,EAAE;GAC9C,CAAA;AACH,CAAA;AAEA,SAASD,2BAA2BA,CAClCzpB,OAAA,EAA0C;AAAA,EAAA,IAA1CA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAwC,EAAE,CAAA;AAAA,GAAA;AAE1C,EAAA,OAAO2pB,oBAAoB,CAAC,UAACxM,KAAK,EAAEuK,SAAS,EAAI;AAC/C,IAAA,IAAMzH,MAAM,GAAGP,iBAAiB,CAAA5e,QAAA,KAEzBqc,KAAK,EAAA;MACRhS,SAAS,EAAEG,aAAa,CAAC6R,KAAK,CAAChS,SAAS,EAAEnL,OAAO,CAACmL,SAAS,CAAA;AAAC,KAAA,CAAA,EAE9Duc,SAAS,CACV,CAAA;IACD,OAAO;AACLxlB,MAAAA,QAAQ,eAAE+Y,yBAAA,CAAAC,aAAA,CAAC0O,aAAa,EAAA9oB,QAAA,CAAA;AAACmf,QAAAA,MAAM,EAAEA,MAAAA;OAAYjgB,EAAAA,OAAO,CAAI,CAAA;MACxDmL,SAAS,EAAE8U,MAAM,CAAC9U,SAAS;MAC3B4Q,KAAK,EAAEkE,MAAM,CAAClE,KAAK;MACnB8N,MAAM,EAAE,SAAAA,MAAAA,CAAC/W,CAAC,EAAA;AAAA,QAAA,OACRA,CAAC,IAAIqK,KAAK,CAAC2C,YAAY,GAClB3C,KAAK,CAAC2C,YAAY,CAACgK,IAAI,CAACC,aAAa,GAAGjX,CAAC,GAC1C9O,SAAS,CAAA;AAAA,OAAA;KAChB,CAAA;AACH,GAAC,CAAC,CAAA;AACJ,CAAA;AAEA,SAASwd,0BAA0BA,GAAA;AACjC,EAAA,OAAOgI,sBAAsB,CAAC;AAC5BvJ,IAAAA,MAAM,EAAE;AAAE9U,MAAAA,SAAS,EAAE,SAAA;KAAW;AAChCrL,IAAAA,KAAK,EAAE;AAAEqL,MAAAA,SAAS,EAAE,OAAA;KAAS;AAC7BiY,IAAAA,KAAK,EAAE;AAAEjY,MAAAA,SAAS,EAAE,eAAA;KAAiB;AACrCxL,IAAAA,MAAM,EAAE;AAAEwL,MAAAA,SAAS,EAAE,QAAA;KAAU;AAC/BvL,IAAAA,IAAI,EAAE;AAAE2nB,MAAAA,UAAU,EAAE,MAAA;KAAQ;AAC5B1nB,IAAAA,OAAO,EAAE;AAAE8mB,MAAAA,aAAa,EAAE,MAAM;AAAED,MAAAA,aAAa,EAAE,MAAA;AAAQ,KAAA;AAC1D,GAAA,CAAC,CAAA;AACJ,CAAA;AAEA,SAAS5E,uBAAuBA,CAC9B/iB,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,WAAW,CAAA;AAC/B,CAAA;AAEA,SAAS0iB,kBAAkBA,CACzB3iB,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,MAAM,CAAA;AAC1B,CAAA;AAEA,SAAS4iB,mBAAmBA,CAC1B7iB,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAA;AAC3B,CAAA;AAEA,SAASkjB,mBAAmBA,CAC1BnjB,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAA;AAC3B,CAAA;AAEA,SAASwjB,oBAAoBA,CAC3BzjB,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,QAAQ,CAAA;AAC5B,CAAA;AAEA,SAAS0jB,wBAAwBA,CAC/B3jB,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,YAAY,CAAA;AAChC,CAAA;AAEA,SAASsjB,oBAAoBA,CAC3BvjB,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,QAAQ,CAAA;AAC5B,CAAA;AAEA,SAASgjB,qBAAqBA,CAC5BjjB,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,SAAS,CAAA;AAC7B,CAAA;AAEA,SAASojB,mBAAmBA,CAC1BrjB,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAA;AAC3B,CAAA;AACA,SAASikB,OAAOA,CAAIlkB,CAAsB,EAAEsC,CAAI,EAAA;EAC9C,OAAOtC,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG+K,KAAK,CAACC,OAAO,CAAChL,CAAC,CAAC,GAAGA,CAAC,CAACiE,QAAQ,CAAC3B,CAAC,CAAC,GAAGA,CAAC,KAAKtC,CAAC,CAAA;AACtE,CAAA;AAEM,SAAUsqB,eAAeA,CAACpiB,CAAmB,EAAA;AACjD,EAAA,OAAOA,CAAC,CAACjI,IAAI,KAAKT,4BAAoB,CAACioB,IAAI,CAAA;AAC7C,CAAA;AAEgB,SAAAmD,oBAAoBA,CAClC9G,MAA4C,EAC5C7iB,OAA6C,EAAA;AAE7C,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,QAAQ;AAAE6jB,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAK7iB,OAAO,CAAA,CAAA;AAC7C,CAAA;AAEgB,SAAAgqB,mBAAmBA,CACjCnH,MAA2C,EAC3C7iB,OAA4C,EAAA;AAE5C,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,OAAO;AAAE6jB,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAK7iB,OAAO,CAAA,CAAA;AAC5C,CAAA;AAEgB,SAAAynB,kBAAkBA,CAChC5E,MAA0C,EAC1C7iB,OAA2C,EAAA;AAE3C,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,MAAM;AAAE6jB,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAK7iB,OAAO,CAAA,CAAA;AAC3C,CAAA;AAEgB,SAAAiqB,mBAAmBA,CACjCpH,MAA2C,EAC3C7iB,OAAiD,EAAA;AAEjD,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,OAAO;AAAE6jB,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAK7iB,OAAO,CAAA,CAAA;AAC5C,CAAA;AAEgB,SAAAkqB,wBAAwBA,CACtCrH,MAAgD,EAChD7iB,OAAiD,EAAA;AAEjD,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,YAAY;AAAE6jB,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAK7iB,OAAO,CAAA,CAAA;AACjD,CAAA;AAEgB,SAAAmqB,uBAAuBA,CACrCtH,MAAoD,EACpD7iB,OAAgD,EAAA;AAEhD,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,WAAA;AAAW,GAAA,EAAKgB,OAAO,EAAA;AAAE6iB,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,CAAA,CAAA;AAChD,CAAA;AAQgB,SAAAqE,oBAAoBA,CAAClnB,OAAA,EAAmC;AAAA,EAAA,IAAnCA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAiC,EAAE,CAAA;AAAA,GAAA;AACtE,EAAA,OAAOynB,kBAAkB,CACvB,UAACtK,KAAK,EAAEiN,OAAO,EAAA;AAAA,IAAA,oBACbnP,yBAAA,CAAAC,aAAA,CAACmP,kBAAkB,EAAA;MACjBlf,SAAS,EAAEG,aAAa,CAAC6R,KAAK,CAAChS,SAAS,EAAEnL,OAAO,CAACmL,SAAS,CAAE;MAC7Dmf,KAAK,EAAEnN,KAAK,CAACpX,OAAQ;MACrByX,EAAE,EAAEL,KAAK,CAACK,EAAG;MACbxd,OAAO,EAAEmd,KAAK,CAACnd,OAAS;MACxB4D,QAAQ,EAAEuZ,KAAK,CAACvZ,QAAS;MACzByO,SAAS,EAAErS,OAAO,CAACqS,SAAU;MAC7BkY,YAAY,EAAEvqB,OAAO,CAACuqB,YAAa;AACnCnC,MAAAA,OAAO,EAAEoC,sBAAsB,CAACrN,KAAK,CAAClb,KAAK,CAACjD,IAAI,CAAA;AAAE,KAAA,CAClD,CAAA;AAAA,GACH,EACD;AACEgB,IAAAA,OAAO,EAAE,IAAA;AACV,GAAA,CACF,CAAA;AACH,CAAA;AAmBM,SAAUqqB,kBAAkBA,CAAAI,MAAA,EAAA;EAAA,IAAAC,QAAA,GAAAlO,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAChC8N,KAAK,GAAAG,MAAA,CAALH,KAAK;MACLtqB,OAAO,GAAAyqB,MAAA,CAAPzqB,OAAO;MACPmL,SAAS,GAAAsf,MAAA,CAATtf,SAAS;MACTid,OAAO,GAAAqC,MAAA,CAAPrC,OAAO;MACPxkB,QAAQ,GAAA6mB,MAAA,CAAR7mB,QAAQ;MAAA+mB,gBAAA,GAAAF,MAAA,CACRpY,SAAS;AAATA,MAAAA,SAAS,GAAAsY,gBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,gBAAA;MAAAC,mBAAA,GAAAH,MAAA,CACjBF,YAAY;AAAZA,MAAAA,YAAY,GAAAK,mBAAA,KAAG,KAAA,CAAA,GAAA,iBAAiB,GAAAA,mBAAA;AAC7BzN,MAAAA,KAAK,GAAAC,6BAAA,CAAAqN,MAAA,EAAAI,UAAA,CAAA,CAAA;AAER,IAAA,IAAQtkB,KAAK,GAAe+jB,KAAK,CAAzB/jB,KAAK;MAAEuU,QAAQ,GAAKwP,KAAK,CAAlBxP,QAAQ,CAAA;IACvB,IAAAgQ,SAAA,GAAoBC,cAAQ,CAAC,CAACnnB,QAAQ,IAAI2C,KAAK,IAAI,IAAI,CAAC;AAAjDykB,MAAAA,SAAS,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;IAChB,IAAMG,eAAe,GAAGvd,aAAO,CAC7B,YAAA;MAAA,OAAMlN,MAAM,CAACsD,WAAW,CAAC9D,OAAO,CAACU,GAAG,CAAC,UAAC3B,CAAC,EAAA;QAAA,OAAK,CAACqpB,OAAO,CAACrpB,CAAC,CAACwH,KAAK,CAAC,EAAExH,CAAC,CAACwH,KAAK,CAAC,CAAA;AAAA,OAAA,CAAC,CAAC,CAAA;KACzE,EAAA,CAACvG,OAAO,CAAC,CACV,CAAA;AACD,IAAA,oBACEib,yBAAA,CAAAC,aAAA,CAAApa,QAAAA,EAAAA,QAAA,KACMqc,KAAK,EAAA;AACThS,MAAAA,SAAS,EAAEA,SAAU;MACrB4d,QAAQ,EAAE,SAAAA,QAAAA,CAAC1nB,CAAC,EAAA;QAAA,OAAMipB,KAAK,CAAC/jB,KAAK,GAAG0kB,eAAe,CAAC5pB,CAAC,CAACiO,MAAM,CAAC/I,KAAK,CAAC,CAAA;OAAE;AACjEA,MAAAA,KAAK,EAAE6hB,OAAO,CAAC7hB,KAAK,CAAE;AACtBuU,MAAAA,QAAQ,EAAEA,QAAAA;AAAS,KAAA,CAAA,EAElBkQ,SAAS,iBACR/P,yBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQ3U,MAAAA,KAAK,EAAC,EAAA;AAAE,KAAA,EAAE3C,QAAQ,GAAG2mB,YAAY,GAAGlY,SAAkB,CAC/D,EACArS,OAAO,CAACU,GAAG,CAAC,UAAC3B,CAAC,EAAEgM,CAAC,EAAA;MAAA,oBAChBkQ,yBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQU,QAAAA,GAAG,EAAE7Q,CAAE;AAACxE,QAAAA,KAAK,EAAE6hB,OAAO,CAACrpB,CAAC,CAACwH,KAAK,CAAE;QAACuU,QAAQ,EAAE/b,CAAC,CAAC+b,QAAAA;OAClD/b,EAAAA,CAAC,CAAC0P,IACG,CAAC,CAAA;AAAA,KACV,CACK,CAAC,CAAA;AACT,GAAA,SAAA;IAAAic,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAGE,SAAUF,sBAAsBA,CAACU,EAAU,EAAA;AAC/C,EAAA,QAAQA,EAAE;IACR,KAAKhtB,iBAAS,CAAC6C,MAAM,CAAA;IACrB,KAAK7C,iBAAS,CAACyD,GAAG,CAAA;IAClB,KAAKzD,iBAAS,CAACitB,MAAM;AACnB,MAAA,OAAO,UAAClkB,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;AAAA,OAAA,CAAA;AACjB,IAAA;AACE,MAAA,OAAO,UAACA,CAAC,EAAA;AAAA,QAAA,IAAAmkB,WAAA,CAAA;AAAA,QAAA,OAAA,CAAAA,WAAA,GAAKnkB,CAAC,IAAA,IAAA,GAAA,KAAA,CAAA,GAADA,CAAC,CAAEgQ,QAAQ,EAAE,KAAA,IAAA,GAAAmU,WAAA,GAAI,EAAE,CAAA;AAAA,OAAA,CAAA;AACpC,GAAA;AACH,CAAA;AAIM,SAAU/C,qBAAqBA,CAAC6C,EAAU,EAAA;AAC9C,EAAA,QAAQA,EAAE;IACR,KAAKhtB,iBAAS,CAAC6C,MAAM;AACnB,MAAA,OAAO,CAAC,MAAM,EAAE,UAACkG,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;AAAA,OAAA,EAAE,UAACA,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;OAAC,CAAA,CAAA;IACrC,KAAK/I,iBAAS,CAAC2D,IAAI;AACjB,MAAA,OAAO,CAAC,MAAM,EAAE,UAACoF,CAAC,EAAA;QAAA,OAAKA,CAAC,KAAK,MAAM,CAAA;AAAA,OAAA,EAAE,UAACA,CAAC,EAAA;AAAA,QAAA,IAAAokB,YAAA,CAAA;AAAA,QAAA,OAAA,CAAAA,YAAA,GAAKpkB,CAAC,IAAA,IAAA,GAAA,KAAA,CAAA,GAADA,CAAC,CAAEgQ,QAAQ,EAAE,KAAA,IAAA,GAAAoU,YAAA,GAAI,EAAE,CAAA;OAAC,CAAA,CAAA;IAClE,KAAKntB,iBAAS,CAACyD,GAAG;AAChB,MAAA,OAAO,CACL,QAAQ,EACR,UAACsF,CAAC,EAAA;QAAA,OAAMA,CAAC,KAAK,EAAE,GAAGqkB,QAAQ,CAACrkB,CAAC,CAAC,GAAG,IAAI,CAAA;OAAC,EACtC,UAACA,CAAC,EAAA;AAAA,QAAA,OAAMA,CAAC,IAAI,IAAI,GAAG,EAAE,GAAGA,CAAC,CAAA;AAAA,OAAC,CAC5B,CAAA;IACH,KAAK/I,iBAAS,CAACsX,IAAI;AACjB,MAAA,OAAO,CAAC,MAAM,EAAE,UAACvO,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;AAAA,OAAA,EAAE,UAACA,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;OAAC,CAAA,CAAA;IACrC,KAAK/I,iBAAS,CAACitB,MAAM;AACnB,MAAA,OAAO,CAAC,QAAQ,EAAE,UAAClkB,CAAC,EAAA;QAAA,OAAKskB,UAAU,CAACtkB,CAAC,CAAC,CAAA;AAAA,OAAA,EAAE,UAACA,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;OAAC,CAAA,CAAA;AACnD,IAAA;AACE,MAAA,OAAO,CAAC,MAAM,EAAE,UAACA,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;AAAA,OAAA,EAAE,UAACA,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;OAAC,CAAA,CAAA;AACtC,GAAA;AACH,CAAA;SAEgByiB,+BAA+BA,GAAA;EAC7C,OAAOQ,wBAAwB,CAAC,UAAC/M,KAAK,EAAA;AAAA,IAAA,oBAAKlC,yBAAA,CAAAC,aAAA,CAACsQ,iBAAiB,EAAKrO,KAAM,CAAG,CAAA;GAAC,CAAA,CAAA;AAC9E,CAAA;AAEgB,SAAAqO,iBAAiBA,CAAAC,MAAA,EAAA;EAAA,IAAAC,QAAA,GAAAlP,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAC/B7C,UAAU,GAAA8R,MAAA,CAAV9R,UAAU;MACVzX,QAAQ,GAAAupB,MAAA,CAARvpB,QAAQ;MACRiJ,SAAS,GAAAsgB,MAAA,CAATtgB,SAAS;MACT4Q,KAAK,GAAA0P,MAAA,CAAL1P,KAAK;MACL8N,MAAM,GAAA4B,MAAA,CAAN5B,MAAM,CAAA;AAEN,IAAA,IAAMxoB,CAAC,GAAGsY,UAAU,CAACpT,KAAK,CAAA;AAC1BgN,IAAAA,eAAS,CAAC,YAAK;AACb,MAAA,IAAIlS,CAAC,EAAE;AACLsY,QAAAA,UAAU,CAACE,QAAQ,CAAC,UAAC/S,EAAE,EAAA;UAAA,OAAM;YAAE4S,OAAO,EAAErY,CAAC,CAACqY,OAAO;YAAEE,OAAO,EAAEvY,CAAC,CAACqY,OAAAA;WAAS,CAAA;AAAA,SAAC,CAAC,CAAA;AAC1E,OAAA;KACF,EAAE,CAACrY,CAAC,IAAA,IAAA,GAAA,KAAA,CAAA,GAADA,CAAC,CAAEqY,OAAO,CAAC,CAAC,CAAA;IAChB,OAAOrY,CAAC,YAADA,CAAC,CAAEqY,OAAO,gBACfuB,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK/P,MAAAA,SAAS,EAAEZ,wBAAI,CAACY,SAAS,CAAE;AAAC4Q,MAAAA,KAAK,EAAEA,KAAM;AAACvV,MAAAA,GAAG,EAAEqjB,MAAAA;KACjD3nB,EAAAA,QACE,CAAC,gBAEN+Y,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EAAA,IAAK,CACN,CAAA;AAAC,GAAA,SAAA;IAAAuQ,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;SAGY9B,aAAaA,CAAA+B,MAAA,EAAA;EAAA,IAAAC,QAAA,GAAApP,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAC3BqP,UAAU,GAAAF,MAAA,CAAVE,UAAU;MAAAC,aAAA,GAAAH,MAAA,CACV1L,MAAM;MAAI8L,UAAU,GAAAD,aAAA,CAAVC,UAAU;MAAEC,YAAY,GAAAF,aAAA,CAAZE,YAAY;MAAEhN,KAAK,GAAA8M,aAAA,CAAL9M,KAAK;MAAE9c,QAAQ,GAAA4pB,aAAA,CAAR5pB,QAAQ;MAAE4d,YAAY,GAAAgM,aAAA,CAAZhM,YAAY,CAAA;IAIjE,IAAMmM,EAAE,GAAGnM,YAAY,CAAA;AACvB,IAAA,IAAMgJ,SAAS,GAAGmD,EAAE,IAAIA,EAAE,CAACC,OAAO,GAAGD,EAAE,CAACjZ,KAAK,GAAGhP,SAAS,CAAA;AACzD,IAAA,oBACEiX,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EACG6D,IAAAA,EAAAA,KAAK,EACLgN,YAAY,EACZ9pB,QAAQ,EACR4mB,SAAS,iBAAI7N,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK/P,MAAAA,SAAS,EAAE0gB,UAAAA;AAAW,KAAA,EAAE/C,SAAe,CAAC,EAC1DiD,UACH,CAAG,CAAA;AACH,GAAA,SAAA;IAAAH,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA;;AC/9BG,IAAMO,oBAAoB,GAAG;AAClCnN,EAAAA,KAAK,EAAE;AACLqF,IAAAA,eAAe,EAAE,WAAW;IAC5BF,eAAe,eAAElJ,yBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAM/P,MAAAA,SAAS,EAAC,cAAA;AAAc,KAAA,EAAE,IAAO,CAAA;GACzD;AACDiY,EAAAA,KAAK,EAAE;AACLqB,IAAAA,cAAc,EAAE,gDAAgD;AAChEC,IAAAA,UAAU,EAAE,WAAW;AACvBG,IAAAA,cAAc,EAAE,MAAA;GACjB;AACD/kB,EAAAA,KAAK,EAAE;AACL0lB,IAAAA,iBAAiB,EAAE,qBAAqB;AACxCD,IAAAA,aAAa,EAAE,iBAAiB;AAChCE,IAAAA,aAAa,EAAE,OAAA;GAChB;AACD9lB,EAAAA,MAAM,EAAE;AACNwL,IAAAA,SAAS,EAAE,sCAAA;GACZ;AACD8U,EAAAA,MAAM,EAAE;AACN9U,IAAAA,SAAS,EAAE,eAAe;AAC1B0gB,IAAAA,UAAU,EAAE,yBAAA;GACb;AACDjsB,EAAAA,IAAI,EAAE;AACJ4nB,IAAAA,gBAAgB,EAAE,kCAAA;AACnB,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}