@react-typed-forms/schemas 7.0.0 → 7.1.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.
@@ -132,6 +132,7 @@ export interface DataControlProps {
132
132
  style: React.CSSProperties | undefined;
133
133
  childCount: number;
134
134
  renderChild: ChildRenderer;
135
+ allowedOptions?: Control<any[] | undefined>;
135
136
  elementRenderer?: (elemProps: Control<any>) => ReactNode;
136
137
  }
137
138
  export type CreateDataProps = (controlProps: DataControlProps) => DataRendererProps;
@@ -144,7 +145,7 @@ export interface ControlRenderOptions extends FormContextOptions {
144
145
  export declare function useControlRenderer(definition: ControlDefinition, fields: SchemaField[], renderer: FormRenderer, options?: ControlRenderOptions): FC<ControlRenderProps>;
145
146
  export declare function lookupSchemaField(c: ControlDefinition, fields: SchemaField[]): SchemaField | undefined;
146
147
  export declare function getControlData(schemaField: SchemaField | undefined, parentContext: ControlDataContext): [Control<any> | undefined, ControlDataContext];
147
- export declare function defaultDataProps({ definition, field, control, options, elementRenderer, style, ...props }: DataControlProps): DataRendererProps;
148
+ export declare function defaultDataProps({ definition, field, control, options, elementRenderer, style, allowedOptions, ...props }: DataControlProps): DataRendererProps;
148
149
  export declare function defaultArrayProps(arrayControl: Control<any[] | undefined | null>, field: SchemaField, required: boolean, style: CSSProperties | undefined, className: string | undefined, renderElement: (elemProps: Control<any>) => ReactNode): ArrayRendererProps;
149
150
  export type ChildRenderer = (k: Key, childIndex: number, props: ControlRenderProps) => ReactNode;
150
151
  export interface RenderControlProps {
@@ -159,8 +160,9 @@ export interface RenderControlProps {
159
160
  schemaField?: SchemaField;
160
161
  displayControl?: Control<string | undefined>;
161
162
  style?: React.CSSProperties;
163
+ allowedOptions?: Control<any[] | undefined>;
162
164
  }
163
- export declare function renderControlLayout({ definition: c, renderer, childCount, renderChild: childRenderer, control: childControl, schemaField, dataContext, formOptions: dataOptions, createDataProps: dataProps, displayControl, style, }: RenderControlProps): ControlLayoutProps;
165
+ export declare function renderControlLayout({ definition: c, renderer, childCount, renderChild: childRenderer, control: childControl, schemaField, dataContext, formOptions: dataOptions, createDataProps: dataProps, displayControl, style, allowedOptions, }: RenderControlProps): ControlLayoutProps;
164
166
  export declare function appendMarkup(k: keyof Omit<RenderedLayout, "errorControl" | "style" | "className">, markup: ReactNode): (layout: RenderedLayout) => void;
165
167
  export declare function wrapMarkup(k: keyof Omit<RenderedLayout, "errorControl" | "style" | "className">, wrap: (ex: ReactNode) => ReactNode): (layout: RenderedLayout) => void;
166
168
  export declare function layoutKeyForPlacement(pos: AdornmentPlacement): keyof Omit<RenderedLayout, "errorControl" | "style" | "className">;
package/lib/hooks.d.ts CHANGED
@@ -6,6 +6,7 @@ export type UseEvalExpressionHook = (expr: EntityExpression | undefined) => Eval
6
6
  export declare function useEvalVisibilityHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition, schemaField?: SchemaField): EvalExpressionHook<boolean>;
7
7
  export declare function useEvalReadonlyHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition): EvalExpressionHook<boolean>;
8
8
  export declare function useEvalStyleHook(useEvalExpressionHook: UseEvalExpressionHook, property: DynamicPropertyType, definition: ControlDefinition): EvalExpressionHook<React.CSSProperties>;
9
+ export declare function useEvalAllowedOptionsHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition): EvalExpressionHook<any[]>;
9
10
  export declare function useEvalDisabledHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition): EvalExpressionHook<boolean>;
10
11
  export declare function useEvalDisplayHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition): (groupContext: ControlDataContext) => Control<string | undefined> | undefined;
11
12
  export declare function useEvalDefaultValueHook(useEvalExpressionHook: UseEvalExpressionHook, definition: ControlDefinition, schemaField?: SchemaField): EvalExpressionHook;
package/lib/index.js CHANGED
@@ -39,6 +39,7 @@ exports.DynamicPropertyType = void 0;
39
39
  DynamicPropertyType["Display"] = "Display";
40
40
  DynamicPropertyType["Style"] = "Style";
41
41
  DynamicPropertyType["LayoutStyle"] = "LayoutStyle";
42
+ DynamicPropertyType["AllowedOptions"] = "AllowedOptions";
42
43
  })(exports.DynamicPropertyType || (exports.DynamicPropertyType = {}));
43
44
  exports.ExpressionType = void 0;
44
45
  (function (ExpressionType) {
@@ -695,6 +696,13 @@ function useEvalStyleHook(useEvalExpressionHook, property, definition) {
695
696
  return core.useControl(undefined);
696
697
  }, [dynamicStyle]);
697
698
  }
699
+ function useEvalAllowedOptionsHook(useEvalExpressionHook, definition) {
700
+ var dynamicAllowed = useEvalDynamicHook(definition, exports.DynamicPropertyType.AllowedOptions, useEvalExpressionHook);
701
+ return React.useCallback(function (ctx) {
702
+ if (dynamicAllowed) return dynamicAllowed(ctx);
703
+ return core.useControl([]);
704
+ }, [dynamicAllowed]);
705
+ }
698
706
  function useEvalDisabledHook(useEvalExpressionHook, definition) {
699
707
  var dynamicDisabled = useEvalDynamicHook(definition, exports.DynamicPropertyType.Disabled, useEvalExpressionHook);
700
708
  return React.useCallback(function (ctx) {
@@ -889,7 +897,7 @@ function defaultTextValue(f, value) {
889
897
  }
890
898
  }
891
899
 
892
- var _excluded$1 = ["definition", "field", "control", "options", "elementRenderer", "style"];
900
+ var _excluded$1 = ["definition", "field", "control", "options", "elementRenderer", "style", "allowedOptions"];
893
901
  var AppendAdornmentPriority = 0;
894
902
  var WrapAdornmentPriority = 1000;
895
903
  exports.LabelType = void 0;
@@ -910,6 +918,7 @@ function useControlRenderer(definition, fields, renderer, options) {
910
918
  var useIsVisible = useEvalVisibilityHook(useExpr, definition, schemaField);
911
919
  var useIsReadonly = useEvalReadonlyHook(useExpr, definition);
912
920
  var useIsDisabled = useEvalDisabledHook(useExpr, definition);
921
+ var useAllowedOptions = useEvalAllowedOptionsHook(useExpr, definition);
913
922
  var useCustomStyle = useEvalStyleHook(useExpr, exports.DynamicPropertyType.Style, definition);
914
923
  var useLayoutStyle = useEvalStyleHook(useExpr, exports.DynamicPropertyType.LayoutStyle, definition);
915
924
  var useDynamicDisplay = useEvalDisplayHook(useExpr, definition);
@@ -958,6 +967,7 @@ function useControlRenderer(definition, fields, renderer, options) {
958
967
  };
959
968
  });
960
969
  });
970
+ var allowedOptions = useAllowedOptions(dataContext);
961
971
  var defaultValueControl = useDefaultValue(dataContext);
962
972
  var _getControlData = getControlData(_schemaField, dataContext),
963
973
  control = _getControlData[0],
@@ -1018,7 +1028,8 @@ function useControlRenderer(definition, fields, renderer, options) {
1018
1028
  control: displayControl != null ? displayControl : control,
1019
1029
  schemaField: _schemaField,
1020
1030
  displayControl: displayControl,
1021
- style: customStyle
1031
+ style: customStyle,
1032
+ allowedOptions: allowedOptions
1022
1033
  });
1023
1034
  var renderedControl = renderer.renderLayout(_extends({}, labelAndChildren, {
1024
1035
  adornments: adornments,
@@ -1031,7 +1042,7 @@ function useControlRenderer(definition, fields, renderer, options) {
1031
1042
  } finally {
1032
1043
  stopTracking();
1033
1044
  }
1034
- }, [r, dataProps, useIsVisible, useDefaultValue, useIsReadonly, useIsDisabled, useCustomStyle, useLayoutStyle, useDynamicDisplay, useValidation, renderer, schemaInterface]);
1045
+ }, [r, dataProps, useIsVisible, useDefaultValue, useIsReadonly, useIsDisabled, useCustomStyle, useLayoutStyle, useAllowedOptions, useDynamicDisplay, useValidation, renderer, schemaInterface]);
1035
1046
  Component.displayName = "RenderControl";
1036
1047
  return Component;
1037
1048
  }
@@ -1067,21 +1078,26 @@ function groupProps(renderOptions, childCount, _renderChild, control, className,
1067
1078
  };
1068
1079
  }
1069
1080
  function defaultDataProps(_ref3) {
1070
- var _field$options$length, _field$options, _definition$renderOpt;
1081
+ var _field$options$length, _field$options, _allowedOptions$value, _definition$renderOpt;
1071
1082
  var definition = _ref3.definition,
1072
1083
  field = _ref3.field,
1073
1084
  control = _ref3.control,
1074
1085
  options = _ref3.options,
1075
1086
  elementRenderer = _ref3.elementRenderer,
1076
1087
  style = _ref3.style,
1088
+ allowedOptions = _ref3.allowedOptions,
1077
1089
  props = _objectWithoutPropertiesLoose(_ref3, _excluded$1);
1078
1090
  var className = cc(definition.styleClass);
1079
1091
  var required = !!definition.required;
1092
+ var fieldOptions = ((_field$options$length = (_field$options = field.options) == null ? void 0 : _field$options.length) != null ? _field$options$length : 0) === 0 ? null : field.options;
1093
+ var allowed = (_allowedOptions$value = allowedOptions == null ? void 0 : allowedOptions.value) != null ? _allowedOptions$value : [];
1080
1094
  return _extends({
1081
1095
  control: control,
1082
1096
  field: field,
1083
1097
  id: "c" + control.uniqueId,
1084
- options: ((_field$options$length = (_field$options = field.options) == null ? void 0 : _field$options.length) != null ? _field$options$length : 0) === 0 ? null : field.options,
1098
+ options: fieldOptions && allowed.length > 0 ? fieldOptions.filter(function (x) {
1099
+ return allowed.includes(x.value);
1100
+ }) : fieldOptions,
1085
1101
  readonly: !!options.readonly,
1086
1102
  renderOptions: (_definition$renderOpt = definition.renderOptions) != null ? _definition$renderOpt : {
1087
1103
  type: "Standard"
@@ -1141,7 +1157,8 @@ function renderControlLayout(_ref4) {
1141
1157
  dataOptions = _ref4.formOptions,
1142
1158
  dataProps = _ref4.createDataProps,
1143
1159
  displayControl = _ref4.displayControl,
1144
- style = _ref4.style;
1160
+ style = _ref4.style,
1161
+ allowedOptions = _ref4.allowedOptions;
1145
1162
  if (isDataControlDefinition(c)) {
1146
1163
  return renderData(c);
1147
1164
  }
@@ -1199,6 +1216,7 @@ function renderControlLayout(_ref4) {
1199
1216
  options: dataOptions,
1200
1217
  style: style,
1201
1218
  childCount: childCount,
1219
+ allowedOptions: allowedOptions,
1202
1220
  renderChild: childRenderer,
1203
1221
  elementRenderer: elementControl == null && schemaField.collection ? function (element) {
1204
1222
  return renderLayoutParts(renderData(c, element), renderer).children;
@@ -2143,6 +2161,7 @@ exports.stringOptionsField = stringOptionsField;
2143
2161
  exports.textDisplayControl = textDisplayControl;
2144
2162
  exports.useControlDefinitionForSchema = useControlDefinitionForSchema;
2145
2163
  exports.useControlRenderer = useControlRenderer;
2164
+ exports.useEvalAllowedOptionsHook = useEvalAllowedOptionsHook;
2146
2165
  exports.useEvalDefaultValueHook = useEvalDefaultValueHook;
2147
2166
  exports.useEvalDisabledHook = useEvalDisabledHook;
2148
2167
  exports.useEvalDisplayHook = useEvalDisplayHook;
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}\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<S extends SchemaField>(\n options: Partial<SchemaField>,\n v: (name: string) => S,\n): (name: string) => S {\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","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\";\n\nexport interface ControlDataContext {\n groupControl: Control<any>;\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 ? context.groupControl.fields?.[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 control = ctx.groupControl.fields[fieldData.field];\n const result = def ? cb(def, fieldData, control, false) : undefined;\n if (result !== undefined) return result;\n if (fieldData.collection) {\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 fields: fieldData.children,\n groupControl: c,\n schemaInterface: ctx.schemaInterface,\n },\n cb,\n );\n if (cfResult !== undefined) return cfResult;\n }\n }\n }\n }\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","import {\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 } from \"./util\";\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","import { Control, useControl, useControlEffect } 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","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, useMemo } from \"react\";\nimport {\n Control,\n useComputed,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\n\nimport {\n ControlDataContext,\n defaultValueForField,\n findField,\n getDisplayOnlyOptions,\n getTypeField,\n isControlReadonly,\n useUpdatedRef,\n} from \"./util\";\nimport jsonata from \"jsonata\";\nimport { useCalculatedControl } from \"./internal\";\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 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: Control<any>,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField ? data.fields[refField.field] : undefined;\n return useCalculatedControl(() => otherField?.value);\n}\n\nfunction useDataMatchExpression(\n fvExpr: DataMatchExpression,\n fields: SchemaField[],\n data: Control<any>,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField ? data.fields[refField.field] : 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.groupControl,\n );\n case ExpressionType.Data:\n return useDataExpression(\n expr as DataExpression,\n context.fields,\n context.groupControl,\n );\n case ExpressionType.DataMatch:\n return useDataMatchExpression(\n expr as DataMatchExpression,\n context.fields,\n context.groupControl,\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 context.groupControl.fields[field.field].value,\n )\n );\n}\n\nexport function useJsonataExpression(\n jExpr: string,\n data: Control<any>,\n): Control<any> {\n const compiledExpr = useMemo(() => {\n try {\n return jsonata(jExpr);\n } catch (e) {\n console.error(e);\n return jsonata(\"\");\n }\n }, [jExpr]);\n const control = useControl();\n useControlEffect(\n () => data.value,\n async (v) => {\n control.value = await compiledExpr.evaluate(v);\n },\n true,\n );\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.groupControl);\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 newControl,\n removeElement,\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 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 findField,\n isCompoundField,\n useUpdatedRef,\n} from \"./util\";\nimport { dataControl } from \"./controlBuilder\";\nimport {\n defaultUseEvalExpressionHook,\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 renderOptions: GroupRenderOptions;\n childCount: number;\n renderChild: (child: number) => ReactNode;\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 childCount: number;\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}\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 childCount: number;\n renderChild: ChildRenderer;\n elementRenderer?: (elemProps: Control<any>) => ReactNode;\n}\nexport type CreateDataProps = (\n controlProps: DataControlProps,\n) => DataRendererProps;\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 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: parentControl }: ControlRenderProps) => {\n const stopTracking = useComponentTracking();\n try {\n const { definition: c, options, fields, schemaField } = r.current;\n const dataContext: ControlDataContext = {\n groupControl: parentControl,\n fields,\n schemaInterface,\n };\n const readonlyControl = useIsReadonly(dataContext);\n const disabledControl = useIsDisabled(dataContext);\n const visibleControl = useIsVisible(dataContext);\n const displayControl = useDynamicDisplay(dataContext);\n const customStyle = useCustomStyle(dataContext).value;\n const layoutStyle = useLayoutStyle(dataContext).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 defaultValueControl = useDefaultValue(dataContext);\n const [control, childContext] = getControlData(\n schemaField,\n dataContext,\n );\n useControlEffect(\n () => [\n visibility.value,\n defaultValueControl.value,\n control,\n parentControl.isNull,\n isDataControlDefinition(definition) && definition.dontClearHidden,\n ],\n ([vc, dv, cd, pn, dontClear]) => {\n if (pn) {\n parentControl.value = {};\n }\n if (vc && cd && vc.visible === vc.showing) {\n if (!vc.visible) {\n if (options.clearHidden && !dontClear) cd.value = undefined;\n } else if (cd.value == null) {\n cd.value = dv;\n }\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(control!, !!myOptions.hidden, dataContext);\n const childRenderers: FC<ControlRenderProps>[] =\n c.children?.map((cd) =>\n useControlRenderer(cd, childContext.fields, renderer, {\n ...options,\n ...myOptions,\n }),\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 const adornments =\n definition.adornments?.map((x) =>\n renderer.renderAdornment({ adornment: x }),\n ) ?? [];\n const labelAndChildren = renderControlLayout({\n definition: c,\n renderer,\n childCount: childRenderers.length,\n renderChild: (k, i, props) => {\n const RenderChild = childRenderers[i];\n return <RenderChild key={k} {...props} />;\n },\n createDataProps: dataProps,\n formOptions: myOptions,\n dataContext,\n control: displayControl ?? control,\n schemaField,\n displayControl,\n style: customStyle,\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 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, ControlDataContext] {\n const childControl: Control<any> | undefined = schemaField\n ? parentContext.groupControl.fields?.[schemaField.field] ?? newControl({})\n : undefined;\n return [\n childControl,\n schemaField && isCompoundField(schemaField)\n ? {\n groupControl: childControl!,\n fields: schemaField.children,\n schemaInterface: parentContext.schemaInterface,\n }\n : parentContext,\n ];\n}\n\nfunction groupProps(\n renderOptions: GroupRenderOptions = { type: \"Standard\" },\n childCount: number,\n renderChild: ChildRenderer,\n control: Control<any>,\n className: string | null | undefined,\n style: React.CSSProperties | undefined,\n): GroupRendererProps {\n return {\n childCount,\n renderChild: (i) => renderChild(i, i, { control }),\n renderOptions,\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 ...props\n}: DataControlProps): DataRendererProps {\n const className = cc(definition.styleClass);\n const required = !!definition.required;\n return {\n control,\n field,\n id: \"c\" + control.uniqueId,\n options: (field.options?.length ?? 0) === 0 ? null : field.options,\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: (elemProps: Control<any>) => 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(elems[i]),\n className: cc(className),\n style,\n };\n}\n\nexport type ChildRenderer = (\n k: Key,\n childIndex: number,\n props: ControlRenderProps,\n) => ReactNode;\n\nexport interface RenderControlProps {\n definition: ControlDefinition;\n renderer: FormRenderer;\n childCount: number;\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}\nexport function renderControlLayout({\n definition: c,\n renderer,\n childCount,\n renderChild: childRenderer,\n control: childControl,\n schemaField,\n dataContext,\n formOptions: dataOptions,\n createDataProps: dataProps,\n displayControl,\n style,\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(\n c.groupOptions,\n childCount,\n childRenderer,\n dataContext.groupControl,\n c.styleClass,\n style,\n ),\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, elementControl?: Control<any>) {\n if (!schemaField) return { children: \"No schema field for: \" + c.field };\n const props = dataProps({\n definition: c,\n field: schemaField,\n dataContext,\n control: elementControl ?? childControl!,\n options: dataOptions,\n style,\n childCount,\n renderChild: childRenderer,\n elementRenderer:\n elementControl == null && schemaField.collection\n ? (element) =>\n renderLayoutParts(renderData(c, element), 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 function compoundRenderer(i: number, control: Control<any>): ReactNode {\n const { className, style, children } = renderer.renderLayout({\n processLayout: renderer.renderGroup({\n renderOptions: { type: \"Standard\", hideTitle: true },\n childCount,\n renderChild: (ci) => childRenderer(ci, ci, { control }),\n }),\n });\n return (\n <div key={control.uniqueId} style={style} className={cc(className)}>\n {children}\n </div>\n );\n }\n function scalarRenderer(\n dataProps: DataRendererProps,\n ): (i: number, control: Control<any>) => ReactNode {\n return (i, control) => {\n return (\n <Fragment key={control.uniqueId}>\n {renderer.renderData({ ...dataProps, control })({}).children}\n </Fragment>\n );\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","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 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 { childCount, renderChild, renderOptions } = 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 {Array.from({ length: childCount }, (_, x) => renderChild(x))}\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 renderOptions: { type: \"Standard\", hideTitle: true },\n renderChild: (i) => props.renderChild(i, i, { control: props.control }),\n childCount: props.childCount,\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","applyDefaultValues","defaultValueForFields","applyValue","filter","isCompoundField","length","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","required","treeChildren","fromEntries","sf","undefined","isRequired","childValue","notNullable","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","tags","includes","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","existing","changedCompounds","_cf$children","ex","cf","concat","useUpdatedRef","a","r","useRef","current","isControlReadonly","readonly","getDisplayOnlyOptions","d","getTypeField","context","_context$groupControl","typeSchemaField","isTypeField","groupControl","visitControlDataArray","cb","_iterator2","_step2","visitControlData","definition","ctx","processData","fieldName","fieldData","result","_iterator3","_control$elements","elements","_step3","elemResult","cfResult","schemaInterface","cleanDataForSchema","typeField","typeValue","cleanableFields","_x$onlyForTypes$lengt","_x$onlyForTypes","onlyForTypes","_x$onlyForTypes2","canBeNull","childFields","Array","isArray","cv","getAllReferencedClasses","_c$children","childClasses","tc","clsx","styleClass","layoutClass","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","useCalculatedControl","calculate","useControl","useControlEffect","cc","useEvalVisibilityHook","useEvalExpressionHook","schemaField","useEvalDynamicHook","useCallback","_dynamicVisibility","_r$current","useComputed","matchesType","hideDisplayOnly","useEvalReadonlyHook","useEvalStyleHook","property","dynamicStyle","useEvalDisabledHook","useEvalDisplayHook","dynamicDisplay","useEvalDefaultValueHook","dynamicValue","_dynamicValue","_r$current2","calcDefault","_ref","dcv","useDataExpression","fvExpr","refField","otherField","useDataMatchExpression","fv","defaultEvalHooks","useJsonataExpression","defaultUseEvalExpressionHook","makeEvalExpressionHook","f","_definition$dynamic","dynamic","types","displayOptions","emptyText","isEmptyValue","jExpr","compiledExpr","jsonata","e","console","error","Promise","resolve","evaluate","then","_compiledExpr$evaluat","reject","useValidationHook","_definition$validator","_definition$validator2","validatorTypes","validators","hidden","groupContext","_dd$validators","dd","useValueChangeEffect","setError","useValidator","i","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","useCustomStyle","Style","useLayoutStyle","LayoutStyle","useDynamicDisplay","useValidation","Component","parentControl","stopTracking","useComponentTracking","_c$children$map","_definition$adornment","_definition$adornment2","dataContext","readonlyControl","disabledControl","visibleControl","displayControl","customStyle","layoutStyle","visible","visibility","showing","setValue","defaultValueControl","_getControlData","getControlData","childContext","isNull","dontClearHidden","_ref2","vc","cd","pn","dontClear","clearHidden","myOptions","_visibility$fields","disabled","childRenderers","useEffect","React","createElement","Fragment","adornments","renderAdornment","adornment","labelAndChildren","renderControlLayout","childCount","renderChild","k","props","RenderChild","key","createDataProps","formOptions","style","renderedControl","renderLayout","className","renderVisibility","parentContext","_parentContext$groupC","_parentContext$groupC2","childControl","newControl","groupProps","_ref3","_field$options$length","_field$options","_definition$renderOpt","elementRenderer","_objectWithoutPropertiesLoose","_excluded","id","uniqueId","toArrayProps","defaultArrayProps","arrayControl","renderElement","_arrayControl$element","noun","elems","elementCount","addAction","addElement","elementKey","removeAction","removeElement","_ref4","childRenderer","dataOptions","renderData","_c$groupOptions2","_c$groupOptions","processLayout","renderGroup","label","hide","_c$title","renderAction","_c$displayData","renderDisplay","elementControl","element","renderLayoutParts","labelText","controlTitle","Control","forId","errorControl","appendMarkup","markup","layout","wrapMarkup","wrap","layoutKeyForPlacement","pos","ControlEnd","ControlStart","LabelStart","LabelEnd","appendMarkupAt","wrapMarkupAt","_props$processLayout","_ref5","sort","b","priority","apply","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","l","_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","_ref6$columns","columns","gridTemplateColumns","flexStyles","gap","flexDirection","direction","_ref7","gcn","cp","createDefaultDisplayRenderer","DefaultDisplay","_ref8","_effect","_useComponentTracking","_display$value","Icon","iconClass","textClassName","htmlClassName","dangerouslySetInnerHTML","__html","DefaultBoolOptions","name","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","displayOnlyClass","createDataRenderer","renderers","fieldType","p","Any","DefaultDisplayOnly","isBool","Dropdown","Checkbox","Fcheckbox","ControlInput","readOnly","convert","createInputConversion","_ref9","_effect2","_ref10","_ref11","_effect3","_excluded2","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded3","target","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;AA2CWC,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,qCAQX;AARD,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;AAC7B,CAAC,EARWA,2BAAmB,KAAnBA,2BAAmB,GAQ9B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvYM,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,CAC/BpB,OAA6B,EAC7BqB,CAAsB,EAAA;AAEtB,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;;ACtHgB,SAAAG,kBAAkBA,CAChChB,CAAmC,EACnCU,MAAqB,EAAA;AAErB,EAAA,IAAI,CAACV,CAAC,EAAE,OAAOiB,qBAAqB,CAACP,MAAM,CAAC,CAAA;AAC5C,EAAA,IAAMQ,UAAU,GAAGR,MAAM,CAACS,MAAM,CAC9B,UAACzD,CAAC,EAAA;IAAA,OAAK0D,eAAe,CAAC1D,CAAC,CAAC,IAAI,EAAEA,CAAC,CAACkD,KAAK,IAAIZ,CAAC,CAAC,CAAA;GAC7C,CAAA,CAAA;AACD,EAAA,IAAI,CAACkB,UAAU,CAACG,MAAM,EAAE,OAAOrB,CAAC,CAAA;AAChC,EAAA,IAAMsB,GAAG,GAAA7B,QAAA,CAAA,EAAA,EAAQO,CAAC,CAAE,CAAA;AACpBkB,EAAAA,UAAU,CAACK,OAAO,CAAC,UAAC7D,CAAC,EAAI;AACvB4D,IAAAA,GAAG,CAAC5D,CAAC,CAACkD,KAAK,CAAC,GACVlD,CAAC,CAACkD,KAAK,IAAIZ,CAAC,GACRwB,oBAAoB,CAACxB,CAAC,CAACtC,CAAC,CAACkD,KAAK,CAAC,EAAElD,CAAC,EAAEgD,MAAM,CAAC,GAC3Ce,oBAAoB,CAAC/D,CAAC,CAAC,CAAA;AAC/B,GAAC,CAAC,CAAA;AACF,EAAA,OAAO4D,GAAG,CAAA;AACZ,CAAA;AAEM,SAAUE,oBAAoBA,CAClCxB,CAAM,EACNY,KAAkB,EAClBc,MAAqB,EACrBC,UAAoB,EAAA;AAEpB,EAAA,IAAIf,KAAK,CAACE,UAAU,IAAI,CAACa,UAAU,EAAE;IACnC,OAAO,CAAE3B,CAAW,IAAA,IAAA,GAAXA,CAAW,GAAI,EAAE,EAAEX,GAAG,CAAC,UAAC3B,CAAC,EAAA;MAAA,OAChC8D,oBAAoB,CAAC9D,CAAC,EAAEkD,KAAK,EAAEc,MAAM,EAAE,IAAI,CAAC,CAAA;KAC7C,CAAA,CAAA;AACF,GAAA;AACD,EAAA,IAAIN,eAAe,CAACR,KAAK,CAAC,EAAE;IAC1B,IAAI,CAACZ,CAAC,IAAI,CAACY,KAAK,CAACgB,QAAQ,EAAE,OAAO5B,CAAC,CAAA;AACnC,IAAA,OAAOgB,kBAAkB,CAAChB,CAAC,EAAEY,KAAK,CAACiB,YAAY,GAAGH,MAAM,GAAGd,KAAK,CAACC,QAAQ,CAAC,CAAA;AAC3E,GAAA;EACD,OAAOY,oBAAoB,CAACb,KAAK,CAAC,CAAA;AACpC,CAAA;AAEM,SAAUK,qBAAqBA,CAACP,MAAqB,EAAA;EACzD,OAAOvB,MAAM,CAAC2C,WAAW,CACvBpB,MAAM,CAACrB,GAAG,CAAC,UAAC3B,CAAC,EAAA;IAAA,OAAK,CAACA,CAAC,CAACkD,KAAK,EAAEa,oBAAoB,CAAC/D,CAAC,CAAC,CAAC,CAAA;AAAA,GAAA,CAAC,CACtD,CAAA;AACH,CAAA;AAEgB,SAAA+D,oBAAoBA,CAClCM,EAAe,EACfH,QAAyB,EAAA;EAEzB,IAAIG,EAAE,CAAC1D,YAAY,KAAK2D,SAAS,EAAE,OAAOD,EAAE,CAAC1D,YAAY,CAAA;EACzD,IAAM4D,UAAU,GAAG,CAAC,EAAEL,QAAQ,IAAIG,EAAE,CAACH,QAAQ,CAAC,CAAA;AAC9C,EAAA,IAAIR,eAAe,CAACW,EAAE,CAAC,EAAE;AACvB,IAAA,IAAIE,UAAU,EAAE;AACd,MAAA,IAAMC,UAAU,GAAGjB,qBAAqB,CAACc,EAAE,CAAClB,QAAQ,CAAC,CAAA;MACrD,OAAOkB,EAAE,CAACjB,UAAU,GAAG,CAACoB,UAAU,CAAC,GAAGA,UAAU,CAAA;AACjD,KAAA;AACD,IAAA,OAAOH,EAAE,CAACI,WAAW,GAAIJ,EAAE,CAACjB,UAAU,GAAG,EAAE,GAAG,EAAE,GAAIkB,SAAS,CAAA;AAC9D,GAAA;EACD,IAAID,EAAE,CAACjB,UAAU,EAAE;AACjB,IAAA,OAAO,EAAE,CAAA;AACV,GAAA;AACD,EAAA,OAAOkB,SAAS,CAAA;AAClB,CAAA;AAEM,SAAUI,oBAAoBA,CAACL,EAAe,EAAA;AAClD,EAAA,IAAIX,eAAe,CAACW,EAAE,CAAC,EAAE;AACvB,IAAA,OAAOd,qBAAqB,CAACc,EAAE,CAAClB,QAAQ,CAAC,CAAA;AAC1C,GAAA;EACD,OAAOkB,EAAE,CAAC1D,YAAY,CAAA;AACxB,CAAA;AAEgB,SAAAgE,eAAeA,CAC7B3B,MAAqB,EACrBE,KAAa,EAAA;AAEb,EAAA,OAAO0B,SAAS,CAAC5B,MAAM,EAAEE,KAAK,CAAC,CAAA;AACjC,CAAA;AAEgB,SAAA2B,iBAAiBA,CAC/B7B,MAAqB,EACrBE,KAAa,EAAA;AAEb,EAAA,OAAO0B,SAAS,CAAC5B,MAAM,EAAEE,KAAK,CAA8B,CAAA;AAC9D,CAAA;AAEgB,SAAA0B,SAASA,CACvB5B,MAAqB,EACrBE,KAAa,EAAA;AAEb,EAAA,OAAOF,MAAM,CAAC8B,IAAI,CAAC,UAAC9E,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,CAACkD,KAAK,KAAKA,KAAK,CAAA;GAAC,CAAA,CAAA;AAC9C,CAAA;AAEM,SAAU6B,aAAaA,CAACV,EAAe,EAAA;AAC3C,EAAA,OAAO,CAACX,eAAe,CAACW,EAAE,CAAC,CAAA;AAC7B,CAAA;AAEM,SAAUX,eAAeA,CAACW,EAAe,EAAA;AAC7C,EAAA,OAAOA,EAAE,CAACpE,IAAI,KAAKd,iBAAS,CAACkE,QAAQ,CAAA;AACvC,CAAA;AAEM,SAAU2B,aAAaA,CAC3BC,CAAoB,EAAA;AAEpB,EAAA,OAAOA,CAAC,CAAChF,IAAI,KAAKb,6BAAqB,CAACc,IAAI,CAAA;AAC9C,CAAA;AAEM,SAAUgF,cAAcA,CAC5BD,CAAoB,EAAA;AAEpB,EAAA,OAAOA,CAAC,CAAChF,IAAI,KAAKb,6BAAqB,CAACgB,KAAK,CAAA;AAC/C,CAAA;AAEgB,SAAA+E,WAAWA,CAACjC,KAAkB,EAAEkC,GAAW,EAAA;AAAA,EAAA,IAAAC,WAAA,CAAA;AACzD,EAAA,OAAOC,OAAO,CAAA,CAAAD,WAAA,GAACnC,KAAK,CAACqC,IAAI,KAAVF,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAYG,QAAQ,CAACJ,GAAG,CAAC,CAAC,CAAA;AAC3C,CAAA;AAEM,SAAUK,gBAAgBA,CAACvC,KAAkB,EAAA;AAAA,EAAA,IAAAwC,kBAAA,CAAA;EACjD,OAAAA,CAAAA,kBAAA,GAAOxC,KAAK,CAACrB,WAAW,YAAA6D,kBAAA,GAAIxC,KAAK,CAACA,KAAK,CAAA;AACzC,CAAA;AAEM,SAAUyC,UAAUA,CAACC,CAAgD,EAAA;EAAA,IAAAC,iBAAA,EAAAC,UAAA,CAAA;AACzE,EAAA,OAAO,EAAAD,iBAAA,GAAA,CAAAC,UAAA,GAACF,CAAC,CAAC3E,OAAO,KAAT6E,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAA,CAAWnC,MAAM,KAAA,IAAA,GAAAkC,iBAAA,GAAI,CAAC,IAAI,CAAC,CAAA;AACrC,CAAA;AAEM,SAAUE,sBAAsBA,CAAC1B,EAAe,EAAA;AACpD,EAAA,IAAIX,eAAe,CAACW,EAAE,CAAC,EAAE;IACvB,OAAO;MACLpE,IAAI,EAAEb,6BAAqB,CAACc,IAAI;MAChC8F,KAAK,EAAE3B,EAAE,CAACxC,WAAW;MACrBqB,KAAK,EAAEmB,EAAE,CAACnB,KAAK;MACfgB,QAAQ,EAAEG,EAAE,CAACH,QAAQ;AACrBf,MAAAA,QAAQ,EAAEkB,EAAE,CAAClB,QAAQ,CAACxB,GAAG,CAACoE,sBAAsB,CAAA;KACjD,CAAA;AACF,GAAA,MAAM,IAAIhB,aAAa,CAACV,EAAE,CAAC,EAAE;AAAA,IAAA,IAAA4B,QAAA,CAAA;AAC5B,IAAA,IAAMC,UAAU,GAAA,CAAAD,QAAA,GAAG5B,EAAE,CAACkB,IAAI,KAAA,IAAA,GAAA,KAAA,CAAA,GAAPU,QAAA,CAAST,QAAQ,CAAC,aAAa,CAAC,CAAA;IACnD,OAAO;MACLvF,IAAI,EAAEb,6BAAqB,CAACc,IAAI;MAChC8F,KAAK,EAAE3B,EAAE,CAACxC,WAAW;MACrBqB,KAAK,EAAEmB,EAAE,CAACnB,KAAK;MACfgB,QAAQ,EAAEG,EAAE,CAACH,QAAQ;AACrBiC,MAAAA,aAAa,EAAE;QACblG,IAAI,EAAEiG,UAAU,GAAGzG,sBAAc,CAAC2G,UAAU,GAAG3G,sBAAc,CAAC4G,QAAAA;AAC/D,OAAA;KACF,CAAA;AACF,GAAA;AACD,EAAA,MAAM,sBAAsB,CAAA;AAC9B,CAAA;AACA,SAASC,qBAAqBA,CAC5BpD,KAAa,EACbqD,OAA0B,EAAA;AAE1B,EAAA,IAAIvB,aAAa,CAACuB,OAAO,CAAC,IAAIrD,KAAK,KAAKqD,OAAO,CAACrD,KAAK,EAAE,OAAOqD,OAAO,CAAA;AACrE,EAAA,IAAIrB,cAAc,CAACqB,OAAO,CAAC,EAAE;AAAA,IAAA,IAAAC,iBAAA,CAAA;AAC3B,IAAA,IAAID,OAAO,CAACxD,aAAa,EACvB,OAAOG,KAAK,KAAKqD,OAAO,CAACxD,aAAa,GAAGwD,OAAO,GAAGjC,SAAS,CAAA;AAC9D,IAAA,OAAOmC,4BAA4B,CAACvD,KAAK,EAAA,CAAAsD,iBAAA,GAAED,OAAO,CAACpD,QAAQ,KAAA,IAAA,GAAAqD,iBAAA,GAAI,EAAE,CAAC,CAAA;AACnE,GAAA;AACD,EAAA,OAAOlC,SAAS,CAAA;AAClB,CAAA;AAEA,SAASmC,4BAA4BA,CACnCvD,KAAa,EACbwD,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,IAAf7B,CAAC,GAAA4B,KAAA,CAAAE,KAAA,CAAA;AACV,IAAA,IAAMC,GAAG,GAAGV,qBAAqB,CAACpD,KAAK,EAAE+B,CAAC,CAAC,CAAA;IAC3C,IAAI+B,GAAG,EAAE,OAAOA,GAAG,CAAA;AACpB,GAAA;AACD,EAAA,OAAO1C,SAAS,CAAA;AAClB,CAAA;AAEgB,SAAA2C,kBAAkBA,CAChCjE,MAAqB,EACrB0D,QAA6B,EAAA;EAE7B,IAAMQ,OAAO,GAGPlE,MAAM,CAACmE,OAAO,CAAC,UAACnH,CAAC,EAAI;IACzB,IAAImF,WAAW,CAACnF,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAA;IAC3C,IAAMoH,QAAQ,GAAGX,4BAA4B,CAACzG,CAAC,CAACkD,KAAK,EAAEwD,QAAQ,CAAC,CAAA;IAChE,IAAI,CAACU,QAAQ,IAAI1D,eAAe,CAAC1D,CAAC,CAAC,EAAE,OAAO;AAAEkD,MAAAA,KAAK,EAAElD,CAAC;AAAEoH,MAAAA,QAAQ,EAARA,QAAAA;KAAU,CAAA;AAClE,IAAA,OAAO,EAAE,CAAA;AACX,GAAC,CAAC,CAAA;EACF,IAAMC,gBAAgB,GAAGX,QAAQ,CAAC/E,GAAG,CAAC,UAAC3B,CAAC,EAAI;AAAA,IAAA,IAAAsH,YAAA,CAAA;AAC1C,IAAA,IAAMC,EAAE,GAAGL,OAAO,CAACpC,IAAI,CAAC,UAACG,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC,CAACmC,QAAQ,KAAKpH,CAAC,CAAA;KAAC,CAAA,CAAA;AAChD,IAAA,IAAI,CAACuH,EAAE,EAAE,OAAOvH,CAAC,CAAA;IACjB,IAAMwH,EAAE,GAAGxH,CAA8B,CAAA;IACzC,OAAA+B,QAAA,KACKyF,EAAE,EAAA;AACLrE,MAAAA,QAAQ,EAAE8D,kBAAkB,CACzBM,EAAE,CAACrE,KAAuB,CAACC,QAAQ,EAAAmE,CAAAA,YAAA,GACpCE,EAAE,CAACrE,QAAQ,KAAAmE,IAAAA,GAAAA,YAAA,GAAI,EAAE,CAAA;AAClB,KAAA,CAAA,CAAA;AAEL,GAAC,CAAC,CAAA;EACF,OAAOD,gBAAgB,CAACI,MAAM,CAC5BP,OAAO,CACJzD,MAAM,CAAC,UAACzD,CAAC,EAAA;IAAA,OAAK,CAACA,CAAC,CAACoH,QAAQ,CAAA;AAAA,GAAA,CAAC,CAC1BzF,GAAG,CAAC,UAAC3B,CAAC,EAAA;AAAA,IAAA,OAAK+F,sBAAsB,CAAC/F,CAAC,CAACkD,KAAK,CAAC,CAAA;AAAA,GAAA,CAAC,CAC/C,CAAA;AACH,CAAA;AAEM,SAAUwE,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,CAAC9C,CAAoB,EAAA;EACpD,OAAOD,aAAa,CAACC,CAAC,CAAC,IAAI,CAAC,CAACA,CAAC,CAAC+C,QAAQ,CAAA;AACzC,CAAA;AAEM,SAAUC,qBAAqBA,CACnCC,CAAoB,EAAA;EAEpB,OAAOnI,uBAAuB,CAACmI,CAAC,CAAC,IAC/BA,CAAC,CAAC/B,aAAa,IACf9E,qBAAqB,CAAC6G,CAAC,CAAC/B,aAAa,CAAC,GACpC+B,CAAC,CAAC/B,aAAa,GACf7B,SAAS,CAAA;AACf,CAAA;AAEM,SAAU6D,YAAYA,CAC1BC,OAA2B,EAAA;AAAA,EAAA,IAAAC,qBAAA,CAAA;EAE3B,IAAMC,eAAe,GAAGF,OAAO,CAACpF,MAAM,CAAC8B,IAAI,CAAC,UAAC9E,CAAC,EAAA;IAAA,OAAKA,CAAC,CAACuI,WAAW,CAAA;GAAC,CAAA,CAAA;AACjE,EAAA,OAAOD,eAAe,GAAAD,CAAAA,qBAAA,GAClBD,OAAO,CAACI,YAAY,CAACxF,MAAM,KAAA,IAAA,GAAA,KAAA,CAAA,GAA3BqF,qBAAA,CAA8BC,eAAe,CAACpF,KAAK,CAAC,GACpDoB,SAAS,CAAA;AACf,CAAA;SAEgBmE,qBAAqBA,CACnC/B,QAAgD,EAChD0B,OAA2B,EAC3BM,EAKkB,EAAA;AAElB,EAAA,IAAI,CAAChC,QAAQ,EAAE,OAAOpC,SAAS,CAAA;AAC/B,EAAA,KAAA,IAAAqE,UAAA,GAAA/B,+BAAA,CAAgBF,QAAQ,CAAA,EAAAkC,MAAA,EAAA,CAAA,CAAAA,MAAA,GAAAD,UAAA,EAAA,EAAA7B,IAAA,GAAE;AAAA,IAAA,IAAf7B,CAAC,GAAA2D,MAAA,CAAA7B,KAAA,CAAA;IACV,IAAMa,CAAC,GAAGiB,gBAAgB,CAAC5D,CAAC,EAAEmD,OAAO,EAAEM,EAAE,CAAC,CAAA;AAC1C,IAAA,IAAId,CAAC,KAAKtD,SAAS,EAAE,OAAOsD,CAAC,CAAA;AAC9B,GAAA;AACD,EAAA,OAAOtD,SAAS,CAAA;AAClB,CAAA;SAEgBuE,gBAAgBA,CAC9BC,UAA6B,EAC7BC,GAAuB,EACvBL,EAKkB,EAAA;EAElB,OAAOjI,sBAAsB,CAC3BqI,UAAU,EACV;IACEjI,IAAI,EAAA,SAAAA,IAACW,CAAAA,GAA0B,EAAA;MAC7B,OAAOwH,WAAW,CAACxH,GAAG,EAAEA,GAAG,CAAC0B,KAAK,EAAE1B,GAAG,CAAC2B,QAAQ,CAAC,CAAA;KACjD;IACDpC,KAAK,EAAA,SAAAA,KAACmH,CAAAA,CAA4B,EAAA;MAChC,OAAOc,WAAW,CAAC1E,SAAS,EAAE4D,CAAC,CAACnF,aAAa,EAAEmF,CAAC,CAAC/E,QAAQ,CAAC,CAAA;KAC3D;IACDvC,MAAM,EAAE,SAAAA,MAAA,GAAA;AAAA,MAAA,OAAM0D,SAAS,CAAA;AAAA,KAAA;IACvBxD,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,MAAA,OAAMwD,SAAS,CAAA;AAAA,KAAA;AACzB,GAAA,EACD,YAAA;AAAA,IAAA,OAAMA,SAAS,CAAA;GAChB,CAAA,CAAA;AAED,EAAA,SAAS0E,WAAWA,CAClBxH,GAAsC,EACtCyH,SAAoC,EACpC9F,QAAgD,EAAA;AAEhD,IAAA,IAAM+F,SAAS,GAAGD,SAAS,GAAGrE,SAAS,CAACmE,GAAG,CAAC/F,MAAM,EAAEiG,SAAS,CAAC,GAAG3E,SAAS,CAAA;AAC1E,IAAA,IAAI,CAAC4E,SAAS,EACZ,OAAO,CAACD,SAAS,GAAGR,qBAAqB,CAACtF,QAAQ,EAAE4F,GAAG,EAAEL,EAAE,CAAC,GAAGpE,SAAS,CAAA;IAE1E,IAAMiC,OAAO,GAAGwC,GAAG,CAACP,YAAY,CAACxF,MAAM,CAACkG,SAAS,CAAChG,KAAK,CAAC,CAAA;AACxD,IAAA,IAAMiG,MAAM,GAAG3H,GAAG,GAAGkH,EAAE,CAAClH,GAAG,EAAE0H,SAAS,EAAE3C,OAAO,EAAE,KAAK,CAAC,GAAGjC,SAAS,CAAA;AACnE,IAAA,IAAI6E,MAAM,KAAK7E,SAAS,EAAE,OAAO6E,MAAM,CAAA;IACvC,IAAID,SAAS,CAAC9F,UAAU,EAAE;MACxB,KAAAgG,IAAAA,UAAA,GAAAxC,+BAAA,CAAA,CAAAyC,iBAAA,GAAgB9C,OAAO,CAAC+C,QAAQ,KAAA,IAAA,GAAAD,iBAAA,GAAI,EAAE,GAAAE,MAAA,EAAA,CAAA,CAAAA,MAAA,GAAAH,UAAA,EAAAtC,EAAAA,IAAA,GAAE;AAAA,QAAA,IAAAuC,iBAAA,CAAA;AAAA,QAAA,IAA7BpE,CAAC,GAAAsE,MAAA,CAAAxC,KAAA,CAAA;AACV,QAAA,IAAMyC,UAAU,GAAGhI,GAAG,GAAGkH,EAAE,CAAClH,GAAG,EAAE0H,SAAS,EAAEjE,CAAC,EAAE,IAAI,CAAC,GAAGX,SAAS,CAAA;AAChE,QAAA,IAAIkF,UAAU,KAAKlF,SAAS,EAAE,OAAOkF,UAAU,CAAA;AAC/C,QAAA,IAAI9F,eAAe,CAACwF,SAAS,CAAC,EAAE;AAC9B,UAAA,IAAMO,QAAQ,GAAGhB,qBAAqB,CACpCtF,QAAQ,EACR;YACEH,MAAM,EAAEkG,SAAS,CAAC/F,QAAQ;AAC1BqF,YAAAA,YAAY,EAAEvD,CAAC;YACfyE,eAAe,EAAEX,GAAG,CAACW,eAAAA;WACtB,EACDhB,EAAE,CACH,CAAA;AACD,UAAA,IAAIe,QAAQ,KAAKnF,SAAS,EAAE,OAAOmF,QAAQ,CAAA;AAC5C,SAAA;AACF,OAAA;AACF,KAAA;AACH,GAAA;AACF,CAAA;AAEgB,SAAAE,kBAAkBA,CAChCrH,CAAmC,EACnCU,MAAqB,EAAA;AAErB,EAAA,IAAI,CAACV,CAAC,EAAE,OAAOA,CAAC,CAAA;AAChB,EAAA,IAAMsH,SAAS,GAAG5G,MAAM,CAAC8B,IAAI,CAAC,UAAC9E,CAAC,EAAA;IAAA,OAAKA,CAAC,CAACuI,WAAW,CAAA;GAAC,CAAA,CAAA;AACnD,EAAA,IAAI,CAACqB,SAAS,EAAE,OAAOtH,CAAC,CAAA;AACxB,EAAA,IAAMuH,SAAS,GAAGvH,CAAC,CAACsH,SAAS,CAAC1G,KAAK,CAAC,CAAA;AACpC,EAAA,IAAM4G,eAAe,GAAG9G,MAAM,CAACS,MAAM,CACnC,UAACzD,CAAC,EAAA;IAAA,IAAA+J,qBAAA,EAAAC,eAAA,CAAA;IAAA,OAAKtG,eAAe,CAAC1D,CAAC,CAAC,IAAI,CAAA+J,CAAAA,qBAAA,GAAAC,CAAAA,eAAA,GAAChK,CAAC,CAACiK,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAdD,eAAA,CAAgBrG,MAAM,YAAAoG,qBAAA,GAAI,CAAC,IAAI,CAAC,CAAA;GAC/D,CAAA,CAAA;AACD,EAAA,IAAI,CAACD,eAAe,CAACnG,MAAM,EAAE,OAAOrB,CAAC,CAAA;AACrC,EAAA,IAAMsB,GAAG,GAAA7B,QAAA,CAAA,EAAA,EAAQO,CAAC,CAAE,CAAA;AACpBwH,EAAAA,eAAe,CAACjG,OAAO,CAAC,UAAC7D,CAAC,EAAI;AAAA,IAAA,IAAAkK,gBAAA,CAAA;AAC5B,IAAA,IAAM1F,UAAU,GAAGlC,CAAC,CAACtC,CAAC,CAACkD,KAAK,CAAC,CAAA;IAC7B,IACE,CAAA,CAAAgH,gBAAA,GAAAlK,CAAC,CAACiK,YAAY,KAAdC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAA,CAAgB1E,QAAQ,CAACqE,SAAS,CAAC,MAAK,KAAK,IAC5C,CAAC7J,CAAC,CAACyE,WAAW,IAAI0F,SAAS,EAAG,EAC/B;AACA,MAAA,OAAOvG,GAAG,CAAC5D,CAAC,CAACkD,KAAK,CAAC,CAAA;AACnB,MAAA,OAAA;AACD,KAAA;AACD,IAAA,IAAIQ,eAAe,CAAC1D,CAAC,CAAC,EAAE;MACtB,IAAMoK,WAAW,GAAGpK,CAAC,CAACmE,YAAY,GAAGnB,MAAM,GAAGhD,CAAC,CAACmD,QAAQ,CAAA;MACxD,IAAInD,CAAC,CAACoD,UAAU,EAAE;AAChB,QAAA,IAAIiH,KAAK,CAACC,OAAO,CAAC9F,UAAU,CAAC,EAAE;UAC7BZ,GAAG,CAAC5D,CAAC,CAACkD,KAAK,CAAC,GAAGsB,UAAU,CAAC7C,GAAG,CAAC,UAAC4I,EAAE,EAAA;AAAA,YAAA,OAC/BZ,kBAAkB,CAACY,EAAE,EAAEH,WAAW,CAAC,CAAA;WACpC,CAAA,CAAA;AACF,SAAA;AACF,OAAA,MAAM;QACLxG,GAAG,CAAC5D,CAAC,CAACkD,KAAK,CAAC,GAAGyG,kBAAkB,CAACnF,UAAU,EAAE4F,WAAW,CAAC,CAAA;AAC3D,OAAA;AACF,KAAA;IACD,SAASD,SAASA,GAAA;AAChB,MAAA,OACEnK,CAAC,CAACoD,UAAU,IAAIiH,KAAK,CAACC,OAAO,CAAC9F,UAAU,CAAC,IAAI,CAACA,UAAU,CAACb,MAAAA;AACzD;AAAA,OAAA;AAEJ,KAAA;AACF,GAAC,CAAC,CAAA;;AACF,EAAA,OAAOC,GAAG,CAAA;AACZ,CAAA;AAEM,SAAU4G,uBAAuBA,CAACvF,CAAoB,EAAA;AAAA,EAAA,IAAAwF,WAAA,CAAA;AAC1D,EAAA,IAAMC,YAAY,GAAA,CAAAD,WAAA,GAAGxF,CAAC,CAAC9B,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAVsH,WAAA,CAAYtD,OAAO,CAACqD,uBAAuB,CAAC,CAAA;EACjE,IAAMG,EAAE,GAAGC,wBAAI,CAAC3F,CAAC,CAAC4F,UAAU,EAAE5F,CAAC,CAAC6F,WAAW,CAAC,CAAA;AAC5C,EAAA,IAAIJ,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,CAAAlD,CAAAA,MAAA,CAAKiD,YAAY,CAAA,CAAA;EAC7C,OAAO,CAACC,EAAE,CAAC,CAAA;AACb;;SC1WgBI,WAAWA,CACzB7H,KAAa,EACb8C,KAAqB,EACrB/E,OAAwC,EAAA;AAExC,EAAA,OAAAc,QAAA,CAAA;IAAS9B,IAAI,EAAEb,6BAAqB,CAACc,IAAI;AAAEgD,IAAAA,KAAK,EAALA,KAAK;AAAE8C,IAAAA,KAAK,EAALA,KAAAA;AAAK,GAAA,EAAK/E,OAAO,CAAA,CAAA;AACrE,CAAA;AAEgB,SAAA+J,kBAAkBA,CAChCC,IAAY,EACZhK,OAA2C,EAAA;AAE3C,EAAA,OAAAc,QAAA,CAAA;IACE9B,IAAI,EAAEb,6BAAqB,CAACkB,OAAO;AACnC4K,IAAAA,WAAW,EAAE;MAAEjL,IAAI,EAAEL,uBAAe,CAACuL,IAAI;AAAEF,MAAAA,IAAI,EAAJA,IAAAA;AAAqB,KAAA;AAAA,GAAA,EAC7DhK,OAAO,CAAA,CAAA;AAEd,CAAA;AAEgB,SAAAmK,kBAAkBA,CAChCC,IAAY,EACZpK,OAA2C,EAAA;AAE3C,EAAA,OAAAc,QAAA,CAAA;IACE9B,IAAI,EAAEb,6BAAqB,CAACkB,OAAO;AACnC4K,IAAAA,WAAW,EAAE;MAAEjL,IAAI,EAAEL,uBAAe,CAAC0L,IAAI;AAAED,MAAAA,IAAI,EAAJA,IAAAA;AAAqB,KAAA;AAAA,GAAA,EAC7DpK,OAAO,CAAA,CAAA;AAEd,CAAA;AAEM,SAAUsK,mBAAmBA,CAACC,IAAsB,EAAA;EACxD,OAAO;IAAEvL,IAAI,EAAEZ,2BAAmB,CAACoM,YAAY;AAAED,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AACzD,CAAA;AAEM,SAAUE,eAAeA,CAACF,IAAsB,EAAA;EACpD,OAAO;IAAEvL,IAAI,EAAEZ,2BAAmB,CAACsM,QAAQ;AAAEH,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AACrD,CAAA;AAEM,SAAUI,iBAAiBA,CAACJ,IAAsB,EAAA;EACtD,OAAO;IAAEvL,IAAI,EAAEZ,2BAAmB,CAACwM,OAAO;AAAEL,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AACpD,CAAA;AAEM,SAAUM,eAAeA,CAACN,IAAsB,EAAA;EACpD,OAAO;IAAEvL,IAAI,EAAEZ,2BAAmB,CAAC0M,QAAQ;AAAEP,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AACrD,CAAA;AAEgB,SAAAQ,WAAWA,CAAC9I,KAAa,EAAE6D,KAAU,EAAA;EACnD,OAAO;IAAE9G,IAAI,EAAEX,sBAAc,CAAC2M,SAAS;AAAE/I,IAAAA,KAAK,EAALA,KAAK;AAAE6D,IAAAA,KAAK,EAALA,KAAAA;GAAO,CAAA;AACzD,CAAA;AACM,SAAUmF,WAAWA,CAACC,UAAkB,EAAA;EAC5C,OAAO;IAAElM,IAAI,EAAEX,sBAAc,CAAC8M,OAAO;AAAED,IAAAA,UAAU,EAAVA,UAAAA;GAAY,CAAA;AACrD,CAAA;SAEgBE,cAAcA,CAC5BlJ,QAA6B,EAC7B6C,KAAc,EACd/E,OAA4C,EAAA;AAE5C,EAAA,OAAAc,QAAA,CAAA;IACE9B,IAAI,EAAEb,6BAAqB,CAACgB,KAAK;AACjC+C,IAAAA,QAAQ,EAARA,QAAQ;AACR6C,IAAAA,KAAK,EAALA,KAAK;AACLsG,IAAAA,YAAY,EAAE;AAAErM,MAAAA,IAAI,EAAE,UAAU;AAAEsM,MAAAA,SAAS,EAAE,CAACvG,KAAAA;AAAO,KAAA;AAAA,GAAA,EAClD/E,OAAO,CAAA,CAAA;AAEd,CAAA;AACM,SAAUuL,eAAeA,CAC7BtJ,KAAa,EACb8C,KAAyB,EACzB7C,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;AACR6C,IAAAA,KAAK,EAALA,KAAK;AACLG,IAAAA,aAAa,EAAE;AAAElG,MAAAA,IAAI,EAAE,UAAA;AAAY,KAAA;AAAA,GAAA,EAChCgB,OAAO,CAAA,CAAA;AAEd,CAAA;SAEgBwL,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;EAC7D5M,IAAI,EAAEb,6BAAqB,CAACgB,KAAK;AACjC+C,EAAAA,QAAQ,EAAE,EAAE;AACZmJ,EAAAA,YAAY,EAAE;IAAErM,IAAI,EAAEN,uBAAe,CAAC0G,QAAQ;AAAEkG,IAAAA,SAAS,EAAE,IAAA;AAAM,GAAA;EAClE;SAEeO,6BAA6BA,CAC3CzI,EAAiB,EACjByE,YAA4D;AAAA,EAAA,IAA5DA;AAAAA,IAAAA,aAAwC+D,oBAAoB,CAAA;AAAA,GAAA;AAE5D,EAAA,OAAOE,aAAO,CACZ,YAAA;AAAA,IAAA,IAAAC,oBAAA,CAAA;IAAA,OAAAjL,QAAA,KACK+G,UAAU,EAAA;AACb3F,MAAAA,QAAQ,EAAE8D,kBAAkB,CAAC5C,EAAE,EAAA2I,CAAAA,oBAAA,GAAElE,UAAU,CAAC3F,QAAQ,KAAA6J,IAAAA,GAAAA,oBAAA,GAAI,EAAE,CAAA;AAAC,KAAA,CAAA,CAAA;AAAA,GAC3D,EACF,CAAC3I,EAAE,EAAEyE,UAAU,CAAC,CACjB,CAAA;AACH;;AC/HM,SAAUmE,oBAAoBA,CAAIC,SAAkB,EAAA;AACxD,EAAA,IAAMjI,CAAC,GAAGkI,eAAU,CAACD,SAAS,CAAC,CAAA;AAC/BE,EAAAA,qBAAgB,CAACF,SAAS,EAAE,UAAC5K,CAAC,EAAA;AAAA,IAAA,OAAM2C,CAAC,CAAC8B,KAAK,GAAGzE,CAAC,CAAA;AAAA,GAAC,CAAC,CAAA;AACjD,EAAA,OAAO2C,CAAC,CAAA;AACV,CAAA;AAEM,SAAUoI,EAAEA,CAAC9K,CAA4B,EAAA;AAC7C,EAAA,OAAOA,CAAC,GAAGA,CAAC,GAAG+B,SAAS,CAAA;AAC1B;;SC0BgBgJ,qBAAqBA,CACnCC,qBAA4C,EAC5CzE,UAA6B,EAC7B0E,WAAyB,EAAA;EAEzB,IAAM5B,iBAAiB,GAAG6B,kBAAkB,CAC1C3E,UAAU,EACVzJ,2BAAmB,CAACwM,OAAO,EAC3B0B,qBAAqB,CACtB,CAAA;EACD,IAAM3F,CAAC,GAAGF,aAAa,CAAC;AAAE8F,IAAAA,WAAW,EAAXA,WAAW;AAAE1E,IAAAA,UAAU,EAAVA,UAAAA;AAAY,GAAA,CAAC,CAAA;AACpD,EAAA,OAAO4E,iBAAW,CAChB,UAAC3E,GAAG,EAAI;AAAA,IAAA,IAAA4E,kBAAA,CAAA;AACN,IAAA,IAAAC,UAAA,GAAoChG,CAAC,CAACE,OAAO;MAArC0F,WAAW,GAAAI,UAAA,CAAXJ,WAAW;MAAE1E,UAAU,GAAA8E,UAAA,CAAV9E,UAAU,CAAA;AAC/B,IAAA,OAAA,CAAA6E,kBAAA,GACE/B,iBAAiB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAjBA,iBAAiB,CAAG7C,GAAG,CAAC,KAAA4E,IAAAA,GAAAA,kBAAA,GACxBE,gBAAW,CACT,YAAA;MAAA,OACEC,WAAW,CAAC/E,GAAG,EAAEyE,WAAW,IAAXA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAW,CAAEvD,YAAY,CAAC,KAC1C,CAACuD,WAAW,IACX,CAACO,eAAe,CACdhF,GAAG,EACHyE,WAAW,EACX1E,UAAU,EACVC,GAAG,CAACW,eAAe,CACpB,CAAC,CAAA;KACP,CAAA,CAAA;AAEL,GAAC,EACD,CAACkC,iBAAiB,EAAEhE,CAAC,CAAC,CACvB,CAAA;AACH,CAAA;AAEgB,SAAAoG,mBAAmBA,CACjCT,qBAA4C,EAC5CzE,UAA6B,EAAA;EAE7B,IAAM4C,eAAe,GAAG+B,kBAAkB,CACxC3E,UAAU,EACVzJ,2BAAmB,CAACsM,QAAQ,EAC5B4B,qBAAqB,CACtB,CAAA;AACD,EAAA,IAAM3F,CAAC,GAAGF,aAAa,CAACoB,UAAU,CAAC,CAAA;AACnC,EAAA,OAAO4E,iBAAW,CAChB,UAAC3E,GAAG,EAAI;AACN,IAAA,IAAI2C,eAAe,EAAE,OAAOA,eAAe,CAAC3C,GAAG,CAAC,CAAA;AAChD,IAAA,OAAOkE,oBAAoB,CAAC,YAAA;AAAA,MAAA,OAAMlF,iBAAiB,CAACH,CAAC,CAACE,OAAO,CAAC,CAAA;KAAC,CAAA,CAAA;AACjE,GAAC,EACD,CAAC4D,eAAe,EAAE9D,CAAC,CAAC,CACrB,CAAA;AACH,CAAA;SAEgBqG,gBAAgBA,CAC9BV,qBAA4C,EAC5CW,QAA6B,EAC7BpF,UAA6B,EAAA;EAE7B,IAAMqF,YAAY,GAAGV,kBAAkB,CACrC3E,UAAU,EACVoF,QAAQ,EACRX,qBAAqB,CACtB,CAAA;AACD,EAAA,OAAOG,iBAAW,CAChB,UAAC3E,GAAG,EAAI;AACN,IAAA,IAAIoF,YAAY,EAAE,OAAOA,YAAY,CAACpF,GAAG,CAAC,CAAA;IAC1C,OAAOoE,eAAU,CAAC7I,SAAS,CAAC,CAAA;AAC9B,GAAC,EACD,CAAC6J,YAAY,CAAC,CACf,CAAA;AACH,CAAA;AAEgB,SAAAC,mBAAmBA,CACjCb,qBAA4C,EAC5CzE,UAA6B,EAAA;EAE7B,IAAMgD,eAAe,GAAG2B,kBAAkB,CACxC3E,UAAU,EACVzJ,2BAAmB,CAAC0M,QAAQ,EAC5BwB,qBAAqB,CACtB,CAAA;AACD,EAAA,OAAOG,iBAAW,CAChB,UAAC3E,GAAG,EAAI;AACN,IAAA,IAAI+C,eAAe,EAAE,OAAOA,eAAe,CAAC/C,GAAG,CAAC,CAAA;IAChD,OAAOoE,eAAU,CAAC,KAAK,CAAC,CAAA;AAC1B,GAAC,EACD,CAACrB,eAAe,CAAC,CAClB,CAAA;AACH,CAAA;AAEgB,SAAAuC,kBAAkBA,CAChCd,qBAA4C,EAC5CzE,UAA6B,EAAA;EAI7B,IAAMwF,cAAc,GAAGb,kBAAkB,CACvC3E,UAAU,EACVzJ,2BAAmB,CAACiB,OAAO,EAC3BiN,qBAAqB,CACtB,CAAA;EACD,OAAOG,iBAAW,CAAC,UAAC3E,GAAG,EAAA;AAAA,IAAA,OAAKuF,cAAc,IAAA,IAAA,GAAA,KAAA,CAAA,GAAdA,cAAc,CAAGvF,GAAG,CAAC,CAAA;GAAE,EAAA,CAACuF,cAAc,CAAC,CAAC,CAAA;AACtE,CAAA;SACgBC,uBAAuBA,CACrChB,qBAA4C,EAC5CzE,UAA6B,EAC7B0E,WAAyB,EAAA;EAEzB,IAAMgB,YAAY,GAAGf,kBAAkB,CACrC3E,UAAU,EACVzJ,2BAAmB,CAACoM,YAAY,EAChC8B,qBAAqB,CACtB,CAAA;EACD,IAAM3F,CAAC,GAAGF,aAAa,CAAC;AAAEoB,IAAAA,UAAU,EAAVA,UAAU;AAAE0E,IAAAA,WAAW,EAAXA,WAAAA;AAAa,GAAA,CAAC,CAAA;AACpD,EAAA,OAAOE,iBAAW,CAChB,UAAC3E,GAAG,EAAI;AAAA,IAAA,IAAA0F,aAAA,CAAA;AACN,IAAA,IAAAC,WAAA,GAAoC9G,CAAC,CAACE,OAAO;MAArCgB,UAAU,GAAA4F,WAAA,CAAV5F,UAAU;MAAE0E,WAAW,GAAAkB,WAAA,CAAXlB,WAAW,CAAA;AAC/B,IAAA,OAAA,CAAAiB,aAAA,GAAOD,YAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAGzF,GAAG,CAAC,KAAA,IAAA,GAAA0F,aAAA,GAAIZ,gBAAW,CAACc,WAAW,CAAC,CAAA;IACtD,SAASA,WAAWA,GAAA;MAClB,IAAAC,IAAA,GAAwB7O,uBAAuB,CAAC+I,UAAU,CAAC,GACvD,CAACA,UAAU,CAAC5E,QAAQ,EAAE4E,UAAU,CAACnI,YAAY,CAAC,GAC9C,CAAC,KAAK,EAAE2D,SAAS,CAAC;AAFfJ,QAAAA,QAAQ,GAAA0K,IAAA,CAAA,CAAA,CAAA;AAAEC,QAAAA,GAAG,GAAAD,IAAA,CAAA,CAAA,CAAA,CAAA;AAGpB,MAAA,OACEC,GAAG,IAAA,IAAA,GAAHA,GAAG,GACFrB,WAAW,GACRzJ,oBAAoB,CAACyJ,WAAW,EAAEtJ,QAAQ,CAAC,GAC3CI,SAAS,CAAA;AAEjB,KAAA;AACF,GAAC,EACD,CAACkK,YAAY,EAAE5G,CAAC,CAAC,CAClB,CAAA;AACH,CAAA;AAMA,SAASkH,iBAAiBA,CACxBC,MAAsB,EACtB/L,MAAqB,EACrBnC,IAAkB,EAAA;EAElB,IAAMmO,QAAQ,GAAGpK,SAAS,CAAC5B,MAAM,EAAE+L,MAAM,CAAC7L,KAAK,CAAC,CAAA;AAChD,EAAA,IAAM+L,UAAU,GAAGD,QAAQ,GAAGnO,IAAI,CAACmC,MAAM,CAACgM,QAAQ,CAAC9L,KAAK,CAAC,GAAGoB,SAAS,CAAA;AACrE,EAAA,OAAO2I,oBAAoB,CAAC,YAAA;AAAA,IAAA,OAAMgC,UAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAElI,KAAK,CAAA;GAAC,CAAA,CAAA;AACtD,CAAA;AAEA,SAASmI,sBAAsBA,CAC7BH,MAA2B,EAC3B/L,MAAqB,EACrBnC,IAAkB,EAAA;EAElB,IAAMmO,QAAQ,GAAGpK,SAAS,CAAC5B,MAAM,EAAE+L,MAAM,CAAC7L,KAAK,CAAC,CAAA;AAChD,EAAA,IAAM+L,UAAU,GAAGD,QAAQ,GAAGnO,IAAI,CAACmC,MAAM,CAACgM,QAAQ,CAAC9L,KAAK,CAAC,GAAGoB,SAAS,CAAA;EACrE,OAAOuJ,gBAAW,CAAC,YAAK;AACtB,IAAA,IAAMsB,EAAE,GAAGF,UAAU,IAAVA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAElI,KAAK,CAAA;IAC5B,OAAOsD,KAAK,CAACC,OAAO,CAAC6E,EAAE,CAAC,GAAGA,EAAE,CAAC3J,QAAQ,CAACuJ,MAAM,CAAChI,KAAK,CAAC,GAAGoI,EAAE,KAAKJ,MAAM,CAAChI,KAAK,CAAA;AAC5E,GAAC,CAAC,CAAA;AACJ,CAAA;AAEgB,SAAAqI,gBAAgBA,CAC9B5D,IAAsB,EACtBpD,OAA2B,EAAA;EAE3B,QAAQoD,IAAI,CAACvL,IAAI;IACf,KAAKX,sBAAc,CAAC8M,OAAO;MACzB,OAAOiD,oBAAoB,CACxB7D,IAA0B,CAACW,UAAU,EACtC/D,OAAO,CAACI,YAAY,CACrB,CAAA;IACH,KAAKlJ,sBAAc,CAACY,IAAI;MACtB,OAAO4O,iBAAiB,CACtBtD,IAAsB,EACtBpD,OAAO,CAACpF,MAAM,EACdoF,OAAO,CAACI,YAAY,CACrB,CAAA;IACH,KAAKlJ,sBAAc,CAAC2M,SAAS;MAC3B,OAAOiD,sBAAsB,CAC3B1D,IAA2B,EAC3BpD,OAAO,CAACpF,MAAM,EACdoF,OAAO,CAACI,YAAY,CACrB,CAAA;AACH,IAAA;MACE,OAAO2E,eAAU,CAAC7I,SAAS,CAAC,CAAA;AAC/B,GAAA;AACH,CAAA;IAEagL,4BAA4B,GACvCC,sBAAsB,CAACH,gBAAgB,EAAC;AAEpC,SAAUG,sBAAsBA,CACpCC,CAAwE,EAAA;EAExE,OAAO,UAAChE,IAAI,EAAI;AACd,IAAA,IAAM5D,CAAC,GAAGF,aAAa,CAAC8D,IAAI,CAAC,CAAA;AAC7B,IAAA,IAAM9C,EAAE,GAAGgF,iBAAW,CACpB,UAAC3E,GAAuB,EAAI;AAC1B,MAAA,IAAMyC,IAAI,GAAG5D,CAAC,CAACE,OAAQ,CAAA;AACvB,MAAA,OAAO0H,CAAC,CAAChE,IAAI,EAAEzC,GAAG,CAAC,CAAA;KACpB,EACD,CAACyC,IAAI,IAAJA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEvL,IAAI,EAAE2H,CAAC,CAAC,CAChB,CAAA;AACD,IAAA,OAAO4D,IAAI,GAAG9C,EAAE,GAAGpE,SAAS,CAAA;GAC7B,CAAA;AACH,CAAA;SAEgBmJ,kBAAkBA,CAChC3E,UAA6B,EAC7B7I,IAAyB,EACzBsN,qBAEmC,EAAA;AAAA,EAAA,IAAAkC,mBAAA,CAAA;AAEnC,EAAA,IAAMtD,UAAU,GAAA,CAAAsD,mBAAA,GAAG3G,UAAU,CAAC4G,OAAO,KAAA,IAAA,GAAA,KAAA,CAAA,GAAlBD,mBAAA,CAAoB3K,IAAI,CAAC,UAAC9E,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,CAACC,IAAI,KAAKA,IAAI,CAAA;GAAC,CAAA,CAAA;AACnE,EAAA,OAAOsN,qBAAqB,CAACpB,UAAU,oBAAVA,UAAU,CAAEX,IAAI,CAAC,CAAA;AAChD,CAAA;AAEgB,SAAAsC,WAAWA,CACzB1F,OAA2B,EAC3BuH,KAAuB,EAAA;EAEvB,IAAIA,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAChM,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,CAAA;AACpD,EAAA,IAAMiG,SAAS,GAAGzB,YAAY,CAACC,OAAO,CAAC,CAAA;EACvC,OAAOwB,SAAS,IAAI+F,KAAK,CAACnK,QAAQ,CAACoE,SAAS,CAAC7C,KAAK,CAAC,CAAA;AACrD,CAAA;AAEM,SAAUgH,eAAeA,CAC7B3F,OAA2B,EAC3BlF,KAAkB,EAClB4F,UAA6B,EAC7BY,eAAgC,EAAA;AAEhC,EAAA,IAAMkG,cAAc,GAAG3H,qBAAqB,CAACa,UAAU,CAAC,CAAA;EACxD,OACE8G,cAAc,IACd,CAACA,cAAc,CAACC,SAAS,IACzBnG,eAAe,CAACoG,YAAY,CAC1B5M,KAAK,EACLkF,OAAO,CAACI,YAAY,CAACxF,MAAM,CAACE,KAAK,CAACA,KAAK,CAAC,CAAC6D,KAAK,CAC/C,CAAA;AAEL,CAAA;AAEgB,SAAAsI,oBAAoBA,CAClCU,KAAa,EACblP,IAAkB,EAAA;AAElB,EAAA,IAAMmP,YAAY,GAAGjD,aAAO,CAAC,YAAK;IAChC,IAAI;MACF,OAAOkD,2BAAO,CAACF,KAAK,CAAC,CAAA;KACtB,CAAC,OAAOG,CAAC,EAAE;AACVC,MAAAA,OAAO,CAACC,KAAK,CAACF,CAAC,CAAC,CAAA;MAChB,OAAOD,2BAAO,CAAC,EAAE,CAAC,CAAA;AACnB,KAAA;AACH,GAAC,EAAE,CAACF,KAAK,CAAC,CAAC,CAAA;AACX,EAAA,IAAMxJ,OAAO,GAAG4G,eAAU,EAAE,CAAA;AAC5BC,EAAAA,qBAAgB,CACd,YAAA;IAAA,OAAMvM,IAAI,CAACkG,KAAK,CAAA;AAAA,GAAA,EAAA,UACTzE,CAAC,EAAA;IAAA,IAAI;AAAA,MAAA,OAAA+N,OAAA,CAAAC,OAAA,CACYN,YAAY,CAACO,QAAQ,CAACjO,CAAC,CAAC,CAAAkO,CAAAA,IAAA,WAAAC,qBAAA,EAAA;QAA9ClK,OAAO,CAACQ,KAAK,GAAA0J,qBAAiC,CAAA;AAAC,OAAA,CAAA,CAAA;AACjD,KAAC,QAAAP,CAAA,EAAA;AAAA,MAAA,OAAAG,OAAA,CAAAK,MAAA,CAAAR,CAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,EACD,IAAI,CACL,CAAA;AACD,EAAA,OAAO3J,OAAO,CAAA;AAChB;;ACzRM,SAAUoK,iBAAiBA,CAC/B7H,UAA6B,EAAA;EAAA,IAAA8H,qBAAA,EAAAC,sBAAA,CAAA;EAM7B,IAAMC,cAAc,GAAG/Q,uBAAuB,CAAC+I,UAAU,CAAC,GAAA,CAAA8H,qBAAA,GAAAC,CAAAA,sBAAA,GACtD/H,UAAU,CAACiI,UAAU,KAArBF,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAuBlP,GAAG,CAAC,UAAC3B,CAAC,EAAA;IAAA,OAAKA,CAAC,CAACC,IAAI,CAAA;AAAA,GAAA,CAAC,KAAA2Q,IAAAA,GAAAA,qBAAA,GAAI,EAAE,GAC/C,IAAI,CAAA;AACR,EAAA,IAAMhJ,CAAC,GAAGF,aAAa,CAACoB,UAAmC,CAAC,CAAA;EAC5D,OAAO4E,iBAAW,CAChB,UAACnH,OAAO,EAAEyK,MAAM,EAAEC,YAAY,EAAI;AAAA,IAAA,IAAAC,cAAA,CAAA;IAChC,IAAI,CAACJ,cAAc,EAAE,OAAA;AACrB,IAAA,IAAMK,EAAE,GAAGvJ,CAAC,CAACE,OAAO,CAAA;IAEpBsJ,yBAAoB,CAAC7K,OAAO,EAAE,YAAA;AAAA,MAAA,OAAMA,OAAO,CAAC8K,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;KAAC,CAAA,CAAA;AACpEC,IAAAA,iBAAY,CACV/K,OAAO,EACP,UAACjE,CAAC,EAAA;AAAA,MAAA,OACA,CAAC0O,MAAM,IACPG,EAAE,CAACjN,QAAQ,KACV5B,CAAC,IAAI,IAAI,IAAIA,CAAC,KAAK,EAAE,IAAK+H,KAAK,CAACC,OAAO,CAAChI,CAAC,CAAC,IAAIA,CAAC,CAACqB,MAAM,KAAK,CAAE,CAAC,GAC3D,sBAAsB,GACtB,IAAI,CAAA;AAAA,KAAA,EACV,UAAU,CACX,CAAA;AACD,IAAA,CAAA,CAAAuN,cAAA,GAACC,EAAE,CAACJ,UAAU,YAAAG,cAAA,GAAI,EAAE,EAAErN,OAAO,CAAC,UAAC7D,CAAC,EAAEuR,CAAC,EAAI;MACrC,QAAQvR,CAAC,CAACC,IAAI;QACZ,KAAKJ,qBAAa,CAACuM,OAAO;UACxB,OAAOoF,mBAAmB,CACxBjL,OAAO,EACP0K,YAAY,EACZjR,CAAqB,EACrBgR,MAAM,EACNO,CAAC,CACF,CAAA;QACH,KAAK1R,qBAAa,CAAC4R,IAAI;AACrB,UAAA,OAAOC,gBAAgB,CAACnL,OAAO,EAAEvG,CAAkB,EAAEuR,CAAC,CAAC,CAAA;AAC1D,OAAA;AACH,KAAC,CAAC,CAAA;GACH,EACDT,cAAc,GAAGA,cAAc,GAAG,CAAC,IAAI,CAAC,CACzC,CAAA;AACH,CAAA;AAEA,SAASU,mBAAmBA,CAC1BjL,OAAqB,EACrB6B,OAA2B,EAC3BoD,IAAsB,EACtBwF,MAAe,EACfO,CAAS,EAAA;EAET,IAAMI,QAAQ,GAAGtC,oBAAoB,CAAC7D,IAAI,CAACW,UAAU,EAAE/D,OAAO,CAACI,YAAY,CAAC,CAAA;AAC5E4E,EAAAA,qBAAgB,CACd,YAAA;AAAA,IAAA,OAAM,CAAC4D,MAAM,EAAEW,QAAQ,CAAC5K,KAAK,CAAC,CAAA;AAAA,GAAA,EAC9B,UAAA6H,IAAA,EAAA;IAAA,IAAEoC,MAAM,GAAApC,IAAA,CAAA,CAAA,CAAA;AAAEgD,MAAAA,GAAG,GAAAhD,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,OAAMrI,OAAO,CAAC8K,QAAQ,CAAC,SAAS,GAAGE,CAAC,EAAE,CAACP,MAAM,GAAGY,GAAG,GAAG,IAAI,CAAC,CAAA;AAAA,GAAA,EACxE,IAAI,CACL,CAAA;AACH,CAAA;AAEA,SAASF,gBAAgBA,CACvBnL,OAA2C,EAC3CsL,EAAiB,EACjBN,CAAS,EAAA;AAET,EAAA,IAAIO,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;AACDhB,EAAAA,iBAAY,CACV/K,OAAO,EACP,UAACjE,CAAC,EAAI;AACJ,IAAA,IAAIA,CAAC,EAAE;AACL,MAAA,IAAMiQ,OAAO,GAAGd,IAAI,CAACO,KAAK,CAAC1P,CAAC,CAAC,CAAA;MAC7B,IAAMkQ,QAAQ,GAAGX,EAAE,CAACY,UAAU,KAAK3S,sBAAc,CAAC4S,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,GAAGpB,CAAC,CACX,CAAA;AACH;;ACjHO,IAAMqB,sBAAsB,GAAoB;AACrD9C,EAAAA,YAAY,EAAE+C,cAAc;AAC5BC,EAAAA,SAAS,EAAEC,gBAAAA;EACZ;AAEe,SAAAF,cAAcA,CAACrD,CAAc,EAAEzI,KAAU,EAAA;EACvD,IAAIyI,CAAC,CAACpM,UAAU,EACd,OAAOiH,KAAK,CAACC,OAAO,CAACvD,KAAK,CAAC,GAAGA,KAAK,CAACpD,MAAM,KAAK,CAAC,GAAGoD,KAAK,IAAI,IAAI,CAAA;EAClE,QAAQyI,CAAC,CAACvP,IAAI;IACZ,KAAKd,iBAAS,CAAC6C,MAAM;AACnB,MAAA,OAAO,CAAC+E,KAAK,CAAA;AACf,IAAA;MACE,OAAOA,KAAK,IAAI,IAAI,CAAA;AACvB,GAAA;AACH,CAAA;AAEgB,SAAAgM,gBAAgBA,CAC9BvD,CAAc,EACdzI,KAAU,EAAA;EAEV,QAAQyI,CAAC,CAACvP,IAAI;IACZ,KAAKd,iBAAS,CAAC6T,QAAQ;MACrB,OAAO,IAAIvB,IAAI,CAAC1K,KAAK,CAAC,CAACkM,kBAAkB,EAAE,CAAA;IAC7C,KAAK9T,iBAAS,CAACsS,IAAI;MACjB,OAAO,IAAIA,IAAI,CAAC1K,KAAK,CAAC,CAACkM,kBAAkB,EAAE,CAAA;AAC7C,IAAA;MACE,OAAOlM,KAAK,IAAI,IAAI,GAAGA,KAAK,CAACmM,QAAQ,EAAE,GAAG5O,SAAS,CAAA;AACtD,GAAA;AACH;;;ACoDO,IAAM6O,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;AA+EK,SAAUC,kBAAkBA,CAChCxK,UAA6B,EAC7B9F,MAAqB,EACrBuQ,QAAsB,EACtBtS,OAAA,EAAkC;AAAA,EAAA,IAAAuS,oBAAA,EAAAC,qBAAA,EAAAC,qBAAA,CAAA;AAAA,EAAA,IAAlCzS,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAgC,EAAE,CAAA;AAAA,GAAA;AAElC,EAAA,IAAM0S,SAAS,GAAAH,CAAAA,oBAAA,GAAGvS,OAAO,CAAC2S,WAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAnB3S,OAAO,CAAC2S,WAAW,CAAG9K,UAAU,CAAC,KAAA0K,IAAAA,GAAAA,oBAAA,GAAIK,gBAAgB,CAAA;EACvE,IAAMnK,eAAe,GAAA+J,CAAAA,qBAAA,GAAGxS,OAAO,CAACyI,eAAe,KAAA,IAAA,GAAA+J,qBAAA,GAAIb,sBAAsB,CAAA;EACzE,IAAMkB,OAAO,GAAAJ,CAAAA,qBAAA,GAAGzS,OAAO,CAACsM,qBAAqB,KAAA,IAAA,GAAAmG,qBAAA,GAAIpE,4BAA4B,CAAA;AAE7E,EAAA,IAAM9B,WAAW,GAAGuG,iBAAiB,CAACjL,UAAU,EAAE9F,MAAM,CAAC,CAAA;EACzD,IAAMgR,eAAe,GAAGzF,uBAAuB,CAC7CuF,OAAO,EACPhL,UAAU,EACV0E,WAAW,CACZ,CAAA;EACD,IAAMyG,YAAY,GAAG3G,qBAAqB,CAACwG,OAAO,EAAEhL,UAAU,EAAE0E,WAAW,CAAC,CAAA;AAC5E,EAAA,IAAM0G,aAAa,GAAGlG,mBAAmB,CAAC8F,OAAO,EAAEhL,UAAU,CAAC,CAAA;AAC9D,EAAA,IAAMqL,aAAa,GAAG/F,mBAAmB,CAAC0F,OAAO,EAAEhL,UAAU,CAAC,CAAA;EAC9D,IAAMsL,cAAc,GAAGnG,gBAAgB,CACrC6F,OAAO,EACPzU,2BAAmB,CAACgV,KAAK,EACzBvL,UAAU,CACX,CAAA;EACD,IAAMwL,cAAc,GAAGrG,gBAAgB,CACrC6F,OAAO,EACPzU,2BAAmB,CAACkV,WAAW,EAC/BzL,UAAU,CACX,CAAA;AACD,EAAA,IAAM0L,iBAAiB,GAAGnG,kBAAkB,CAACyF,OAAO,EAAEhL,UAAU,CAAC,CAAA;AACjE,EAAA,IAAM2L,aAAa,GAAG9D,iBAAiB,CAAC7H,UAAU,CAAC,CAAA;EACnD,IAAMlB,CAAC,GAAGF,aAAa,CAAC;AAAEzG,IAAAA,OAAO,EAAPA,OAAO;AAAE6H,IAAAA,UAAU,EAAVA,UAAU;AAAE9F,IAAAA,MAAM,EAANA,MAAM;AAAEwK,IAAAA,WAAW,EAAXA,WAAAA;AAAW,GAAE,CAAC,CAAA;AAErE,EAAA,IAAMkH,SAAS,GAAGhH,iBAAW,CAC3B,UAAAkB,IAAA,EAAmD;AAAA,IAAA,IAAvC+F,aAAa,GAAA/F,IAAA,CAAtBrI,OAAO,CAAA;AACR,IAAA,IAAMqO,YAAY,GAAGC,yBAAoB,EAAE,CAAA;IAC3C,IAAI;AAAA,MAAA,IAAAC,eAAA,EAAArK,WAAA,EAAAsK,qBAAA,EAAAC,sBAAA,CAAA;AACF,MAAA,IAAApH,UAAA,GAAwDhG,CAAC,CAACE,OAAO;QAA7C7C,CAAC,GAAA2I,UAAA,CAAb9E,UAAU;QAAK7H,QAAO,GAAA2M,UAAA,CAAP3M,OAAO;QAAE+B,OAAM,GAAA4K,UAAA,CAAN5K,MAAM;QAAEwK,YAAW,GAAAI,UAAA,CAAXJ,WAAW,CAAA;AACnD,MAAA,IAAMyH,WAAW,GAAuB;AACtCzM,QAAAA,YAAY,EAAEmM,aAAa;AAC3B3R,QAAAA,MAAM,EAANA,OAAM;AACN0G,QAAAA,eAAe,EAAfA,eAAAA;OACD,CAAA;AACD,MAAA,IAAMwL,eAAe,GAAGhB,aAAa,CAACe,WAAW,CAAC,CAAA;AAClD,MAAA,IAAME,eAAe,GAAGhB,aAAa,CAACc,WAAW,CAAC,CAAA;AAClD,MAAA,IAAMG,cAAc,GAAGnB,YAAY,CAACgB,WAAW,CAAC,CAAA;AAChD,MAAA,IAAMI,cAAc,GAAGb,iBAAiB,CAACS,WAAW,CAAC,CAAA;AACrD,MAAA,IAAMK,WAAW,GAAGlB,cAAc,CAACa,WAAW,CAAC,CAAClO,KAAK,CAAA;AACrD,MAAA,IAAMwO,WAAW,GAAGjB,cAAc,CAACW,WAAW,CAAC,CAAClO,KAAK,CAAA;AACrD,MAAA,IAAMyO,OAAO,GAAGJ,cAAc,CAACtN,OAAO,CAACf,KAAK,CAAA;MAC5C,IAAM0O,UAAU,GAAGtI,eAAU,CAAyB,YAAA;QAAA,OACpDqI,OAAO,IAAI,IAAI,GACX;AACEA,UAAAA,OAAO,EAAPA,OAAO;AACPE,UAAAA,OAAO,EAAEF,OAAAA;AACV,SAAA,GACDlR,SAAS,CAAA;OACd,CAAA,CAAA;AACD8I,MAAAA,qBAAgB,CACd,YAAA;QAAA,OAAMgI,cAAc,CAACrO,KAAK,CAAA;OAC1B,EAAA,UAACyO,OAAO,EAAI;QACV,IAAIA,OAAO,IAAI,IAAI,EACjBC,UAAU,CAACE,QAAQ,CAAC,UAACpO,EAAE,EAAA;UAAA,OAAM;AAC3BiO,YAAAA,OAAO,EAAPA,OAAO;AACPE,YAAAA,OAAO,EAAEnO,EAAE,GAAGA,EAAE,CAACmO,OAAO,GAAGF,OAAAA;WAC5B,CAAA;AAAA,SAAC,CAAC,CAAA;AACP,OAAC,CACF,CAAA;AAED,MAAA,IAAMI,mBAAmB,GAAG5B,eAAe,CAACiB,WAAW,CAAC,CAAA;AACxD,MAAA,IAAAY,eAAA,GAAgCC,cAAc,CAC5CtI,YAAW,EACXyH,WAAW,CACZ;AAHM1O,QAAAA,OAAO,GAAAsP,eAAA,CAAA,CAAA,CAAA;AAAEE,QAAAA,YAAY,GAAAF,eAAA,CAAA,CAAA,CAAA,CAAA;AAI5BzI,MAAAA,qBAAgB,CACd,YAAA;QAAA,OAAM,CACJqI,UAAU,CAAC1O,KAAK,EAChB6O,mBAAmB,CAAC7O,KAAK,EACzBR,OAAO,EACPoO,aAAa,CAACqB,MAAM,EACpBjW,uBAAuB,CAAC+I,UAAU,CAAC,IAAIA,UAAU,CAACmN,eAAe,CAClE,CAAA;OACD,EAAA,UAAAC,KAAA,EAAgC;QAAA,IAA9BC,EAAE,GAAAD,KAAA,CAAA,CAAA,CAAA;AAAErE,UAAAA,EAAE,GAAAqE,KAAA,CAAA,CAAA,CAAA;AAAEE,UAAAA,EAAE,GAAAF,KAAA,CAAA,CAAA,CAAA;AAAEG,UAAAA,EAAE,GAAAH,KAAA,CAAA,CAAA,CAAA;AAAEI,UAAAA,SAAS,GAAAJ,KAAA,CAAA,CAAA,CAAA,CAAA;AACzB,QAAA,IAAIG,EAAE,EAAE;AACN1B,UAAAA,aAAa,CAAC5N,KAAK,GAAG,EAAE,CAAA;AACzB,SAAA;QACD,IAAIoP,EAAE,IAAIC,EAAE,IAAID,EAAE,CAACX,OAAO,KAAKW,EAAE,CAACT,OAAO,EAAE;AACzC,UAAA,IAAI,CAACS,EAAE,CAACX,OAAO,EAAE;YACf,IAAIvU,QAAO,CAACsV,WAAW,IAAI,CAACD,SAAS,EAAEF,EAAE,CAACrP,KAAK,GAAGzC,SAAS,CAAA;AAC5D,WAAA,MAAM,IAAI8R,EAAE,CAACrP,KAAK,IAAI,IAAI,EAAE;YAC3BqP,EAAE,CAACrP,KAAK,GAAG8K,EAAE,CAAA;AACd,WAAA;AACF,SAAA;OACF,EACD,IAAI,CACL,CAAA;MACD,IAAM2E,SAAS,GAAGvJ,oBAAoB,CAAqB,YAAA;AAAA,QAAA,IAAAwJ,kBAAA,CAAA;QAAA,OAAO;AAChEzF,UAAAA,MAAM,EAAE/P,QAAO,CAAC+P,MAAM,IAAI,GAAAyF,kBAAA,GAAChB,UAAU,CAACzS,MAAM,KAAjByT,IAAAA,IAAAA,kBAAA,CAAmBf,OAAO,CAAC3O,KAAK,CAAA;AAC3DiB,UAAAA,QAAQ,EAAE/G,QAAO,CAAC+G,QAAQ,IAAIkN,eAAe,CAACnO,KAAK;AACnD2P,UAAAA,QAAQ,EAAEzV,QAAO,CAACyV,QAAQ,IAAIvB,eAAe,CAACpO,KAAAA;SAC/C,CAAA;OAAC,CAAC,CAACA,KAAK,CAAA;MACT0N,aAAa,CAAClO,OAAQ,EAAE,CAAC,CAACiQ,SAAS,CAACxF,MAAM,EAAEiE,WAAW,CAAC,CAAA;AACxD,MAAA,IAAM0B,cAAc,GAAA,CAAA7B,eAAA,GAAA,CAAArK,WAAA,GAClBxF,CAAC,CAAC9B,QAAQ,qBAAVsH,WAAA,CAAY9I,GAAG,CAAC,UAACyU,EAAE,EAAA;AAAA,QAAA,OACjB9C,kBAAkB,CAAC8C,EAAE,EAAEL,YAAY,CAAC/S,MAAM,EAAEuQ,QAAQ,EAAAxR,QAAA,CAC/Cd,EAAAA,EAAAA,QAAO,EACPuV,SAAS,CACb,CAAC,CAAA;OACH,CAAA,KAAA,IAAA,GAAA1B,eAAA,GAAI,EAAE,CAAA;AACT8B,MAAAA,eAAS,CAAC,YAAK;AACb,QAAA,IAAIrQ,OAAO,IAAI,OAAOiQ,SAAS,CAACE,QAAQ,KAAK,SAAS,EACpDnQ,OAAO,CAACmQ,QAAQ,GAAGF,SAAS,CAACE,QAAQ,CAAA;OACxC,EAAE,CAACnQ,OAAO,EAAEiQ,SAAS,CAACE,QAAQ,CAAC,CAAC,CAAA;AACjC,MAAA,IAAI/B,aAAa,CAACqB,MAAM,EAAE,oBAAOa,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,OAAK,CAAA;AACtC,MAAA,IAAMC,UAAU,GAAA,CAAAjC,qBAAA,GAAA,CAAAC,sBAAA,GACdlM,UAAU,CAACkO,UAAU,qBAArBhC,sBAAA,CAAuBrT,GAAG,CAAC,UAAC3B,CAAC,EAAA;QAAA,OAC3BuT,QAAQ,CAAC0D,eAAe,CAAC;AAAEC,UAAAA,SAAS,EAAElX,CAAAA;AAAC,SAAE,CAAC,CAAA;OAC3C,CAAA,KAAA,IAAA,GAAA+U,qBAAA,GAAI,EAAE,CAAA;MACT,IAAMoC,gBAAgB,GAAGC,mBAAmB,CAAC;AAC3CtO,QAAAA,UAAU,EAAE7D,CAAC;AACbsO,QAAAA,QAAQ,EAARA,QAAQ;QACR8D,UAAU,EAAEV,cAAc,CAAChT,MAAM;QACjC2T,WAAW,EAAE,SAAAA,WAACC,CAAAA,CAAC,EAAEhG,CAAC,EAAEiG,KAAK,EAAI;AAC3B,UAAA,IAAMC,WAAW,GAAGd,cAAc,CAACpF,CAAC,CAAC,CAAA;AACrC,UAAA,oBAAOsF,yBAAA,CAAAC,aAAA,CAACW,WAAW,EAAA1V,QAAA,CAAA;AAAC2V,YAAAA,GAAG,EAAEH,CAAAA;WAAOC,EAAAA,KAAK,EAAI,CAAA;SAC1C;AACDG,QAAAA,eAAe,EAAEhE,SAAS;AAC1BiE,QAAAA,WAAW,EAAEpB,SAAS;AACtBvB,QAAAA,WAAW,EAAXA,WAAW;AACX1O,QAAAA,OAAO,EAAE8O,cAAc,IAAdA,IAAAA,GAAAA,cAAc,GAAI9O,OAAO;AAClCiH,QAAAA,WAAW,EAAXA,YAAW;AACX6H,QAAAA,cAAc,EAAdA,cAAc;AACdwC,QAAAA,KAAK,EAAEvC,WAAAA;AACR,OAAA,CAAC,CAAA;MACF,IAAMwC,eAAe,GAAGvE,QAAQ,CAACwE,YAAY,CAAAhW,QAAA,KACxCoV,gBAAgB,EAAA;AACnBH,QAAAA,UAAU,EAAVA,UAAU;QACVgB,SAAS,EAAE/S,CAAC,CAAC6F,WAAW;AACxB+M,QAAAA,KAAK,EAAEtC,WAAAA;AAAW,OAAA,CACnB,CAAC,CAAA;AACF,MAAA,OAAOhC,QAAQ,CAAC0E,gBAAgB,CAAAlW,QAAA,CAAA;AAAG0T,QAAAA,UAAU,EAAVA,UAAAA;OAAeqC,EAAAA,eAAe,CAAE,CAAC,CAAA;AACrE,KAAA,SAAS;AACRlD,MAAAA,YAAY,EAAE,CAAA;AACf,KAAA;GACF,EACD,CACEhN,CAAC,EACD+L,SAAS,EACTM,YAAY,EACZD,eAAe,EACfE,aAAa,EACbC,aAAa,EACbC,cAAc,EACdE,cAAc,EACdE,iBAAiB,EACjBC,aAAa,EACblB,QAAQ,EACR7J,eAAe,CAChB,CACF,CAAA;EACAgL,SAAiB,CAAC7S,WAAW,GAAG,eAAe,CAAA;AAChD,EAAA,OAAO6S,SAAS,CAAA;AAClB,CAAA;AACgB,SAAAX,iBAAiBA,CAC/B9O,CAAoB,EACpBjC,MAAqB,EAAA;EAErB,IAAMiG,SAAS,GAAG9I,yBAAyB,CAAC8E,CAAC,CAAC,GAC1CA,CAAC,CAAClC,aAAa,GACfhD,uBAAuB,CAACkF,CAAC,CAAC,GAC1BA,CAAC,CAAC/B,KAAK,GACPoB,SAAS,CAAA;EACb,OAAO2E,SAAS,GAAGrE,SAAS,CAAC5B,MAAM,EAAEiG,SAAS,CAAC,GAAG3E,SAAS,CAAA;AAC7D,CAAA;AACgB,SAAAwR,cAAcA,CAC5BtI,WAAoC,EACpC0K,aAAiC,EAAA;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,CAAA;AAEjC,EAAA,IAAMC,YAAY,GAA6B7K,WAAW,GAAA,CAAA2K,qBAAA,GAAA,CAAAC,sBAAA,GACtDF,aAAa,CAAC1P,YAAY,CAACxF,MAAM,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjCoV,sBAAA,CAAoC5K,WAAW,CAACtK,KAAK,CAAC,KAAAiV,IAAAA,GAAAA,qBAAA,GAAIG,eAAU,CAAC,EAAE,CAAC,GACxEhU,SAAS,CAAA;EACb,OAAO,CACL+T,YAAY,EACZ7K,WAAW,IAAI9J,eAAe,CAAC8J,WAAW,CAAC,GACvC;AACEhF,IAAAA,YAAY,EAAE6P,YAAa;IAC3BrV,MAAM,EAAEwK,WAAW,CAACrK,QAAQ;IAC5BuG,eAAe,EAAEwO,aAAa,CAACxO,eAAAA;GAChC,GACDwO,aAAa,CAClB,CAAA;AACH,CAAA;AAEA,SAASK,UAAUA,CACjBpS,aAAA,EACAkR,UAAkB,EAClBC,YAA0B,EAC1B/Q,OAAqB,EACrByR,SAAoC,EACpCH,KAAsC,EAAA;AAAA,EAAA,IALtC1R,aAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,IAAAA,aAAA,GAAoC;AAAElG,MAAAA,IAAI,EAAE,UAAA;KAAY,CAAA;AAAA,GAAA;EAOxD,OAAO;AACLoX,IAAAA,UAAU,EAAVA,UAAU;IACVC,WAAW,EAAE,SAAAA,WAAAA,CAAC/F,CAAC,EAAA;AAAA,MAAA,OAAK+F,YAAW,CAAC/F,CAAC,EAAEA,CAAC,EAAE;AAAEhL,QAAAA,OAAO,EAAPA,OAAAA;OAAS,CAAC,CAAA;AAAA,KAAA;AAClDJ,IAAAA,aAAa,EAAbA,aAAa;AACb6R,IAAAA,SAAS,EAAE3K,EAAE,CAAC2K,SAAS,CAAC;AACxBH,IAAAA,KAAK,EAALA,KAAAA;GACD,CAAA;AACH,CAAA;SAEgBhE,gBAAgBA,CAAA2E,KAAA,EAQb;AAAA,EAAA,IAAAC,qBAAA,EAAAC,cAAA,EAAAC,qBAAA,CAAA;AAAA,EAAA,IAPjB7P,UAAU,GAAA0P,KAAA,CAAV1P,UAAU;IACV5F,KAAK,GAAAsV,KAAA,CAALtV,KAAK;IACLqD,OAAO,GAAAiS,KAAA,CAAPjS,OAAO;IACPtF,OAAO,GAAAuX,KAAA,CAAPvX,OAAO;IACP2X,eAAe,GAAAJ,KAAA,CAAfI,eAAe;IACff,KAAK,GAAAW,KAAA,CAALX,KAAK;AACFL,IAAAA,KAAK,GAAAqB,6BAAA,CAAAL,KAAA,EAAAM,WAAA,CAAA,CAAA;AAER,EAAA,IAAMd,SAAS,GAAG3K,EAAE,CAACvE,UAAU,CAAC+B,UAAU,CAAC,CAAA;AAC3C,EAAA,IAAM3G,QAAQ,GAAG,CAAC,CAAC4E,UAAU,CAAC5E,QAAQ,CAAA;AACtC,EAAA,OAAAnC,QAAA,CAAA;AACEwE,IAAAA,OAAO,EAAPA,OAAO;AACPrD,IAAAA,KAAK,EAALA,KAAK;AACL6V,IAAAA,EAAE,EAAE,GAAG,GAAGxS,OAAO,CAACyS,QAAQ;IAC1B/X,OAAO,EAAE,CAAAwX,CAAAA,qBAAA,GAAAC,CAAAA,cAAA,GAACxV,KAAK,CAACjC,OAAO,KAAA,IAAA,GAAA,KAAA,CAAA,GAAbyX,cAAA,CAAe/U,MAAM,KAAA8U,IAAAA,GAAAA,qBAAA,GAAI,CAAC,MAAM,CAAC,GAAG,IAAI,GAAGvV,KAAK,CAACjC,OAAO;AAClE+G,IAAAA,QAAQ,EAAE,CAAC,CAAC/G,OAAO,CAAC+G,QAAQ;IAC5B7B,aAAa,EAAA,CAAAwS,qBAAA,GAAE7P,UAAU,CAAC3C,aAAa,KAAA,IAAA,GAAAwS,qBAAA,GAAI;AAAE1Y,MAAAA,IAAI,EAAE,UAAA;KAAY;AAC/DiE,IAAAA,QAAQ,EAARA,QAAQ;AACR8M,IAAAA,MAAM,EAAE,CAAC,CAAC/P,OAAO,CAAC+P,MAAM;AACxBgH,IAAAA,SAAS,EAATA,SAAS;AACTH,IAAAA,KAAK,EAALA,KAAAA;AAAK,GAAA,EACFL,KAAK,EAAA;IACRyB,YAAY,EAAEL,eAAe,GACzB,YAAA;AAAA,MAAA,OACEM,iBAAiB,CACf3S,OAAO,EACPrD,KAAK,EACLgB,QAAQ,EACR2T,KAAK,EACLG,SAAS,EACTY,eAAe,CAChB,CAAA;KACHtU,GAAAA,SAAAA;AAAS,GAAA,CAAA,CAAA;AAEjB,CAAA;AAEgB,SAAA4U,iBAAiBA,CAC/BC,YAA+C,EAC/CjW,KAAkB,EAClBgB,QAAiB,EACjB2T,KAAgC,EAChCG,SAA6B,EAC7BoB,cAAqD,EAAA;EAAA,IAAA1T,kBAAA,EAAA2T,qBAAA,CAAA;AAErD,EAAA,IAAMC,IAAI,GAAA,CAAA5T,kBAAA,GAAGxC,KAAK,CAACrB,WAAW,KAAA,IAAA,GAAA6D,kBAAA,GAAIxC,KAAK,CAACA,KAAK,CAAA;EAC7C,IAAMqW,KAAK,GAAAF,CAAAA,qBAAA,GAAGF,YAAY,CAAC7P,QAAQ,KAAA,IAAA,GAAA+P,qBAAA,GAAI,EAAE,CAAA;EACzC,OAAO;AACLF,IAAAA,YAAY,EAAZA,YAAY;IACZK,YAAY,EAAED,KAAK,CAAC5V,MAAM;AAC1BO,IAAAA,QAAQ,EAARA,QAAQ;AACRuV,IAAAA,SAAS,EAAE;AACT/M,MAAAA,QAAQ,EAAE,KAAK;MACfE,UAAU,EAAE,MAAM,GAAG0M,IAAI;MACzB3M,OAAO,EAAE,SAAAA,OAAA,GAAA;QAAA,OAAM+M,eAAU,CAACP,YAAY,EAAEzU,oBAAoB,CAACxB,KAAK,CAAC,CAAC,CAAA;AAAA,OAAA;KACrE;IACDyW,UAAU,EAAE,SAAAA,UAAAA,CAACpI,CAAC,EAAA;AAAA,MAAA,OAAKgI,KAAK,CAAChI,CAAC,CAAC,CAACyH,QAAQ,CAAA;AAAA,KAAA;IACpCY,YAAY,EAAE,SAAAA,YAAAA,CAACrI,CAAS,EAAA;MAAA,OAAM;AAC5B7E,QAAAA,QAAQ,EAAE,EAAE;AACZE,QAAAA,UAAU,EAAE,QAAQ;QACpBD,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,UAAA,OAAMkN,kBAAa,CAACV,YAAY,EAAE5H,CAAC,CAAC,CAAA;AAAA,SAAA;OAC9C,CAAA;KAAC;IACF6H,aAAa,EAAE,SAAAA,aAAAA,CAAC7H,CAAC,EAAA;AAAA,MAAA,OAAK6H,cAAa,CAACG,KAAK,CAAChI,CAAC,CAAC,CAAC,CAAA;AAAA,KAAA;AAC7CyG,IAAAA,SAAS,EAAE3K,EAAE,CAAC2K,SAAS,CAAC;AACxBH,IAAAA,KAAK,EAALA,KAAAA;GACD,CAAA;AACH,CAAA;AAqBgB,SAAAT,mBAAmBA,CAAA0C,KAAA,EAYd;AAAA,EAAA,IAXP7U,CAAC,GAAA6U,KAAA,CAAbhR,UAAU;IACVyK,QAAQ,GAAAuG,KAAA,CAARvG,QAAQ;IACR8D,UAAU,GAAAyC,KAAA,CAAVzC,UAAU;IACG0C,aAAa,GAAAD,KAAA,CAA1BxC,WAAW;IACFe,YAAY,GAAAyB,KAAA,CAArBvT,OAAO;IACPiH,WAAW,GAAAsM,KAAA,CAAXtM,WAAW;IACXyH,WAAW,GAAA6E,KAAA,CAAX7E,WAAW;IACE+E,WAAW,GAAAF,KAAA,CAAxBlC,WAAW;IACMjE,SAAS,GAAAmG,KAAA,CAA1BnC,eAAe;IACftC,cAAc,GAAAyE,KAAA,CAAdzE,cAAc;IACdwC,KAAK,GAAAiC,KAAA,CAALjC,KAAK,CAAA;AAEL,EAAA,IAAI9X,uBAAuB,CAACkF,CAAC,CAAC,EAAE;IAC9B,OAAOgV,UAAU,CAAChV,CAAC,CAAC,CAAA;AACrB,GAAA;AACD,EAAA,IAAI9E,yBAAyB,CAAC8E,CAAC,CAAC,EAAE;AAAA,IAAA,IAAAiV,gBAAA,CAAA;IAChC,IAAIjV,CAAC,CAAClC,aAAa,EAAE;AAAA,MAAA,IAAAoX,eAAA,CAAA;MACnB,OAAOF,UAAU,CACflP,WAAW,CAAC9F,CAAC,CAAClC,aAAa,EAAEkC,CAAC,CAACe,KAAK,EAAE;QACpC7C,QAAQ,EAAE8B,CAAC,CAAC9B,QAAQ;QACpBoJ,SAAS,EAAA,CAAA4N,eAAA,GAAElV,CAAC,CAACqH,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAd6N,eAAA,CAAgB5N,SAAAA;AAC5B,OAAA,CAAC,CACH,CAAA;AACF,KAAA;IACD,OAAO;MACL6N,aAAa,EAAE7G,QAAQ,CAAC8G,WAAW,CACjC9B,UAAU,CACRtT,CAAC,CAACqH,YAAY,EACd+K,UAAU,EACV0C,aAAa,EACb9E,WAAW,CAACzM,YAAY,EACxBvD,CAAC,CAAC4F,UAAU,EACZgN,KAAK,CACN,CACF;AACDyC,MAAAA,KAAK,EAAE;QACLA,KAAK,EAAErV,CAAC,CAACe,KAAK;QACd/F,IAAI,EAAEoT,iBAAS,CAACjT,KAAK;QACrBma,IAAI,EAAA,CAAAL,gBAAA,GAAEjV,CAAC,CAACqH,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAd4N,gBAAA,CAAgB3N,SAAAA;AACvB,OAAA;KACF,CAAA;AACF,GAAA;AACD,EAAA,IAAIhM,0BAA0B,CAAC0E,CAAC,CAAC,EAAE;AAAA,IAAA,IAAAuV,QAAA,CAAA;IACjC,OAAO;AACLrX,MAAAA,QAAQ,EAAEoQ,QAAQ,CAACkH,YAAY,CAAC;QAC9B7N,UAAU,EAAA,CAAA4N,QAAA,GAAEvV,CAAC,CAACe,KAAK,KAAA,IAAA,GAAAwU,QAAA,GAAIvV,CAAC,CAACyH,QAAQ;QACjCA,QAAQ,EAAEzH,CAAC,CAACyH,QAAQ;AACpBC,QAAAA,OAAO,EAAE,SAAAA,OAAA,GAAK,EAAG;AACjBqL,QAAAA,SAAS,EAAE3K,EAAE,CAACpI,CAAC,CAAC4F,UAAU,CAAC;AAC3BgN,QAAAA,KAAK,EAALA,KAAAA;OACD,CAAA;KACF,CAAA;AACF,GAAA;AACD,EAAA,IAAIxX,2BAA2B,CAAC4E,CAAC,CAAC,EAAE;AAAA,IAAA,IAAAyV,cAAA,CAAA;IAClC,OAAO;AACLvX,MAAAA,QAAQ,EAAEoQ,QAAQ,CAACoH,aAAa,CAAC;QAC/B9Z,IAAI,EAAA,CAAA6Z,cAAA,GAAEzV,CAAC,CAACiG,WAAW,KAAAwP,IAAAA,GAAAA,cAAA,GAAI,EAAE;AACzB1C,QAAAA,SAAS,EAAE3K,EAAE,CAACpI,CAAC,CAAC4F,UAAU,CAAC;AAC3BgN,QAAAA,KAAK,EAALA,KAAK;AACL/W,QAAAA,OAAO,EAAEuU,cAAAA;OACV,CAAA;KACF,CAAA;AACF,GAAA;AACD,EAAA,OAAO,EAAE,CAAA;AAET,EAAA,SAAS4E,UAAUA,CAAChV,CAAwB,EAAE2V,cAA6B,EAAA;IACzE,IAAI,CAACpN,WAAW,EAAE,OAAO;AAAErK,MAAAA,QAAQ,EAAE,uBAAuB,GAAG8B,CAAC,CAAC/B,KAAAA;KAAO,CAAA;IACxE,IAAMsU,KAAK,GAAG7D,SAAS,CAAC;AACtB7K,MAAAA,UAAU,EAAE7D,CAAC;AACb/B,MAAAA,KAAK,EAAEsK,WAAW;AAClByH,MAAAA,WAAW,EAAXA,WAAW;AACX1O,MAAAA,OAAO,EAAEqU,cAAc,IAAdA,IAAAA,GAAAA,cAAc,GAAIvC,YAAa;AACxCpX,MAAAA,OAAO,EAAE+Y,WAAW;AACpBnC,MAAAA,KAAK,EAALA,KAAK;AACLR,MAAAA,UAAU,EAAVA,UAAU;AACVC,MAAAA,WAAW,EAAEyC,aAAa;MAC1BnB,eAAe,EACbgC,cAAc,IAAI,IAAI,IAAIpN,WAAW,CAACpK,UAAU,GAC5C,UAACyX,OAAO,EAAA;AAAA,QAAA,OACNC,iBAAiB,CAACb,UAAU,CAAChV,CAAC,EAAE4V,OAAO,CAAC,EAAEtH,QAAQ,CAAC,CAACpQ,QAAQ,CAAA;OAC9DmB,GAAAA,SAAAA;AACP,KAAA,CAAC,CAAA;AAEF,IAAA,IAAMyW,SAAS,GAAG,CAAC9V,CAAC,CAACsH,SAAS,GAC1ByO,YAAY,CAAC/V,CAAC,CAACe,KAAK,EAAEwH,WAAW,CAAC,GAClClJ,SAAS,CAAA;IACb,OAAO;AACL8V,MAAAA,aAAa,EAAE7G,QAAQ,CAAC0G,UAAU,CAACzC,KAAK,CAAC;AACzC8C,MAAAA,KAAK,EAAE;QACLra,IAAI,EAAEoT,iBAAS,CAAC4H,OAAO;AACvBX,QAAAA,KAAK,EAAES,SAAS;QAChBG,KAAK,EAAE1D,KAAK,CAACuB,EAAE;QACf7U,QAAQ,EAAEe,CAAC,CAACf,QAAQ;QACpBqW,IAAI,EAAEtV,CAAC,CAACsH,SAAAA;OACT;AACD4O,MAAAA,YAAY,EAAE9C,YAAAA;KACf,CAAA;AACH,GAAA;AA2BF,CAAA;AAEgB,SAAA+C,YAAYA,CAC1B7D,CAAqE,EACrE8D,MAAiB,EAAA;AAEjB,EAAA,OAAO,UAACC,MAAM,EAAA;AAAA,IAAA,OACXA,MAAM,CAAC/D,CAAC,CAAC,gBACRV,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,QACGuE,MAAM,CAAC/D,CAAC,CAAC,EACT8D,MACA,CACJ,CAAA;GAAC,CAAA;AACN,CAAA;AAEgB,SAAAE,UAAUA,CACxBhE,CAAqE,EACrEiE,IAAkC,EAAA;AAElC,EAAA,OAAO,UAACF,MAAM,EAAA;IAAA,OAAMA,MAAM,CAAC/D,CAAC,CAAC,GAAGiE,IAAI,CAACF,MAAM,CAAC/D,CAAC,CAAC,CAAC,CAAA;GAAC,CAAA;AAClD,CAAA;AAEM,SAAUkE,qBAAqBA,CACnCC,GAAuB,EAAA;AAEvB,EAAA,QAAQA,GAAG;IACT,KAAKnc,0BAAkB,CAACoc,UAAU;AAChC,MAAA,OAAO,YAAY,CAAA;IACrB,KAAKpc,0BAAkB,CAACqc,YAAY;AAClC,MAAA,OAAO,cAAc,CAAA;IACvB,KAAKrc,0BAAkB,CAACsc,UAAU;AAChC,MAAA,OAAO,YAAY,CAAA;IACrB,KAAKtc,0BAAkB,CAACuc,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,SAAAV,iBAAiBA,CAC/BtD,KAAyB,EACzBjE,QAAsB,EAAA;AAAA,EAAA,IAAA0I,oBAAA,CAAA;AAEtB,EAAA,IAAAC,KAAA,GAAAD,CAAAA,oBAAA,GACEzE,KAAK,CAAC4C,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAnB5C,KAAK,CAAC4C,aAAa,CAAG5C,KAAK,CAAC,KAAAyE,IAAAA,GAAAA,oBAAA,GAAIzE,KAAK;IAD/BQ,SAAS,GAAAkE,KAAA,CAATlE,SAAS;IAAE7U,QAAQ,GAAA+Y,KAAA,CAAR/Y,QAAQ;IAAE0U,KAAK,GAAAqE,KAAA,CAALrE,KAAK;IAAEsD,YAAY,GAAAe,KAAA,CAAZf,YAAY;IAAEb,KAAK,GAAA4B,KAAA,CAAL5B,KAAK;IAAEtD,UAAU,GAAAkF,KAAA,CAAVlF,UAAU,CAAA;AAEnE,EAAA,IAAMsE,MAAM,GAAmB;AAC7BnY,IAAAA,QAAQ,EAARA,QAAQ;AACRgY,IAAAA,YAAY,EAAZA,YAAY;AACZtD,IAAAA,KAAK,EAALA,KAAK;IACLG,SAAS,EAAE3K,EAAE,CAAC2K,SAAS,CAAA;GACxB,CAAA;EACD,CAAChB,UAAU,IAAVA,IAAAA,GAAAA,UAAU,GAAI,EAAE,EACdmF,IAAI,CAAC,UAACxU,CAAC,EAAEyU,CAAC,EAAA;AAAA,IAAA,OAAKzU,CAAC,CAAC0U,QAAQ,GAAGD,CAAC,CAACC,QAAQ,CAAA;AAAA,GAAA,CAAC,CACvCxY,OAAO,CAAC,UAAC7D,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,CAACsc,KAAK,CAAChB,MAAM,CAAC,CAAA;GAAC,CAAA,CAAA;EAClCA,MAAM,CAAChB,KAAK,GACVA,KAAK,IAAI,CAACA,KAAK,CAACC,IAAI,GAChBhH,QAAQ,CAACgJ,WAAW,CAACjC,KAAK,EAAEgB,MAAM,CAACkB,UAAU,EAAElB,MAAM,CAACmB,QAAQ,CAAC,GAC/DnY,SAAS,CAAA;AACf,EAAA,OAAOgX,MAAM,CAAA;AACf,CAAA;AAEgB,SAAAN,YAAYA,CAC1BhV,KAAgC,EAChC9C,KAAkB,EAAA;AAElB,EAAA,OAAO8C,KAAK,GAAGA,KAAK,GAAGP,gBAAgB,CAACvC,KAAK,CAAC,CAAA;AAChD;;;;;;AChkBM,SAAUwZ,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,CAAClZ,MAAM,CAACuZ,kBAAkB,CAAC,CAAA;AACpE,EAAA,IAAMC,kBAAkB,GAAGN,eAAe,CAAClZ,MAAM,CAACyZ,mBAAmB,CAAC,CAAA;AACtE,EAAA,IAAMC,sBAAsB,GAAGR,eAAe,CAAClZ,MAAM,CACnD2Z,uBAAuB,CACxB,CAAA;AACD,EAAA,IAAMC,oBAAoB,GAAGV,eAAe,CAAClZ,MAAM,CAAC6Z,qBAAqB,CAAC,CAAA;AAC1E,EAAA,IAAMC,cAAc,GAAGZ,eAAe,CAAClZ,MAAM,CAAC+Z,mBAAmB,CAAC,CAAA;AAClE,EAAA,IAAMC,cAAc,GAAGd,eAAe,CAAClZ,MAAM,CAACia,mBAAmB,CAAC,CAAA;AAClE,EAAA,IAAMC,eAAe,GAAGhB,eAAe,CAAClZ,MAAM,CAACma,oBAAoB,CAAC,CAAA;AACpE,EAAA,IAAMC,eAAe,GAAGlB,eAAe,CAAClZ,MAAM,CAACqa,oBAAoB,CAAC,CAAA;AACpE,EAAA,IAAMC,kBAAkB,GAAA,CAAAlB,qBAAA,GACtBF,eAAe,CAAC7X,IAAI,CAACkZ,wBAAwB,CAAC,KAAAnB,IAAAA,GAAAA,qBAAA,GAC9CD,gBAAgB,CAACnH,UAAU,CAAA;AAE7B,EAAA,IAAMwI,aAAa,GAAiB;AAClCxD,IAAAA,YAAY,EAAZA,YAAY;AACZR,IAAAA,UAAU,EAAVA,UAAU;AACVI,IAAAA,WAAW,EAAXA,WAAW;AACXM,IAAAA,aAAa,EAAbA,aAAa;AACb4B,IAAAA,WAAW,EAAXA,WAAW;AACX2B,IAAAA,WAAW,EAAXA,WAAW;AACXjH,IAAAA,eAAe,EAAfA,eAAe;AACfc,IAAAA,YAAY,EAAZA,YAAY;IACZE,gBAAgB,EAAE8F,kBAAkB,CAACI,MAAAA;GACtC,CAAA;EAED,SAASpG,YAAYA,CAACP,KAAyB,EAAA;AAAA,IAAA,IAAA4G,qBAAA,CAAA;IAC7C,IAAM7K,QAAQ,IAAA6K,qBAAA,GACZP,eAAe,CAAC/Y,IAAI,CAAC,UAAC9E,CAAC,EAAA;MAAA,OAAK,CAACA,CAAC,CAACqe,KAAK,IAAIre,CAAC,CAACqe,KAAK,CAAC7G,KAAK,CAAC,CAAA;AAAA,KAAA,CAAC,KAAA4G,IAAAA,GAAAA,qBAAA,GACvDxB,gBAAgB,CAAC7E,YAAY,CAAA;AAC/B,IAAA,OAAOxE,QAAQ,CAAC4K,MAAM,CAAC3G,KAAK,EAAEyG,aAAa,CAAC,CAAA;AAC9C,GAAA;EAEA,SAAShH,eAAeA,CAACO,KAAqB,EAAA;AAAA,IAAA,IAAA8G,qBAAA,CAAA;IAC5C,IAAM/K,QAAQ,IAAA+K,qBAAA,GACZnB,sBAAsB,CAACrY,IAAI,CAAC,UAAC9E,CAAC,EAAA;MAAA,OAC5Bue,OAAO,CAACve,CAAC,CAACwe,aAAa,EAAEhH,KAAK,CAACN,SAAS,CAACjX,IAAI,CAAC,CAAA;AAAA,KAAA,CAC/C,KAAAqe,IAAAA,GAAAA,qBAAA,GAAI1B,gBAAgB,CAAC1F,SAAS,CAAA;AACjC,IAAA,OAAO3D,QAAQ,CAAC4K,MAAM,CAAC3G,KAAK,CAAC,CAAA;AAC/B,GAAA;EAEA,SAAS0G,WAAWA,CAAC1G,KAAyB,EAAA;AAAA,IAAA,IAAAiH,gBAAA,CAAA;AAC5C,IAAA,OAAO,EAAAA,gBAAA,GAAChB,cAAc,CAAC,CAAC,CAAC,KAAAgB,IAAAA,GAAAA,gBAAA,GAAI7B,gBAAgB,CAAC8B,KAAK,EAAEP,MAAM,CACzD3G,KAAK,EACLyG,aAAa,CACd,CAAA;AACH,GAAA;AAEA,EAAA,SAAS1B,WAAWA,CAClB/E,KAAyB,EACzBgF,UAAqB,EACrBC,QAAmB,EAAA;AAAA,IAAA,IAAAkC,oBAAA,CAAA;IAEnB,IAAMpL,QAAQ,IAAAoL,oBAAA,GACZpB,cAAc,CAACzY,IAAI,CAAC,UAAC9E,CAAC,EAAA;MAAA,OAAKue,OAAO,CAACve,CAAC,CAAC4e,SAAS,EAAEpH,KAAK,CAACvX,IAAI,CAAC,CAAA;AAAA,KAAA,CAAC,KAAA0e,IAAAA,GAAAA,oBAAA,GAC5D/B,gBAAgB,CAACtC,KAAK,CAAA;IACxB,OAAO/G,QAAQ,CAAC4K,MAAM,CAAC3G,KAAK,EAAEgF,UAAU,EAAEC,QAAQ,EAAEwB,aAAa,CAAC,CAAA;AACpE,GAAA;EAEA,SAAShE,UAAUA,CACjBzC,KAAwB,EAAA;AAAA,IAAA,IAAAqH,qBAAA,CAAA;AAExB,IAAA,IACyBC,UAAU,GAE/BtH,KAAK,CAFPrR,aAAa,CAAIlG,IAAI;MACrBiD,KAAK,GACHsU,KAAK,CADPtU,KAAK,CAAA;AAGP,IAAA,IAAMjC,OAAO,GAAG0E,UAAU,CAAC6R,KAAK,CAAC,CAAA;IACjC,IAAMjE,QAAQ,IAAAsL,qBAAA,GACZ9B,iBAAiB,CAACjY,IAAI,CACpB,UAAC9E,CAAC,EAAA;AAAA,MAAA,IAAA+e,aAAA,EAAAC,iBAAA,EAAAC,UAAA,CAAA;AAAA,MAAA,OACA,CAAAF,CAAAA,aAAA,GAAC/e,CAAC,CAACoD,UAAU,KAAA2b,IAAAA,GAAAA,aAAA,GAAI,KAAK,OAAAC,CAAAA,iBAAA,GAAO9b,KAAK,CAACE,UAAU,KAAA,IAAA,GAAA4b,iBAAA,GAAI,KAAK,CAAC,IACvD,CAAAC,CAAAA,UAAA,GAACjf,CAAC,CAACiB,OAAO,KAAAge,IAAAA,GAAAA,UAAA,GAAI,KAAK,MAAMhe,OAAO,IAChCsd,OAAO,CAACve,CAAC,CAACkf,UAAU,EAAEhc,KAAK,CAACjD,IAAI,CAAC,IACjCse,OAAO,CAACve,CAAC,CAAC8e,UAAU,EAAEA,UAAU,CAAC,KAChC,CAAC9e,CAAC,CAACqe,KAAK,IAAIre,CAAC,CAACqe,KAAK,CAAC7G,KAAK,CAAC,CAAC,CAAA;AAAA,KAAA,CAC/B,KAAAqH,IAAAA,GAAAA,qBAAA,GAAIjC,gBAAgB,CAAC/b,IAAI,CAAA;IAE5B,IAAMsI,MAAM,GAAGoK,QAAQ,CAAC4K,MAAM,CAAC3G,KAAK,EAAEyG,aAAa,CAAC,CAAA;AACpD,IAAA,IAAI,OAAO9U,MAAM,KAAK,UAAU,EAAE,OAAOA,MAAM,CAAA;AAC/C,IAAA,OAAO,UAACgW,CAAC,EAAA;MAAA,OAAApd,QAAA,KAAWod,CAAC,EAAA;AAAEhc,QAAAA,QAAQ,EAAEgG,MAAAA;AAAM,OAAA,CAAA,CAAA;KAAG,CAAA;AAC5C,GAAA;EAEA,SAASkR,WAAWA,CAClB7C,KAAyB,EAAA;AAAA,IAAA,IAAA4H,qBAAA,CAAA;AAEzB,IAAA,IAAMN,UAAU,GAAGtH,KAAK,CAACrR,aAAa,CAAClG,IAAI,CAAA;IAC3C,IAAMsT,QAAQ,IAAA6L,qBAAA,GACZnC,kBAAkB,CAACnY,IAAI,CAAC,UAAC9E,CAAC,EAAA;AAAA,MAAA,OAAKue,OAAO,CAACve,CAAC,CAAC8e,UAAU,EAAEA,UAAU,CAAC,CAAA;AAAA,KAAA,CAAC,KAAAM,IAAAA,GAAAA,qBAAA,GACjExC,gBAAgB,CAAC7b,KAAK,CAAA;IACxB,IAAMoI,MAAM,GAAGoK,QAAQ,CAAC4K,MAAM,CAAC3G,KAAK,EAAEyG,aAAa,CAAC,CAAA;AACpD,IAAA,IAAI,OAAO9U,MAAM,KAAK,UAAU,EAAE,OAAOA,MAAM,CAAA;AAC/C,IAAA,OAAO,UAACgW,CAAC,EAAA;MAAA,OAAApd,QAAA,KAAWod,CAAC,EAAA;AAAEhc,QAAAA,QAAQ,EAAEgG,MAAAA;AAAM,OAAA,CAAA,CAAA;KAAG,CAAA;AAC5C,GAAA;EAEA,SAASsR,YAAYA,CAACjD,KAA0B,EAAA;AAAA,IAAA,IAAA6H,qBAAA,CAAA;IAC9C,IAAM9L,QAAQ,IAAA8L,qBAAA,GACZ1B,eAAe,CAAC7Y,IAAI,CAAC,UAAC9E,CAAC,EAAA;MAAA,OAAKue,OAAO,CAACve,CAAC,CAACsf,UAAU,EAAE9H,KAAK,CAAC9K,QAAQ,CAAC,CAAA;AAAA,KAAA,CAAC,KAAA2S,IAAAA,GAAAA,qBAAA,GAClEzC,gBAAgB,CAAChc,MAAM,CAAA;AACzB,IAAA,OAAO2S,QAAQ,CAAC4K,MAAM,CAAC3G,KAAK,EAAEyG,aAAa,CAAC,CAAA;AAC9C,GAAA;EAEA,SAAStD,aAAaA,CAACnD,KAA2B,EAAA;AAAA,IAAA,IAAA+H,qBAAA,CAAA;AAChD,IAAA,IAAMT,UAAU,GAAGtH,KAAK,CAAC3W,IAAI,CAACZ,IAAI,CAAA;IAClC,IAAMsT,QAAQ,IAAAgM,qBAAA,GACZlC,oBAAoB,CAACvY,IAAI,CAAC,UAAC9E,CAAC,EAAA;AAAA,MAAA,OAAKue,OAAO,CAACve,CAAC,CAAC8e,UAAU,EAAEA,UAAU,CAAC,CAAA;AAAA,KAAA,CAAC,KAAAS,IAAAA,GAAAA,qBAAA,GACnE3C,gBAAgB,CAAC9b,OAAO,CAAA;AAC1B,IAAA,OAAOyS,QAAQ,CAAC4K,MAAM,CAAC3G,KAAK,EAAEyG,aAAa,CAAC,CAAA;AAC9C,GAAA;AAEA,EAAA,OAAOA,aAAa,CAAA;AACtB,CAAA;AAYgB,SAAAuB,2BAA2BA,CACzCve,OAAA,EAA0C;AAAA,EAAA,IAA1CA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAwC,EAAE,CAAA;AAAA,GAAA;EAE1C,SAASkd,MAAMA,CAAAvP,IAAA,EAA6C;AAAA,IAAA,IAA1CjC,OAAO,GAAAiC,IAAA,CAAPjC,OAAO;MAAEC,UAAU,GAAAgC,IAAA,CAAVhC,UAAU,CAAA;IACnC,oBACEiK,yBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;MAAQkB,SAAS,EAAE/W,OAAO,CAAC+W,SAAU;AAACrL,MAAAA,OAAO,EAAEA,OAAAA;AAAQ,KAAA,EACpDC,UACK,CAAC,CAAA;AAEb,GAAA;EACA,OAAO;AAAEuR,IAAAA,MAAM,EAANA,MAAM;AAAEle,IAAAA,IAAI,EAAE,QAAA;GAAU,CAAA;AACnC,CAAA;AACgB,SAAAwf,0BAA0BA,CACxCxe,OAAA,EAA2E;AAAA,EAAA,IAA3EA,OAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,IAAAA,OAAA,GAAuC;AAAEye,MAAAA,eAAe,eAAE7I,yBAAA,CAAAC,aAAA,eAAO,IAAO,CAAA;KAAG,CAAA;AAAA,GAAA;EAE3E,IAAA6I,QAAA,GAAwD1e,OAAO;IAAvD+W,SAAS,GAAA2H,QAAA,CAAT3H,SAAS;IAAE4H,eAAe,GAAAD,QAAA,CAAfC,eAAe;IAAEF,eAAe,GAAAC,QAAA,CAAfD,eAAe,CAAA;EACnD,OAAO;AACLvB,IAAAA,MAAM,EAAE,SAAAA,MAAAA,CAAC3G,KAAK,EAAEgF,UAAU,EAAEC,QAAQ,EAAA;AAAA,MAAA,oBAClC5F,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EAAA,IAAA,EACGyF,UAAU,eACX3F,yBAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;QACE+I,OAAO,EAAErI,KAAK,CAAC0D,KAAM;AACrBlD,QAAAA,SAAS,EAAEpN,wBAAI,CACboN,SAAS,EACTR,KAAK,CAACvX,IAAI,KAAKoT,iBAAS,CAACjT,KAAK,IAAIwf,eAAe,CAAA;AACjD,OAAA,EAEDpI,KAAK,CAAC8C,KAAK,EACX9C,KAAK,CAACtT,QAAQ,IAAIwb,eACd,CACP,EAACjD,QACH,CAAG,CAAA;KACJ;AACDxc,IAAAA,IAAI,EAAE,OAAA;GACP,CAAA;AACH,CAAA;AAWM,SAAU6f,0BAA0BA,CACxC7e,OAAqC,EAAA;AAErC,EAAA,IAAAiV,KAAA,GAOIjV,OAAO,WAAPA,OAAO,GAAI,EAAE;IANf+W,SAAS,GAAA9B,KAAA,CAAT8B,SAAS;IACT+H,cAAc,GAAA7J,KAAA,CAAd6J,cAAc;IACdC,UAAU,GAAA9J,KAAA,CAAV8J,UAAU;IACVC,mBAAmB,GAAA/J,KAAA,CAAnB+J,mBAAmB;IACnBC,iBAAiB,GAAAhK,KAAA,CAAjBgK,iBAAiB;IACjBC,cAAc,GAAAjK,KAAA,CAAdiK,cAAc,CAAA;AAEhB,EAAA,SAAShC,MAAMA,CAAA3F,KAAA,EAAAsB,KAAA,EASiB;AAAA,IAAA,IAP5BN,YAAY,GAAAhB,KAAA,CAAZgB,YAAY;MACZJ,aAAa,GAAAZ,KAAA,CAAbY,aAAa;MACbK,SAAS,GAAAjB,KAAA,CAATiB,SAAS;MACTG,YAAY,GAAApB,KAAA,CAAZoB,YAAY;MACZD,UAAU,GAAAnB,KAAA,CAAVmB,UAAU;MACVzV,QAAQ,GAAAsU,KAAA,CAARtU,QAAQ,CAAA;AAAA,IAAA,IAERuW,YAAY,GAAAX,KAAA,CAAZW,YAAY,CAAA;AAEd,IAAA,IAAM2F,UAAU,GAAG,CAAClc,QAAQ,IAAIsV,YAAY,GAAG,CAAC,CAAA;AAChD,IAAA,oBACE3C,yBAAA,CAAAC,aAAA,CACED,KAAAA,EAAAA,IAAAA,eAAAA,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkB,MAAAA,SAAS,EAAEpN,wBAAI,CAACoN,SAAS,EAAE4B,YAAY,IAAImG,cAAc,CAAA;KAC3D1V,EAAAA,KAAK,CAACgW,IAAI,CAAC;AAAE1c,MAAAA,MAAM,EAAE6V,YAAAA;AAAY,KAAE,EAAE,UAAC8G,CAAC,EAAEtgB,CAAC,EAAA;AAAA,MAAA,OACzC4Z,YAAY,gBACV/C,yBAAA,CAAAC,aAAA,CAACC,cAAQ,EAAA;QAACW,GAAG,EAAEiC,UAAU,CAAC3Z,CAAC,CAAA;OACzB6W,eAAAA,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkB,QAAAA,SAAS,EAAEpN,wBAAI,CAACoV,UAAU,EAAEC,mBAAmB,CAAA;OACjD7G,EAAAA,aAAa,CAACpZ,CAAC,CACb,CACL,eAAA6W,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkB,QAAAA,SAAS,EAAEkI,iBAAAA;AAAkB,OAAA,EAC/BE,UAAU,IAAI3F,YAAY,CAACb,YAAY,CAAC5Z,CAAC,CAAC,CACxC,CACG,CAAC,gBAEX6W,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKY,QAAAA,GAAG,EAAEiC,UAAU,CAAC3Z,CAAC,CAAE;AAACgY,QAAAA,SAAS,EAAEgI,UAAAA;AAAW,OAAA,EAC5C5G,aAAa,CAACpZ,CAAC,CACb,CACN,CAAA;AAAA,KAAA,CAEA,CACL,EAACyZ,SAAS,iBACR5C,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkB,MAAAA,SAAS,EAAEmI,cAAAA;AAAe,KAAA,EAAE1F,YAAY,CAAChB,SAAS,CAAO,CAE7D,CAAC,CAAA;AAEV,GAAA;EACA,OAAO;AAAE0E,IAAAA,MAAM,EAANA,MAAM;AAAEle,IAAAA,IAAI,EAAE,OAAA;GAAS,CAAA;AAClC,CAAA;AAiBM,SAAUsgB,0BAA0BA,CACxCtf,OAAqC,EAAA;AAErC,EAAA,IAAAib,KAAA,GAQIjb,OAAO,WAAPA,OAAO,GAAI,EAAE;IAPf+W,SAAS,GAAAkE,KAAA,CAATlE,SAAS;IAAAwI,gBAAA,GAAAtE,KAAA,CACTuE,UAAU;AAAVA,IAAAA,UAAU,GAAAD,gBAAA,KAAGE,KAAAA,CAAAA,GAAAA,iBAAiB,GAAAF,gBAAA;IAAAG,qBAAA,GAAAzE,KAAA,CAC9B0E,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,qBAAA;IACtBE,aAAa,GAAA3E,KAAA,CAAb2E,aAAa;IACbC,iBAAiB,GAAA5E,KAAA,CAAjB4E,iBAAiB;IACjBC,aAAa,GAAA7E,KAAA,CAAb6E,aAAa;IACbC,cAAc,GAAA9E,KAAA,CAAd8E,cAAc,CAAA;EAGhB,SAASN,iBAAiBA,CAAAO,KAAA,EAEX;AAAA,IAAA,IAAAC,aAAA,GAAAD,KAAA,CADbE,OAAO;AAAPA,MAAAA,OAAO,GAAAD,aAAA,KAAGN,KAAAA,CAAAA,GAAAA,kBAAkB,GAAAM,aAAA,CAAA;IAE5B,OAAO;AACLlJ,MAAAA,SAAS,EAAE6I,aAAa;AACxBhJ,MAAAA,KAAK,EAAE;AACL/W,QAAAA,OAAO,EAAE,MAAM;AACfsgB,QAAAA,mBAAmB,cAAYD,OAAO,GAAA,QAAA;AACvC,OAAA;KACF,CAAA;AACH,GAAA;EAEA,SAASE,UAAUA,CAACpgB,OAAqB,EAAA;IACvC,OAAO;AACL+W,MAAAA,SAAS,EAAE+I,aAAa;AACxBlJ,MAAAA,KAAK,EAAE;AACL/W,QAAAA,OAAO,EAAE,MAAM;QACfwgB,GAAG,EAAErgB,OAAO,CAACqgB,GAAG,GAAGrgB,OAAO,CAACqgB,GAAG,GAAGN,cAAc;QAC/CO,aAAa,EAAEtgB,OAAO,CAACugB,SAAS,GAC3BvgB,OAAO,CAACugB,SAAiB,GAC1Bld,SAAAA;AACL,OAAA;KACF,CAAA;AACH,GAAA;EAEA,SAAS6Z,MAAMA,CAAC3G,KAAyB,EAAA;AACvC,IAAA,IAAQH,UAAU,GAAiCG,KAAK,CAAhDH,UAAU;MAAEC,WAAW,GAAoBE,KAAK,CAApCF,WAAW;MAAEnR,aAAa,GAAKqR,KAAK,CAAvBrR,aAAa,CAAA;IAE9C,IAAAsb,KAAA,GAAkCzgB,cAAc,CAACmF,aAAa,CAAC,GAC3Dsa,UAAU,CAACta,aAAa,CAAC,GACzBhF,cAAc,CAACgF,aAAa,CAAC,GAC7Bkb,UAAU,CAAClb,aAAa,CAAC,GACxB;AAAE6R,QAAAA,SAAS,EAAE8I,iBAAAA;OAAkC;MAJ5CjJ,KAAK,GAAA4J,KAAA,CAAL5J,KAAK;MAAa6J,GAAG,GAAAD,KAAA,CAAdzJ,SAAS,CAAA;IAMxB,OAAO,UAAC2J,EAAsB,EAAI;MAChC,OAAA5f,QAAA,KACK4f,EAAE,EAAA;QACLxe,QAAQ,eACN0T,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;UAAKkB,SAAS,EAAEpN,wBAAI,CAAC4M,KAAK,CAACQ,SAAS,EAAEA,SAAS,EAAE0J,GAAG,CAAE;AAAC7J,UAAAA,KAAK,EAAEA,KAAAA;SAC3DxN,EAAAA,KAAK,CAACgW,IAAI,CAAC;AAAE1c,UAAAA,MAAM,EAAE0T,UAAAA;AAAU,SAAE,EAAE,UAACiJ,CAAC,EAAEtgB,CAAC,EAAA;UAAA,OAAKsX,WAAW,CAACtX,CAAC,CAAC,CAAA;SACzD,CAAA,CAAA;AACN,OAAA,CAAA,CAAA;KAEJ,CAAA;AACH,GAAA;EACA,OAAO;AAAEC,IAAAA,IAAI,EAAE,OAAO;AAAEke,IAAAA,MAAM,EAANA,MAAAA;GAAQ,CAAA;AAClC,CAAA;AAMgB,SAAAyD,4BAA4BA,CAC1C3gB,OAAA,EAA2C;AAAA,EAAA,IAA3CA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAyC,EAAE,CAAA;AAAA,GAAA;EAE3C,OAAO;IACLkd,MAAM,EAAE,SAAAA,MAAAA,CAAC3G,KAAK,EAAA;AAAA,MAAA,oBAAKX,yBAAA,CAAAC,aAAA,CAAC+K,cAAc,EAAA9f,QAAA,CAAA,EAAA,EAAKd,OAAO,EAAMuW,KAAK,CAAI,CAAA,CAAA;AAAA,KAAA;AAC7DvX,IAAAA,IAAI,EAAE,SAAA;GACP,CAAA;AACH,CAAA;AAEgB,SAAA4hB,cAAcA,CAAAC,KAAA,EAAA;EAAA,IAAAC,OAAA,GAAAC,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAAAC,cAAA,CAAA;AAAA,IAAA,IAC5BphB,IAAI,GAAAihB,KAAA,CAAJjhB,IAAI;MACJC,OAAO,GAAAghB,KAAA,CAAPhhB,OAAO;MACPkX,SAAS,GAAA8J,KAAA,CAAT9J,SAAS;MACTH,KAAK,GAAAiK,KAAA,CAALjK,KAAK;AACF5W,MAAAA,OAAO,GAAA4X,6BAAA,CAAAiJ,KAAA,EAAAhJ,SAAA,CAAA,CAAA;IAEV,QAAQjY,IAAI,CAACZ,IAAI;MACf,KAAKL,uBAAe,CAACsiB,IAAI;QACvB,oBACErL,yBAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACEe,UAAAA,KAAK,EAAEA,KAAM;AACbG,UAAAA,SAAS,EAAEpN,wBAAI,CACboN,SAAS,EACTlX,OAAO,GAAGA,OAAO,CAACiG,KAAK,GAAIlG,IAAoB,CAACshB,SAAS,CAAA;AACzD,SAAA,CACF,CAAA;MAEN,KAAKviB,uBAAe,CAACuL,IAAI;QACvB,oBACE0L,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,UAAAA,KAAK,EAAEA,KAAM;AAACG,UAAAA,SAAS,EAAEpN,wBAAI,CAACoN,SAAS,EAAE/W,OAAO,CAACmhB,aAAa,CAAA;SAChEthB,EAAAA,OAAO,GAAGA,OAAO,CAACiG,KAAK,GAAIlG,IAAoB,CAACoK,IAC9C,CAAC,CAAA;MAEV,KAAKrL,uBAAe,CAAC0L,IAAI;QACvB,oBACEuL,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEe,UAAAA,KAAK,EAAEA,KAAM;UACbG,SAAS,EAAEpN,wBAAI,CAACoN,SAAS,EAAE/W,OAAO,CAACohB,aAAa,CAAE;AAClDC,UAAAA,uBAAuB,EAAE;AACvBC,YAAAA,MAAM,EAAEzhB,OAAO,GAAAmhB,CAAAA,cAAA,GAAGnhB,OAAO,CAACiG,KAAK,KAAA,IAAA,GAAAkb,cAAA,GAAI,EAAE,GAAIphB,IAAoB,CAACwK,IAAAA;;AAC9D,SAAA,CACF,CAAA;AAEN,MAAA;QACE,oBAAOwL,yBAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,EAAI,wBAAsB,EAACjW,IAAI,CAACZ,IAAS,CAAC,CAAA;AACpD,KAAA;AAAA,GAAA,SAAA;IAAA8hB,OAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAGI,IAAMS,kBAAkB,GAAkB,CAC/C;AAAEC,EAAAA,IAAI,EAAE,KAAK;AAAE1b,EAAAA,KAAK,EAAE,IAAA;AAAM,CAAA,EAC5B;AAAE0b,EAAAA,IAAI,EAAE,IAAI;AAAE1b,EAAAA,KAAK,EAAE,KAAA;AAAO,CAAA,EAC7B;AASe,SAAA2b,yBAAyBA,CACvCzhB,OAAA,EAAwC;AAAA,EAAA,IAAA0hB,qBAAA,CAAA;AAAA,EAAA,IAAxC1hB,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAsC,EAAE,CAAA;AAAA,GAAA;AAExC,EAAA,IAAM2hB,cAAc,GAAGC,oBAAoB,CAAA,CAAAF,qBAAA,GAAC1hB,OAAO,CAAC6hB,aAAa,KAAAH,IAAAA,GAAAA,qBAAA,GAAI,EAAE,CAAC,CAAA;EACxE,IAAAI,qBAAA,GAAAhhB,QAAA,CAAA;AACEihB,MAAAA,cAAc,EAAEJ,cAAc;AAC9BK,MAAAA,cAAc,EAAET,kBAAAA;AAAkB,KAAA,EAC/BvhB,OAAO,CAAA;IAHJiiB,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,UAAC5L,KAAK,EAAE6L,SAAS,EAAI;AAC7C,IAAA,IAAMC,SAAS,GAAG9L,KAAK,CAACtU,KAAK,CAACjD,IAAI,CAAA;IAClC,IAAIuX,KAAK,CAACyB,YAAY,EAAE;AACtB,MAAA,OAAO,UAACsK,CAAC,EAAA;QAAA,OAAAxhB,QAAA,KACJwhB,CAAC,EAAA;UACJpgB,QAAQ,EAAEkgB,SAAS,CAACnF,WAAW,CAAC1G,KAAK,CAACyB,YAAa,EAAE,CAAA;AAAC,SAAA,CAAA,CAAA;OACtD,CAAA;AACH,KAAA;AACD,IAAA,IAAIqK,SAAS,KAAKnkB,iBAAS,CAACkE,QAAQ,EAAE;MACpC,OAAOggB,SAAS,CAAChJ,WAAW,CAAC;QAC3BxC,KAAK,EAAEL,KAAK,CAACK,KAAK;QAClBG,SAAS,EAAER,KAAK,CAACQ,SAAS;AAC1B7R,QAAAA,aAAa,EAAE;AAAElG,UAAAA,IAAI,EAAE,UAAU;AAAEsM,UAAAA,SAAS,EAAE,IAAA;SAAM;QACpD+K,WAAW,EAAE,SAAAA,WAAAA,CAAC/F,CAAC,EAAA;AAAA,UAAA,OAAKiG,KAAK,CAACF,WAAW,CAAC/F,CAAC,EAAEA,CAAC,EAAE;YAAEhL,OAAO,EAAEiR,KAAK,CAACjR,OAAAA;AAAO,WAAE,CAAC,CAAA;AAAA,SAAA;QACvE8Q,UAAU,EAAEG,KAAK,CAACH,UAAAA;AACnB,OAAA,CAAC,CAAA;AACH,KAAA;AACD,IAAA,IAAMlR,aAAa,GAAGqR,KAAK,CAACrR,aAAa,CAAA;AACzC,IAAA,IAAI2Y,UAAU,GAAG3Y,aAAa,CAAClG,IAAI,CAAA;AACnC,IAAA,IAAIqjB,SAAS,IAAInkB,iBAAS,CAACqkB,GAAG,EAAE,oBAAO3M,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EAAA,IAAA,EAAE,oBAAkB,CAAG,CAAA;AAC9D,IAAA,IAAI1V,qBAAqB,CAAC8E,aAAa,CAAC,EACtC,OAAO,UAACod,CAAC,EAAA;MAAA,OAAAxhB,QAAA,KACJwhB,CAAC,EAAA;AACJvL,QAAAA,SAAS,EAAEmL,gBAAgB;AAC3BhgB,QAAAA,QAAQ,eACN0T,yBAAA,CAAAC,aAAA,CAAC2M,kBAAkB,EAAA;UACjBvgB,KAAK,EAAEsU,KAAK,CAACtU,KAAM;AACnBwG,UAAAA,eAAe,EAAE8N,KAAK,CAACvC,WAAW,CAACvL,eAAgB;UACnDnD,OAAO,EAAEiR,KAAK,CAACjR,OAAQ;UACvByR,SAAS,EAAER,KAAK,CAACQ,SAAU;UAC3BH,KAAK,EAAEL,KAAK,CAACK,KAAM;UACnBhI,SAAS,EAAE1J,aAAa,CAAC0J,SAAAA;SAAU,CAAA;AAEtC,OAAA,CAAA,CAAA;KACD,CAAA;AACJ,IAAA,IAAM6T,MAAM,GAAGJ,SAAS,KAAKnkB,iBAAS,CAAC2D,IAAI,CAAA;IAC3C,IAAImgB,cAAc,IAAI,IAAI,IAAIS,MAAM,IAAIlM,KAAK,CAACvW,OAAO,IAAI,IAAI,EAAE;AAC7D,MAAA,OAAOoiB,SAAS,CAACpJ,UAAU,CAAAlY,QAAA,KAAMyV,KAAK,EAAA;AAAEvW,QAAAA,OAAO,EAAEgiB,cAAAA;AAAc,OAAA,CAAE,CAAC,CAAA;AACnE,KAAA;IACD,IAAInE,UAAU,KAAKrf,sBAAc,CAAC4G,QAAQ,IAAIV,UAAU,CAAC6R,KAAK,CAAC,EAAE;AAC/D,MAAA,OAAOwL,cAAc,CAAC7E,MAAM,CAAC3G,KAAK,EAAE6L,SAAS,CAAC,CAAA;AAC/C,KAAA;AACD,IAAA,QAAQvE,UAAU;MAChB,KAAKrf,sBAAc,CAACkkB,QAAQ;AAC1B,QAAA,OAAOf,cAAc,CAACzE,MAAM,CAAC3G,KAAK,EAAE6L,SAAS,CAAC,CAAA;AACjD,KAAA;IACD,OAAOvE,UAAU,KAAKrf,sBAAc,CAACmkB,QAAQ,gBAC3C/M,yBAAA,CAAAC,aAAA,CAAC+M,cAAS,EAAA;MACRhM,KAAK,EAAEL,KAAK,CAACK,KAAM;MACnBG,SAAS,EAAER,KAAK,CAACQ,SAAU;MAC3BzR,OAAO,EAAEiR,KAAK,CAACjR,OAAAA;AAAQ,KACvB,CAAA,gBAEFsQ,yBAAA,CAAAC,aAAA,CAACgN,YAAY,EAAA;MACX9L,SAAS,EAAEpN,wBAAI,CAAC4M,KAAK,CAACQ,SAAS,EAAEkL,UAAU,CAAE;MAC7CrL,KAAK,EAAEL,KAAK,CAACK,KAAM;MACnBkB,EAAE,EAAEvB,KAAK,CAACuB,EAAG;MACbgL,QAAQ,EAAEvM,KAAK,CAACxP,QAAS;MACzBzB,OAAO,EAAEiR,KAAK,CAACjR,OAAQ;AACvByd,MAAAA,OAAO,EAAEC,qBAAqB,CAACzM,KAAK,CAACtU,KAAK,CAACjD,IAAI,CAAA;AAAE,KACjD,CACH,CAAA;AACH,GAAC,CAAC,CAAA;AACJ,CAAA;AAEgB,SAAAwjB,kBAAkBA,CAAAS,KAAA,EAAA;EAAA,IAAAC,QAAA,GAAAnC,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAAAoC,MAAA,CAAA;AAAA,IAAA,IAChC7d,OAAO,GAAA2d,KAAA,CAAP3d,OAAO;MACPyR,SAAS,GAAAkM,KAAA,CAATlM,SAAS;MACTnI,SAAS,GAAAqU,KAAA,CAATrU,SAAS;MACTnG,eAAe,GAAAwa,KAAA,CAAfxa,eAAe;MACfxG,KAAK,GAAAghB,KAAA,CAALhhB,KAAK;MACL2U,KAAK,GAAAqM,KAAA,CAALrM,KAAK,CAAA;AASL,IAAA,IAAMvV,CAAC,GAAGiE,OAAO,CAACQ,KAAK,CAAA;IACvB,IAAMkE,IAAI,GAAAmZ,CAAAA,MAAA,GACP1a,eAAe,CAACoG,YAAY,CAAC5M,KAAK,EAAEZ,CAAC,CAAC,GACnCuN,SAAS,GACTnG,eAAe,CAACoJ,SAAS,CAAC5P,KAAK,EAAEZ,CAAC,CAAC,KAAA,IAAA,GAAA8hB,MAAA,GAAK,EAAE,CAAA;IAChD,oBACEvN,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,MAAAA,KAAK,EAAEA,KAAM;AAACG,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAA,EACrC/M,IACE,CAAC,CAAA;AACN,GAAA,SAAA;IAAAkZ,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAGE,SAAUL,YAAYA,CAAAO,MAAA,EAAA;EAAA,IAAAC,QAAA,GAAAtC,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAC1Bzb,OAAO,GAAA8d,MAAA,CAAP9d,OAAO;MACPyd,OAAO,GAAAK,MAAA,CAAPL,OAAO;AACJxM,MAAAA,KAAK,GAAAqB,6BAAA,CAAAwL,MAAA,EAAAE,UAAA,CAAA,CAAA;AAKR,IAAA,IAAAC,iBAAA,GACEC,qBAAgB,CAACle,OAAO,CAAC;MADnBme,SAAS,GAAAF,iBAAA,CAATE,SAAS;MAAE3d,KAAK,GAAAyd,iBAAA,CAALzd,KAAK;MAAE4d,QAAQ,GAAAH,iBAAA,CAARG,QAAQ;AAAKC,MAAAA,UAAU,GAAA/L,6BAAA,CAAA2L,iBAAA,EAAAK,UAAA,CAAA,CAAA;AAEjD,IAAA,oBACEhO,yBAAA,CAAAC,aAAA,CAAA/U,OAAAA,EAAAA,QAAA,KACM6iB,UAAU,EAAA;AACd3kB,MAAAA,IAAI,EAAE+jB,OAAO,CAAC,CAAC,CAAE;AACjBjd,MAAAA,KAAK,EAAEA,KAAK,IAAI,IAAI,GAAG,EAAE,GAAGid,OAAO,CAAC,CAAC,CAAC,CAACjd,KAAK,CAAE;AAC9C4d,MAAAA,QAAQ,EAAE,SAAAA,QAACzU,CAAAA,CAAC,EAAI;AACd3J,QAAAA,OAAO,CAACQ,KAAK,GAAGid,OAAO,CAAC,CAAC,CAAC,CAAC9T,CAAC,CAAC4U,MAAM,CAAC/d,KAAK,CAAC,CAAA;AAC5C,OAAA;KACIyQ,EAAAA,KAAK,CAAC,CACV,CAAA;AACF,GAAA,SAAA;IAAA8M,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAKY,SAAAS,8BAA8BA,CAC5C9jB,OAAA,EAA6C;EAE7C,OAAO;AACLhB,IAAAA,IAAI,EAAE,WAAW;IACjBke,MAAM,EAAE,SAAAA,MAAAA,CAAA6G,MAAA,EAAA;AAAA,MAAA,IAAG9N,SAAS,GAAA8N,MAAA,CAAT9N,SAAS,CAAA;MAAA,OAAQ;AAC1BoF,QAAAA,KAAK,EAAE,SAAAA,KAAC2I,CAAAA,EAAE,EAAI;AACZ,UAAA,IAAIC,eAAe,CAAChO,SAAS,CAAC,EAAE;AAAA,YAAA,IAAAiO,oBAAA,CAAA;AAC9B,YAAA,OAAOpJ,cAAc,CAAAoJ,CAAAA,oBAAA,GACnBjO,SAAS,CAACkO,SAAS,KAAA,IAAA,GAAAD,oBAAA,GAAI5lB,0BAAkB,CAACqc,YAAY,eACtD/E,yBAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;cAAGkB,SAAS,EAAEd,SAAS,CAACiL,SAAAA;AAAU,aAAA,CAAG,CACtC,CAAC8C,EAAE,CAAC,CAAA;AACN,WAAA;SACF;AACD5I,QAAAA,QAAQ,EAAE,CAAC;AACXnF,QAAAA,SAAS,EAATA,SAAAA;OACD,CAAA;AAAA,KAAA;GACF,CAAA;AACH,CAAA;AAkBgB,SAAAmO,sBAAsBA,CACpCpkB,OAAA,EAAoC;AAAA,EAAA,IAApCA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAkC,EAAE,CAAA;AAAA,GAAA;EAEpC,OAAO;AACLJ,IAAAA,IAAI,EAAE6hB,yBAAyB,CAACzhB,OAAO,CAACJ,IAAI,CAAC;AAC7CC,IAAAA,OAAO,EAAE8gB,4BAA4B,CAAC3gB,OAAO,CAACH,OAAO,CAAC;AACtDF,IAAAA,MAAM,EAAE4e,2BAA2B,CAACve,OAAO,CAACL,MAAM,CAAC;AACnD8d,IAAAA,KAAK,EAAEoB,0BAA0B,CAAC7e,OAAO,CAACyd,KAAK,CAAC;AAChD3d,IAAAA,KAAK,EAAEwf,0BAA0B,CAACtf,OAAO,CAACF,KAAK,CAAC;AAChDuZ,IAAAA,KAAK,EAAEmF,0BAA0B,CAACxe,OAAO,CAACqZ,KAAK,CAAC;AAChDpD,IAAAA,SAAS,EAAE6N,8BAA8B,CAAkB,CAAC;AAC5DhN,IAAAA,YAAY,EAAEuN,2BAA2B,CAACrkB,OAAO,CAACqa,MAAM,CAAC;IACzD7F,UAAU,EAAE8P,+BAA+B,EAAE;GAC9C,CAAA;AACH,CAAA;AAEA,SAASD,2BAA2BA,CAClCrkB,OAAA,EAA0C;AAAA,EAAA,IAA1CA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAwC,EAAE,CAAA;AAAA,GAAA;AAE1C,EAAA,OAAOukB,oBAAoB,CAAC,UAAChO,KAAK,EAAE6L,SAAS,EAAI;AAC/C,IAAA,IAAM/H,MAAM,GAAGR,iBAAiB,CAAA/Y,QAAA,KACzByV,KAAK,EAAA;MAAEQ,SAAS,EAAEpN,wBAAI,CAAC4M,KAAK,CAACQ,SAAS,EAAE/W,OAAO,CAAC+W,SAAS,CAAA;AAAC,KAAA,CAAA,EAC/DqL,SAAS,CACV,CAAA;IACD,OAAO;AACLlgB,MAAAA,QAAQ,eAAE0T,yBAAA,CAAAC,aAAA,CAAC2O,aAAa,EAAA1jB,QAAA,CAAA;AAACuZ,QAAAA,MAAM,EAAEA,MAAAA;OAAYra,EAAAA,OAAO,CAAI,CAAA;MACxD+W,SAAS,EAAEsD,MAAM,CAACtD,SAAS;MAC3BH,KAAK,EAAEyD,MAAM,CAACzD,KAAK;MACnB6N,MAAM,EAAE,SAAAA,MAAAA,CAACxV,CAAC,EAAA;AAAA,QAAA,OACRA,CAAC,IAAIsH,KAAK,CAAC2D,YAAY,GAClB3D,KAAK,CAAC2D,YAAY,CAACwK,IAAI,CAACC,aAAa,GAAG1V,CAAC,GAC1C5L,SAAS,CAAA;AAAA,OAAA;KAChB,CAAA;AACH,GAAC,CAAC,CAAA;AACJ,CAAA;AAEA,SAASwY,0BAA0BA,GAAA;AACjC,EAAA,OAAOuI,sBAAsB,CAAC;AAC5B/J,IAAAA,MAAM,EAAE;AAAEtD,MAAAA,SAAS,EAAE,SAAA;KAAW;AAChCjX,IAAAA,KAAK,EAAE;AAAEiX,MAAAA,SAAS,EAAE,OAAA;KAAS;AAC7B0G,IAAAA,KAAK,EAAE;AAAE1G,MAAAA,SAAS,EAAE,eAAA;KAAiB;AACrCpX,IAAAA,MAAM,EAAE;AAAEoX,MAAAA,SAAS,EAAE,QAAA;KAAU;AAC/BnX,IAAAA,IAAI,EAAE;AAAEqiB,MAAAA,UAAU,EAAE,MAAA;KAAQ;AAC5BpiB,IAAAA,OAAO,EAAE;AAAEuhB,MAAAA,aAAa,EAAE,MAAM;AAAED,MAAAA,aAAa,EAAE,MAAA;AAAQ,KAAA;AAC1D,GAAA,CAAC,CAAA;AACJ,CAAA;AAEA,SAAShF,uBAAuBA,CAC9Bpd,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,WAAW,CAAA;AAC/B,CAAA;AAEA,SAAS+c,kBAAkBA,CACzBhd,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,MAAM,CAAA;AAC1B,CAAA;AAEA,SAASid,mBAAmBA,CAC1Bld,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAA;AAC3B,CAAA;AAEA,SAASud,mBAAmBA,CAC1Bxd,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAA;AAC3B,CAAA;AAEA,SAAS6d,oBAAoBA,CAC3B9d,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,QAAQ,CAAA;AAC5B,CAAA;AAEA,SAAS+d,wBAAwBA,CAC/Bhe,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,YAAY,CAAA;AAChC,CAAA;AAEA,SAAS2d,oBAAoBA,CAC3B5d,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,QAAQ,CAAA;AAC5B,CAAA;AAEA,SAASqd,qBAAqBA,CAC5Btd,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,SAAS,CAAA;AAC7B,CAAA;AAEA,SAASyd,mBAAmBA,CAC1B1d,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAA;AAC3B,CAAA;AACA,SAASse,OAAOA,CAAIve,CAAsB,EAAEsC,CAAI,EAAA;EAC9C,OAAOtC,CAAC,IAAI,IAAI,GAAG,IAAI,GAAGqK,KAAK,CAACC,OAAO,CAACtK,CAAC,CAAC,GAAGA,CAAC,CAACwF,QAAQ,CAAClD,CAAC,CAAC,GAAGA,CAAC,KAAKtC,CAAC,CAAA;AACtE,CAAA;AAEM,SAAUklB,eAAeA,CAACvd,CAAmB,EAAA;AACjD,EAAA,OAAOA,CAAC,CAAC1H,IAAI,KAAKT,4BAAoB,CAAC0iB,IAAI,CAAA;AAC7C,CAAA;AAEgB,SAAAsD,oBAAoBA,CAClCrH,MAA4C,EAC5Cld,OAA6C,EAAA;AAE7C,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,QAAQ;AAAEke,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAKld,OAAO,CAAA,CAAA;AAC7C,CAAA;AAEgB,SAAA4kB,mBAAmBA,CACjC1H,MAA2C,EAC3Cld,OAA4C,EAAA;AAE5C,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,OAAO;AAAEke,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAKld,OAAO,CAAA,CAAA;AAC5C,CAAA;AAEgB,SAAAmiB,kBAAkBA,CAChCjF,MAA0C,EAC1Cld,OAA2C,EAAA;AAE3C,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,MAAM;AAAEke,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAKld,OAAO,CAAA,CAAA;AAC3C,CAAA;AAEgB,SAAA6kB,mBAAmBA,CACjC3H,MAA2C,EAC3Cld,OAAiD,EAAA;AAEjD,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,OAAO;AAAEke,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAKld,OAAO,CAAA,CAAA;AAC5C,CAAA;AAEgB,SAAA8kB,wBAAwBA,CACtC5H,MAAgD,EAChDld,OAAiD,EAAA;AAEjD,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,YAAY;AAAEke,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAKld,OAAO,CAAA,CAAA;AACjD,CAAA;AAEgB,SAAA+kB,uBAAuBA,CACrC7H,MAAoD,EACpDld,OAAgD,EAAA;AAEhD,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,WAAA;AAAW,GAAA,EAAKgB,OAAO,EAAA;AAAEkd,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,CAAA,CAAA;AAChD,CAAA;AAQgB,SAAA0E,oBAAoBA,CAAC5hB,OAAA,EAAmC;AAAA,EAAA,IAAnCA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAiC,EAAE,CAAA;AAAA,GAAA;AACtE,EAAA,OAAOmiB,kBAAkB,CACvB,UAAC5L,KAAK,EAAEyO,OAAO,EAAA;AAAA,IAAA,oBACbpP,yBAAA,CAAAC,aAAA,CAACoP,kBAAkB,EAAA;MACjBlO,SAAS,EAAEpN,wBAAI,CAAC4M,KAAK,CAACQ,SAAS,EAAE/W,OAAO,CAAC+W,SAAS,CAAE;MACpDmO,KAAK,EAAE3O,KAAK,CAACjR,OAAQ;MACrBwS,EAAE,EAAEvB,KAAK,CAACuB,EAAG;MACb9X,OAAO,EAAEuW,KAAK,CAACvW,OAAS;MACxBiD,QAAQ,EAAEsT,KAAK,CAACtT,QAAS;MACzB2L,SAAS,EAAE5O,OAAO,CAAC4O,SAAU;MAC7BuW,YAAY,EAAEnlB,OAAO,CAACmlB,YAAa;AACnCpC,MAAAA,OAAO,EAAEqC,sBAAsB,CAAC7O,KAAK,CAACtU,KAAK,CAACjD,IAAI,CAAA;AAAE,KAAA,CAClD,CAAA;AAAA,GACH,EACD;AACEgB,IAAAA,OAAO,EAAE,IAAA;AACV,GAAA,CACF,CAAA;AACH,CAAA;AAmBM,SAAUilB,kBAAkBA,CAAAI,MAAA,EAAA;EAAA,IAAAC,QAAA,GAAAvE,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAChCmE,KAAK,GAAAG,MAAA,CAALH,KAAK;MACLllB,OAAO,GAAAqlB,MAAA,CAAPrlB,OAAO;MACP+W,SAAS,GAAAsO,MAAA,CAATtO,SAAS;MACTgM,OAAO,GAAAsC,MAAA,CAAPtC,OAAO;MACP9f,QAAQ,GAAAoiB,MAAA,CAARpiB,QAAQ;MAAAsiB,gBAAA,GAAAF,MAAA,CACRzW,SAAS;AAATA,MAAAA,SAAS,GAAA2W,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;AAC7BjP,MAAAA,KAAK,GAAAqB,6BAAA,CAAAyN,MAAA,EAAAI,UAAA,CAAA,CAAA;AAER,IAAA,IAAQ3f,KAAK,GAAeof,KAAK,CAAzBpf,KAAK;MAAE2P,QAAQ,GAAKyP,KAAK,CAAlBzP,QAAQ,CAAA;IACvB,IAAAiQ,SAAA,GAAoBC,cAAQ,CAAC,CAAC1iB,QAAQ,IAAI6C,KAAK,IAAI,IAAI,CAAC;AAAjD8f,MAAAA,SAAS,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;IAChB,IAAMG,eAAe,GAAG/Z,aAAO,CAC7B,YAAA;MAAA,OAAMtL,MAAM,CAAC2C,WAAW,CAACnD,OAAO,CAACU,GAAG,CAAC,UAAC3B,CAAC,EAAA;QAAA,OAAK,CAACgkB,OAAO,CAAChkB,CAAC,CAAC+G,KAAK,CAAC,EAAE/G,CAAC,CAAC+G,KAAK,CAAC,CAAA;AAAA,OAAA,CAAC,CAAC,CAAA;KACzE,EAAA,CAAC9F,OAAO,CAAC,CACV,CAAA;AACD,IAAA,oBACE4V,yBAAA,CAAAC,aAAA,CAAA/U,QAAAA,EAAAA,QAAA,KACMyV,KAAK,EAAA;AACTQ,MAAAA,SAAS,EAAEA,SAAU;MACrB2M,QAAQ,EAAE,SAAAA,QAAAA,CAACriB,CAAC,EAAA;QAAA,OAAM6jB,KAAK,CAACpf,KAAK,GAAG+f,eAAe,CAACxkB,CAAC,CAACwiB,MAAM,CAAC/d,KAAK,CAAC,CAAA;OAAE;AACjEA,MAAAA,KAAK,EAAEid,OAAO,CAACjd,KAAK,CAAE;AACtB2P,MAAAA,QAAQ,EAAEA,QAAAA;AAAS,KAAA,CAAA,EAElBmQ,SAAS,iBACRhQ,yBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQ/P,MAAAA,KAAK,EAAC,EAAA;AAAE,KAAA,EAAE7C,QAAQ,GAAGkiB,YAAY,GAAGvW,SAAkB,CAC/D,EACA5O,OAAO,CAACU,GAAG,CAAC,UAAC3B,CAAC,EAAEuR,CAAC,EAAA;MAAA,oBAChBsF,yBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQY,QAAAA,GAAG,EAAEnG,CAAE;AAACxK,QAAAA,KAAK,EAAEid,OAAO,CAAChkB,CAAC,CAAC+G,KAAK,CAAE;QAAC2P,QAAQ,EAAE1W,CAAC,CAAC0W,QAAAA;OAClD1W,EAAAA,CAAC,CAACyiB,IACG,CAAC,CAAA;AAAA,KACV,CACK,CAAC,CAAA;AACT,GAAA,SAAA;IAAA8D,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAGE,SAAUF,sBAAsBA,CAACU,EAAU,EAAA;AAC/C,EAAA,QAAQA,EAAE;IACR,KAAK5nB,iBAAS,CAAC6C,MAAM,CAAA;IACrB,KAAK7C,iBAAS,CAACyD,GAAG,CAAA;IAClB,KAAKzD,iBAAS,CAAC6nB,MAAM;AACnB,MAAA,OAAO,UAACrf,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;AAAA,OAAA,CAAA;AACjB,IAAA;AACE,MAAA,OAAO,UAACA,CAAC,EAAA;AAAA,QAAA,IAAAsf,WAAA,CAAA;AAAA,QAAA,OAAA,CAAAA,WAAA,GAAKtf,CAAC,IAAA,IAAA,GAAA,KAAA,CAAA,GAADA,CAAC,CAAEuL,QAAQ,EAAE,KAAA,IAAA,GAAA+T,WAAA,GAAI,EAAE,CAAA;AAAA,OAAA,CAAA;AACpC,GAAA;AACH,CAAA;AAIM,SAAUhD,qBAAqBA,CAAC8C,EAAU,EAAA;AAC9C,EAAA,QAAQA,EAAE;IACR,KAAK5nB,iBAAS,CAAC6C,MAAM;AACnB,MAAA,OAAO,CAAC,MAAM,EAAE,UAAC2F,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;AAAA,OAAA,EAAE,UAACA,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;OAAC,CAAA,CAAA;IACrC,KAAKxI,iBAAS,CAAC2D,IAAI;AACjB,MAAA,OAAO,CAAC,MAAM,EAAE,UAAC6E,CAAC,EAAA;QAAA,OAAKA,CAAC,KAAK,MAAM,CAAA;AAAA,OAAA,EAAE,UAACA,CAAC,EAAA;AAAA,QAAA,IAAAuf,YAAA,CAAA;AAAA,QAAA,OAAA,CAAAA,YAAA,GAAKvf,CAAC,IAAA,IAAA,GAAA,KAAA,CAAA,GAADA,CAAC,CAAEuL,QAAQ,EAAE,KAAA,IAAA,GAAAgU,YAAA,GAAI,EAAE,CAAA;OAAC,CAAA,CAAA;IAClE,KAAK/nB,iBAAS,CAACyD,GAAG;AAChB,MAAA,OAAO,CACL,QAAQ,EACR,UAAC+E,CAAC,EAAA;QAAA,OAAMA,CAAC,KAAK,EAAE,GAAGwf,QAAQ,CAACxf,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,KAAKxI,iBAAS,CAACsS,IAAI;AACjB,MAAA,OAAO,CAAC,MAAM,EAAE,UAAC9J,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;AAAA,OAAA,EAAE,UAACA,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;OAAC,CAAA,CAAA;IACrC,KAAKxI,iBAAS,CAAC6nB,MAAM;AACnB,MAAA,OAAO,CAAC,QAAQ,EAAE,UAACrf,CAAC,EAAA;QAAA,OAAKyf,UAAU,CAACzf,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;SAEgB4d,+BAA+BA,GAAA;EAC7C,OAAOQ,wBAAwB,CAAC,UAACvO,KAAK,EAAA;AAAA,IAAA,oBAAKX,yBAAA,CAAAC,aAAA,CAACuQ,iBAAiB,EAAK7P,KAAM,CAAG,CAAA;GAAC,CAAA,CAAA;AAC9E,CAAA;AAEgB,SAAA6P,iBAAiBA,CAAAC,MAAA,EAAA;EAAA,IAAAC,QAAA,GAAAvF,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAC/BvM,UAAU,GAAA6R,MAAA,CAAV7R,UAAU;MACVtS,QAAQ,GAAAmkB,MAAA,CAARnkB,QAAQ;MACR6U,SAAS,GAAAsP,MAAA,CAATtP,SAAS;MACTH,KAAK,GAAAyP,MAAA,CAALzP,KAAK;MACL6N,MAAM,GAAA4B,MAAA,CAAN5B,MAAM,CAAA;AAEN,IAAA,IAAMpjB,CAAC,GAAGmT,UAAU,CAAC1O,KAAK,CAAA;AAC1B6P,IAAAA,eAAS,CAAC,YAAK;AACb,MAAA,IAAItU,CAAC,EAAE;AACLmT,QAAAA,UAAU,CAACE,QAAQ,CAAC,UAACpO,EAAE,EAAA;UAAA,OAAM;YAAEiO,OAAO,EAAElT,CAAC,CAACkT,OAAO;YAAEE,OAAO,EAAEpT,CAAC,CAACkT,OAAAA;WAAS,CAAA;AAAA,SAAC,CAAC,CAAA;AAC1E,OAAA;KACF,EAAE,CAAClT,CAAC,IAAA,IAAA,GAAA,KAAA,CAAA,GAADA,CAAC,CAAEkT,OAAO,CAAC,CAAC,CAAA;IAChB,OAAOlT,CAAC,YAADA,CAAC,CAAEkT,OAAO,gBACfqB,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkB,MAAAA,SAAS,EAAEpN,wBAAI,CAACoN,SAAS,CAAE;AAACH,MAAAA,KAAK,EAAEA,KAAM;AAAC7Q,MAAAA,GAAG,EAAE0e,MAAAA;KACjDviB,EAAAA,QACE,CAAC,gBAEN0T,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EAAA,IAAK,CACN,CAAA;AAAC,GAAA,SAAA;IAAAwQ,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAGE,SAAU9B,aAAaA,CAAA+B,MAAA,EAAA;EAAA,IAAAC,QAAA,GAAAzF,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAC3B0F,UAAU,GAAAF,MAAA,CAAVE,UAAU;MACV1P,SAAS,GAAAwP,MAAA,CAATxP,SAAS;MAAA2P,aAAA,GAAAH,MAAA,CACTlM,MAAM;MAAIsM,UAAU,GAAAD,aAAA,CAAVC,UAAU;MAAEC,YAAY,GAAAF,aAAA,CAAZE,YAAY;MAAEvN,KAAK,GAAAqN,aAAA,CAALrN,KAAK;MAAEnX,QAAQ,GAAAwkB,aAAA,CAARxkB,QAAQ;MAAEgY,YAAY,GAAAwM,aAAA,CAAZxM,YAAY,CAAA;IAIjE,IAAM2M,EAAE,GAAG3M,YAAY,CAAA;AACvB,IAAA,IAAMuJ,SAAS,GAAGoD,EAAE,IAAIA,EAAE,CAACC,OAAO,GAAGD,EAAE,CAAC1X,KAAK,GAAG9L,SAAS,CAAA;AACzD,IAAA,oBACEuS,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EACGuD,IAAAA,EAAAA,KAAK,EACLuN,YAAY,EACZ1kB,QAAQ,EACRuhB,SAAS,iBAAI7N,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkB,MAAAA,SAAS,EAAE0P,UAAAA;AAAW,KAAA,EAAEhD,SAAe,CAAC,EAC1DkD,UACH,CAAG,CAAA;AACH,GAAA,SAAA;IAAAH,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA;;ACh9BG,IAAMO,oBAAoB,GAA2B;AAC1D1N,EAAAA,KAAK,EAAE;AACLsF,IAAAA,eAAe,EAAE,WAAW;IAC5BF,eAAe,eAAE7I,yBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMkB,MAAAA,SAAS,EAAC,cAAA;AAAc,KAAA,EAAE,IAAO,CAAA;GACzD;AACD0G,EAAAA,KAAK,EAAE;AACLqB,IAAAA,cAAc,EAAE,gDAAgD;AAChEC,IAAAA,UAAU,EAAE,WAAW;AACvBG,IAAAA,cAAc,EAAE,MAAA;GACjB;AACDpf,EAAAA,KAAK,EAAE;AACL+f,IAAAA,iBAAiB,EAAE,qBAAqB;AACxCD,IAAAA,aAAa,EAAE,iBAAiB;AAChCE,IAAAA,aAAa,EAAE,OAAA;GAChB;AACDngB,EAAAA,MAAM,EAAE;AACNoX,IAAAA,SAAS,EAAE,sCAAA;GACZ;AACDsD,EAAAA,MAAM,EAAE;AACNtD,IAAAA,SAAS,EAAE,eAAe;AAC1B0P,IAAAA,UAAU,EAAE,yBAAA;GACb;AACD7mB,EAAAA,IAAI,EAAE;AACJsiB,IAAAA,gBAAgB,EAAE,kCAAA;AACnB,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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<S extends SchemaField>(\n options: Partial<SchemaField>,\n v: (name: string) => S,\n): (name: string) => S {\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","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\";\n\nexport interface ControlDataContext {\n groupControl: Control<any>;\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 ? context.groupControl.fields?.[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 control = ctx.groupControl.fields[fieldData.field];\n const result = def ? cb(def, fieldData, control, false) : undefined;\n if (result !== undefined) return result;\n if (fieldData.collection) {\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 fields: fieldData.children,\n groupControl: c,\n schemaInterface: ctx.schemaInterface,\n },\n cb,\n );\n if (cfResult !== undefined) return cfResult;\n }\n }\n }\n }\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","import {\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 } from \"./util\";\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","import { Control, useControl, useControlEffect } 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","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, useMemo } from \"react\";\nimport {\n Control,\n useComputed,\n useControl,\n useControlEffect,\n} from \"@react-typed-forms/core\";\n\nimport {\n ControlDataContext,\n defaultValueForField,\n findField,\n getDisplayOnlyOptions,\n getTypeField,\n isControlReadonly,\n useUpdatedRef,\n} from \"./util\";\nimport jsonata from \"jsonata\";\nimport { useCalculatedControl } from \"./internal\";\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: Control<any>,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField ? data.fields[refField.field] : undefined;\n return useCalculatedControl(() => otherField?.value);\n}\n\nfunction useDataMatchExpression(\n fvExpr: DataMatchExpression,\n fields: SchemaField[],\n data: Control<any>,\n) {\n const refField = findField(fields, fvExpr.field);\n const otherField = refField ? data.fields[refField.field] : 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.groupControl,\n );\n case ExpressionType.Data:\n return useDataExpression(\n expr as DataExpression,\n context.fields,\n context.groupControl,\n );\n case ExpressionType.DataMatch:\n return useDataMatchExpression(\n expr as DataMatchExpression,\n context.fields,\n context.groupControl,\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 context.groupControl.fields[field.field].value,\n )\n );\n}\n\nexport function useJsonataExpression(\n jExpr: string,\n data: Control<any>,\n): Control<any> {\n const compiledExpr = useMemo(() => {\n try {\n return jsonata(jExpr);\n } catch (e) {\n console.error(e);\n return jsonata(\"\");\n }\n }, [jExpr]);\n const control = useControl();\n useControlEffect(\n () => data.value,\n async (v) => {\n control.value = await compiledExpr.evaluate(v);\n },\n true,\n );\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.groupControl);\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 newControl,\n removeElement,\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 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 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 renderOptions: GroupRenderOptions;\n childCount: number;\n renderChild: (child: number) => ReactNode;\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 childCount: number;\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}\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 childCount: number;\n renderChild: ChildRenderer;\n allowedOptions?: Control<any[] | undefined>;\n elementRenderer?: (elemProps: Control<any>) => ReactNode;\n}\nexport type CreateDataProps = (\n controlProps: DataControlProps,\n) => DataRendererProps;\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: parentControl }: ControlRenderProps) => {\n const stopTracking = useComponentTracking();\n try {\n const { definition: c, options, fields, schemaField } = r.current;\n const dataContext: ControlDataContext = {\n groupControl: parentControl,\n fields,\n schemaInterface,\n };\n const readonlyControl = useIsReadonly(dataContext);\n const disabledControl = useIsDisabled(dataContext);\n const visibleControl = useIsVisible(dataContext);\n const displayControl = useDynamicDisplay(dataContext);\n const customStyle = useCustomStyle(dataContext).value;\n const layoutStyle = useLayoutStyle(dataContext).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(dataContext);\n const defaultValueControl = useDefaultValue(dataContext);\n const [control, childContext] = getControlData(\n schemaField,\n dataContext,\n );\n useControlEffect(\n () => [\n visibility.value,\n defaultValueControl.value,\n control,\n parentControl.isNull,\n isDataControlDefinition(definition) && definition.dontClearHidden,\n ],\n ([vc, dv, cd, pn, dontClear]) => {\n if (pn) {\n parentControl.value = {};\n }\n if (vc && cd && vc.visible === vc.showing) {\n if (!vc.visible) {\n if (options.clearHidden && !dontClear) cd.value = undefined;\n } else if (cd.value == null) {\n cd.value = dv;\n }\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(control!, !!myOptions.hidden, dataContext);\n const childRenderers: FC<ControlRenderProps>[] =\n c.children?.map((cd) =>\n useControlRenderer(cd, childContext.fields, renderer, {\n ...options,\n ...myOptions,\n }),\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 const adornments =\n definition.adornments?.map((x) =>\n renderer.renderAdornment({ adornment: x }),\n ) ?? [];\n const labelAndChildren = renderControlLayout({\n definition: c,\n renderer,\n childCount: childRenderers.length,\n renderChild: (k, i, props) => {\n const RenderChild = childRenderers[i];\n return <RenderChild key={k} {...props} />;\n },\n createDataProps: dataProps,\n formOptions: myOptions,\n dataContext,\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, ControlDataContext] {\n const childControl: Control<any> | undefined = schemaField\n ? parentContext.groupControl.fields?.[schemaField.field] ?? newControl({})\n : undefined;\n return [\n childControl,\n schemaField && isCompoundField(schemaField)\n ? {\n groupControl: childControl!,\n fields: schemaField.children,\n schemaInterface: parentContext.schemaInterface,\n }\n : parentContext,\n ];\n}\n\nfunction groupProps(\n renderOptions: GroupRenderOptions = { type: \"Standard\" },\n childCount: number,\n renderChild: ChildRenderer,\n control: Control<any>,\n className: string | null | undefined,\n style: React.CSSProperties | undefined,\n): GroupRendererProps {\n return {\n childCount,\n renderChild: (i) => renderChild(i, i, { control }),\n renderOptions,\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 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: (elemProps: Control<any>) => 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(elems[i]),\n className: cc(className),\n style,\n };\n}\n\nexport type ChildRenderer = (\n k: Key,\n childIndex: number,\n props: ControlRenderProps,\n) => ReactNode;\n\nexport interface RenderControlProps {\n definition: ControlDefinition;\n renderer: FormRenderer;\n childCount: number;\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 childCount,\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(\n c.groupOptions,\n childCount,\n childRenderer,\n dataContext.groupControl,\n c.styleClass,\n style,\n ),\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, elementControl?: Control<any>) {\n if (!schemaField) return { children: \"No schema field for: \" + c.field };\n const props = dataProps({\n definition: c,\n field: schemaField,\n dataContext,\n control: elementControl ?? childControl!,\n options: dataOptions,\n style,\n childCount,\n allowedOptions,\n renderChild: childRenderer,\n elementRenderer:\n elementControl == null && schemaField.collection\n ? (element) =>\n renderLayoutParts(renderData(c, element), 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 function compoundRenderer(i: number, control: Control<any>): ReactNode {\n const { className, style, children } = renderer.renderLayout({\n processLayout: renderer.renderGroup({\n renderOptions: { type: \"Standard\", hideTitle: true },\n childCount,\n renderChild: (ci) => childRenderer(ci, ci, { control }),\n }),\n });\n return (\n <div key={control.uniqueId} style={style} className={cc(className)}>\n {children}\n </div>\n );\n }\n function scalarRenderer(\n dataProps: DataRendererProps,\n ): (i: number, control: Control<any>) => ReactNode {\n return (i, control) => {\n return (\n <Fragment key={control.uniqueId}>\n {renderer.renderData({ ...dataProps, control })({}).children}\n </Fragment>\n );\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","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 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 { childCount, renderChild, renderOptions } = 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 {Array.from({ length: childCount }, (_, x) => renderChild(x))}\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 renderOptions: { type: \"Standard\", hideTitle: true },\n renderChild: (i) => props.renderChild(i, i, { control: props.control }),\n childCount: props.childCount,\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","applyDefaultValues","defaultValueForFields","applyValue","filter","isCompoundField","length","out","forEach","applyDefaultForField","defaultValueForField","parent","notElement","required","treeChildren","fromEntries","sf","undefined","isRequired","childValue","notNullable","elementValueForField","findScalarField","findField","findCompoundField","find","isScalarField","isDataControl","c","isGroupControl","fieldHasTag","tag","_field$tags","Boolean","tags","includes","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","existing","changedCompounds","_cf$children","ex","cf","concat","useUpdatedRef","a","r","useRef","current","isControlReadonly","readonly","getDisplayOnlyOptions","d","getTypeField","context","_context$groupControl","typeSchemaField","isTypeField","groupControl","visitControlDataArray","cb","_iterator2","_step2","visitControlData","definition","ctx","processData","fieldName","fieldData","result","_iterator3","_control$elements","elements","_step3","elemResult","cfResult","schemaInterface","cleanDataForSchema","typeField","typeValue","cleanableFields","_x$onlyForTypes$lengt","_x$onlyForTypes","onlyForTypes","_x$onlyForTypes2","canBeNull","childFields","Array","isArray","cv","getAllReferencedClasses","_c$children","childClasses","tc","clsx","styleClass","layoutClass","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","useCalculatedControl","calculate","useControl","useControlEffect","cc","useEvalVisibilityHook","useEvalExpressionHook","schemaField","useEvalDynamicHook","useCallback","_dynamicVisibility","_r$current","useComputed","matchesType","hideDisplayOnly","useEvalReadonlyHook","useEvalStyleHook","property","dynamicStyle","useEvalAllowedOptionsHook","dynamicAllowed","AllowedOptions","useEvalDisabledHook","useEvalDisplayHook","dynamicDisplay","useEvalDefaultValueHook","dynamicValue","_dynamicValue","_r$current2","calcDefault","_ref","dcv","useDataExpression","fvExpr","refField","otherField","useDataMatchExpression","fv","defaultEvalHooks","useJsonataExpression","defaultUseEvalExpressionHook","makeEvalExpressionHook","f","_definition$dynamic","dynamic","types","displayOptions","emptyText","isEmptyValue","jExpr","compiledExpr","jsonata","e","console","error","Promise","resolve","evaluate","then","_compiledExpr$evaluat","reject","useValidationHook","_definition$validator","_definition$validator2","validatorTypes","validators","hidden","groupContext","_dd$validators","dd","useValueChangeEffect","setError","useValidator","i","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","parentControl","stopTracking","useComponentTracking","_c$children$map","_definition$adornment","_definition$adornment2","dataContext","readonlyControl","disabledControl","visibleControl","displayControl","customStyle","layoutStyle","visible","visibility","showing","setValue","allowedOptions","defaultValueControl","_getControlData","getControlData","childContext","isNull","dontClearHidden","_ref2","vc","cd","pn","dontClear","clearHidden","myOptions","_visibility$fields","disabled","childRenderers","useEffect","React","createElement","Fragment","adornments","renderAdornment","adornment","labelAndChildren","renderControlLayout","childCount","renderChild","k","props","RenderChild","key","createDataProps","formOptions","style","renderedControl","renderLayout","className","renderVisibility","parentContext","_parentContext$groupC","_parentContext$groupC2","childControl","newControl","groupProps","_ref3","_field$options$length","_field$options","_allowedOptions$value","_definition$renderOpt","elementRenderer","_objectWithoutPropertiesLoose","_excluded","fieldOptions","allowed","id","uniqueId","toArrayProps","defaultArrayProps","arrayControl","renderElement","_arrayControl$element","noun","elems","elementCount","addAction","addElement","elementKey","removeAction","removeElement","_ref4","childRenderer","dataOptions","renderData","_c$groupOptions2","_c$groupOptions","processLayout","renderGroup","label","hide","_c$title","renderAction","_c$displayData","renderDisplay","elementControl","element","renderLayoutParts","labelText","controlTitle","Control","forId","errorControl","appendMarkup","markup","layout","wrapMarkup","wrap","layoutKeyForPlacement","pos","ControlEnd","ControlStart","LabelStart","LabelEnd","appendMarkupAt","wrapMarkupAt","_props$processLayout","_ref5","sort","b","priority","apply","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","l","_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","_ref6$columns","columns","gridTemplateColumns","flexStyles","gap","flexDirection","direction","_ref7","gcn","cp","createDefaultDisplayRenderer","DefaultDisplay","_ref8","_effect","_useComponentTracking","_display$value","Icon","iconClass","textClassName","htmlClassName","dangerouslySetInnerHTML","__html","DefaultBoolOptions","name","createDefaultDataRenderer","_options$selectOption","selectRenderer","createSelectRenderer","selectOptions","_optionRenderer$boole","optionRenderer","booleanOptions","inputClass","displayOnlyClass","createDataRenderer","renderers","fieldType","p","Any","DefaultDisplayOnly","isBool","Dropdown","Checkbox","Fcheckbox","ControlInput","readOnly","convert","createInputConversion","_ref9","_effect2","_ref10","_ref11","_effect3","_excluded2","_formControlProps","formControlProps","errorText","onChange","inputProps","_excluded3","target","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;AA2CWC,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,qCASX;AATD,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;AACnC,CAAC,EATWA,2BAAmB,KAAnBA,2BAAmB,GAS9B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxYM,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,CAC/BpB,OAA6B,EAC7BqB,CAAsB,EAAA;AAEtB,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;;ACtHgB,SAAAG,kBAAkBA,CAChChB,CAAmC,EACnCU,MAAqB,EAAA;AAErB,EAAA,IAAI,CAACV,CAAC,EAAE,OAAOiB,qBAAqB,CAACP,MAAM,CAAC,CAAA;AAC5C,EAAA,IAAMQ,UAAU,GAAGR,MAAM,CAACS,MAAM,CAC9B,UAACzD,CAAC,EAAA;IAAA,OAAK0D,eAAe,CAAC1D,CAAC,CAAC,IAAI,EAAEA,CAAC,CAACkD,KAAK,IAAIZ,CAAC,CAAC,CAAA;GAC7C,CAAA,CAAA;AACD,EAAA,IAAI,CAACkB,UAAU,CAACG,MAAM,EAAE,OAAOrB,CAAC,CAAA;AAChC,EAAA,IAAMsB,GAAG,GAAA7B,QAAA,CAAA,EAAA,EAAQO,CAAC,CAAE,CAAA;AACpBkB,EAAAA,UAAU,CAACK,OAAO,CAAC,UAAC7D,CAAC,EAAI;AACvB4D,IAAAA,GAAG,CAAC5D,CAAC,CAACkD,KAAK,CAAC,GACVlD,CAAC,CAACkD,KAAK,IAAIZ,CAAC,GACRwB,oBAAoB,CAACxB,CAAC,CAACtC,CAAC,CAACkD,KAAK,CAAC,EAAElD,CAAC,EAAEgD,MAAM,CAAC,GAC3Ce,oBAAoB,CAAC/D,CAAC,CAAC,CAAA;AAC/B,GAAC,CAAC,CAAA;AACF,EAAA,OAAO4D,GAAG,CAAA;AACZ,CAAA;AAEM,SAAUE,oBAAoBA,CAClCxB,CAAM,EACNY,KAAkB,EAClBc,MAAqB,EACrBC,UAAoB,EAAA;AAEpB,EAAA,IAAIf,KAAK,CAACE,UAAU,IAAI,CAACa,UAAU,EAAE;IACnC,OAAO,CAAE3B,CAAW,IAAA,IAAA,GAAXA,CAAW,GAAI,EAAE,EAAEX,GAAG,CAAC,UAAC3B,CAAC,EAAA;MAAA,OAChC8D,oBAAoB,CAAC9D,CAAC,EAAEkD,KAAK,EAAEc,MAAM,EAAE,IAAI,CAAC,CAAA;KAC7C,CAAA,CAAA;AACF,GAAA;AACD,EAAA,IAAIN,eAAe,CAACR,KAAK,CAAC,EAAE;IAC1B,IAAI,CAACZ,CAAC,IAAI,CAACY,KAAK,CAACgB,QAAQ,EAAE,OAAO5B,CAAC,CAAA;AACnC,IAAA,OAAOgB,kBAAkB,CAAChB,CAAC,EAAEY,KAAK,CAACiB,YAAY,GAAGH,MAAM,GAAGd,KAAK,CAACC,QAAQ,CAAC,CAAA;AAC3E,GAAA;EACD,OAAOY,oBAAoB,CAACb,KAAK,CAAC,CAAA;AACpC,CAAA;AAEM,SAAUK,qBAAqBA,CAACP,MAAqB,EAAA;EACzD,OAAOvB,MAAM,CAAC2C,WAAW,CACvBpB,MAAM,CAACrB,GAAG,CAAC,UAAC3B,CAAC,EAAA;IAAA,OAAK,CAACA,CAAC,CAACkD,KAAK,EAAEa,oBAAoB,CAAC/D,CAAC,CAAC,CAAC,CAAA;AAAA,GAAA,CAAC,CACtD,CAAA;AACH,CAAA;AAEgB,SAAA+D,oBAAoBA,CAClCM,EAAe,EACfH,QAAyB,EAAA;EAEzB,IAAIG,EAAE,CAAC1D,YAAY,KAAK2D,SAAS,EAAE,OAAOD,EAAE,CAAC1D,YAAY,CAAA;EACzD,IAAM4D,UAAU,GAAG,CAAC,EAAEL,QAAQ,IAAIG,EAAE,CAACH,QAAQ,CAAC,CAAA;AAC9C,EAAA,IAAIR,eAAe,CAACW,EAAE,CAAC,EAAE;AACvB,IAAA,IAAIE,UAAU,EAAE;AACd,MAAA,IAAMC,UAAU,GAAGjB,qBAAqB,CAACc,EAAE,CAAClB,QAAQ,CAAC,CAAA;MACrD,OAAOkB,EAAE,CAACjB,UAAU,GAAG,CAACoB,UAAU,CAAC,GAAGA,UAAU,CAAA;AACjD,KAAA;AACD,IAAA,OAAOH,EAAE,CAACI,WAAW,GAAIJ,EAAE,CAACjB,UAAU,GAAG,EAAE,GAAG,EAAE,GAAIkB,SAAS,CAAA;AAC9D,GAAA;EACD,IAAID,EAAE,CAACjB,UAAU,EAAE;AACjB,IAAA,OAAO,EAAE,CAAA;AACV,GAAA;AACD,EAAA,OAAOkB,SAAS,CAAA;AAClB,CAAA;AAEM,SAAUI,oBAAoBA,CAACL,EAAe,EAAA;AAClD,EAAA,IAAIX,eAAe,CAACW,EAAE,CAAC,EAAE;AACvB,IAAA,OAAOd,qBAAqB,CAACc,EAAE,CAAClB,QAAQ,CAAC,CAAA;AAC1C,GAAA;EACD,OAAOkB,EAAE,CAAC1D,YAAY,CAAA;AACxB,CAAA;AAEgB,SAAAgE,eAAeA,CAC7B3B,MAAqB,EACrBE,KAAa,EAAA;AAEb,EAAA,OAAO0B,SAAS,CAAC5B,MAAM,EAAEE,KAAK,CAAC,CAAA;AACjC,CAAA;AAEgB,SAAA2B,iBAAiBA,CAC/B7B,MAAqB,EACrBE,KAAa,EAAA;AAEb,EAAA,OAAO0B,SAAS,CAAC5B,MAAM,EAAEE,KAAK,CAA8B,CAAA;AAC9D,CAAA;AAEgB,SAAA0B,SAASA,CACvB5B,MAAqB,EACrBE,KAAa,EAAA;AAEb,EAAA,OAAOF,MAAM,CAAC8B,IAAI,CAAC,UAAC9E,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,CAACkD,KAAK,KAAKA,KAAK,CAAA;GAAC,CAAA,CAAA;AAC9C,CAAA;AAEM,SAAU6B,aAAaA,CAACV,EAAe,EAAA;AAC3C,EAAA,OAAO,CAACX,eAAe,CAACW,EAAE,CAAC,CAAA;AAC7B,CAAA;AAEM,SAAUX,eAAeA,CAACW,EAAe,EAAA;AAC7C,EAAA,OAAOA,EAAE,CAACpE,IAAI,KAAKd,iBAAS,CAACkE,QAAQ,CAAA;AACvC,CAAA;AAEM,SAAU2B,aAAaA,CAC3BC,CAAoB,EAAA;AAEpB,EAAA,OAAOA,CAAC,CAAChF,IAAI,KAAKb,6BAAqB,CAACc,IAAI,CAAA;AAC9C,CAAA;AAEM,SAAUgF,cAAcA,CAC5BD,CAAoB,EAAA;AAEpB,EAAA,OAAOA,CAAC,CAAChF,IAAI,KAAKb,6BAAqB,CAACgB,KAAK,CAAA;AAC/C,CAAA;AAEgB,SAAA+E,WAAWA,CAACjC,KAAkB,EAAEkC,GAAW,EAAA;AAAA,EAAA,IAAAC,WAAA,CAAA;AACzD,EAAA,OAAOC,OAAO,CAAA,CAAAD,WAAA,GAACnC,KAAK,CAACqC,IAAI,KAAVF,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAYG,QAAQ,CAACJ,GAAG,CAAC,CAAC,CAAA;AAC3C,CAAA;AAEM,SAAUK,gBAAgBA,CAACvC,KAAkB,EAAA;AAAA,EAAA,IAAAwC,kBAAA,CAAA;EACjD,OAAAA,CAAAA,kBAAA,GAAOxC,KAAK,CAACrB,WAAW,YAAA6D,kBAAA,GAAIxC,KAAK,CAACA,KAAK,CAAA;AACzC,CAAA;AAEM,SAAUyC,UAAUA,CAACC,CAAgD,EAAA;EAAA,IAAAC,iBAAA,EAAAC,UAAA,CAAA;AACzE,EAAA,OAAO,EAAAD,iBAAA,GAAA,CAAAC,UAAA,GAACF,CAAC,CAAC3E,OAAO,KAAT6E,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAA,CAAWnC,MAAM,KAAA,IAAA,GAAAkC,iBAAA,GAAI,CAAC,IAAI,CAAC,CAAA;AACrC,CAAA;AAEM,SAAUE,sBAAsBA,CAAC1B,EAAe,EAAA;AACpD,EAAA,IAAIX,eAAe,CAACW,EAAE,CAAC,EAAE;IACvB,OAAO;MACLpE,IAAI,EAAEb,6BAAqB,CAACc,IAAI;MAChC8F,KAAK,EAAE3B,EAAE,CAACxC,WAAW;MACrBqB,KAAK,EAAEmB,EAAE,CAACnB,KAAK;MACfgB,QAAQ,EAAEG,EAAE,CAACH,QAAQ;AACrBf,MAAAA,QAAQ,EAAEkB,EAAE,CAAClB,QAAQ,CAACxB,GAAG,CAACoE,sBAAsB,CAAA;KACjD,CAAA;AACF,GAAA,MAAM,IAAIhB,aAAa,CAACV,EAAE,CAAC,EAAE;AAAA,IAAA,IAAA4B,QAAA,CAAA;AAC5B,IAAA,IAAMC,UAAU,GAAA,CAAAD,QAAA,GAAG5B,EAAE,CAACkB,IAAI,KAAA,IAAA,GAAA,KAAA,CAAA,GAAPU,QAAA,CAAST,QAAQ,CAAC,aAAa,CAAC,CAAA;IACnD,OAAO;MACLvF,IAAI,EAAEb,6BAAqB,CAACc,IAAI;MAChC8F,KAAK,EAAE3B,EAAE,CAACxC,WAAW;MACrBqB,KAAK,EAAEmB,EAAE,CAACnB,KAAK;MACfgB,QAAQ,EAAEG,EAAE,CAACH,QAAQ;AACrBiC,MAAAA,aAAa,EAAE;QACblG,IAAI,EAAEiG,UAAU,GAAGzG,sBAAc,CAAC2G,UAAU,GAAG3G,sBAAc,CAAC4G,QAAAA;AAC/D,OAAA;KACF,CAAA;AACF,GAAA;AACD,EAAA,MAAM,sBAAsB,CAAA;AAC9B,CAAA;AACA,SAASC,qBAAqBA,CAC5BpD,KAAa,EACbqD,OAA0B,EAAA;AAE1B,EAAA,IAAIvB,aAAa,CAACuB,OAAO,CAAC,IAAIrD,KAAK,KAAKqD,OAAO,CAACrD,KAAK,EAAE,OAAOqD,OAAO,CAAA;AACrE,EAAA,IAAIrB,cAAc,CAACqB,OAAO,CAAC,EAAE;AAAA,IAAA,IAAAC,iBAAA,CAAA;AAC3B,IAAA,IAAID,OAAO,CAACxD,aAAa,EACvB,OAAOG,KAAK,KAAKqD,OAAO,CAACxD,aAAa,GAAGwD,OAAO,GAAGjC,SAAS,CAAA;AAC9D,IAAA,OAAOmC,4BAA4B,CAACvD,KAAK,EAAA,CAAAsD,iBAAA,GAAED,OAAO,CAACpD,QAAQ,KAAA,IAAA,GAAAqD,iBAAA,GAAI,EAAE,CAAC,CAAA;AACnE,GAAA;AACD,EAAA,OAAOlC,SAAS,CAAA;AAClB,CAAA;AAEA,SAASmC,4BAA4BA,CACnCvD,KAAa,EACbwD,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,IAAf7B,CAAC,GAAA4B,KAAA,CAAAE,KAAA,CAAA;AACV,IAAA,IAAMC,GAAG,GAAGV,qBAAqB,CAACpD,KAAK,EAAE+B,CAAC,CAAC,CAAA;IAC3C,IAAI+B,GAAG,EAAE,OAAOA,GAAG,CAAA;AACpB,GAAA;AACD,EAAA,OAAO1C,SAAS,CAAA;AAClB,CAAA;AAEgB,SAAA2C,kBAAkBA,CAChCjE,MAAqB,EACrB0D,QAA6B,EAAA;EAE7B,IAAMQ,OAAO,GAGPlE,MAAM,CAACmE,OAAO,CAAC,UAACnH,CAAC,EAAI;IACzB,IAAImF,WAAW,CAACnF,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAA;IAC3C,IAAMoH,QAAQ,GAAGX,4BAA4B,CAACzG,CAAC,CAACkD,KAAK,EAAEwD,QAAQ,CAAC,CAAA;IAChE,IAAI,CAACU,QAAQ,IAAI1D,eAAe,CAAC1D,CAAC,CAAC,EAAE,OAAO;AAAEkD,MAAAA,KAAK,EAAElD,CAAC;AAAEoH,MAAAA,QAAQ,EAARA,QAAAA;KAAU,CAAA;AAClE,IAAA,OAAO,EAAE,CAAA;AACX,GAAC,CAAC,CAAA;EACF,IAAMC,gBAAgB,GAAGX,QAAQ,CAAC/E,GAAG,CAAC,UAAC3B,CAAC,EAAI;AAAA,IAAA,IAAAsH,YAAA,CAAA;AAC1C,IAAA,IAAMC,EAAE,GAAGL,OAAO,CAACpC,IAAI,CAAC,UAACG,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC,CAACmC,QAAQ,KAAKpH,CAAC,CAAA;KAAC,CAAA,CAAA;AAChD,IAAA,IAAI,CAACuH,EAAE,EAAE,OAAOvH,CAAC,CAAA;IACjB,IAAMwH,EAAE,GAAGxH,CAA8B,CAAA;IACzC,OAAA+B,QAAA,KACKyF,EAAE,EAAA;AACLrE,MAAAA,QAAQ,EAAE8D,kBAAkB,CACzBM,EAAE,CAACrE,KAAuB,CAACC,QAAQ,EAAAmE,CAAAA,YAAA,GACpCE,EAAE,CAACrE,QAAQ,KAAAmE,IAAAA,GAAAA,YAAA,GAAI,EAAE,CAAA;AAClB,KAAA,CAAA,CAAA;AAEL,GAAC,CAAC,CAAA;EACF,OAAOD,gBAAgB,CAACI,MAAM,CAC5BP,OAAO,CACJzD,MAAM,CAAC,UAACzD,CAAC,EAAA;IAAA,OAAK,CAACA,CAAC,CAACoH,QAAQ,CAAA;AAAA,GAAA,CAAC,CAC1BzF,GAAG,CAAC,UAAC3B,CAAC,EAAA;AAAA,IAAA,OAAK+F,sBAAsB,CAAC/F,CAAC,CAACkD,KAAK,CAAC,CAAA;AAAA,GAAA,CAAC,CAC/C,CAAA;AACH,CAAA;AAEM,SAAUwE,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,CAAC9C,CAAoB,EAAA;EACpD,OAAOD,aAAa,CAACC,CAAC,CAAC,IAAI,CAAC,CAACA,CAAC,CAAC+C,QAAQ,CAAA;AACzC,CAAA;AAEM,SAAUC,qBAAqBA,CACnCC,CAAoB,EAAA;EAEpB,OAAOnI,uBAAuB,CAACmI,CAAC,CAAC,IAC/BA,CAAC,CAAC/B,aAAa,IACf9E,qBAAqB,CAAC6G,CAAC,CAAC/B,aAAa,CAAC,GACpC+B,CAAC,CAAC/B,aAAa,GACf7B,SAAS,CAAA;AACf,CAAA;AAEM,SAAU6D,YAAYA,CAC1BC,OAA2B,EAAA;AAAA,EAAA,IAAAC,qBAAA,CAAA;EAE3B,IAAMC,eAAe,GAAGF,OAAO,CAACpF,MAAM,CAAC8B,IAAI,CAAC,UAAC9E,CAAC,EAAA;IAAA,OAAKA,CAAC,CAACuI,WAAW,CAAA;GAAC,CAAA,CAAA;AACjE,EAAA,OAAOD,eAAe,GAAAD,CAAAA,qBAAA,GAClBD,OAAO,CAACI,YAAY,CAACxF,MAAM,KAAA,IAAA,GAAA,KAAA,CAAA,GAA3BqF,qBAAA,CAA8BC,eAAe,CAACpF,KAAK,CAAC,GACpDoB,SAAS,CAAA;AACf,CAAA;SAEgBmE,qBAAqBA,CACnC/B,QAAgD,EAChD0B,OAA2B,EAC3BM,EAKkB,EAAA;AAElB,EAAA,IAAI,CAAChC,QAAQ,EAAE,OAAOpC,SAAS,CAAA;AAC/B,EAAA,KAAA,IAAAqE,UAAA,GAAA/B,+BAAA,CAAgBF,QAAQ,CAAA,EAAAkC,MAAA,EAAA,CAAA,CAAAA,MAAA,GAAAD,UAAA,EAAA,EAAA7B,IAAA,GAAE;AAAA,IAAA,IAAf7B,CAAC,GAAA2D,MAAA,CAAA7B,KAAA,CAAA;IACV,IAAMa,CAAC,GAAGiB,gBAAgB,CAAC5D,CAAC,EAAEmD,OAAO,EAAEM,EAAE,CAAC,CAAA;AAC1C,IAAA,IAAId,CAAC,KAAKtD,SAAS,EAAE,OAAOsD,CAAC,CAAA;AAC9B,GAAA;AACD,EAAA,OAAOtD,SAAS,CAAA;AAClB,CAAA;SAEgBuE,gBAAgBA,CAC9BC,UAA6B,EAC7BC,GAAuB,EACvBL,EAKkB,EAAA;EAElB,OAAOjI,sBAAsB,CAC3BqI,UAAU,EACV;IACEjI,IAAI,EAAA,SAAAA,IAACW,CAAAA,GAA0B,EAAA;MAC7B,OAAOwH,WAAW,CAACxH,GAAG,EAAEA,GAAG,CAAC0B,KAAK,EAAE1B,GAAG,CAAC2B,QAAQ,CAAC,CAAA;KACjD;IACDpC,KAAK,EAAA,SAAAA,KAACmH,CAAAA,CAA4B,EAAA;MAChC,OAAOc,WAAW,CAAC1E,SAAS,EAAE4D,CAAC,CAACnF,aAAa,EAAEmF,CAAC,CAAC/E,QAAQ,CAAC,CAAA;KAC3D;IACDvC,MAAM,EAAE,SAAAA,MAAA,GAAA;AAAA,MAAA,OAAM0D,SAAS,CAAA;AAAA,KAAA;IACvBxD,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,MAAA,OAAMwD,SAAS,CAAA;AAAA,KAAA;AACzB,GAAA,EACD,YAAA;AAAA,IAAA,OAAMA,SAAS,CAAA;GAChB,CAAA,CAAA;AAED,EAAA,SAAS0E,WAAWA,CAClBxH,GAAsC,EACtCyH,SAAoC,EACpC9F,QAAgD,EAAA;AAEhD,IAAA,IAAM+F,SAAS,GAAGD,SAAS,GAAGrE,SAAS,CAACmE,GAAG,CAAC/F,MAAM,EAAEiG,SAAS,CAAC,GAAG3E,SAAS,CAAA;AAC1E,IAAA,IAAI,CAAC4E,SAAS,EACZ,OAAO,CAACD,SAAS,GAAGR,qBAAqB,CAACtF,QAAQ,EAAE4F,GAAG,EAAEL,EAAE,CAAC,GAAGpE,SAAS,CAAA;IAE1E,IAAMiC,OAAO,GAAGwC,GAAG,CAACP,YAAY,CAACxF,MAAM,CAACkG,SAAS,CAAChG,KAAK,CAAC,CAAA;AACxD,IAAA,IAAMiG,MAAM,GAAG3H,GAAG,GAAGkH,EAAE,CAAClH,GAAG,EAAE0H,SAAS,EAAE3C,OAAO,EAAE,KAAK,CAAC,GAAGjC,SAAS,CAAA;AACnE,IAAA,IAAI6E,MAAM,KAAK7E,SAAS,EAAE,OAAO6E,MAAM,CAAA;IACvC,IAAID,SAAS,CAAC9F,UAAU,EAAE;MACxB,KAAAgG,IAAAA,UAAA,GAAAxC,+BAAA,CAAA,CAAAyC,iBAAA,GAAgB9C,OAAO,CAAC+C,QAAQ,KAAA,IAAA,GAAAD,iBAAA,GAAI,EAAE,GAAAE,MAAA,EAAA,CAAA,CAAAA,MAAA,GAAAH,UAAA,EAAAtC,EAAAA,IAAA,GAAE;AAAA,QAAA,IAAAuC,iBAAA,CAAA;AAAA,QAAA,IAA7BpE,CAAC,GAAAsE,MAAA,CAAAxC,KAAA,CAAA;AACV,QAAA,IAAMyC,UAAU,GAAGhI,GAAG,GAAGkH,EAAE,CAAClH,GAAG,EAAE0H,SAAS,EAAEjE,CAAC,EAAE,IAAI,CAAC,GAAGX,SAAS,CAAA;AAChE,QAAA,IAAIkF,UAAU,KAAKlF,SAAS,EAAE,OAAOkF,UAAU,CAAA;AAC/C,QAAA,IAAI9F,eAAe,CAACwF,SAAS,CAAC,EAAE;AAC9B,UAAA,IAAMO,QAAQ,GAAGhB,qBAAqB,CACpCtF,QAAQ,EACR;YACEH,MAAM,EAAEkG,SAAS,CAAC/F,QAAQ;AAC1BqF,YAAAA,YAAY,EAAEvD,CAAC;YACfyE,eAAe,EAAEX,GAAG,CAACW,eAAAA;WACtB,EACDhB,EAAE,CACH,CAAA;AACD,UAAA,IAAIe,QAAQ,KAAKnF,SAAS,EAAE,OAAOmF,QAAQ,CAAA;AAC5C,SAAA;AACF,OAAA;AACF,KAAA;AACH,GAAA;AACF,CAAA;AAEgB,SAAAE,kBAAkBA,CAChCrH,CAAmC,EACnCU,MAAqB,EAAA;AAErB,EAAA,IAAI,CAACV,CAAC,EAAE,OAAOA,CAAC,CAAA;AAChB,EAAA,IAAMsH,SAAS,GAAG5G,MAAM,CAAC8B,IAAI,CAAC,UAAC9E,CAAC,EAAA;IAAA,OAAKA,CAAC,CAACuI,WAAW,CAAA;GAAC,CAAA,CAAA;AACnD,EAAA,IAAI,CAACqB,SAAS,EAAE,OAAOtH,CAAC,CAAA;AACxB,EAAA,IAAMuH,SAAS,GAAGvH,CAAC,CAACsH,SAAS,CAAC1G,KAAK,CAAC,CAAA;AACpC,EAAA,IAAM4G,eAAe,GAAG9G,MAAM,CAACS,MAAM,CACnC,UAACzD,CAAC,EAAA;IAAA,IAAA+J,qBAAA,EAAAC,eAAA,CAAA;IAAA,OAAKtG,eAAe,CAAC1D,CAAC,CAAC,IAAI,CAAA+J,CAAAA,qBAAA,GAAAC,CAAAA,eAAA,GAAChK,CAAC,CAACiK,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAdD,eAAA,CAAgBrG,MAAM,YAAAoG,qBAAA,GAAI,CAAC,IAAI,CAAC,CAAA;GAC/D,CAAA,CAAA;AACD,EAAA,IAAI,CAACD,eAAe,CAACnG,MAAM,EAAE,OAAOrB,CAAC,CAAA;AACrC,EAAA,IAAMsB,GAAG,GAAA7B,QAAA,CAAA,EAAA,EAAQO,CAAC,CAAE,CAAA;AACpBwH,EAAAA,eAAe,CAACjG,OAAO,CAAC,UAAC7D,CAAC,EAAI;AAAA,IAAA,IAAAkK,gBAAA,CAAA;AAC5B,IAAA,IAAM1F,UAAU,GAAGlC,CAAC,CAACtC,CAAC,CAACkD,KAAK,CAAC,CAAA;IAC7B,IACE,CAAA,CAAAgH,gBAAA,GAAAlK,CAAC,CAACiK,YAAY,KAAdC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAA,CAAgB1E,QAAQ,CAACqE,SAAS,CAAC,MAAK,KAAK,IAC5C,CAAC7J,CAAC,CAACyE,WAAW,IAAI0F,SAAS,EAAG,EAC/B;AACA,MAAA,OAAOvG,GAAG,CAAC5D,CAAC,CAACkD,KAAK,CAAC,CAAA;AACnB,MAAA,OAAA;AACD,KAAA;AACD,IAAA,IAAIQ,eAAe,CAAC1D,CAAC,CAAC,EAAE;MACtB,IAAMoK,WAAW,GAAGpK,CAAC,CAACmE,YAAY,GAAGnB,MAAM,GAAGhD,CAAC,CAACmD,QAAQ,CAAA;MACxD,IAAInD,CAAC,CAACoD,UAAU,EAAE;AAChB,QAAA,IAAIiH,KAAK,CAACC,OAAO,CAAC9F,UAAU,CAAC,EAAE;UAC7BZ,GAAG,CAAC5D,CAAC,CAACkD,KAAK,CAAC,GAAGsB,UAAU,CAAC7C,GAAG,CAAC,UAAC4I,EAAE,EAAA;AAAA,YAAA,OAC/BZ,kBAAkB,CAACY,EAAE,EAAEH,WAAW,CAAC,CAAA;WACpC,CAAA,CAAA;AACF,SAAA;AACF,OAAA,MAAM;QACLxG,GAAG,CAAC5D,CAAC,CAACkD,KAAK,CAAC,GAAGyG,kBAAkB,CAACnF,UAAU,EAAE4F,WAAW,CAAC,CAAA;AAC3D,OAAA;AACF,KAAA;IACD,SAASD,SAASA,GAAA;AAChB,MAAA,OACEnK,CAAC,CAACoD,UAAU,IAAIiH,KAAK,CAACC,OAAO,CAAC9F,UAAU,CAAC,IAAI,CAACA,UAAU,CAACb,MAAAA;AACzD;AAAA,OAAA;AAEJ,KAAA;AACF,GAAC,CAAC,CAAA;;AACF,EAAA,OAAOC,GAAG,CAAA;AACZ,CAAA;AAEM,SAAU4G,uBAAuBA,CAACvF,CAAoB,EAAA;AAAA,EAAA,IAAAwF,WAAA,CAAA;AAC1D,EAAA,IAAMC,YAAY,GAAA,CAAAD,WAAA,GAAGxF,CAAC,CAAC9B,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAVsH,WAAA,CAAYtD,OAAO,CAACqD,uBAAuB,CAAC,CAAA;EACjE,IAAMG,EAAE,GAAGC,wBAAI,CAAC3F,CAAC,CAAC4F,UAAU,EAAE5F,CAAC,CAAC6F,WAAW,CAAC,CAAA;AAC5C,EAAA,IAAIJ,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,CAAAlD,CAAAA,MAAA,CAAKiD,YAAY,CAAA,CAAA;EAC7C,OAAO,CAACC,EAAE,CAAC,CAAA;AACb;;SC1WgBI,WAAWA,CACzB7H,KAAa,EACb8C,KAAqB,EACrB/E,OAAwC,EAAA;AAExC,EAAA,OAAAc,QAAA,CAAA;IAAS9B,IAAI,EAAEb,6BAAqB,CAACc,IAAI;AAAEgD,IAAAA,KAAK,EAALA,KAAK;AAAE8C,IAAAA,KAAK,EAALA,KAAAA;AAAK,GAAA,EAAK/E,OAAO,CAAA,CAAA;AACrE,CAAA;AAEgB,SAAA+J,kBAAkBA,CAChCC,IAAY,EACZhK,OAA2C,EAAA;AAE3C,EAAA,OAAAc,QAAA,CAAA;IACE9B,IAAI,EAAEb,6BAAqB,CAACkB,OAAO;AACnC4K,IAAAA,WAAW,EAAE;MAAEjL,IAAI,EAAEL,uBAAe,CAACuL,IAAI;AAAEF,MAAAA,IAAI,EAAJA,IAAAA;AAAqB,KAAA;AAAA,GAAA,EAC7DhK,OAAO,CAAA,CAAA;AAEd,CAAA;AAEgB,SAAAmK,kBAAkBA,CAChCC,IAAY,EACZpK,OAA2C,EAAA;AAE3C,EAAA,OAAAc,QAAA,CAAA;IACE9B,IAAI,EAAEb,6BAAqB,CAACkB,OAAO;AACnC4K,IAAAA,WAAW,EAAE;MAAEjL,IAAI,EAAEL,uBAAe,CAAC0L,IAAI;AAAED,MAAAA,IAAI,EAAJA,IAAAA;AAAqB,KAAA;AAAA,GAAA,EAC7DpK,OAAO,CAAA,CAAA;AAEd,CAAA;AAEM,SAAUsK,mBAAmBA,CAACC,IAAsB,EAAA;EACxD,OAAO;IAAEvL,IAAI,EAAEZ,2BAAmB,CAACoM,YAAY;AAAED,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AACzD,CAAA;AAEM,SAAUE,eAAeA,CAACF,IAAsB,EAAA;EACpD,OAAO;IAAEvL,IAAI,EAAEZ,2BAAmB,CAACsM,QAAQ;AAAEH,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AACrD,CAAA;AAEM,SAAUI,iBAAiBA,CAACJ,IAAsB,EAAA;EACtD,OAAO;IAAEvL,IAAI,EAAEZ,2BAAmB,CAACwM,OAAO;AAAEL,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AACpD,CAAA;AAEM,SAAUM,eAAeA,CAACN,IAAsB,EAAA;EACpD,OAAO;IAAEvL,IAAI,EAAEZ,2BAAmB,CAAC0M,QAAQ;AAAEP,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AACrD,CAAA;AAEgB,SAAAQ,WAAWA,CAAC9I,KAAa,EAAE6D,KAAU,EAAA;EACnD,OAAO;IAAE9G,IAAI,EAAEX,sBAAc,CAAC2M,SAAS;AAAE/I,IAAAA,KAAK,EAALA,KAAK;AAAE6D,IAAAA,KAAK,EAALA,KAAAA;GAAO,CAAA;AACzD,CAAA;AACM,SAAUmF,WAAWA,CAACC,UAAkB,EAAA;EAC5C,OAAO;IAAElM,IAAI,EAAEX,sBAAc,CAAC8M,OAAO;AAAED,IAAAA,UAAU,EAAVA,UAAAA;GAAY,CAAA;AACrD,CAAA;SAEgBE,cAAcA,CAC5BlJ,QAA6B,EAC7B6C,KAAc,EACd/E,OAA4C,EAAA;AAE5C,EAAA,OAAAc,QAAA,CAAA;IACE9B,IAAI,EAAEb,6BAAqB,CAACgB,KAAK;AACjC+C,IAAAA,QAAQ,EAARA,QAAQ;AACR6C,IAAAA,KAAK,EAALA,KAAK;AACLsG,IAAAA,YAAY,EAAE;AAAErM,MAAAA,IAAI,EAAE,UAAU;AAAEsM,MAAAA,SAAS,EAAE,CAACvG,KAAAA;AAAO,KAAA;AAAA,GAAA,EAClD/E,OAAO,CAAA,CAAA;AAEd,CAAA;AACM,SAAUuL,eAAeA,CAC7BtJ,KAAa,EACb8C,KAAyB,EACzB7C,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;AACR6C,IAAAA,KAAK,EAALA,KAAK;AACLG,IAAAA,aAAa,EAAE;AAAElG,MAAAA,IAAI,EAAE,UAAA;AAAY,KAAA;AAAA,GAAA,EAChCgB,OAAO,CAAA,CAAA;AAEd,CAAA;SAEgBwL,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;EAC7D5M,IAAI,EAAEb,6BAAqB,CAACgB,KAAK;AACjC+C,EAAAA,QAAQ,EAAE,EAAE;AACZmJ,EAAAA,YAAY,EAAE;IAAErM,IAAI,EAAEN,uBAAe,CAAC0G,QAAQ;AAAEkG,IAAAA,SAAS,EAAE,IAAA;AAAM,GAAA;EAClE;SAEeO,6BAA6BA,CAC3CzI,EAAiB,EACjByE,YAA4D;AAAA,EAAA,IAA5DA;AAAAA,IAAAA,aAAwC+D,oBAAoB,CAAA;AAAA,GAAA;AAE5D,EAAA,OAAOE,aAAO,CACZ,YAAA;AAAA,IAAA,IAAAC,oBAAA,CAAA;IAAA,OAAAjL,QAAA,KACK+G,UAAU,EAAA;AACb3F,MAAAA,QAAQ,EAAE8D,kBAAkB,CAAC5C,EAAE,EAAA2I,CAAAA,oBAAA,GAAElE,UAAU,CAAC3F,QAAQ,KAAA6J,IAAAA,GAAAA,oBAAA,GAAI,EAAE,CAAA;AAAC,KAAA,CAAA,CAAA;AAAA,GAC3D,EACF,CAAC3I,EAAE,EAAEyE,UAAU,CAAC,CACjB,CAAA;AACH;;AC/HM,SAAUmE,oBAAoBA,CAAIC,SAAkB,EAAA;AACxD,EAAA,IAAMjI,CAAC,GAAGkI,eAAU,CAACD,SAAS,CAAC,CAAA;AAC/BE,EAAAA,qBAAgB,CAACF,SAAS,EAAE,UAAC5K,CAAC,EAAA;AAAA,IAAA,OAAM2C,CAAC,CAAC8B,KAAK,GAAGzE,CAAC,CAAA;AAAA,GAAC,CAAC,CAAA;AACjD,EAAA,OAAO2C,CAAC,CAAA;AACV,CAAA;AAEM,SAAUoI,EAAEA,CAAC9K,CAA4B,EAAA;AAC7C,EAAA,OAAOA,CAAC,GAAGA,CAAC,GAAG+B,SAAS,CAAA;AAC1B;;SC0BgBgJ,qBAAqBA,CACnCC,qBAA4C,EAC5CzE,UAA6B,EAC7B0E,WAAyB,EAAA;EAEzB,IAAM5B,iBAAiB,GAAG6B,kBAAkB,CAC1C3E,UAAU,EACVzJ,2BAAmB,CAACwM,OAAO,EAC3B0B,qBAAqB,CACtB,CAAA;EACD,IAAM3F,CAAC,GAAGF,aAAa,CAAC;AAAE8F,IAAAA,WAAW,EAAXA,WAAW;AAAE1E,IAAAA,UAAU,EAAVA,UAAAA;AAAY,GAAA,CAAC,CAAA;AACpD,EAAA,OAAO4E,iBAAW,CAChB,UAAC3E,GAAG,EAAI;AAAA,IAAA,IAAA4E,kBAAA,CAAA;AACN,IAAA,IAAAC,UAAA,GAAoChG,CAAC,CAACE,OAAO;MAArC0F,WAAW,GAAAI,UAAA,CAAXJ,WAAW;MAAE1E,UAAU,GAAA8E,UAAA,CAAV9E,UAAU,CAAA;AAC/B,IAAA,OAAA,CAAA6E,kBAAA,GACE/B,iBAAiB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAjBA,iBAAiB,CAAG7C,GAAG,CAAC,KAAA4E,IAAAA,GAAAA,kBAAA,GACxBE,gBAAW,CACT,YAAA;MAAA,OACEC,WAAW,CAAC/E,GAAG,EAAEyE,WAAW,IAAXA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAW,CAAEvD,YAAY,CAAC,KAC1C,CAACuD,WAAW,IACX,CAACO,eAAe,CACdhF,GAAG,EACHyE,WAAW,EACX1E,UAAU,EACVC,GAAG,CAACW,eAAe,CACpB,CAAC,CAAA;KACP,CAAA,CAAA;AAEL,GAAC,EACD,CAACkC,iBAAiB,EAAEhE,CAAC,CAAC,CACvB,CAAA;AACH,CAAA;AAEgB,SAAAoG,mBAAmBA,CACjCT,qBAA4C,EAC5CzE,UAA6B,EAAA;EAE7B,IAAM4C,eAAe,GAAG+B,kBAAkB,CACxC3E,UAAU,EACVzJ,2BAAmB,CAACsM,QAAQ,EAC5B4B,qBAAqB,CACtB,CAAA;AACD,EAAA,IAAM3F,CAAC,GAAGF,aAAa,CAACoB,UAAU,CAAC,CAAA;AACnC,EAAA,OAAO4E,iBAAW,CAChB,UAAC3E,GAAG,EAAI;AACN,IAAA,IAAI2C,eAAe,EAAE,OAAOA,eAAe,CAAC3C,GAAG,CAAC,CAAA;AAChD,IAAA,OAAOkE,oBAAoB,CAAC,YAAA;AAAA,MAAA,OAAMlF,iBAAiB,CAACH,CAAC,CAACE,OAAO,CAAC,CAAA;KAAC,CAAA,CAAA;AACjE,GAAC,EACD,CAAC4D,eAAe,EAAE9D,CAAC,CAAC,CACrB,CAAA;AACH,CAAA;SAEgBqG,gBAAgBA,CAC9BV,qBAA4C,EAC5CW,QAA6B,EAC7BpF,UAA6B,EAAA;EAE7B,IAAMqF,YAAY,GAAGV,kBAAkB,CACrC3E,UAAU,EACVoF,QAAQ,EACRX,qBAAqB,CACtB,CAAA;AACD,EAAA,OAAOG,iBAAW,CAChB,UAAC3E,GAAG,EAAI;AACN,IAAA,IAAIoF,YAAY,EAAE,OAAOA,YAAY,CAACpF,GAAG,CAAC,CAAA;IAC1C,OAAOoE,eAAU,CAAC7I,SAAS,CAAC,CAAA;AAC9B,GAAC,EACD,CAAC6J,YAAY,CAAC,CACf,CAAA;AACH,CAAA;AAEgB,SAAAC,yBAAyBA,CACrCb,qBAA4C,EAC5CzE,UAA6B,EAAA;EAE/B,IAAMuF,cAAc,GAAGZ,kBAAkB,CACrC3E,UAAU,EACVzJ,2BAAmB,CAACiP,cAAc,EAClCf,qBAAqB,CACxB,CAAA;AACD,EAAA,OAAOG,iBAAW,CACd,UAAC3E,GAAG,EAAI;AACN,IAAA,IAAIsF,cAAc,EAAE,OAAOA,cAAc,CAACtF,GAAG,CAAC,CAAA;IAC9C,OAAOoE,eAAU,CAAC,EAAE,CAAC,CAAA;AACvB,GAAC,EACD,CAACkB,cAAc,CAAC,CACnB,CAAA;AACH,CAAA;AAEgB,SAAAE,mBAAmBA,CACjChB,qBAA4C,EAC5CzE,UAA6B,EAAA;EAE7B,IAAMgD,eAAe,GAAG2B,kBAAkB,CACxC3E,UAAU,EACVzJ,2BAAmB,CAAC0M,QAAQ,EAC5BwB,qBAAqB,CACtB,CAAA;AACD,EAAA,OAAOG,iBAAW,CAChB,UAAC3E,GAAG,EAAI;AACN,IAAA,IAAI+C,eAAe,EAAE,OAAOA,eAAe,CAAC/C,GAAG,CAAC,CAAA;IAChD,OAAOoE,eAAU,CAAC,KAAK,CAAC,CAAA;AAC1B,GAAC,EACD,CAACrB,eAAe,CAAC,CAClB,CAAA;AACH,CAAA;AAEgB,SAAA0C,kBAAkBA,CAChCjB,qBAA4C,EAC5CzE,UAA6B,EAAA;EAI7B,IAAM2F,cAAc,GAAGhB,kBAAkB,CACvC3E,UAAU,EACVzJ,2BAAmB,CAACiB,OAAO,EAC3BiN,qBAAqB,CACtB,CAAA;EACD,OAAOG,iBAAW,CAAC,UAAC3E,GAAG,EAAA;AAAA,IAAA,OAAK0F,cAAc,IAAA,IAAA,GAAA,KAAA,CAAA,GAAdA,cAAc,CAAG1F,GAAG,CAAC,CAAA;GAAE,EAAA,CAAC0F,cAAc,CAAC,CAAC,CAAA;AACtE,CAAA;SACgBC,uBAAuBA,CACrCnB,qBAA4C,EAC5CzE,UAA6B,EAC7B0E,WAAyB,EAAA;EAEzB,IAAMmB,YAAY,GAAGlB,kBAAkB,CACrC3E,UAAU,EACVzJ,2BAAmB,CAACoM,YAAY,EAChC8B,qBAAqB,CACtB,CAAA;EACD,IAAM3F,CAAC,GAAGF,aAAa,CAAC;AAAEoB,IAAAA,UAAU,EAAVA,UAAU;AAAE0E,IAAAA,WAAW,EAAXA,WAAAA;AAAa,GAAA,CAAC,CAAA;AACpD,EAAA,OAAOE,iBAAW,CAChB,UAAC3E,GAAG,EAAI;AAAA,IAAA,IAAA6F,aAAA,CAAA;AACN,IAAA,IAAAC,WAAA,GAAoCjH,CAAC,CAACE,OAAO;MAArCgB,UAAU,GAAA+F,WAAA,CAAV/F,UAAU;MAAE0E,WAAW,GAAAqB,WAAA,CAAXrB,WAAW,CAAA;AAC/B,IAAA,OAAA,CAAAoB,aAAA,GAAOD,YAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAG5F,GAAG,CAAC,KAAA,IAAA,GAAA6F,aAAA,GAAIf,gBAAW,CAACiB,WAAW,CAAC,CAAA;IACtD,SAASA,WAAWA,GAAA;MAClB,IAAAC,IAAA,GAAwBhP,uBAAuB,CAAC+I,UAAU,CAAC,GACvD,CAACA,UAAU,CAAC5E,QAAQ,EAAE4E,UAAU,CAACnI,YAAY,CAAC,GAC9C,CAAC,KAAK,EAAE2D,SAAS,CAAC;AAFfJ,QAAAA,QAAQ,GAAA6K,IAAA,CAAA,CAAA,CAAA;AAAEC,QAAAA,GAAG,GAAAD,IAAA,CAAA,CAAA,CAAA,CAAA;AAGpB,MAAA,OACEC,GAAG,IAAA,IAAA,GAAHA,GAAG,GACFxB,WAAW,GACRzJ,oBAAoB,CAACyJ,WAAW,EAAEtJ,QAAQ,CAAC,GAC3CI,SAAS,CAAA;AAEjB,KAAA;AACF,GAAC,EACD,CAACqK,YAAY,EAAE/G,CAAC,CAAC,CAClB,CAAA;AACH,CAAA;AAMA,SAASqH,iBAAiBA,CACxBC,MAAsB,EACtBlM,MAAqB,EACrBnC,IAAkB,EAAA;EAElB,IAAMsO,QAAQ,GAAGvK,SAAS,CAAC5B,MAAM,EAAEkM,MAAM,CAAChM,KAAK,CAAC,CAAA;AAChD,EAAA,IAAMkM,UAAU,GAAGD,QAAQ,GAAGtO,IAAI,CAACmC,MAAM,CAACmM,QAAQ,CAACjM,KAAK,CAAC,GAAGoB,SAAS,CAAA;AACrE,EAAA,OAAO2I,oBAAoB,CAAC,YAAA;AAAA,IAAA,OAAMmC,UAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAErI,KAAK,CAAA;GAAC,CAAA,CAAA;AACtD,CAAA;AAEA,SAASsI,sBAAsBA,CAC7BH,MAA2B,EAC3BlM,MAAqB,EACrBnC,IAAkB,EAAA;EAElB,IAAMsO,QAAQ,GAAGvK,SAAS,CAAC5B,MAAM,EAAEkM,MAAM,CAAChM,KAAK,CAAC,CAAA;AAChD,EAAA,IAAMkM,UAAU,GAAGD,QAAQ,GAAGtO,IAAI,CAACmC,MAAM,CAACmM,QAAQ,CAACjM,KAAK,CAAC,GAAGoB,SAAS,CAAA;EACrE,OAAOuJ,gBAAW,CAAC,YAAK;AACtB,IAAA,IAAMyB,EAAE,GAAGF,UAAU,IAAVA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAErI,KAAK,CAAA;IAC5B,OAAOsD,KAAK,CAACC,OAAO,CAACgF,EAAE,CAAC,GAAGA,EAAE,CAAC9J,QAAQ,CAAC0J,MAAM,CAACnI,KAAK,CAAC,GAAGuI,EAAE,KAAKJ,MAAM,CAACnI,KAAK,CAAA;AAC5E,GAAC,CAAC,CAAA;AACJ,CAAA;AAEgB,SAAAwI,gBAAgBA,CAC9B/D,IAAsB,EACtBpD,OAA2B,EAAA;EAE3B,QAAQoD,IAAI,CAACvL,IAAI;IACf,KAAKX,sBAAc,CAAC8M,OAAO;MACzB,OAAOoD,oBAAoB,CACxBhE,IAA0B,CAACW,UAAU,EACtC/D,OAAO,CAACI,YAAY,CACrB,CAAA;IACH,KAAKlJ,sBAAc,CAACY,IAAI;MACtB,OAAO+O,iBAAiB,CACtBzD,IAAsB,EACtBpD,OAAO,CAACpF,MAAM,EACdoF,OAAO,CAACI,YAAY,CACrB,CAAA;IACH,KAAKlJ,sBAAc,CAAC2M,SAAS;MAC3B,OAAOoD,sBAAsB,CAC3B7D,IAA2B,EAC3BpD,OAAO,CAACpF,MAAM,EACdoF,OAAO,CAACI,YAAY,CACrB,CAAA;AACH,IAAA;MACE,OAAO2E,eAAU,CAAC7I,SAAS,CAAC,CAAA;AAC/B,GAAA;AACH,CAAA;IAEamL,4BAA4B,GACvCC,sBAAsB,CAACH,gBAAgB,EAAC;AAEpC,SAAUG,sBAAsBA,CACpCC,CAAwE,EAAA;EAExE,OAAO,UAACnE,IAAI,EAAI;AACd,IAAA,IAAM5D,CAAC,GAAGF,aAAa,CAAC8D,IAAI,CAAC,CAAA;AAC7B,IAAA,IAAM9C,EAAE,GAAGgF,iBAAW,CACpB,UAAC3E,GAAuB,EAAI;AAC1B,MAAA,IAAMyC,IAAI,GAAG5D,CAAC,CAACE,OAAQ,CAAA;AACvB,MAAA,OAAO6H,CAAC,CAACnE,IAAI,EAAEzC,GAAG,CAAC,CAAA;KACpB,EACD,CAACyC,IAAI,IAAJA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEvL,IAAI,EAAE2H,CAAC,CAAC,CAChB,CAAA;AACD,IAAA,OAAO4D,IAAI,GAAG9C,EAAE,GAAGpE,SAAS,CAAA;GAC7B,CAAA;AACH,CAAA;SAEgBmJ,kBAAkBA,CAChC3E,UAA6B,EAC7B7I,IAAyB,EACzBsN,qBAEmC,EAAA;AAAA,EAAA,IAAAqC,mBAAA,CAAA;AAEnC,EAAA,IAAMzD,UAAU,GAAA,CAAAyD,mBAAA,GAAG9G,UAAU,CAAC+G,OAAO,KAAA,IAAA,GAAA,KAAA,CAAA,GAAlBD,mBAAA,CAAoB9K,IAAI,CAAC,UAAC9E,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,CAACC,IAAI,KAAKA,IAAI,CAAA;GAAC,CAAA,CAAA;AACnE,EAAA,OAAOsN,qBAAqB,CAACpB,UAAU,oBAAVA,UAAU,CAAEX,IAAI,CAAC,CAAA;AAChD,CAAA;AAEgB,SAAAsC,WAAWA,CACzB1F,OAA2B,EAC3B0H,KAAuB,EAAA;EAEvB,IAAIA,KAAK,IAAI,IAAI,IAAIA,KAAK,CAACnM,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,CAAA;AACpD,EAAA,IAAMiG,SAAS,GAAGzB,YAAY,CAACC,OAAO,CAAC,CAAA;EACvC,OAAOwB,SAAS,IAAIkG,KAAK,CAACtK,QAAQ,CAACoE,SAAS,CAAC7C,KAAK,CAAC,CAAA;AACrD,CAAA;AAEM,SAAUgH,eAAeA,CAC7B3F,OAA2B,EAC3BlF,KAAkB,EAClB4F,UAA6B,EAC7BY,eAAgC,EAAA;AAEhC,EAAA,IAAMqG,cAAc,GAAG9H,qBAAqB,CAACa,UAAU,CAAC,CAAA;EACxD,OACEiH,cAAc,IACd,CAACA,cAAc,CAACC,SAAS,IACzBtG,eAAe,CAACuG,YAAY,CAC1B/M,KAAK,EACLkF,OAAO,CAACI,YAAY,CAACxF,MAAM,CAACE,KAAK,CAACA,KAAK,CAAC,CAAC6D,KAAK,CAC/C,CAAA;AAEL,CAAA;AAEgB,SAAAyI,oBAAoBA,CAClCU,KAAa,EACbrP,IAAkB,EAAA;AAElB,EAAA,IAAMsP,YAAY,GAAGpD,aAAO,CAAC,YAAK;IAChC,IAAI;MACF,OAAOqD,2BAAO,CAACF,KAAK,CAAC,CAAA;KACtB,CAAC,OAAOG,CAAC,EAAE;AACVC,MAAAA,OAAO,CAACC,KAAK,CAACF,CAAC,CAAC,CAAA;MAChB,OAAOD,2BAAO,CAAC,EAAE,CAAC,CAAA;AACnB,KAAA;AACH,GAAC,EAAE,CAACF,KAAK,CAAC,CAAC,CAAA;AACX,EAAA,IAAM3J,OAAO,GAAG4G,eAAU,EAAE,CAAA;AAC5BC,EAAAA,qBAAgB,CACd,YAAA;IAAA,OAAMvM,IAAI,CAACkG,KAAK,CAAA;AAAA,GAAA,EAAA,UACTzE,CAAC,EAAA;IAAA,IAAI;AAAA,MAAA,OAAAkO,OAAA,CAAAC,OAAA,CACYN,YAAY,CAACO,QAAQ,CAACpO,CAAC,CAAC,CAAAqO,CAAAA,IAAA,WAAAC,qBAAA,EAAA;QAA9CrK,OAAO,CAACQ,KAAK,GAAA6J,qBAAiC,CAAA;AAAC,OAAA,CAAA,CAAA;AACjD,KAAC,QAAAP,CAAA,EAAA;AAAA,MAAA,OAAAG,OAAA,CAAAK,MAAA,CAAAR,CAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,EACD,IAAI,CACL,CAAA;AACD,EAAA,OAAO9J,OAAO,CAAA;AAChB;;AC3SM,SAAUuK,iBAAiBA,CAC/BhI,UAA6B,EAAA;EAAA,IAAAiI,qBAAA,EAAAC,sBAAA,CAAA;EAM7B,IAAMC,cAAc,GAAGlR,uBAAuB,CAAC+I,UAAU,CAAC,GAAA,CAAAiI,qBAAA,GAAAC,CAAAA,sBAAA,GACtDlI,UAAU,CAACoI,UAAU,KAArBF,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAuBrP,GAAG,CAAC,UAAC3B,CAAC,EAAA;IAAA,OAAKA,CAAC,CAACC,IAAI,CAAA;AAAA,GAAA,CAAC,KAAA8Q,IAAAA,GAAAA,qBAAA,GAAI,EAAE,GAC/C,IAAI,CAAA;AACR,EAAA,IAAMnJ,CAAC,GAAGF,aAAa,CAACoB,UAAmC,CAAC,CAAA;EAC5D,OAAO4E,iBAAW,CAChB,UAACnH,OAAO,EAAE4K,MAAM,EAAEC,YAAY,EAAI;AAAA,IAAA,IAAAC,cAAA,CAAA;IAChC,IAAI,CAACJ,cAAc,EAAE,OAAA;AACrB,IAAA,IAAMK,EAAE,GAAG1J,CAAC,CAACE,OAAO,CAAA;IAEpByJ,yBAAoB,CAAChL,OAAO,EAAE,YAAA;AAAA,MAAA,OAAMA,OAAO,CAACiL,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;KAAC,CAAA,CAAA;AACpEC,IAAAA,iBAAY,CACVlL,OAAO,EACP,UAACjE,CAAC,EAAA;AAAA,MAAA,OACA,CAAC6O,MAAM,IACPG,EAAE,CAACpN,QAAQ,KACV5B,CAAC,IAAI,IAAI,IAAIA,CAAC,KAAK,EAAE,IAAK+H,KAAK,CAACC,OAAO,CAAChI,CAAC,CAAC,IAAIA,CAAC,CAACqB,MAAM,KAAK,CAAE,CAAC,GAC3D,sBAAsB,GACtB,IAAI,CAAA;AAAA,KAAA,EACV,UAAU,CACX,CAAA;AACD,IAAA,CAAA,CAAA0N,cAAA,GAACC,EAAE,CAACJ,UAAU,YAAAG,cAAA,GAAI,EAAE,EAAExN,OAAO,CAAC,UAAC7D,CAAC,EAAE0R,CAAC,EAAI;MACrC,QAAQ1R,CAAC,CAACC,IAAI;QACZ,KAAKJ,qBAAa,CAACuM,OAAO;UACxB,OAAOuF,mBAAmB,CACxBpL,OAAO,EACP6K,YAAY,EACZpR,CAAqB,EACrBmR,MAAM,EACNO,CAAC,CACF,CAAA;QACH,KAAK7R,qBAAa,CAAC+R,IAAI;AACrB,UAAA,OAAOC,gBAAgB,CAACtL,OAAO,EAAEvG,CAAkB,EAAE0R,CAAC,CAAC,CAAA;AAC1D,OAAA;AACH,KAAC,CAAC,CAAA;GACH,EACDT,cAAc,GAAGA,cAAc,GAAG,CAAC,IAAI,CAAC,CACzC,CAAA;AACH,CAAA;AAEA,SAASU,mBAAmBA,CAC1BpL,OAAqB,EACrB6B,OAA2B,EAC3BoD,IAAsB,EACtB2F,MAAe,EACfO,CAAS,EAAA;EAET,IAAMI,QAAQ,GAAGtC,oBAAoB,CAAChE,IAAI,CAACW,UAAU,EAAE/D,OAAO,CAACI,YAAY,CAAC,CAAA;AAC5E4E,EAAAA,qBAAgB,CACd,YAAA;AAAA,IAAA,OAAM,CAAC+D,MAAM,EAAEW,QAAQ,CAAC/K,KAAK,CAAC,CAAA;AAAA,GAAA,EAC9B,UAAAgI,IAAA,EAAA;IAAA,IAAEoC,MAAM,GAAApC,IAAA,CAAA,CAAA,CAAA;AAAEgD,MAAAA,GAAG,GAAAhD,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,OAAMxI,OAAO,CAACiL,QAAQ,CAAC,SAAS,GAAGE,CAAC,EAAE,CAACP,MAAM,GAAGY,GAAG,GAAG,IAAI,CAAC,CAAA;AAAA,GAAA,EACxE,IAAI,CACL,CAAA;AACH,CAAA;AAEA,SAASF,gBAAgBA,CACvBtL,OAA2C,EAC3CyL,EAAiB,EACjBN,CAAS,EAAA;AAET,EAAA,IAAIO,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;AACDhB,EAAAA,iBAAY,CACVlL,OAAO,EACP,UAACjE,CAAC,EAAI;AACJ,IAAA,IAAIA,CAAC,EAAE;AACL,MAAA,IAAMoQ,OAAO,GAAGd,IAAI,CAACO,KAAK,CAAC7P,CAAC,CAAC,CAAA;MAC7B,IAAMqQ,QAAQ,GAAGX,EAAE,CAACY,UAAU,KAAK9S,sBAAc,CAAC+S,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,GAAGpB,CAAC,CACX,CAAA;AACH;;ACjHO,IAAMqB,sBAAsB,GAAoB;AACrD9C,EAAAA,YAAY,EAAE+C,cAAc;AAC5BC,EAAAA,SAAS,EAAEC,gBAAAA;EACZ;AAEe,SAAAF,cAAcA,CAACrD,CAAc,EAAE5I,KAAU,EAAA;EACvD,IAAI4I,CAAC,CAACvM,UAAU,EACd,OAAOiH,KAAK,CAACC,OAAO,CAACvD,KAAK,CAAC,GAAGA,KAAK,CAACpD,MAAM,KAAK,CAAC,GAAGoD,KAAK,IAAI,IAAI,CAAA;EAClE,QAAQ4I,CAAC,CAAC1P,IAAI;IACZ,KAAKd,iBAAS,CAAC6C,MAAM;AACnB,MAAA,OAAO,CAAC+E,KAAK,CAAA;AACf,IAAA;MACE,OAAOA,KAAK,IAAI,IAAI,CAAA;AACvB,GAAA;AACH,CAAA;AAEgB,SAAAmM,gBAAgBA,CAC9BvD,CAAc,EACd5I,KAAU,EAAA;EAEV,QAAQ4I,CAAC,CAAC1P,IAAI;IACZ,KAAKd,iBAAS,CAACgU,QAAQ;MACrB,OAAO,IAAIvB,IAAI,CAAC7K,KAAK,CAAC,CAACqM,kBAAkB,EAAE,CAAA;IAC7C,KAAKjU,iBAAS,CAACyS,IAAI;MACjB,OAAO,IAAIA,IAAI,CAAC7K,KAAK,CAAC,CAACqM,kBAAkB,EAAE,CAAA;AAC7C,IAAA;MACE,OAAOrM,KAAK,IAAI,IAAI,GAAGA,KAAK,CAACsM,QAAQ,EAAE,GAAG/O,SAAS,CAAA;AACtD,GAAA;AACH;;;ACqDO,IAAMgP,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;AAgFK,SAAUC,kBAAkBA,CAChC3K,UAA6B,EAC7B9F,MAAqB,EACrB0Q,QAAsB,EACtBzS,OAAA,EAAkC;AAAA,EAAA,IAAA0S,oBAAA,EAAAC,qBAAA,EAAAC,qBAAA,CAAA;AAAA,EAAA,IAAlC5S,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAgC,EAAE,CAAA;AAAA,GAAA;AAElC,EAAA,IAAM6S,SAAS,GAAAH,CAAAA,oBAAA,GAAG1S,OAAO,CAAC8S,WAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAnB9S,OAAO,CAAC8S,WAAW,CAAGjL,UAAU,CAAC,KAAA6K,IAAAA,GAAAA,oBAAA,GAAIK,gBAAgB,CAAA;EACvE,IAAMtK,eAAe,GAAAkK,CAAAA,qBAAA,GAAG3S,OAAO,CAACyI,eAAe,KAAA,IAAA,GAAAkK,qBAAA,GAAIb,sBAAsB,CAAA;EACzE,IAAMkB,OAAO,GAAAJ,CAAAA,qBAAA,GAAG5S,OAAO,CAACsM,qBAAqB,KAAA,IAAA,GAAAsG,qBAAA,GAAIpE,4BAA4B,CAAA;AAE7E,EAAA,IAAMjC,WAAW,GAAG0G,iBAAiB,CAACpL,UAAU,EAAE9F,MAAM,CAAC,CAAA;EACzD,IAAMmR,eAAe,GAAGzF,uBAAuB,CAC7CuF,OAAO,EACPnL,UAAU,EACV0E,WAAW,CACZ,CAAA;EACD,IAAM4G,YAAY,GAAG9G,qBAAqB,CAAC2G,OAAO,EAAEnL,UAAU,EAAE0E,WAAW,CAAC,CAAA;AAC5E,EAAA,IAAM6G,aAAa,GAAGrG,mBAAmB,CAACiG,OAAO,EAAEnL,UAAU,CAAC,CAAA;AAC9D,EAAA,IAAMwL,aAAa,GAAG/F,mBAAmB,CAAC0F,OAAO,EAAEnL,UAAU,CAAC,CAAA;AAC9D,EAAA,IAAMyL,iBAAiB,GAAGnG,yBAAyB,CAAC6F,OAAO,EAAEnL,UAAU,CAAC,CAAA;EACxE,IAAM0L,cAAc,GAAGvG,gBAAgB,CACrCgG,OAAO,EACP5U,2BAAmB,CAACoV,KAAK,EACzB3L,UAAU,CACX,CAAA;EACD,IAAM4L,cAAc,GAAGzG,gBAAgB,CACrCgG,OAAO,EACP5U,2BAAmB,CAACsV,WAAW,EAC/B7L,UAAU,CACX,CAAA;AACD,EAAA,IAAM8L,iBAAiB,GAAGpG,kBAAkB,CAACyF,OAAO,EAAEnL,UAAU,CAAC,CAAA;AACjE,EAAA,IAAM+L,aAAa,GAAG/D,iBAAiB,CAAChI,UAAU,CAAC,CAAA;EACnD,IAAMlB,CAAC,GAAGF,aAAa,CAAC;AAAEzG,IAAAA,OAAO,EAAPA,OAAO;AAAE6H,IAAAA,UAAU,EAAVA,UAAU;AAAE9F,IAAAA,MAAM,EAANA,MAAM;AAAEwK,IAAAA,WAAW,EAAXA,WAAAA;AAAW,GAAE,CAAC,CAAA;AAErE,EAAA,IAAMsH,SAAS,GAAGpH,iBAAW,CAC3B,UAAAqB,IAAA,EAAmD;AAAA,IAAA,IAAvCgG,aAAa,GAAAhG,IAAA,CAAtBxI,OAAO,CAAA;AACR,IAAA,IAAMyO,YAAY,GAAGC,yBAAoB,EAAE,CAAA;IAC3C,IAAI;AAAA,MAAA,IAAAC,eAAA,EAAAzK,WAAA,EAAA0K,qBAAA,EAAAC,sBAAA,CAAA;AACF,MAAA,IAAAxH,UAAA,GAAwDhG,CAAC,CAACE,OAAO;QAA7C7C,CAAC,GAAA2I,UAAA,CAAb9E,UAAU;QAAK7H,QAAO,GAAA2M,UAAA,CAAP3M,OAAO;QAAE+B,OAAM,GAAA4K,UAAA,CAAN5K,MAAM;QAAEwK,YAAW,GAAAI,UAAA,CAAXJ,WAAW,CAAA;AACnD,MAAA,IAAM6H,WAAW,GAAuB;AACtC7M,QAAAA,YAAY,EAAEuM,aAAa;AAC3B/R,QAAAA,MAAM,EAANA,OAAM;AACN0G,QAAAA,eAAe,EAAfA,eAAAA;OACD,CAAA;AACD,MAAA,IAAM4L,eAAe,GAAGjB,aAAa,CAACgB,WAAW,CAAC,CAAA;AAClD,MAAA,IAAME,eAAe,GAAGjB,aAAa,CAACe,WAAW,CAAC,CAAA;AAClD,MAAA,IAAMG,cAAc,GAAGpB,YAAY,CAACiB,WAAW,CAAC,CAAA;AAChD,MAAA,IAAMI,cAAc,GAAGb,iBAAiB,CAACS,WAAW,CAAC,CAAA;AACrD,MAAA,IAAMK,WAAW,GAAGlB,cAAc,CAACa,WAAW,CAAC,CAACtO,KAAK,CAAA;AACrD,MAAA,IAAM4O,WAAW,GAAGjB,cAAc,CAACW,WAAW,CAAC,CAACtO,KAAK,CAAA;AACrD,MAAA,IAAM6O,OAAO,GAAGJ,cAAc,CAAC1N,OAAO,CAACf,KAAK,CAAA;MAC5C,IAAM8O,UAAU,GAAG1I,eAAU,CAAyB,YAAA;QAAA,OACpDyI,OAAO,IAAI,IAAI,GACX;AACEA,UAAAA,OAAO,EAAPA,OAAO;AACPE,UAAAA,OAAO,EAAEF,OAAAA;AACV,SAAA,GACDtR,SAAS,CAAA;OACd,CAAA,CAAA;AACD8I,MAAAA,qBAAgB,CACd,YAAA;QAAA,OAAMoI,cAAc,CAACzO,KAAK,CAAA;OAC1B,EAAA,UAAC6O,OAAO,EAAI;QACV,IAAIA,OAAO,IAAI,IAAI,EACjBC,UAAU,CAACE,QAAQ,CAAC,UAACxO,EAAE,EAAA;UAAA,OAAM;AAC3BqO,YAAAA,OAAO,EAAPA,OAAO;AACPE,YAAAA,OAAO,EAAEvO,EAAE,GAAGA,EAAE,CAACuO,OAAO,GAAGF,OAAAA;WAC5B,CAAA;AAAA,SAAC,CAAC,CAAA;AACP,OAAC,CACF,CAAA;AAED,MAAA,IAAMI,cAAc,GAAGzB,iBAAiB,CAACc,WAAW,CAAC,CAAA;AACrD,MAAA,IAAMY,mBAAmB,GAAG9B,eAAe,CAACkB,WAAW,CAAC,CAAA;AACxD,MAAA,IAAAa,eAAA,GAAgCC,cAAc,CAC5C3I,YAAW,EACX6H,WAAW,CACZ;AAHM9O,QAAAA,OAAO,GAAA2P,eAAA,CAAA,CAAA,CAAA;AAAEE,QAAAA,YAAY,GAAAF,eAAA,CAAA,CAAA,CAAA,CAAA;AAI5B9I,MAAAA,qBAAgB,CACd,YAAA;QAAA,OAAM,CACJyI,UAAU,CAAC9O,KAAK,EAChBkP,mBAAmB,CAAClP,KAAK,EACzBR,OAAO,EACPwO,aAAa,CAACsB,MAAM,EACpBtW,uBAAuB,CAAC+I,UAAU,CAAC,IAAIA,UAAU,CAACwN,eAAe,CAClE,CAAA;OACD,EAAA,UAAAC,KAAA,EAAgC;QAAA,IAA9BC,EAAE,GAAAD,KAAA,CAAA,CAAA,CAAA;AAAEvE,UAAAA,EAAE,GAAAuE,KAAA,CAAA,CAAA,CAAA;AAAEE,UAAAA,EAAE,GAAAF,KAAA,CAAA,CAAA,CAAA;AAAEG,UAAAA,EAAE,GAAAH,KAAA,CAAA,CAAA,CAAA;AAAEI,UAAAA,SAAS,GAAAJ,KAAA,CAAA,CAAA,CAAA,CAAA;AACzB,QAAA,IAAIG,EAAE,EAAE;AACN3B,UAAAA,aAAa,CAAChO,KAAK,GAAG,EAAE,CAAA;AACzB,SAAA;QACD,IAAIyP,EAAE,IAAIC,EAAE,IAAID,EAAE,CAACZ,OAAO,KAAKY,EAAE,CAACV,OAAO,EAAE;AACzC,UAAA,IAAI,CAACU,EAAE,CAACZ,OAAO,EAAE;YACf,IAAI3U,QAAO,CAAC2V,WAAW,IAAI,CAACD,SAAS,EAAEF,EAAE,CAAC1P,KAAK,GAAGzC,SAAS,CAAA;AAC5D,WAAA,MAAM,IAAImS,EAAE,CAAC1P,KAAK,IAAI,IAAI,EAAE;YAC3B0P,EAAE,CAAC1P,KAAK,GAAGiL,EAAE,CAAA;AACd,WAAA;AACF,SAAA;OACF,EACD,IAAI,CACL,CAAA;MACD,IAAM6E,SAAS,GAAG5J,oBAAoB,CAAqB,YAAA;AAAA,QAAA,IAAA6J,kBAAA,CAAA;QAAA,OAAO;AAChE3F,UAAAA,MAAM,EAAElQ,QAAO,CAACkQ,MAAM,IAAI,GAAA2F,kBAAA,GAACjB,UAAU,CAAC7S,MAAM,KAAjB8T,IAAAA,IAAAA,kBAAA,CAAmBhB,OAAO,CAAC/O,KAAK,CAAA;AAC3DiB,UAAAA,QAAQ,EAAE/G,QAAO,CAAC+G,QAAQ,IAAIsN,eAAe,CAACvO,KAAK;AACnDgQ,UAAAA,QAAQ,EAAE9V,QAAO,CAAC8V,QAAQ,IAAIxB,eAAe,CAACxO,KAAAA;SAC/C,CAAA;OAAC,CAAC,CAACA,KAAK,CAAA;MACT8N,aAAa,CAACtO,OAAQ,EAAE,CAAC,CAACsQ,SAAS,CAAC1F,MAAM,EAAEkE,WAAW,CAAC,CAAA;AACxD,MAAA,IAAM2B,cAAc,GAAA,CAAA9B,eAAA,GAAA,CAAAzK,WAAA,GAClBxF,CAAC,CAAC9B,QAAQ,qBAAVsH,WAAA,CAAY9I,GAAG,CAAC,UAAC8U,EAAE,EAAA;AAAA,QAAA,OACjBhD,kBAAkB,CAACgD,EAAE,EAAEL,YAAY,CAACpT,MAAM,EAAE0Q,QAAQ,EAAA3R,QAAA,CAC/Cd,EAAAA,EAAAA,QAAO,EACP4V,SAAS,CACb,CAAC,CAAA;OACH,CAAA,KAAA,IAAA,GAAA3B,eAAA,GAAI,EAAE,CAAA;AACT+B,MAAAA,eAAS,CAAC,YAAK;AACb,QAAA,IAAI1Q,OAAO,IAAI,OAAOsQ,SAAS,CAACE,QAAQ,KAAK,SAAS,EACpDxQ,OAAO,CAACwQ,QAAQ,GAAGF,SAAS,CAACE,QAAQ,CAAA;OACxC,EAAE,CAACxQ,OAAO,EAAEsQ,SAAS,CAACE,QAAQ,CAAC,CAAC,CAAA;AACjC,MAAA,IAAIhC,aAAa,CAACsB,MAAM,EAAE,oBAAOa,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,OAAK,CAAA;AACtC,MAAA,IAAMC,UAAU,GAAA,CAAAlC,qBAAA,GAAA,CAAAC,sBAAA,GACdtM,UAAU,CAACuO,UAAU,qBAArBjC,sBAAA,CAAuBzT,GAAG,CAAC,UAAC3B,CAAC,EAAA;QAAA,OAC3B0T,QAAQ,CAAC4D,eAAe,CAAC;AAAEC,UAAAA,SAAS,EAAEvX,CAAAA;AAAC,SAAE,CAAC,CAAA;OAC3C,CAAA,KAAA,IAAA,GAAAmV,qBAAA,GAAI,EAAE,CAAA;MACT,IAAMqC,gBAAgB,GAAGC,mBAAmB,CAAC;AAC3C3O,QAAAA,UAAU,EAAE7D,CAAC;AACbyO,QAAAA,QAAQ,EAARA,QAAQ;QACRgE,UAAU,EAAEV,cAAc,CAACrT,MAAM;QACjCgU,WAAW,EAAE,SAAAA,WAACC,CAAAA,CAAC,EAAElG,CAAC,EAAEmG,KAAK,EAAI;AAC3B,UAAA,IAAMC,WAAW,GAAGd,cAAc,CAACtF,CAAC,CAAC,CAAA;AACrC,UAAA,oBAAOwF,yBAAA,CAAAC,aAAA,CAACW,WAAW,EAAA/V,QAAA,CAAA;AAACgW,YAAAA,GAAG,EAAEH,CAAAA;WAAOC,EAAAA,KAAK,EAAI,CAAA;SAC1C;AACDG,QAAAA,eAAe,EAAElE,SAAS;AAC1BmE,QAAAA,WAAW,EAAEpB,SAAS;AACtBxB,QAAAA,WAAW,EAAXA,WAAW;AACX9O,QAAAA,OAAO,EAAEkP,cAAc,IAAdA,IAAAA,GAAAA,cAAc,GAAIlP,OAAO;AAClCiH,QAAAA,WAAW,EAAXA,YAAW;AACXiI,QAAAA,cAAc,EAAdA,cAAc;AACdyC,QAAAA,KAAK,EAAExC,WAAW;AAClBM,QAAAA,cAAc,EAAdA,cAAAA;AACD,OAAA,CAAC,CAAA;MACF,IAAMmC,eAAe,GAAGzE,QAAQ,CAAC0E,YAAY,CAAArW,QAAA,KACxCyV,gBAAgB,EAAA;AACnBH,QAAAA,UAAU,EAAVA,UAAU;QACVgB,SAAS,EAAEpT,CAAC,CAAC6F,WAAW;AACxBoN,QAAAA,KAAK,EAAEvC,WAAAA;AAAW,OAAA,CACnB,CAAC,CAAA;AACF,MAAA,OAAOjC,QAAQ,CAAC4E,gBAAgB,CAAAvW,QAAA,CAAA;AAAG8T,QAAAA,UAAU,EAAVA,UAAAA;OAAesC,EAAAA,eAAe,CAAE,CAAC,CAAA;AACrE,KAAA,SAAS;AACRnD,MAAAA,YAAY,EAAE,CAAA;AACf,KAAA;AACH,GAAC,EACD,CACEpN,CAAC,EACDkM,SAAS,EACTM,YAAY,EACZD,eAAe,EACfE,aAAa,EACbC,aAAa,EACbE,cAAc,EACdE,cAAc,EACdH,iBAAiB,EACjBK,iBAAiB,EACjBC,aAAa,EACbnB,QAAQ,EACRhK,eAAe,CAChB,CACF,CAAA;EACAoL,SAAiB,CAACjT,WAAW,GAAG,eAAe,CAAA;AAChD,EAAA,OAAOiT,SAAS,CAAA;AAClB,CAAA;AACgB,SAAAZ,iBAAiBA,CAC/BjP,CAAoB,EACpBjC,MAAqB,EAAA;EAErB,IAAMiG,SAAS,GAAG9I,yBAAyB,CAAC8E,CAAC,CAAC,GAC1CA,CAAC,CAAClC,aAAa,GACfhD,uBAAuB,CAACkF,CAAC,CAAC,GACxBA,CAAC,CAAC/B,KAAK,GACPoB,SAAS,CAAA;EACf,OAAO2E,SAAS,GAAGrE,SAAS,CAAC5B,MAAM,EAAEiG,SAAS,CAAC,GAAG3E,SAAS,CAAA;AAC7D,CAAA;AACgB,SAAA6R,cAAcA,CAC5B3I,WAAoC,EACpC+K,aAAiC,EAAA;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,CAAA;AAEjC,EAAA,IAAMC,YAAY,GAA6BlL,WAAW,GAAA,CAAAgL,qBAAA,GAAA,CAAAC,sBAAA,GACtDF,aAAa,CAAC/P,YAAY,CAACxF,MAAM,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjCyV,sBAAA,CAAoCjL,WAAW,CAACtK,KAAK,CAAC,KAAAsV,IAAAA,GAAAA,qBAAA,GAAIG,eAAU,CAAC,EAAE,CAAC,GACxErU,SAAS,CAAA;EACb,OAAO,CACLoU,YAAY,EACZlL,WAAW,IAAI9J,eAAe,CAAC8J,WAAW,CAAC,GACvC;AACEhF,IAAAA,YAAY,EAAEkQ,YAAa;IAC3B1V,MAAM,EAAEwK,WAAW,CAACrK,QAAQ;IAC5BuG,eAAe,EAAE6O,aAAa,CAAC7O,eAAAA;GAChC,GACD6O,aAAa,CAClB,CAAA;AACH,CAAA;AAEA,SAASK,UAAUA,CACjBzS,aAAA,EACAuR,UAAkB,EAClBC,YAA0B,EAC1BpR,OAAqB,EACrB8R,SAAoC,EACpCH,KAAsC,EAAA;AAAA,EAAA,IALtC/R,aAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,IAAAA,aAAA,GAAoC;AAAElG,MAAAA,IAAI,EAAE,UAAA;KAAY,CAAA;AAAA,GAAA;EAOxD,OAAO;AACLyX,IAAAA,UAAU,EAAVA,UAAU;IACVC,WAAW,EAAE,SAAAA,WAAAA,CAACjG,CAAC,EAAA;AAAA,MAAA,OAAKiG,YAAW,CAACjG,CAAC,EAAEA,CAAC,EAAE;AAAEnL,QAAAA,OAAO,EAAPA,OAAAA;OAAS,CAAC,CAAA;AAAA,KAAA;AAClDJ,IAAAA,aAAa,EAAbA,aAAa;AACbkS,IAAAA,SAAS,EAAEhL,EAAE,CAACgL,SAAS,CAAC;AACxBH,IAAAA,KAAK,EAALA,KAAAA;GACD,CAAA;AACH,CAAA;AAEM,SAAUlE,gBAAgBA,CAAA6E,KAAA,EASb;AAAA,EAAA,IAAAC,qBAAA,EAAAC,cAAA,EAAAC,qBAAA,EAAAC,qBAAA,CAAA;AAAA,EAAA,IARjBnQ,UAAU,GAAA+P,KAAA,CAAV/P,UAAU;IACV5F,KAAK,GAAA2V,KAAA,CAAL3V,KAAK;IACLqD,OAAO,GAAAsS,KAAA,CAAPtS,OAAO;IACPtF,OAAO,GAAA4X,KAAA,CAAP5X,OAAO;IACPiY,eAAe,GAAAL,KAAA,CAAfK,eAAe;IACfhB,KAAK,GAAAW,KAAA,CAALX,KAAK;IACLlC,cAAc,GAAA6C,KAAA,CAAd7C,cAAc;AACX6B,IAAAA,KAAK,GAAAsB,6BAAA,CAAAN,KAAA,EAAAO,WAAA,CAAA,CAAA;AAER,EAAA,IAAMf,SAAS,GAAGhL,EAAE,CAACvE,UAAU,CAAC+B,UAAU,CAAC,CAAA;AAC3C,EAAA,IAAM3G,QAAQ,GAAG,CAAC,CAAC4E,UAAU,CAAC5E,QAAQ,CAAA;EACtC,IAAMmV,YAAY,GAChB,CAAA,CAAAP,qBAAA,GAAA,CAAAC,cAAA,GAAC7V,KAAK,CAACjC,OAAO,KAAb8X,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAA,CAAepV,MAAM,KAAA,IAAA,GAAAmV,qBAAA,GAAI,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG5V,KAAK,CAACjC,OAAO,CAAA;AAC3D,EAAA,IAAMqY,OAAO,GAAA,CAAAN,qBAAA,GAAGhD,cAAc,IAAA,IAAA,GAAA,KAAA,CAAA,GAAdA,cAAc,CAAEjP,KAAK,KAAA,IAAA,GAAAiS,qBAAA,GAAI,EAAE,CAAA;AAC3C,EAAA,OAAAjX,QAAA,CAAA;AACEwE,IAAAA,OAAO,EAAPA,OAAO;AACPrD,IAAAA,KAAK,EAALA,KAAK;AACLqW,IAAAA,EAAE,EAAE,GAAG,GAAGhT,OAAO,CAACiT,QAAQ;AAC1BvY,IAAAA,OAAO,EACLoY,YAAY,IAAIC,OAAO,CAAC3V,MAAM,GAAG,CAAC,GAC9B0V,YAAY,CAAC5V,MAAM,CAAC,UAACzD,CAAC,EAAA;AAAA,MAAA,OAAKsZ,OAAO,CAAC9T,QAAQ,CAACxF,CAAC,CAAC+G,KAAK,CAAC,CAAA;AAAA,KAAA,CAAC,GACrDsS,YAAY;AAClBrR,IAAAA,QAAQ,EAAE,CAAC,CAAC/G,OAAO,CAAC+G,QAAQ;IAC5B7B,aAAa,EAAA,CAAA8S,qBAAA,GAAEnQ,UAAU,CAAC3C,aAAa,KAAA,IAAA,GAAA8S,qBAAA,GAAI;AAAEhZ,MAAAA,IAAI,EAAE,UAAA;KAAY;AAC/DiE,IAAAA,QAAQ,EAARA,QAAQ;AACRiN,IAAAA,MAAM,EAAE,CAAC,CAAClQ,OAAO,CAACkQ,MAAM;AACxBkH,IAAAA,SAAS,EAATA,SAAS;AACTH,IAAAA,KAAK,EAALA,KAAAA;AAAK,GAAA,EACFL,KAAK,EAAA;IACR4B,YAAY,EAAEP,eAAe,GACzB,YAAA;AAAA,MAAA,OACEQ,iBAAiB,CACfnT,OAAO,EACPrD,KAAK,EACLgB,QAAQ,EACRgU,KAAK,EACLG,SAAS,EACTa,eAAe,CAChB,CAAA;KACH5U,GAAAA,SAAAA;AAAS,GAAA,CAAA,CAAA;AAEjB,CAAA;AAEgB,SAAAoV,iBAAiBA,CAC/BC,YAA+C,EAC/CzW,KAAkB,EAClBgB,QAAiB,EACjBgU,KAAgC,EAChCG,SAA6B,EAC7BuB,cAAqD,EAAA;EAAA,IAAAlU,kBAAA,EAAAmU,qBAAA,CAAA;AAErD,EAAA,IAAMC,IAAI,GAAA,CAAApU,kBAAA,GAAGxC,KAAK,CAACrB,WAAW,KAAA,IAAA,GAAA6D,kBAAA,GAAIxC,KAAK,CAACA,KAAK,CAAA;EAC7C,IAAM6W,KAAK,GAAAF,CAAAA,qBAAA,GAAGF,YAAY,CAACrQ,QAAQ,KAAA,IAAA,GAAAuQ,qBAAA,GAAI,EAAE,CAAA;EACzC,OAAO;AACLF,IAAAA,YAAY,EAAZA,YAAY;IACZK,YAAY,EAAED,KAAK,CAACpW,MAAM;AAC1BO,IAAAA,QAAQ,EAARA,QAAQ;AACR+V,IAAAA,SAAS,EAAE;AACTvN,MAAAA,QAAQ,EAAE,KAAK;MACfE,UAAU,EAAE,MAAM,GAAGkN,IAAI;MACzBnN,OAAO,EAAE,SAAAA,OAAA,GAAA;QAAA,OAAMuN,eAAU,CAACP,YAAY,EAAEjV,oBAAoB,CAACxB,KAAK,CAAC,CAAC,CAAA;AAAA,OAAA;KACrE;IACDiX,UAAU,EAAE,SAAAA,UAAAA,CAACzI,CAAC,EAAA;AAAA,MAAA,OAAKqI,KAAK,CAACrI,CAAC,CAAC,CAAC8H,QAAQ,CAAA;AAAA,KAAA;IACpCY,YAAY,EAAE,SAAAA,YAAAA,CAAC1I,CAAS,EAAA;MAAA,OAAM;AAC5BhF,QAAAA,QAAQ,EAAE,EAAE;AACZE,QAAAA,UAAU,EAAE,QAAQ;QACpBD,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,UAAA,OAAM0N,kBAAa,CAACV,YAAY,EAAEjI,CAAC,CAAC,CAAA;AAAA,SAAA;OAC9C,CAAA;KAAC;IACFkI,aAAa,EAAE,SAAAA,aAAAA,CAAClI,CAAC,EAAA;AAAA,MAAA,OAAKkI,cAAa,CAACG,KAAK,CAACrI,CAAC,CAAC,CAAC,CAAA;AAAA,KAAA;AAC7C2G,IAAAA,SAAS,EAAEhL,EAAE,CAACgL,SAAS,CAAC;AACxBH,IAAAA,KAAK,EAALA,KAAAA;GACD,CAAA;AACH,CAAA;SAsBgBT,mBAAmBA,CAAA6C,KAAA,EAad;AAAA,EAAA,IAZPrV,CAAC,GAAAqV,KAAA,CAAbxR,UAAU;IACV4K,QAAQ,GAAA4G,KAAA,CAAR5G,QAAQ;IACRgE,UAAU,GAAA4C,KAAA,CAAV5C,UAAU;IACG6C,aAAa,GAAAD,KAAA,CAA1B3C,WAAW;IACFe,YAAY,GAAA4B,KAAA,CAArB/T,OAAO;IACPiH,WAAW,GAAA8M,KAAA,CAAX9M,WAAW;IACX6H,WAAW,GAAAiF,KAAA,CAAXjF,WAAW;IACEmF,WAAW,GAAAF,KAAA,CAAxBrC,WAAW;IACMnE,SAAS,GAAAwG,KAAA,CAA1BtC,eAAe;IACfvC,cAAc,GAAA6E,KAAA,CAAd7E,cAAc;IACdyC,KAAK,GAAAoC,KAAA,CAALpC,KAAK;IACLlC,cAAc,GAAAsE,KAAA,CAAdtE,cAAc,CAAA;AAEd,EAAA,IAAIjW,uBAAuB,CAACkF,CAAC,CAAC,EAAE;IAC9B,OAAOwV,UAAU,CAACxV,CAAC,CAAC,CAAA;AACrB,GAAA;AACD,EAAA,IAAI9E,yBAAyB,CAAC8E,CAAC,CAAC,EAAE;AAAA,IAAA,IAAAyV,gBAAA,CAAA;IAChC,IAAIzV,CAAC,CAAClC,aAAa,EAAE;AAAA,MAAA,IAAA4X,eAAA,CAAA;MACnB,OAAOF,UAAU,CACf1P,WAAW,CAAC9F,CAAC,CAAClC,aAAa,EAAEkC,CAAC,CAACe,KAAK,EAAE;QACpC7C,QAAQ,EAAE8B,CAAC,CAAC9B,QAAQ;QACpBoJ,SAAS,EAAA,CAAAoO,eAAA,GAAE1V,CAAC,CAACqH,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAdqO,eAAA,CAAgBpO,SAAAA;AAC5B,OAAA,CAAC,CACH,CAAA;AACF,KAAA;IACD,OAAO;MACLqO,aAAa,EAAElH,QAAQ,CAACmH,WAAW,CACjCjC,UAAU,CACR3T,CAAC,CAACqH,YAAY,EACdoL,UAAU,EACV6C,aAAa,EACblF,WAAW,CAAC7M,YAAY,EACxBvD,CAAC,CAAC4F,UAAU,EACZqN,KAAK,CACN,CACF;AACD4C,MAAAA,KAAK,EAAE;QACLA,KAAK,EAAE7V,CAAC,CAACe,KAAK;QACd/F,IAAI,EAAEuT,iBAAS,CAACpT,KAAK;QACrB2a,IAAI,EAAA,CAAAL,gBAAA,GAAEzV,CAAC,CAACqH,YAAY,KAAA,IAAA,GAAA,KAAA,CAAA,GAAdoO,gBAAA,CAAgBnO,SAAAA;AACvB,OAAA;KACF,CAAA;AACF,GAAA;AACD,EAAA,IAAIhM,0BAA0B,CAAC0E,CAAC,CAAC,EAAE;AAAA,IAAA,IAAA+V,QAAA,CAAA;IACjC,OAAO;AACL7X,MAAAA,QAAQ,EAAEuQ,QAAQ,CAACuH,YAAY,CAAC;QAC9BrO,UAAU,EAAA,CAAAoO,QAAA,GAAE/V,CAAC,CAACe,KAAK,KAAA,IAAA,GAAAgV,QAAA,GAAI/V,CAAC,CAACyH,QAAQ;QACjCA,QAAQ,EAAEzH,CAAC,CAACyH,QAAQ;AACpBC,QAAAA,OAAO,EAAE,SAAAA,OAAA,GAAK,EAAG;AACjB0L,QAAAA,SAAS,EAAEhL,EAAE,CAACpI,CAAC,CAAC4F,UAAU,CAAC;AAC3BqN,QAAAA,KAAK,EAALA,KAAAA;OACD,CAAA;KACF,CAAA;AACF,GAAA;AACD,EAAA,IAAI7X,2BAA2B,CAAC4E,CAAC,CAAC,EAAE;AAAA,IAAA,IAAAiW,cAAA,CAAA;IAClC,OAAO;AACL/X,MAAAA,QAAQ,EAAEuQ,QAAQ,CAACyH,aAAa,CAAC;QAC/Bta,IAAI,EAAA,CAAAqa,cAAA,GAAEjW,CAAC,CAACiG,WAAW,KAAAgQ,IAAAA,GAAAA,cAAA,GAAI,EAAE;AACzB7C,QAAAA,SAAS,EAAEhL,EAAE,CAACpI,CAAC,CAAC4F,UAAU,CAAC;AAC3BqN,QAAAA,KAAK,EAALA,KAAK;AACLpX,QAAAA,OAAO,EAAE2U,cAAAA;OACV,CAAA;KACF,CAAA;AACF,GAAA;AACD,EAAA,OAAO,EAAE,CAAA;AAET,EAAA,SAASgF,UAAUA,CAACxV,CAAwB,EAAEmW,cAA6B,EAAA;IACzE,IAAI,CAAC5N,WAAW,EAAE,OAAO;AAAErK,MAAAA,QAAQ,EAAE,uBAAuB,GAAG8B,CAAC,CAAC/B,KAAAA;KAAO,CAAA;IACxE,IAAM2U,KAAK,GAAG/D,SAAS,CAAC;AACtBhL,MAAAA,UAAU,EAAE7D,CAAC;AACb/B,MAAAA,KAAK,EAAEsK,WAAW;AAClB6H,MAAAA,WAAW,EAAXA,WAAW;AACX9O,MAAAA,OAAO,EAAE6U,cAAc,IAAdA,IAAAA,GAAAA,cAAc,GAAI1C,YAAa;AACxCzX,MAAAA,OAAO,EAAEuZ,WAAW;AACpBtC,MAAAA,KAAK,EAALA,KAAK;AACLR,MAAAA,UAAU,EAAVA,UAAU;AACV1B,MAAAA,cAAc,EAAdA,cAAc;AACd2B,MAAAA,WAAW,EAAE4C,aAAa;MAC1BrB,eAAe,EACbkC,cAAc,IAAI,IAAI,IAAI5N,WAAW,CAACpK,UAAU,GAC5C,UAACiY,OAAO,EAAA;AAAA,QAAA,OACNC,iBAAiB,CAACb,UAAU,CAACxV,CAAC,EAAEoW,OAAO,CAAC,EAAE3H,QAAQ,CAAC,CAACvQ,QAAQ,CAAA;OAC9DmB,GAAAA,SAAAA;AACP,KAAA,CAAC,CAAA;AAEF,IAAA,IAAMiX,SAAS,GAAG,CAACtW,CAAC,CAACsH,SAAS,GAC1BiP,YAAY,CAACvW,CAAC,CAACe,KAAK,EAAEwH,WAAW,CAAC,GAClClJ,SAAS,CAAA;IACb,OAAO;AACLsW,MAAAA,aAAa,EAAElH,QAAQ,CAAC+G,UAAU,CAAC5C,KAAK,CAAC;AACzCiD,MAAAA,KAAK,EAAE;QACL7a,IAAI,EAAEuT,iBAAS,CAACiI,OAAO;AACvBX,QAAAA,KAAK,EAAES,SAAS;QAChBG,KAAK,EAAE7D,KAAK,CAAC0B,EAAE;QACfrV,QAAQ,EAAEe,CAAC,CAACf,QAAQ;QACpB6W,IAAI,EAAE9V,CAAC,CAACsH,SAAAA;OACT;AACDoP,MAAAA,YAAY,EAAEjD,YAAAA;KACf,CAAA;AACH,GAAA;AA2BF,CAAA;AAEgB,SAAAkD,YAAYA,CAC1BhE,CAAqE,EACrEiE,MAAiB,EAAA;AAEjB,EAAA,OAAO,UAACC,MAAM,EAAA;AAAA,IAAA,OACXA,MAAM,CAAClE,CAAC,CAAC,gBACRV,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,QACG0E,MAAM,CAAClE,CAAC,CAAC,EACTiE,MACA,CACJ,CAAA;GAAC,CAAA;AACN,CAAA;AAEgB,SAAAE,UAAUA,CACxBnE,CAAqE,EACrEoE,IAAkC,EAAA;AAElC,EAAA,OAAO,UAACF,MAAM,EAAA;IAAA,OAAMA,MAAM,CAAClE,CAAC,CAAC,GAAGoE,IAAI,CAACF,MAAM,CAAClE,CAAC,CAAC,CAAC,CAAA;GAAC,CAAA;AAClD,CAAA;AAEM,SAAUqE,qBAAqBA,CACnCC,GAAuB,EAAA;AAEvB,EAAA,QAAQA,GAAG;IACT,KAAK3c,0BAAkB,CAAC4c,UAAU;AAChC,MAAA,OAAO,YAAY,CAAA;IACrB,KAAK5c,0BAAkB,CAAC6c,YAAY;AAClC,MAAA,OAAO,cAAc,CAAA;IACvB,KAAK7c,0BAAkB,CAAC8c,UAAU;AAChC,MAAA,OAAO,YAAY,CAAA;IACrB,KAAK9c,0BAAkB,CAAC+c,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,SAAAV,iBAAiBA,CAC/BzD,KAAyB,EACzBnE,QAAsB,EAAA;AAAA,EAAA,IAAA+I,oBAAA,CAAA;AAEtB,EAAA,IAAAC,KAAA,GAAAD,CAAAA,oBAAA,GACE5E,KAAK,CAAC+C,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAnB/C,KAAK,CAAC+C,aAAa,CAAG/C,KAAK,CAAC,KAAA4E,IAAAA,GAAAA,oBAAA,GAAI5E,KAAK;IAD/BQ,SAAS,GAAAqE,KAAA,CAATrE,SAAS;IAAElV,QAAQ,GAAAuZ,KAAA,CAARvZ,QAAQ;IAAE+U,KAAK,GAAAwE,KAAA,CAALxE,KAAK;IAAEyD,YAAY,GAAAe,KAAA,CAAZf,YAAY;IAAEb,KAAK,GAAA4B,KAAA,CAAL5B,KAAK;IAAEzD,UAAU,GAAAqF,KAAA,CAAVrF,UAAU,CAAA;AAEnE,EAAA,IAAMyE,MAAM,GAAmB;AAC7B3Y,IAAAA,QAAQ,EAARA,QAAQ;AACRwY,IAAAA,YAAY,EAAZA,YAAY;AACZzD,IAAAA,KAAK,EAALA,KAAK;IACLG,SAAS,EAAEhL,EAAE,CAACgL,SAAS,CAAA;GACxB,CAAA;EACD,CAAChB,UAAU,IAAVA,IAAAA,GAAAA,UAAU,GAAI,EAAE,EACdsF,IAAI,CAAC,UAAChV,CAAC,EAAEiV,CAAC,EAAA;AAAA,IAAA,OAAKjV,CAAC,CAACkV,QAAQ,GAAGD,CAAC,CAACC,QAAQ,CAAA;AAAA,GAAA,CAAC,CACvChZ,OAAO,CAAC,UAAC7D,CAAC,EAAA;AAAA,IAAA,OAAKA,CAAC,CAAC8c,KAAK,CAAChB,MAAM,CAAC,CAAA;GAAC,CAAA,CAAA;EAClCA,MAAM,CAAChB,KAAK,GACVA,KAAK,IAAI,CAACA,KAAK,CAACC,IAAI,GAChBrH,QAAQ,CAACqJ,WAAW,CAACjC,KAAK,EAAEgB,MAAM,CAACkB,UAAU,EAAElB,MAAM,CAACmB,QAAQ,CAAC,GAC/D3Y,SAAS,CAAA;AACf,EAAA,OAAOwX,MAAM,CAAA;AACf,CAAA;AAEgB,SAAAN,YAAYA,CAC1BxV,KAAgC,EAChC9C,KAAkB,EAAA;AAElB,EAAA,OAAO8C,KAAK,GAAGA,KAAK,GAAGP,gBAAgB,CAACvC,KAAK,CAAC,CAAA;AAChD;;;;;;AChlBM,SAAUga,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,CAAC1Z,MAAM,CAAC+Z,kBAAkB,CAAC,CAAA;AACpE,EAAA,IAAMC,kBAAkB,GAAGN,eAAe,CAAC1Z,MAAM,CAACia,mBAAmB,CAAC,CAAA;AACtE,EAAA,IAAMC,sBAAsB,GAAGR,eAAe,CAAC1Z,MAAM,CACnDma,uBAAuB,CACxB,CAAA;AACD,EAAA,IAAMC,oBAAoB,GAAGV,eAAe,CAAC1Z,MAAM,CAACqa,qBAAqB,CAAC,CAAA;AAC1E,EAAA,IAAMC,cAAc,GAAGZ,eAAe,CAAC1Z,MAAM,CAACua,mBAAmB,CAAC,CAAA;AAClE,EAAA,IAAMC,cAAc,GAAGd,eAAe,CAAC1Z,MAAM,CAACya,mBAAmB,CAAC,CAAA;AAClE,EAAA,IAAMC,eAAe,GAAGhB,eAAe,CAAC1Z,MAAM,CAAC2a,oBAAoB,CAAC,CAAA;AACpE,EAAA,IAAMC,eAAe,GAAGlB,eAAe,CAAC1Z,MAAM,CAAC6a,oBAAoB,CAAC,CAAA;AACpE,EAAA,IAAMC,kBAAkB,GAAA,CAAAlB,qBAAA,GACtBF,eAAe,CAACrY,IAAI,CAAC0Z,wBAAwB,CAAC,KAAAnB,IAAAA,GAAAA,qBAAA,GAC9CD,gBAAgB,CAACvH,UAAU,CAAA;AAE7B,EAAA,IAAM4I,aAAa,GAAiB;AAClCxD,IAAAA,YAAY,EAAZA,YAAY;AACZR,IAAAA,UAAU,EAAVA,UAAU;AACVI,IAAAA,WAAW,EAAXA,WAAW;AACXM,IAAAA,aAAa,EAAbA,aAAa;AACb4B,IAAAA,WAAW,EAAXA,WAAW;AACX2B,IAAAA,WAAW,EAAXA,WAAW;AACXpH,IAAAA,eAAe,EAAfA,eAAe;AACfc,IAAAA,YAAY,EAAZA,YAAY;IACZE,gBAAgB,EAAEiG,kBAAkB,CAACI,MAAAA;GACtC,CAAA;EAED,SAASvG,YAAYA,CAACP,KAAyB,EAAA;AAAA,IAAA,IAAA+G,qBAAA,CAAA;IAC7C,IAAMlL,QAAQ,IAAAkL,qBAAA,GACZP,eAAe,CAACvZ,IAAI,CAAC,UAAC9E,CAAC,EAAA;MAAA,OAAK,CAACA,CAAC,CAAC6e,KAAK,IAAI7e,CAAC,CAAC6e,KAAK,CAAChH,KAAK,CAAC,CAAA;AAAA,KAAA,CAAC,KAAA+G,IAAAA,GAAAA,qBAAA,GACvDxB,gBAAgB,CAAChF,YAAY,CAAA;AAC/B,IAAA,OAAO1E,QAAQ,CAACiL,MAAM,CAAC9G,KAAK,EAAE4G,aAAa,CAAC,CAAA;AAC9C,GAAA;EAEA,SAASnH,eAAeA,CAACO,KAAqB,EAAA;AAAA,IAAA,IAAAiH,qBAAA,CAAA;IAC5C,IAAMpL,QAAQ,IAAAoL,qBAAA,GACZnB,sBAAsB,CAAC7Y,IAAI,CAAC,UAAC9E,CAAC,EAAA;MAAA,OAC5B+e,OAAO,CAAC/e,CAAC,CAACgf,aAAa,EAAEnH,KAAK,CAACN,SAAS,CAACtX,IAAI,CAAC,CAAA;AAAA,KAAA,CAC/C,KAAA6e,IAAAA,GAAAA,qBAAA,GAAI1B,gBAAgB,CAAC7F,SAAS,CAAA;AACjC,IAAA,OAAO7D,QAAQ,CAACiL,MAAM,CAAC9G,KAAK,CAAC,CAAA;AAC/B,GAAA;EAEA,SAAS6G,WAAWA,CAAC7G,KAAyB,EAAA;AAAA,IAAA,IAAAoH,gBAAA,CAAA;AAC5C,IAAA,OAAO,EAAAA,gBAAA,GAAChB,cAAc,CAAC,CAAC,CAAC,KAAAgB,IAAAA,GAAAA,gBAAA,GAAI7B,gBAAgB,CAAC8B,KAAK,EAAEP,MAAM,CACzD9G,KAAK,EACL4G,aAAa,CACd,CAAA;AACH,GAAA;AAEA,EAAA,SAAS1B,WAAWA,CAClBlF,KAAyB,EACzBmF,UAAqB,EACrBC,QAAmB,EAAA;AAAA,IAAA,IAAAkC,oBAAA,CAAA;IAEnB,IAAMzL,QAAQ,IAAAyL,oBAAA,GACZpB,cAAc,CAACjZ,IAAI,CAAC,UAAC9E,CAAC,EAAA;MAAA,OAAK+e,OAAO,CAAC/e,CAAC,CAACof,SAAS,EAAEvH,KAAK,CAAC5X,IAAI,CAAC,CAAA;AAAA,KAAA,CAAC,KAAAkf,IAAAA,GAAAA,oBAAA,GAC5D/B,gBAAgB,CAACtC,KAAK,CAAA;IACxB,OAAOpH,QAAQ,CAACiL,MAAM,CAAC9G,KAAK,EAAEmF,UAAU,EAAEC,QAAQ,EAAEwB,aAAa,CAAC,CAAA;AACpE,GAAA;EAEA,SAAShE,UAAUA,CACjB5C,KAAwB,EAAA;AAAA,IAAA,IAAAwH,qBAAA,CAAA;AAExB,IAAA,IACyBC,UAAU,GAE/BzH,KAAK,CAFP1R,aAAa,CAAIlG,IAAI;MACrBiD,KAAK,GACH2U,KAAK,CADP3U,KAAK,CAAA;AAGP,IAAA,IAAMjC,OAAO,GAAG0E,UAAU,CAACkS,KAAK,CAAC,CAAA;IACjC,IAAMnE,QAAQ,IAAA2L,qBAAA,GACZ9B,iBAAiB,CAACzY,IAAI,CACpB,UAAC9E,CAAC,EAAA;AAAA,MAAA,IAAAuf,aAAA,EAAAC,iBAAA,EAAAC,UAAA,CAAA;AAAA,MAAA,OACA,CAAAF,CAAAA,aAAA,GAACvf,CAAC,CAACoD,UAAU,KAAAmc,IAAAA,GAAAA,aAAA,GAAI,KAAK,OAAAC,CAAAA,iBAAA,GAAOtc,KAAK,CAACE,UAAU,KAAA,IAAA,GAAAoc,iBAAA,GAAI,KAAK,CAAC,IACvD,CAAAC,CAAAA,UAAA,GAACzf,CAAC,CAACiB,OAAO,KAAAwe,IAAAA,GAAAA,UAAA,GAAI,KAAK,MAAMxe,OAAO,IAChC8d,OAAO,CAAC/e,CAAC,CAAC0f,UAAU,EAAExc,KAAK,CAACjD,IAAI,CAAC,IACjC8e,OAAO,CAAC/e,CAAC,CAACsf,UAAU,EAAEA,UAAU,CAAC,KAChC,CAACtf,CAAC,CAAC6e,KAAK,IAAI7e,CAAC,CAAC6e,KAAK,CAAChH,KAAK,CAAC,CAAC,CAAA;AAAA,KAAA,CAC/B,KAAAwH,IAAAA,GAAAA,qBAAA,GAAIjC,gBAAgB,CAACvc,IAAI,CAAA;IAE5B,IAAMsI,MAAM,GAAGuK,QAAQ,CAACiL,MAAM,CAAC9G,KAAK,EAAE4G,aAAa,CAAC,CAAA;AACpD,IAAA,IAAI,OAAOtV,MAAM,KAAK,UAAU,EAAE,OAAOA,MAAM,CAAA;AAC/C,IAAA,OAAO,UAACwW,CAAC,EAAA;MAAA,OAAA5d,QAAA,KAAW4d,CAAC,EAAA;AAAExc,QAAAA,QAAQ,EAAEgG,MAAAA;AAAM,OAAA,CAAA,CAAA;KAAG,CAAA;AAC5C,GAAA;EAEA,SAAS0R,WAAWA,CAClBhD,KAAyB,EAAA;AAAA,IAAA,IAAA+H,qBAAA,CAAA;AAEzB,IAAA,IAAMN,UAAU,GAAGzH,KAAK,CAAC1R,aAAa,CAAClG,IAAI,CAAA;IAC3C,IAAMyT,QAAQ,IAAAkM,qBAAA,GACZnC,kBAAkB,CAAC3Y,IAAI,CAAC,UAAC9E,CAAC,EAAA;AAAA,MAAA,OAAK+e,OAAO,CAAC/e,CAAC,CAACsf,UAAU,EAAEA,UAAU,CAAC,CAAA;AAAA,KAAA,CAAC,KAAAM,IAAAA,GAAAA,qBAAA,GACjExC,gBAAgB,CAACrc,KAAK,CAAA;IACxB,IAAMoI,MAAM,GAAGuK,QAAQ,CAACiL,MAAM,CAAC9G,KAAK,EAAE4G,aAAa,CAAC,CAAA;AACpD,IAAA,IAAI,OAAOtV,MAAM,KAAK,UAAU,EAAE,OAAOA,MAAM,CAAA;AAC/C,IAAA,OAAO,UAACwW,CAAC,EAAA;MAAA,OAAA5d,QAAA,KAAW4d,CAAC,EAAA;AAAExc,QAAAA,QAAQ,EAAEgG,MAAAA;AAAM,OAAA,CAAA,CAAA;KAAG,CAAA;AAC5C,GAAA;EAEA,SAAS8R,YAAYA,CAACpD,KAA0B,EAAA;AAAA,IAAA,IAAAgI,qBAAA,CAAA;IAC9C,IAAMnM,QAAQ,IAAAmM,qBAAA,GACZ1B,eAAe,CAACrZ,IAAI,CAAC,UAAC9E,CAAC,EAAA;MAAA,OAAK+e,OAAO,CAAC/e,CAAC,CAAC8f,UAAU,EAAEjI,KAAK,CAACnL,QAAQ,CAAC,CAAA;AAAA,KAAA,CAAC,KAAAmT,IAAAA,GAAAA,qBAAA,GAClEzC,gBAAgB,CAACxc,MAAM,CAAA;AACzB,IAAA,OAAO8S,QAAQ,CAACiL,MAAM,CAAC9G,KAAK,EAAE4G,aAAa,CAAC,CAAA;AAC9C,GAAA;EAEA,SAAStD,aAAaA,CAACtD,KAA2B,EAAA;AAAA,IAAA,IAAAkI,qBAAA,CAAA;AAChD,IAAA,IAAMT,UAAU,GAAGzH,KAAK,CAAChX,IAAI,CAACZ,IAAI,CAAA;IAClC,IAAMyT,QAAQ,IAAAqM,qBAAA,GACZlC,oBAAoB,CAAC/Y,IAAI,CAAC,UAAC9E,CAAC,EAAA;AAAA,MAAA,OAAK+e,OAAO,CAAC/e,CAAC,CAACsf,UAAU,EAAEA,UAAU,CAAC,CAAA;AAAA,KAAA,CAAC,KAAAS,IAAAA,GAAAA,qBAAA,GACnE3C,gBAAgB,CAACtc,OAAO,CAAA;AAC1B,IAAA,OAAO4S,QAAQ,CAACiL,MAAM,CAAC9G,KAAK,EAAE4G,aAAa,CAAC,CAAA;AAC9C,GAAA;AAEA,EAAA,OAAOA,aAAa,CAAA;AACtB,CAAA;AAYgB,SAAAuB,2BAA2BA,CACzC/e,OAAA,EAA0C;AAAA,EAAA,IAA1CA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAwC,EAAE,CAAA;AAAA,GAAA;EAE1C,SAAS0d,MAAMA,CAAA5P,IAAA,EAA6C;AAAA,IAAA,IAA1CpC,OAAO,GAAAoC,IAAA,CAAPpC,OAAO;MAAEC,UAAU,GAAAmC,IAAA,CAAVnC,UAAU,CAAA;IACnC,oBACEsK,yBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;MAAQkB,SAAS,EAAEpX,OAAO,CAACoX,SAAU;AAAC1L,MAAAA,OAAO,EAAEA,OAAAA;AAAQ,KAAA,EACpDC,UACK,CAAC,CAAA;AAEb,GAAA;EACA,OAAO;AAAE+R,IAAAA,MAAM,EAANA,MAAM;AAAE1e,IAAAA,IAAI,EAAE,QAAA;GAAU,CAAA;AACnC,CAAA;AACgB,SAAAggB,0BAA0BA,CACxChf,OAAA,EAA2E;AAAA,EAAA,IAA3EA,OAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,IAAAA,OAAA,GAAuC;AAAEif,MAAAA,eAAe,eAAEhJ,yBAAA,CAAAC,aAAA,eAAO,IAAO,CAAA;KAAG,CAAA;AAAA,GAAA;EAE3E,IAAAgJ,QAAA,GAAwDlf,OAAO;IAAvDoX,SAAS,GAAA8H,QAAA,CAAT9H,SAAS;IAAE+H,eAAe,GAAAD,QAAA,CAAfC,eAAe;IAAEF,eAAe,GAAAC,QAAA,CAAfD,eAAe,CAAA;EACnD,OAAO;AACLvB,IAAAA,MAAM,EAAE,SAAAA,MAAAA,CAAC9G,KAAK,EAAEmF,UAAU,EAAEC,QAAQ,EAAA;AAAA,MAAA,oBAClC/F,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EAAA,IAAA,EACG4F,UAAU,eACX9F,yBAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;QACEkJ,OAAO,EAAExI,KAAK,CAAC6D,KAAM;AACrBrD,QAAAA,SAAS,EAAEzN,wBAAI,CACbyN,SAAS,EACTR,KAAK,CAAC5X,IAAI,KAAKuT,iBAAS,CAACpT,KAAK,IAAIggB,eAAe,CAAA;AACjD,OAAA,EAEDvI,KAAK,CAACiD,KAAK,EACXjD,KAAK,CAAC3T,QAAQ,IAAIgc,eACd,CACP,EAACjD,QACH,CAAG,CAAA;KACJ;AACDhd,IAAAA,IAAI,EAAE,OAAA;GACP,CAAA;AACH,CAAA;AAWM,SAAUqgB,0BAA0BA,CACxCrf,OAAqC,EAAA;AAErC,EAAA,IAAAsV,KAAA,GAOItV,OAAO,WAAPA,OAAO,GAAI,EAAE;IANfoX,SAAS,GAAA9B,KAAA,CAAT8B,SAAS;IACTkI,cAAc,GAAAhK,KAAA,CAAdgK,cAAc;IACdC,UAAU,GAAAjK,KAAA,CAAViK,UAAU;IACVC,mBAAmB,GAAAlK,KAAA,CAAnBkK,mBAAmB;IACnBC,iBAAiB,GAAAnK,KAAA,CAAjBmK,iBAAiB;IACjBC,cAAc,GAAApK,KAAA,CAAdoK,cAAc,CAAA;AAEhB,EAAA,SAAShC,MAAMA,CAAA9F,KAAA,EAAAyB,KAAA,EASiB;AAAA,IAAA,IAP5BN,YAAY,GAAAnB,KAAA,CAAZmB,YAAY;MACZJ,aAAa,GAAAf,KAAA,CAAbe,aAAa;MACbK,SAAS,GAAApB,KAAA,CAAToB,SAAS;MACTG,YAAY,GAAAvB,KAAA,CAAZuB,YAAY;MACZD,UAAU,GAAAtB,KAAA,CAAVsB,UAAU;MACVjW,QAAQ,GAAA2U,KAAA,CAAR3U,QAAQ,CAAA;AAAA,IAAA,IAER+W,YAAY,GAAAX,KAAA,CAAZW,YAAY,CAAA;AAEd,IAAA,IAAM2F,UAAU,GAAG,CAAC1c,QAAQ,IAAI8V,YAAY,GAAG,CAAC,CAAA;AAChD,IAAA,oBACE9C,yBAAA,CAAAC,aAAA,CACED,KAAAA,EAAAA,IAAAA,eAAAA,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkB,MAAAA,SAAS,EAAEzN,wBAAI,CAACyN,SAAS,EAAE+B,YAAY,IAAImG,cAAc,CAAA;KAC3DlW,EAAAA,KAAK,CAACwW,IAAI,CAAC;AAAEld,MAAAA,MAAM,EAAEqW,YAAAA;AAAY,KAAE,EAAE,UAAC8G,CAAC,EAAE9gB,CAAC,EAAA;AAAA,MAAA,OACzCoa,YAAY,gBACVlD,yBAAA,CAAAC,aAAA,CAACC,cAAQ,EAAA;QAACW,GAAG,EAAEoC,UAAU,CAACna,CAAC,CAAA;OACzBkX,eAAAA,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkB,QAAAA,SAAS,EAAEzN,wBAAI,CAAC4V,UAAU,EAAEC,mBAAmB,CAAA;OACjD7G,EAAAA,aAAa,CAAC5Z,CAAC,CACb,CACL,eAAAkX,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkB,QAAAA,SAAS,EAAEqI,iBAAAA;AAAkB,OAAA,EAC/BE,UAAU,IAAI3F,YAAY,CAACb,YAAY,CAACpa,CAAC,CAAC,CACxC,CACG,CAAC,gBAEXkX,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKY,QAAAA,GAAG,EAAEoC,UAAU,CAACna,CAAC,CAAE;AAACqY,QAAAA,SAAS,EAAEmI,UAAAA;AAAW,OAAA,EAC5C5G,aAAa,CAAC5Z,CAAC,CACb,CACN,CAAA;AAAA,KAAA,CAEA,CACL,EAACia,SAAS,iBACR/C,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkB,MAAAA,SAAS,EAAEsI,cAAAA;AAAe,KAAA,EAAE1F,YAAY,CAAChB,SAAS,CAAO,CAE7D,CAAC,CAAA;AAEV,GAAA;EACA,OAAO;AAAE0E,IAAAA,MAAM,EAANA,MAAM;AAAE1e,IAAAA,IAAI,EAAE,OAAA;GAAS,CAAA;AAClC,CAAA;AAiBM,SAAU8gB,0BAA0BA,CACxC9f,OAAqC,EAAA;AAErC,EAAA,IAAAyb,KAAA,GAQIzb,OAAO,WAAPA,OAAO,GAAI,EAAE;IAPfoX,SAAS,GAAAqE,KAAA,CAATrE,SAAS;IAAA2I,gBAAA,GAAAtE,KAAA,CACTuE,UAAU;AAAVA,IAAAA,UAAU,GAAAD,gBAAA,KAAGE,KAAAA,CAAAA,GAAAA,iBAAiB,GAAAF,gBAAA;IAAAG,qBAAA,GAAAzE,KAAA,CAC9B0E,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,qBAAA;IACtBE,aAAa,GAAA3E,KAAA,CAAb2E,aAAa;IACbC,iBAAiB,GAAA5E,KAAA,CAAjB4E,iBAAiB;IACjBC,aAAa,GAAA7E,KAAA,CAAb6E,aAAa;IACbC,cAAc,GAAA9E,KAAA,CAAd8E,cAAc,CAAA;EAGhB,SAASN,iBAAiBA,CAAAO,KAAA,EAEX;AAAA,IAAA,IAAAC,aAAA,GAAAD,KAAA,CADbE,OAAO;AAAPA,MAAAA,OAAO,GAAAD,aAAA,KAAGN,KAAAA,CAAAA,GAAAA,kBAAkB,GAAAM,aAAA,CAAA;IAE5B,OAAO;AACLrJ,MAAAA,SAAS,EAAEgJ,aAAa;AACxBnJ,MAAAA,KAAK,EAAE;AACLpX,QAAAA,OAAO,EAAE,MAAM;AACf8gB,QAAAA,mBAAmB,cAAYD,OAAO,GAAA,QAAA;AACvC,OAAA;KACF,CAAA;AACH,GAAA;EAEA,SAASE,UAAUA,CAAC5gB,OAAqB,EAAA;IACvC,OAAO;AACLoX,MAAAA,SAAS,EAAEkJ,aAAa;AACxBrJ,MAAAA,KAAK,EAAE;AACLpX,QAAAA,OAAO,EAAE,MAAM;QACfghB,GAAG,EAAE7gB,OAAO,CAAC6gB,GAAG,GAAG7gB,OAAO,CAAC6gB,GAAG,GAAGN,cAAc;QAC/CO,aAAa,EAAE9gB,OAAO,CAAC+gB,SAAS,GAC3B/gB,OAAO,CAAC+gB,SAAiB,GAC1B1d,SAAAA;AACL,OAAA;KACF,CAAA;AACH,GAAA;EAEA,SAASqa,MAAMA,CAAC9G,KAAyB,EAAA;AACvC,IAAA,IAAQH,UAAU,GAAiCG,KAAK,CAAhDH,UAAU;MAAEC,WAAW,GAAoBE,KAAK,CAApCF,WAAW;MAAExR,aAAa,GAAK0R,KAAK,CAAvB1R,aAAa,CAAA;IAE9C,IAAA8b,KAAA,GAAkCjhB,cAAc,CAACmF,aAAa,CAAC,GAC3D8a,UAAU,CAAC9a,aAAa,CAAC,GACzBhF,cAAc,CAACgF,aAAa,CAAC,GAC7B0b,UAAU,CAAC1b,aAAa,CAAC,GACxB;AAAEkS,QAAAA,SAAS,EAAEiJ,iBAAAA;OAAkC;MAJ5CpJ,KAAK,GAAA+J,KAAA,CAAL/J,KAAK;MAAagK,GAAG,GAAAD,KAAA,CAAd5J,SAAS,CAAA;IAMxB,OAAO,UAAC8J,EAAsB,EAAI;MAChC,OAAApgB,QAAA,KACKogB,EAAE,EAAA;QACLhf,QAAQ,eACN+T,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;UAAKkB,SAAS,EAAEzN,wBAAI,CAACiN,KAAK,CAACQ,SAAS,EAAEA,SAAS,EAAE6J,GAAG,CAAE;AAAChK,UAAAA,KAAK,EAAEA,KAAAA;SAC3D7N,EAAAA,KAAK,CAACwW,IAAI,CAAC;AAAEld,UAAAA,MAAM,EAAE+T,UAAAA;AAAU,SAAE,EAAE,UAACoJ,CAAC,EAAE9gB,CAAC,EAAA;UAAA,OAAK2X,WAAW,CAAC3X,CAAC,CAAC,CAAA;SACzD,CAAA,CAAA;AACN,OAAA,CAAA,CAAA;KAEJ,CAAA;AACH,GAAA;EACA,OAAO;AAAEC,IAAAA,IAAI,EAAE,OAAO;AAAE0e,IAAAA,MAAM,EAANA,MAAAA;GAAQ,CAAA;AAClC,CAAA;AAMgB,SAAAyD,4BAA4BA,CAC1CnhB,OAAA,EAA2C;AAAA,EAAA,IAA3CA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAyC,EAAE,CAAA;AAAA,GAAA;EAE3C,OAAO;IACL0d,MAAM,EAAE,SAAAA,MAAAA,CAAC9G,KAAK,EAAA;AAAA,MAAA,oBAAKX,yBAAA,CAAAC,aAAA,CAACkL,cAAc,EAAAtgB,QAAA,CAAA,EAAA,EAAKd,OAAO,EAAM4W,KAAK,CAAI,CAAA,CAAA;AAAA,KAAA;AAC7D5X,IAAAA,IAAI,EAAE,SAAA;GACP,CAAA;AACH,CAAA;AAEgB,SAAAoiB,cAAcA,CAAAC,KAAA,EAAA;EAAA,IAAAC,OAAA,GAAAC,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAAAC,cAAA,CAAA;AAAA,IAAA,IAC5B5hB,IAAI,GAAAyhB,KAAA,CAAJzhB,IAAI;MACJC,OAAO,GAAAwhB,KAAA,CAAPxhB,OAAO;MACPuX,SAAS,GAAAiK,KAAA,CAATjK,SAAS;MACTH,KAAK,GAAAoK,KAAA,CAALpK,KAAK;AACFjX,MAAAA,OAAO,GAAAkY,6BAAA,CAAAmJ,KAAA,EAAAlJ,SAAA,CAAA,CAAA;IAEV,QAAQvY,IAAI,CAACZ,IAAI;MACf,KAAKL,uBAAe,CAAC8iB,IAAI;QACvB,oBACExL,yBAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACEe,UAAAA,KAAK,EAAEA,KAAM;AACbG,UAAAA,SAAS,EAAEzN,wBAAI,CACbyN,SAAS,EACTvX,OAAO,GAAGA,OAAO,CAACiG,KAAK,GAAIlG,IAAoB,CAAC8hB,SAAS,CAAA;AACzD,SAAA,CACF,CAAA;MAEN,KAAK/iB,uBAAe,CAACuL,IAAI;QACvB,oBACE+L,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,UAAAA,KAAK,EAAEA,KAAM;AAACG,UAAAA,SAAS,EAAEzN,wBAAI,CAACyN,SAAS,EAAEpX,OAAO,CAAC2hB,aAAa,CAAA;SAChE9hB,EAAAA,OAAO,GAAGA,OAAO,CAACiG,KAAK,GAAIlG,IAAoB,CAACoK,IAC9C,CAAC,CAAA;MAEV,KAAKrL,uBAAe,CAAC0L,IAAI;QACvB,oBACE4L,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEe,UAAAA,KAAK,EAAEA,KAAM;UACbG,SAAS,EAAEzN,wBAAI,CAACyN,SAAS,EAAEpX,OAAO,CAAC4hB,aAAa,CAAE;AAClDC,UAAAA,uBAAuB,EAAE;AACvBC,YAAAA,MAAM,EAAEjiB,OAAO,GAAA2hB,CAAAA,cAAA,GAAG3hB,OAAO,CAACiG,KAAK,KAAA,IAAA,GAAA0b,cAAA,GAAI,EAAE,GAAI5hB,IAAoB,CAACwK,IAAAA;;AAC9D,SAAA,CACF,CAAA;AAEN,MAAA;QACE,oBAAO6L,yBAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,EAAI,wBAAsB,EAACtW,IAAI,CAACZ,IAAS,CAAC,CAAA;AACpD,KAAA;AAAA,GAAA,SAAA;IAAAsiB,OAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAGI,IAAMS,kBAAkB,GAAkB,CAC/C;AAAEC,EAAAA,IAAI,EAAE,KAAK;AAAElc,EAAAA,KAAK,EAAE,IAAA;AAAM,CAAA,EAC5B;AAAEkc,EAAAA,IAAI,EAAE,IAAI;AAAElc,EAAAA,KAAK,EAAE,KAAA;AAAO,CAAA,EAC7B;AASe,SAAAmc,yBAAyBA,CACvCjiB,OAAA,EAAwC;AAAA,EAAA,IAAAkiB,qBAAA,CAAA;AAAA,EAAA,IAAxCliB,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAsC,EAAE,CAAA;AAAA,GAAA;AAExC,EAAA,IAAMmiB,cAAc,GAAGC,oBAAoB,CAAA,CAAAF,qBAAA,GAACliB,OAAO,CAACqiB,aAAa,KAAAH,IAAAA,GAAAA,qBAAA,GAAI,EAAE,CAAC,CAAA;EACxE,IAAAI,qBAAA,GAAAxhB,QAAA,CAAA;AACEyhB,MAAAA,cAAc,EAAEJ,cAAc;AAC9BK,MAAAA,cAAc,EAAET,kBAAAA;AAAkB,KAAA,EAC/B/hB,OAAO,CAAA;IAHJyiB,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,UAAC/L,KAAK,EAAEgM,SAAS,EAAI;AAC7C,IAAA,IAAMC,SAAS,GAAGjM,KAAK,CAAC3U,KAAK,CAACjD,IAAI,CAAA;IAClC,IAAI4X,KAAK,CAAC4B,YAAY,EAAE;AACtB,MAAA,OAAO,UAACsK,CAAC,EAAA;QAAA,OAAAhiB,QAAA,KACJgiB,CAAC,EAAA;UACJ5gB,QAAQ,EAAE0gB,SAAS,CAACnF,WAAW,CAAC7G,KAAK,CAAC4B,YAAa,EAAE,CAAA;AAAC,SAAA,CAAA,CAAA;OACtD,CAAA;AACH,KAAA;AACD,IAAA,IAAIqK,SAAS,KAAK3kB,iBAAS,CAACkE,QAAQ,EAAE;MACpC,OAAOwgB,SAAS,CAAChJ,WAAW,CAAC;QAC3B3C,KAAK,EAAEL,KAAK,CAACK,KAAK;QAClBG,SAAS,EAAER,KAAK,CAACQ,SAAS;AAC1BlS,QAAAA,aAAa,EAAE;AAAElG,UAAAA,IAAI,EAAE,UAAU;AAAEsM,UAAAA,SAAS,EAAE,IAAA;SAAM;QACpDoL,WAAW,EAAE,SAAAA,WAAAA,CAACjG,CAAC,EAAA;AAAA,UAAA,OAAKmG,KAAK,CAACF,WAAW,CAACjG,CAAC,EAAEA,CAAC,EAAE;YAAEnL,OAAO,EAAEsR,KAAK,CAACtR,OAAAA;AAAO,WAAE,CAAC,CAAA;AAAA,SAAA;QACvEmR,UAAU,EAAEG,KAAK,CAACH,UAAAA;AACnB,OAAA,CAAC,CAAA;AACH,KAAA;AACD,IAAA,IAAMvR,aAAa,GAAG0R,KAAK,CAAC1R,aAAa,CAAA;AACzC,IAAA,IAAImZ,UAAU,GAAGnZ,aAAa,CAAClG,IAAI,CAAA;AACnC,IAAA,IAAI6jB,SAAS,IAAI3kB,iBAAS,CAAC6kB,GAAG,EAAE,oBAAO9M,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EAAA,IAAA,EAAE,oBAAkB,CAAG,CAAA;AAC9D,IAAA,IAAI/V,qBAAqB,CAAC8E,aAAa,CAAC,EACtC,OAAO,UAAC4d,CAAC,EAAA;MAAA,OAAAhiB,QAAA,KACJgiB,CAAC,EAAA;AACJ1L,QAAAA,SAAS,EAAEsL,gBAAgB;AAC3BxgB,QAAAA,QAAQ,eACN+T,yBAAA,CAAAC,aAAA,CAAC8M,kBAAkB,EAAA;UACjB/gB,KAAK,EAAE2U,KAAK,CAAC3U,KAAM;AACnBwG,UAAAA,eAAe,EAAEmO,KAAK,CAACxC,WAAW,CAAC3L,eAAgB;UACnDnD,OAAO,EAAEsR,KAAK,CAACtR,OAAQ;UACvB8R,SAAS,EAAER,KAAK,CAACQ,SAAU;UAC3BH,KAAK,EAAEL,KAAK,CAACK,KAAM;UACnBlI,SAAS,EAAE7J,aAAa,CAAC6J,SAAAA;SAAU,CAAA;AAEtC,OAAA,CAAA,CAAA;KACD,CAAA;AACJ,IAAA,IAAMkU,MAAM,GAAGJ,SAAS,KAAK3kB,iBAAS,CAAC2D,IAAI,CAAA;IAC3C,IAAI2gB,cAAc,IAAI,IAAI,IAAIS,MAAM,IAAIrM,KAAK,CAAC5W,OAAO,IAAI,IAAI,EAAE;AAC7D,MAAA,OAAO4iB,SAAS,CAACpJ,UAAU,CAAA1Y,QAAA,KAAM8V,KAAK,EAAA;AAAE5W,QAAAA,OAAO,EAAEwiB,cAAAA;AAAc,OAAA,CAAE,CAAC,CAAA;AACnE,KAAA;IACD,IAAInE,UAAU,KAAK7f,sBAAc,CAAC4G,QAAQ,IAAIV,UAAU,CAACkS,KAAK,CAAC,EAAE;AAC/D,MAAA,OAAO2L,cAAc,CAAC7E,MAAM,CAAC9G,KAAK,EAAEgM,SAAS,CAAC,CAAA;AAC/C,KAAA;AACD,IAAA,QAAQvE,UAAU;MAChB,KAAK7f,sBAAc,CAAC0kB,QAAQ;AAC1B,QAAA,OAAOf,cAAc,CAACzE,MAAM,CAAC9G,KAAK,EAAEgM,SAAS,CAAC,CAAA;AACjD,KAAA;IACD,OAAOvE,UAAU,KAAK7f,sBAAc,CAAC2kB,QAAQ,gBAC3ClN,yBAAA,CAAAC,aAAA,CAACkN,cAAS,EAAA;MACRnM,KAAK,EAAEL,KAAK,CAACK,KAAM;MACnBG,SAAS,EAAER,KAAK,CAACQ,SAAU;MAC3B9R,OAAO,EAAEsR,KAAK,CAACtR,OAAAA;AAAQ,KACvB,CAAA,gBAEF2Q,yBAAA,CAAAC,aAAA,CAACmN,YAAY,EAAA;MACXjM,SAAS,EAAEzN,wBAAI,CAACiN,KAAK,CAACQ,SAAS,EAAEqL,UAAU,CAAE;MAC7CxL,KAAK,EAAEL,KAAK,CAACK,KAAM;MACnBqB,EAAE,EAAE1B,KAAK,CAAC0B,EAAG;MACbgL,QAAQ,EAAE1M,KAAK,CAAC7P,QAAS;MACzBzB,OAAO,EAAEsR,KAAK,CAACtR,OAAQ;AACvBie,MAAAA,OAAO,EAAEC,qBAAqB,CAAC5M,KAAK,CAAC3U,KAAK,CAACjD,IAAI,CAAA;AAAE,KACjD,CACH,CAAA;AACH,GAAC,CAAC,CAAA;AACJ,CAAA;AAEgB,SAAAgkB,kBAAkBA,CAAAS,KAAA,EAAA;EAAA,IAAAC,QAAA,GAAAnC,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAAAoC,MAAA,CAAA;AAAA,IAAA,IAChCre,OAAO,GAAAme,KAAA,CAAPne,OAAO;MACP8R,SAAS,GAAAqM,KAAA,CAATrM,SAAS;MACTrI,SAAS,GAAA0U,KAAA,CAAT1U,SAAS;MACTtG,eAAe,GAAAgb,KAAA,CAAfhb,eAAe;MACfxG,KAAK,GAAAwhB,KAAA,CAALxhB,KAAK;MACLgV,KAAK,GAAAwM,KAAA,CAALxM,KAAK,CAAA;AASL,IAAA,IAAM5V,CAAC,GAAGiE,OAAO,CAACQ,KAAK,CAAA;IACvB,IAAMkE,IAAI,GAAA2Z,CAAAA,MAAA,GACPlb,eAAe,CAACuG,YAAY,CAAC/M,KAAK,EAAEZ,CAAC,CAAC,GACnC0N,SAAS,GACTtG,eAAe,CAACuJ,SAAS,CAAC/P,KAAK,EAAEZ,CAAC,CAAC,KAAA,IAAA,GAAAsiB,MAAA,GAAK,EAAE,CAAA;IAChD,oBACE1N,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKe,MAAAA,KAAK,EAAEA,KAAM;AAACG,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAA,EACrCpN,IACE,CAAC,CAAA;AACN,GAAA,SAAA;IAAA0Z,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAGE,SAAUL,YAAYA,CAAAO,MAAA,EAAA;EAAA,IAAAC,QAAA,GAAAtC,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAC1Bjc,OAAO,GAAAse,MAAA,CAAPte,OAAO;MACPie,OAAO,GAAAK,MAAA,CAAPL,OAAO;AACJ3M,MAAAA,KAAK,GAAAsB,6BAAA,CAAA0L,MAAA,EAAAE,UAAA,CAAA,CAAA;AAKR,IAAA,IAAAC,iBAAA,GACEC,qBAAgB,CAAC1e,OAAO,CAAC;MADnB2e,SAAS,GAAAF,iBAAA,CAATE,SAAS;MAAEne,KAAK,GAAAie,iBAAA,CAALje,KAAK;MAAEoe,QAAQ,GAAAH,iBAAA,CAARG,QAAQ;AAAKC,MAAAA,UAAU,GAAAjM,6BAAA,CAAA6L,iBAAA,EAAAK,UAAA,CAAA,CAAA;AAEjD,IAAA,oBACEnO,yBAAA,CAAAC,aAAA,CAAApV,OAAAA,EAAAA,QAAA,KACMqjB,UAAU,EAAA;AACdnlB,MAAAA,IAAI,EAAEukB,OAAO,CAAC,CAAC,CAAE;AACjBzd,MAAAA,KAAK,EAAEA,KAAK,IAAI,IAAI,GAAG,EAAE,GAAGyd,OAAO,CAAC,CAAC,CAAC,CAACzd,KAAK,CAAE;AAC9Coe,MAAAA,QAAQ,EAAE,SAAAA,QAAC9U,CAAAA,CAAC,EAAI;AACd9J,QAAAA,OAAO,CAACQ,KAAK,GAAGyd,OAAO,CAAC,CAAC,CAAC,CAACnU,CAAC,CAACiV,MAAM,CAACve,KAAK,CAAC,CAAA;AAC5C,OAAA;KACI8Q,EAAAA,KAAK,CAAC,CACV,CAAA;AACF,GAAA,SAAA;IAAAiN,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAKY,SAAAS,8BAA8BA,CAC5CtkB,OAAA,EAA6C;EAE7C,OAAO;AACLhB,IAAAA,IAAI,EAAE,WAAW;IACjB0e,MAAM,EAAE,SAAAA,MAAAA,CAAA6G,MAAA,EAAA;AAAA,MAAA,IAAGjO,SAAS,GAAAiO,MAAA,CAATjO,SAAS,CAAA;MAAA,OAAQ;AAC1BuF,QAAAA,KAAK,EAAE,SAAAA,KAAC2I,CAAAA,EAAE,EAAI;AACZ,UAAA,IAAIC,eAAe,CAACnO,SAAS,CAAC,EAAE;AAAA,YAAA,IAAAoO,oBAAA,CAAA;AAC9B,YAAA,OAAOpJ,cAAc,CAAAoJ,CAAAA,oBAAA,GACnBpO,SAAS,CAACqO,SAAS,KAAA,IAAA,GAAAD,oBAAA,GAAIpmB,0BAAkB,CAAC6c,YAAY,eACtDlF,yBAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;cAAGkB,SAAS,EAAEd,SAAS,CAACoL,SAAAA;AAAU,aAAA,CAAG,CACtC,CAAC8C,EAAE,CAAC,CAAA;AACN,WAAA;SACF;AACD5I,QAAAA,QAAQ,EAAE,CAAC;AACXtF,QAAAA,SAAS,EAATA,SAAAA;OACD,CAAA;AAAA,KAAA;GACF,CAAA;AACH,CAAA;AAkBgB,SAAAsO,sBAAsBA,CACpC5kB,OAAA,EAAoC;AAAA,EAAA,IAApCA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAkC,EAAE,CAAA;AAAA,GAAA;EAEpC,OAAO;AACLJ,IAAAA,IAAI,EAAEqiB,yBAAyB,CAACjiB,OAAO,CAACJ,IAAI,CAAC;AAC7CC,IAAAA,OAAO,EAAEshB,4BAA4B,CAACnhB,OAAO,CAACH,OAAO,CAAC;AACtDF,IAAAA,MAAM,EAAEof,2BAA2B,CAAC/e,OAAO,CAACL,MAAM,CAAC;AACnDse,IAAAA,KAAK,EAAEoB,0BAA0B,CAACrf,OAAO,CAACie,KAAK,CAAC;AAChDne,IAAAA,KAAK,EAAEggB,0BAA0B,CAAC9f,OAAO,CAACF,KAAK,CAAC;AAChD+Z,IAAAA,KAAK,EAAEmF,0BAA0B,CAAChf,OAAO,CAAC6Z,KAAK,CAAC;AAChDvD,IAAAA,SAAS,EAAEgO,8BAA8B,CAAkB,CAAC;AAC5DnN,IAAAA,YAAY,EAAE0N,2BAA2B,CAAC7kB,OAAO,CAAC6a,MAAM,CAAC;IACzDjG,UAAU,EAAEkQ,+BAA+B,EAAE;GAC9C,CAAA;AACH,CAAA;AAEA,SAASD,2BAA2BA,CAClC7kB,OAAA,EAA0C;AAAA,EAAA,IAA1CA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAwC,EAAE,CAAA;AAAA,GAAA;AAE1C,EAAA,OAAO+kB,oBAAoB,CAAC,UAACnO,KAAK,EAAEgM,SAAS,EAAI;AAC/C,IAAA,IAAM/H,MAAM,GAAGR,iBAAiB,CAAAvZ,QAAA,KACzB8V,KAAK,EAAA;MAAEQ,SAAS,EAAEzN,wBAAI,CAACiN,KAAK,CAACQ,SAAS,EAAEpX,OAAO,CAACoX,SAAS,CAAA;AAAC,KAAA,CAAA,EAC/DwL,SAAS,CACV,CAAA;IACD,OAAO;AACL1gB,MAAAA,QAAQ,eAAE+T,yBAAA,CAAAC,aAAA,CAAC8O,aAAa,EAAAlkB,QAAA,CAAA;AAAC+Z,QAAAA,MAAM,EAAEA,MAAAA;OAAY7a,EAAAA,OAAO,CAAI,CAAA;MACxDoX,SAAS,EAAEyD,MAAM,CAACzD,SAAS;MAC3BH,KAAK,EAAE4D,MAAM,CAAC5D,KAAK;MACnBgO,MAAM,EAAE,SAAAA,MAAAA,CAAC7V,CAAC,EAAA;AAAA,QAAA,OACRA,CAAC,IAAIwH,KAAK,CAAC8D,YAAY,GAClB9D,KAAK,CAAC8D,YAAY,CAACwK,IAAI,CAACC,aAAa,GAAG/V,CAAC,GAC1C/L,SAAS,CAAA;AAAA,OAAA;KAChB,CAAA;AACH,GAAC,CAAC,CAAA;AACJ,CAAA;AAEA,SAASgZ,0BAA0BA,GAAA;AACjC,EAAA,OAAOuI,sBAAsB,CAAC;AAC5B/J,IAAAA,MAAM,EAAE;AAAEzD,MAAAA,SAAS,EAAE,SAAA;KAAW;AAChCtX,IAAAA,KAAK,EAAE;AAAEsX,MAAAA,SAAS,EAAE,OAAA;KAAS;AAC7B6G,IAAAA,KAAK,EAAE;AAAE7G,MAAAA,SAAS,EAAE,eAAA;KAAiB;AACrCzX,IAAAA,MAAM,EAAE;AAAEyX,MAAAA,SAAS,EAAE,QAAA;KAAU;AAC/BxX,IAAAA,IAAI,EAAE;AAAE6iB,MAAAA,UAAU,EAAE,MAAA;KAAQ;AAC5B5iB,IAAAA,OAAO,EAAE;AAAE+hB,MAAAA,aAAa,EAAE,MAAM;AAAED,MAAAA,aAAa,EAAE,MAAA;AAAQ,KAAA;AAC1D,GAAA,CAAC,CAAA;AACJ,CAAA;AAEA,SAAShF,uBAAuBA,CAC9B5d,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,WAAW,CAAA;AAC/B,CAAA;AAEA,SAASud,kBAAkBA,CACzBxd,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,MAAM,CAAA;AAC1B,CAAA;AAEA,SAASyd,mBAAmBA,CAC1B1d,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAA;AAC3B,CAAA;AAEA,SAAS+d,mBAAmBA,CAC1Bhe,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAA;AAC3B,CAAA;AAEA,SAASqe,oBAAoBA,CAC3Bte,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,QAAQ,CAAA;AAC5B,CAAA;AAEA,SAASue,wBAAwBA,CAC/Bxe,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,YAAY,CAAA;AAChC,CAAA;AAEA,SAASme,oBAAoBA,CAC3Bpe,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,QAAQ,CAAA;AAC5B,CAAA;AAEA,SAAS6d,qBAAqBA,CAC5B9d,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,SAAS,CAAA;AAC7B,CAAA;AAEA,SAASie,mBAAmBA,CAC1Ble,CAAuB,EAAA;AAEvB,EAAA,OAAOA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAA;AAC3B,CAAA;AACA,SAAS8e,OAAOA,CAAI/e,CAAsB,EAAEsC,CAAI,EAAA;EAC9C,OAAOtC,CAAC,IAAI,IAAI,GAAG,IAAI,GAAGqK,KAAK,CAACC,OAAO,CAACtK,CAAC,CAAC,GAAGA,CAAC,CAACwF,QAAQ,CAAClD,CAAC,CAAC,GAAGA,CAAC,KAAKtC,CAAC,CAAA;AACtE,CAAA;AAEM,SAAU0lB,eAAeA,CAAC/d,CAAmB,EAAA;AACjD,EAAA,OAAOA,CAAC,CAAC1H,IAAI,KAAKT,4BAAoB,CAACkjB,IAAI,CAAA;AAC7C,CAAA;AAEgB,SAAAsD,oBAAoBA,CAClCrH,MAA4C,EAC5C1d,OAA6C,EAAA;AAE7C,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,QAAQ;AAAE0e,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAK1d,OAAO,CAAA,CAAA;AAC7C,CAAA;AAEgB,SAAAolB,mBAAmBA,CACjC1H,MAA2C,EAC3C1d,OAA4C,EAAA;AAE5C,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,OAAO;AAAE0e,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAK1d,OAAO,CAAA,CAAA;AAC5C,CAAA;AAEgB,SAAA2iB,kBAAkBA,CAChCjF,MAA0C,EAC1C1d,OAA2C,EAAA;AAE3C,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,MAAM;AAAE0e,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAK1d,OAAO,CAAA,CAAA;AAC3C,CAAA;AAEgB,SAAAqlB,mBAAmBA,CACjC3H,MAA2C,EAC3C1d,OAAiD,EAAA;AAEjD,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,OAAO;AAAE0e,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAK1d,OAAO,CAAA,CAAA;AAC5C,CAAA;AAEgB,SAAAslB,wBAAwBA,CACtC5H,MAAgD,EAChD1d,OAAiD,EAAA;AAEjD,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,YAAY;AAAE0e,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAK1d,OAAO,CAAA,CAAA;AACjD,CAAA;AAEgB,SAAAulB,uBAAuBA,CACrC7H,MAAoD,EACpD1d,OAAgD,EAAA;AAEhD,EAAA,OAAAc,QAAA,CAAA;AAAS9B,IAAAA,IAAI,EAAE,WAAA;AAAW,GAAA,EAAKgB,OAAO,EAAA;AAAE0d,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,CAAA,CAAA;AAChD,CAAA;AAQgB,SAAA0E,oBAAoBA,CAACpiB,OAAA,EAAmC;AAAA,EAAA,IAAnCA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAiC,EAAE,CAAA;AAAA,GAAA;AACtE,EAAA,OAAO2iB,kBAAkB,CACvB,UAAC/L,KAAK,EAAE4O,OAAO,EAAA;AAAA,IAAA,oBACbvP,yBAAA,CAAAC,aAAA,CAACuP,kBAAkB,EAAA;MACjBrO,SAAS,EAAEzN,wBAAI,CAACiN,KAAK,CAACQ,SAAS,EAAEpX,OAAO,CAACoX,SAAS,CAAE;MACpDsO,KAAK,EAAE9O,KAAK,CAACtR,OAAQ;MACrBgT,EAAE,EAAE1B,KAAK,CAAC0B,EAAG;MACbtY,OAAO,EAAE4W,KAAK,CAAC5W,OAAS;MACxBiD,QAAQ,EAAE2T,KAAK,CAAC3T,QAAS;MACzB8L,SAAS,EAAE/O,OAAO,CAAC+O,SAAU;MAC7B4W,YAAY,EAAE3lB,OAAO,CAAC2lB,YAAa;AACnCpC,MAAAA,OAAO,EAAEqC,sBAAsB,CAAChP,KAAK,CAAC3U,KAAK,CAACjD,IAAI,CAAA;AAAE,KAAA,CAClD,CAAA;AAAA,GACH,EACD;AACEgB,IAAAA,OAAO,EAAE,IAAA;AACV,GAAA,CACF,CAAA;AACH,CAAA;AAmBM,SAAUylB,kBAAkBA,CAAAI,MAAA,EAAA;EAAA,IAAAC,QAAA,GAAAvE,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAChCmE,KAAK,GAAAG,MAAA,CAALH,KAAK;MACL1lB,OAAO,GAAA6lB,MAAA,CAAP7lB,OAAO;MACPoX,SAAS,GAAAyO,MAAA,CAATzO,SAAS;MACTmM,OAAO,GAAAsC,MAAA,CAAPtC,OAAO;MACPtgB,QAAQ,GAAA4iB,MAAA,CAAR5iB,QAAQ;MAAA8iB,gBAAA,GAAAF,MAAA,CACR9W,SAAS;AAATA,MAAAA,SAAS,GAAAgX,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;AAC7BpP,MAAAA,KAAK,GAAAsB,6BAAA,CAAA2N,MAAA,EAAAI,UAAA,CAAA,CAAA;AAER,IAAA,IAAQngB,KAAK,GAAe4f,KAAK,CAAzB5f,KAAK;MAAEgQ,QAAQ,GAAK4P,KAAK,CAAlB5P,QAAQ,CAAA;IACvB,IAAAoQ,SAAA,GAAoBC,cAAQ,CAAC,CAACljB,QAAQ,IAAI6C,KAAK,IAAI,IAAI,CAAC;AAAjDsgB,MAAAA,SAAS,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;IAChB,IAAMG,eAAe,GAAGva,aAAO,CAC7B,YAAA;MAAA,OAAMtL,MAAM,CAAC2C,WAAW,CAACnD,OAAO,CAACU,GAAG,CAAC,UAAC3B,CAAC,EAAA;QAAA,OAAK,CAACwkB,OAAO,CAACxkB,CAAC,CAAC+G,KAAK,CAAC,EAAE/G,CAAC,CAAC+G,KAAK,CAAC,CAAA;AAAA,OAAA,CAAC,CAAC,CAAA;KACzE,EAAA,CAAC9F,OAAO,CAAC,CACV,CAAA;AACD,IAAA,oBACEiW,yBAAA,CAAAC,aAAA,CAAApV,QAAAA,EAAAA,QAAA,KACM8V,KAAK,EAAA;AACTQ,MAAAA,SAAS,EAAEA,SAAU;MACrB8M,QAAQ,EAAE,SAAAA,QAAAA,CAAC7iB,CAAC,EAAA;QAAA,OAAMqkB,KAAK,CAAC5f,KAAK,GAAGugB,eAAe,CAAChlB,CAAC,CAACgjB,MAAM,CAACve,KAAK,CAAC,CAAA;OAAE;AACjEA,MAAAA,KAAK,EAAEyd,OAAO,CAACzd,KAAK,CAAE;AACtBgQ,MAAAA,QAAQ,EAAEA,QAAAA;AAAS,KAAA,CAAA,EAElBsQ,SAAS,iBACRnQ,yBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQpQ,MAAAA,KAAK,EAAC,EAAA;AAAE,KAAA,EAAE7C,QAAQ,GAAG0iB,YAAY,GAAG5W,SAAkB,CAC/D,EACA/O,OAAO,CAACU,GAAG,CAAC,UAAC3B,CAAC,EAAE0R,CAAC,EAAA;MAAA,oBAChBwF,yBAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQY,QAAAA,GAAG,EAAErG,CAAE;AAAC3K,QAAAA,KAAK,EAAEyd,OAAO,CAACxkB,CAAC,CAAC+G,KAAK,CAAE;QAACgQ,QAAQ,EAAE/W,CAAC,CAAC+W,QAAAA;OAClD/W,EAAAA,CAAC,CAACijB,IACG,CAAC,CAAA;AAAA,KACV,CACK,CAAC,CAAA;AACT,GAAA,SAAA;IAAA8D,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAGE,SAAUF,sBAAsBA,CAACU,EAAU,EAAA;AAC/C,EAAA,QAAQA,EAAE;IACR,KAAKpoB,iBAAS,CAAC6C,MAAM,CAAA;IACrB,KAAK7C,iBAAS,CAACyD,GAAG,CAAA;IAClB,KAAKzD,iBAAS,CAACqoB,MAAM;AACnB,MAAA,OAAO,UAAC7f,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;AAAA,OAAA,CAAA;AACjB,IAAA;AACE,MAAA,OAAO,UAACA,CAAC,EAAA;AAAA,QAAA,IAAA8f,WAAA,CAAA;AAAA,QAAA,OAAA,CAAAA,WAAA,GAAK9f,CAAC,IAAA,IAAA,GAAA,KAAA,CAAA,GAADA,CAAC,CAAE0L,QAAQ,EAAE,KAAA,IAAA,GAAAoU,WAAA,GAAI,EAAE,CAAA;AAAA,OAAA,CAAA;AACpC,GAAA;AACH,CAAA;AAIM,SAAUhD,qBAAqBA,CAAC8C,EAAU,EAAA;AAC9C,EAAA,QAAQA,EAAE;IACR,KAAKpoB,iBAAS,CAAC6C,MAAM;AACnB,MAAA,OAAO,CAAC,MAAM,EAAE,UAAC2F,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;AAAA,OAAA,EAAE,UAACA,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;OAAC,CAAA,CAAA;IACrC,KAAKxI,iBAAS,CAAC2D,IAAI;AACjB,MAAA,OAAO,CAAC,MAAM,EAAE,UAAC6E,CAAC,EAAA;QAAA,OAAKA,CAAC,KAAK,MAAM,CAAA;AAAA,OAAA,EAAE,UAACA,CAAC,EAAA;AAAA,QAAA,IAAA+f,YAAA,CAAA;AAAA,QAAA,OAAA,CAAAA,YAAA,GAAK/f,CAAC,IAAA,IAAA,GAAA,KAAA,CAAA,GAADA,CAAC,CAAE0L,QAAQ,EAAE,KAAA,IAAA,GAAAqU,YAAA,GAAI,EAAE,CAAA;OAAC,CAAA,CAAA;IAClE,KAAKvoB,iBAAS,CAACyD,GAAG;AAChB,MAAA,OAAO,CACL,QAAQ,EACR,UAAC+E,CAAC,EAAA;QAAA,OAAMA,CAAC,KAAK,EAAE,GAAGggB,QAAQ,CAAChgB,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,KAAKxI,iBAAS,CAACyS,IAAI;AACjB,MAAA,OAAO,CAAC,MAAM,EAAE,UAACjK,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;AAAA,OAAA,EAAE,UAACA,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAA;OAAC,CAAA,CAAA;IACrC,KAAKxI,iBAAS,CAACqoB,MAAM;AACnB,MAAA,OAAO,CAAC,QAAQ,EAAE,UAAC7f,CAAC,EAAA;QAAA,OAAKigB,UAAU,CAACjgB,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;SAEgBoe,+BAA+BA,GAAA;EAC7C,OAAOQ,wBAAwB,CAAC,UAAC1O,KAAK,EAAA;AAAA,IAAA,oBAAKX,yBAAA,CAAAC,aAAA,CAAC0Q,iBAAiB,EAAKhQ,KAAM,CAAG,CAAA;GAAC,CAAA,CAAA;AAC9E,CAAA;AAEgB,SAAAgQ,iBAAiBA,CAAAC,MAAA,EAAA;EAAA,IAAAC,QAAA,GAAAvF,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAC/B3M,UAAU,GAAAiS,MAAA,CAAVjS,UAAU;MACV1S,QAAQ,GAAA2kB,MAAA,CAAR3kB,QAAQ;MACRkV,SAAS,GAAAyP,MAAA,CAATzP,SAAS;MACTH,KAAK,GAAA4P,MAAA,CAAL5P,KAAK;MACLgO,MAAM,GAAA4B,MAAA,CAAN5B,MAAM,CAAA;AAEN,IAAA,IAAM5jB,CAAC,GAAGuT,UAAU,CAAC9O,KAAK,CAAA;AAC1BkQ,IAAAA,eAAS,CAAC,YAAK;AACb,MAAA,IAAI3U,CAAC,EAAE;AACLuT,QAAAA,UAAU,CAACE,QAAQ,CAAC,UAACxO,EAAE,EAAA;UAAA,OAAM;YAAEqO,OAAO,EAAEtT,CAAC,CAACsT,OAAO;YAAEE,OAAO,EAAExT,CAAC,CAACsT,OAAAA;WAAS,CAAA;AAAA,SAAC,CAAC,CAAA;AAC1E,OAAA;KACF,EAAE,CAACtT,CAAC,IAAA,IAAA,GAAA,KAAA,CAAA,GAADA,CAAC,CAAEsT,OAAO,CAAC,CAAC,CAAA;IAChB,OAAOtT,CAAC,YAADA,CAAC,CAAEsT,OAAO,gBACfsB,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkB,MAAAA,SAAS,EAAEzN,wBAAI,CAACyN,SAAS,CAAE;AAACH,MAAAA,KAAK,EAAEA,KAAM;AAAClR,MAAAA,GAAG,EAAEkf,MAAAA;KACjD/iB,EAAAA,QACE,CAAC,gBAEN+T,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EAAA,IAAK,CACN,CAAA;AAAC,GAAA,SAAA;IAAA2Q,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAGE,SAAU9B,aAAaA,CAAA+B,MAAA,EAAA;EAAA,IAAAC,QAAA,GAAAzF,yBAAA,EAAA,CAAA;AAAA,EAAA,IAAA;AAAA,IAAA,IAC3B0F,UAAU,GAAAF,MAAA,CAAVE,UAAU;MACV7P,SAAS,GAAA2P,MAAA,CAAT3P,SAAS;MAAA8P,aAAA,GAAAH,MAAA,CACTlM,MAAM;MAAIsM,UAAU,GAAAD,aAAA,CAAVC,UAAU;MAAEC,YAAY,GAAAF,aAAA,CAAZE,YAAY;MAAEvN,KAAK,GAAAqN,aAAA,CAALrN,KAAK;MAAE3X,QAAQ,GAAAglB,aAAA,CAARhlB,QAAQ;MAAEwY,YAAY,GAAAwM,aAAA,CAAZxM,YAAY,CAAA;IAIjE,IAAM2M,EAAE,GAAG3M,YAAY,CAAA;AACvB,IAAA,IAAMuJ,SAAS,GAAGoD,EAAE,IAAIA,EAAE,CAACC,OAAO,GAAGD,EAAE,CAAC/X,KAAK,GAAGjM,SAAS,CAAA;AACzD,IAAA,oBACE4S,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EACG0D,IAAAA,EAAAA,KAAK,EACLuN,YAAY,EACZllB,QAAQ,EACR+hB,SAAS,iBAAIhO,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKkB,MAAAA,SAAS,EAAE6P,UAAAA;AAAW,KAAA,EAAEhD,SAAe,CAAC,EAC1DkD,UACH,CAAG,CAAA;AACH,GAAA,SAAA;IAAAH,QAAA,EAAA,CAAA;AAAA,GAAA;AAAA;;ACh9BG,IAAMO,oBAAoB,GAA2B;AAC1D1N,EAAAA,KAAK,EAAE;AACLsF,IAAAA,eAAe,EAAE,WAAW;IAC5BF,eAAe,eAAEhJ,yBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMkB,MAAAA,SAAS,EAAC,cAAA;AAAc,KAAA,EAAE,IAAO,CAAA;GACzD;AACD6G,EAAAA,KAAK,EAAE;AACLqB,IAAAA,cAAc,EAAE,gDAAgD;AAChEC,IAAAA,UAAU,EAAE,WAAW;AACvBG,IAAAA,cAAc,EAAE,MAAA;GACjB;AACD5f,EAAAA,KAAK,EAAE;AACLugB,IAAAA,iBAAiB,EAAE,qBAAqB;AACxCD,IAAAA,aAAa,EAAE,iBAAiB;AAChCE,IAAAA,aAAa,EAAE,OAAA;GAChB;AACD3gB,EAAAA,MAAM,EAAE;AACNyX,IAAAA,SAAS,EAAE,sCAAA;GACZ;AACDyD,EAAAA,MAAM,EAAE;AACNzD,IAAAA,SAAS,EAAE,eAAe;AAC1B6P,IAAAA,UAAU,EAAE,yBAAA;GACb;AACDrnB,EAAAA,IAAI,EAAE;AACJ8iB,IAAAA,gBAAgB,EAAE,kCAAA;AACnB,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/lib/types.d.ts CHANGED
@@ -72,7 +72,8 @@ export declare enum DynamicPropertyType {
72
72
  Disabled = "Disabled",
73
73
  Display = "Display",
74
74
  Style = "Style",
75
- LayoutStyle = "LayoutStyle"
75
+ LayoutStyle = "LayoutStyle",
76
+ AllowedOptions = "AllowedOptions"
76
77
  }
77
78
  export interface EntityExpression {
78
79
  type: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-typed-forms/schemas",
3
- "version": "7.0.0",
3
+ "version": "7.1.0",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -44,6 +44,7 @@ import {
44
44
  import { dataControl } from "./controlBuilder";
45
45
  import {
46
46
  defaultUseEvalExpressionHook,
47
+ useEvalAllowedOptionsHook,
47
48
  useEvalDefaultValueHook,
48
49
  useEvalDisabledHook,
49
50
  useEvalDisplayHook,
@@ -208,6 +209,7 @@ export interface DataControlProps {
208
209
  style: React.CSSProperties | undefined;
209
210
  childCount: number;
210
211
  renderChild: ChildRenderer;
212
+ allowedOptions?: Control<any[] | undefined>;
211
213
  elementRenderer?: (elemProps: Control<any>) => ReactNode;
212
214
  }
213
215
  export type CreateDataProps = (
@@ -239,6 +241,7 @@ export function useControlRenderer(
239
241
  const useIsVisible = useEvalVisibilityHook(useExpr, definition, schemaField);
240
242
  const useIsReadonly = useEvalReadonlyHook(useExpr, definition);
241
243
  const useIsDisabled = useEvalDisabledHook(useExpr, definition);
244
+ const useAllowedOptions = useEvalAllowedOptionsHook(useExpr, definition);
242
245
  const useCustomStyle = useEvalStyleHook(
243
246
  useExpr,
244
247
  DynamicPropertyType.Style,
@@ -289,6 +292,7 @@ export function useControlRenderer(
289
292
  },
290
293
  );
291
294
 
295
+ const allowedOptions = useAllowedOptions(dataContext);
292
296
  const defaultValueControl = useDefaultValue(dataContext);
293
297
  const [control, childContext] = getControlData(
294
298
  schemaField,
@@ -353,6 +357,7 @@ export function useControlRenderer(
353
357
  schemaField,
354
358
  displayControl,
355
359
  style: customStyle,
360
+ allowedOptions,
356
361
  });
357
362
  const renderedControl = renderer.renderLayout({
358
363
  ...labelAndChildren,
@@ -374,6 +379,7 @@ export function useControlRenderer(
374
379
  useIsDisabled,
375
380
  useCustomStyle,
376
381
  useLayoutStyle,
382
+ useAllowedOptions,
377
383
  useDynamicDisplay,
378
384
  useValidation,
379
385
  renderer,
@@ -390,8 +396,8 @@ export function lookupSchemaField(
390
396
  const fieldName = isGroupControlsDefinition(c)
391
397
  ? c.compoundField
392
398
  : isDataControlDefinition(c)
393
- ? c.field
394
- : undefined;
399
+ ? c.field
400
+ : undefined;
395
401
  return fieldName ? findField(fields, fieldName) : undefined;
396
402
  }
397
403
  export function getControlData(
@@ -437,15 +443,22 @@ export function defaultDataProps({
437
443
  options,
438
444
  elementRenderer,
439
445
  style,
446
+ allowedOptions,
440
447
  ...props
441
448
  }: DataControlProps): DataRendererProps {
442
449
  const className = cc(definition.styleClass);
443
450
  const required = !!definition.required;
451
+ const fieldOptions =
452
+ (field.options?.length ?? 0) === 0 ? null : field.options;
453
+ const allowed = allowedOptions?.value ?? [];
444
454
  return {
445
455
  control,
446
456
  field,
447
457
  id: "c" + control.uniqueId,
448
- options: (field.options?.length ?? 0) === 0 ? null : field.options,
458
+ options:
459
+ fieldOptions && allowed.length > 0
460
+ ? fieldOptions.filter((x) => allowed.includes(x.value))
461
+ : fieldOptions,
449
462
  readonly: !!options.readonly,
450
463
  renderOptions: definition.renderOptions ?? { type: "Standard" },
451
464
  required,
@@ -516,6 +529,7 @@ export interface RenderControlProps {
516
529
  schemaField?: SchemaField;
517
530
  displayControl?: Control<string | undefined>;
518
531
  style?: React.CSSProperties;
532
+ allowedOptions?: Control<any[] | undefined>;
519
533
  }
520
534
  export function renderControlLayout({
521
535
  definition: c,
@@ -529,6 +543,7 @@ export function renderControlLayout({
529
543
  createDataProps: dataProps,
530
544
  displayControl,
531
545
  style,
546
+ allowedOptions,
532
547
  }: RenderControlProps): ControlLayoutProps {
533
548
  if (isDataControlDefinition(c)) {
534
549
  return renderData(c);
@@ -593,6 +608,7 @@ export function renderControlLayout({
593
608
  options: dataOptions,
594
609
  style,
595
610
  childCount,
611
+ allowedOptions,
596
612
  renderChild: childRenderer,
597
613
  elementRenderer:
598
614
  elementControl == null && schemaField.collection
package/src/hooks.tsx CHANGED
@@ -105,6 +105,24 @@ export function useEvalStyleHook(
105
105
  );
106
106
  }
107
107
 
108
+ export function useEvalAllowedOptionsHook(
109
+ useEvalExpressionHook: UseEvalExpressionHook,
110
+ definition: ControlDefinition,
111
+ ): EvalExpressionHook<any[]> {
112
+ const dynamicAllowed = useEvalDynamicHook(
113
+ definition,
114
+ DynamicPropertyType.AllowedOptions,
115
+ useEvalExpressionHook,
116
+ );
117
+ return useCallback(
118
+ (ctx) => {
119
+ if (dynamicAllowed) return dynamicAllowed(ctx);
120
+ return useControl([]);
121
+ },
122
+ [dynamicAllowed],
123
+ );
124
+ }
125
+
108
126
  export function useEvalDisabledHook(
109
127
  useEvalExpressionHook: UseEvalExpressionHook,
110
128
  definition: ControlDefinition,
package/src/types.ts CHANGED
@@ -90,6 +90,7 @@ export enum DynamicPropertyType {
90
90
  Display = "Display",
91
91
  Style = "Style",
92
92
  LayoutStyle = "LayoutStyle",
93
+ AllowedOptions = "AllowedOptions"
93
94
  }
94
95
 
95
96
  export interface EntityExpression {