a-form-react 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,230 @@
1
+ # a-form-react
2
+
3
+ **From normalized specification to responsive React form in one component.**
4
+
5
+ `a-form-react` renders AForm through RJSF and AJV. It connects JSON Schema validation, UI Schema hints, controlled React state, and a responsive 12-column layout through `AForm`.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install react react-dom a-form-core a-form-react
11
+ ```
12
+
13
+ React and React DOM 18 or newer are peer dependencies.
14
+
15
+ ## Render a Form
16
+
17
+ `AForm` requires a `NormalizedFormSpec`, normally produced by `normalizeFormSpec` from `a-form-parser`.
18
+
19
+ ```tsx
20
+ import type { JsonObject, NormalizedFormSpec } from "a-form-core";
21
+ import { AForm } from "a-form-react";
22
+ import { useState } from "react";
23
+
24
+ export function RegistrationForm({ spec }: { spec: NormalizedFormSpec }) {
25
+ const [value, setValue] = useState<JsonObject>({});
26
+
27
+ return (
28
+ <AForm
29
+ spec={spec}
30
+ viewport="desktop"
31
+ value={value}
32
+ onChange={setValue}
33
+ onSubmit={(data) => console.log("Submitted", data)}
34
+ submitLabel="Create account"
35
+ />
36
+ );
37
+ }
38
+ ```
39
+
40
+ ## Parse YAML and Render
41
+
42
+ ```tsx
43
+ import type { JsonObject } from "a-form-core";
44
+ import {
45
+ normalizeFormSpec,
46
+ parseYamlSpec,
47
+ validateFormSpec,
48
+ } from "a-form-parser";
49
+ import { AForm } from "a-form-react";
50
+ import { useState } from "react";
51
+
52
+ export function FormFromYaml({ source }: { source: string }) {
53
+ const [value, setValue] = useState<JsonObject>({});
54
+ const parsed = parseYamlSpec(source);
55
+
56
+ if (!parsed.value) return <p>Invalid YAML specification.</p>;
57
+
58
+ const diagnostics = validateFormSpec(parsed.value);
59
+ if (diagnostics.some(({ severity }) => severity === "error")) {
60
+ return <pre>{diagnostics.map(({ message }) => message).join("\n")}</pre>;
61
+ }
62
+
63
+ return (
64
+ <AForm
65
+ spec={normalizeFormSpec(parsed.value)}
66
+ value={value}
67
+ onChange={setValue}
68
+ />
69
+ );
70
+ }
71
+ ```
72
+
73
+ ## Component API
74
+
75
+ | Prop | Type | Default | Purpose |
76
+ | --- | --- | --- | --- |
77
+ | `spec` | `NormalizedFormSpec` | Required | Schema, UI Schema, and normalized layout |
78
+ | `viewport` | `"mobile" \| "tablet" \| "desktop"` | `"desktop"` | Chooses each column's active span |
79
+ | `value` | `JsonObject` | `{}` | Controlled form value |
80
+ | `onChange` | `(value: JsonObject) => void` | - | Receives the next complete form value |
81
+ | `onSubmit` | `(value, event) => void` | - | Receives validated data and the form event |
82
+ | `submitLabel` | `ReactNode` | `"Submit"` | Submit button content |
83
+ | `disabled` | `boolean` | `false` | Disables the complete form |
84
+ | `readOnly` | `boolean` | `false` | Makes the complete form read-only |
85
+ | `noHtml5Validate` | `boolean` | `false` | Disables native browser validation UI |
86
+ | `className` | `string` | `""` | Adds a class to the root form |
87
+ | `asyncValidation` | `AFormAsyncValidationOptions` | - | Connects an async validation engine and optional result observer |
88
+
89
+ ## Async Validation
90
+
91
+ Create the registry and engine in the host application, then pass the engine to `AForm`. Adapter endpoints, credentials, and request mappings remain outside the form specification.
92
+
93
+ ```tsx
94
+ import { FetchAsyncValidationAdapter } from "a-form-adapter-fetch";
95
+ import {
96
+ AsyncValidationEngine,
97
+ AsyncValidationRegistry,
98
+ } from "a-form-async-validation";
99
+ import { AForm } from "a-form-react";
100
+ import { useState } from "react";
101
+
102
+ const registry = new AsyncValidationRegistry();
103
+
104
+ registry.register(new FetchAsyncValidationAdapter({
105
+ id: "customer-api",
106
+ endpoint: "/api/forms/validate",
107
+ headers: async () => ({
108
+ authorization: `Bearer ${await getAccessToken()}`,
109
+ }),
110
+ }));
111
+
112
+ const engine = new AsyncValidationEngine(registry);
113
+
114
+ export function RegistrationForm({ spec }: { spec: NormalizedFormSpec }) {
115
+ const [value, setValue] = useState<JsonObject>({});
116
+
117
+ return (
118
+ <AForm
119
+ spec={spec}
120
+ value={value}
121
+ onChange={setValue}
122
+ asyncValidation={{
123
+ engine,
124
+ onResult: ({ fieldPath, trigger, result }) => {
125
+ analytics.track("form-validation", {
126
+ fieldPath,
127
+ trigger,
128
+ status: result.status,
129
+ cached: result.cached,
130
+ });
131
+ },
132
+ }}
133
+ onSubmit={(data) => saveRegistration(data)}
134
+ />
135
+ );
136
+ }
137
+ ```
138
+
139
+ The component reads rules from `spec.validations.async` and automatically:
140
+
141
+ - executes `change` rules, including dependency changes from `dependsOn`;
142
+ - applies `debounceMs` before change validation;
143
+ - executes `blur` rules for the field that lost focus;
144
+ - executes applicable rules before forwarding `onSubmit`;
145
+ - prevents the external `onSubmit` callback when a result is blocking;
146
+ - disables the submit button while validation is pending;
147
+ - displays blocking issues through the RJSF field error UI;
148
+ - displays non-blocking warning and info issues next to the field;
149
+ - cancels active requests when the component unmounts.
150
+
151
+ The engine should belong to one live form instance. Create separate engines when multiple forms are mounted concurrently.
152
+
153
+ ### Result Observer
154
+
155
+ `onResult` receives every completed, non-cancelled validation:
156
+
157
+ ```ts
158
+ interface AFormAsyncValidationEvent {
159
+ ruleId: string;
160
+ fieldPath: string;
161
+ trigger: "change" | "blur" | "submit" | "manual";
162
+ result: AsyncValidationResult;
163
+ }
164
+ ```
165
+
166
+ ## Responsive Preview
167
+
168
+ ```tsx
169
+ import type { AFormViewport } from "a-form-react";
170
+
171
+ const [viewport, setViewport] = useState<AFormViewport>("mobile");
172
+
173
+ <AForm spec={spec} viewport={viewport} />;
174
+ ```
175
+
176
+ The component applies the selected normalized span through CSS Grid. It renders only field paths present in the AForm layout and uses CSS ordering to match layout order.
177
+
178
+ ## Styling Hooks
179
+
180
+ Use `className` to scope your design and target the stable `a-form-*` hooks:
181
+
182
+ ```css
183
+ .account-form .a-form-object-root {
184
+ gap: 1rem;
185
+ }
186
+
187
+ .account-form .a-form-field {
188
+ min-width: 0;
189
+ }
190
+
191
+ .account-form .a-form-label {
192
+ display: block;
193
+ margin-bottom: 0.4rem;
194
+ font-weight: 700;
195
+ }
196
+
197
+ .account-form input,
198
+ .account-form select,
199
+ .account-form textarea {
200
+ width: 100%;
201
+ box-sizing: border-box;
202
+ }
203
+
204
+ .account-form .a-form-submit {
205
+ padding: 0.75rem 1rem;
206
+ }
207
+ ```
208
+
209
+ Public hooks include `.a-form-object-root`, `.a-form-object-bridge`, `.a-form-object-nested`, `.a-form-field`, `.a-form-layout-field`, `.a-form-nested-field`, `.a-form-label`, `.a-form-required`, `.a-form-property`, `.a-form-hidden-field`, and `.a-form-submit`.
210
+
211
+ Async state hooks include `.a-form-async-status`, `.a-form-async-issue`, `.a-form-async-issue-error`, `.a-form-async-issue-warning`, and `.a-form-async-issue-info`.
212
+
213
+ Target one field through its dotted path:
214
+
215
+ ```css
216
+ [data-a-form-field="person.email"] {
217
+ grid-column: span 12;
218
+ }
219
+ ```
220
+
221
+ ## Runtime Contract
222
+
223
+ - Pass a normalized spec, not a raw `FormSpec`.
224
+ - Keep controlled state synchronized in `onChange` when `value` is supplied.
225
+ - Local JSON Schema validation uses AJV through RJSF 6.
226
+ - Labels and widgets come from JSON Schema and UI Schema.
227
+ - Modern CSS Grid support is required.
228
+ - Async validation is enabled only when an engine is supplied through `asyncValidation`.
229
+ - `manual` rules remain host-controlled; automatic component triggers cover `change`, `blur`, and `submit`.
230
+ - The default RJSF theme provides the underlying widgets; use the public CSS hooks for visual customization.
@@ -0,0 +1,29 @@
1
+ import type { AsyncValidationEngine, AsyncValidationResult } from "a-form-async-validation";
2
+ import type { AsyncValidationTrigger, JsonObject, NormalizedFormSpec } from "a-form-core";
3
+ import type { FormEvent, ReactNode } from "react";
4
+ export type AFormViewport = "mobile" | "tablet" | "desktop";
5
+ export interface AFormAsyncValidationEvent {
6
+ readonly ruleId: string;
7
+ readonly fieldPath: string;
8
+ readonly trigger: AsyncValidationTrigger;
9
+ readonly result: AsyncValidationResult;
10
+ }
11
+ export interface AFormAsyncValidationOptions {
12
+ readonly engine: AsyncValidationEngine;
13
+ readonly onResult?: (event: AFormAsyncValidationEvent) => void;
14
+ }
15
+ export interface AFormProps {
16
+ readonly spec: NormalizedFormSpec;
17
+ readonly viewport?: AFormViewport;
18
+ readonly value?: JsonObject;
19
+ readonly disabled?: boolean;
20
+ readonly readOnly?: boolean;
21
+ readonly noHtml5Validate?: boolean;
22
+ readonly className?: string;
23
+ readonly submitLabel?: ReactNode;
24
+ readonly asyncValidation?: AFormAsyncValidationOptions;
25
+ readonly onChange?: (value: JsonObject) => void;
26
+ readonly onSubmit?: (value: JsonObject, event: FormEvent<HTMLFormElement>) => void;
27
+ }
28
+ export declare function AForm({ spec, viewport, value, disabled, readOnly, noHtml5Validate, className, submitLabel, asyncValidation, onChange, onSubmit, }: AFormProps): import("react").JSX.Element;
29
+ //# sourceMappingURL=AForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AForm.d.ts","sourceRoot":"","sources":["../src/AForm.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,qBAAqB,EAErB,qBAAqB,EAEtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAEV,sBAAsB,EACtB,UAAU,EAEV,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAiB,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,2BAA2B,CAAC;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;CACpF;AA6LD,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,QAAoB,EACpB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,SAAS,EACT,WAAsB,EACtB,eAAe,EACf,QAAQ,EACR,QAAQ,GACT,EAAE,UAAU,+BA4KZ"}
package/dist/AForm.js ADDED
@@ -0,0 +1,229 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Form from "@rjsf/core";
3
+ import { buttonId, canExpand, descriptionId, getTemplate, getUiOptions, titleId, } from "@rjsf/utils";
4
+ import validator from "@rjsf/validator-ajv8";
5
+ import { useEffect, useRef, useState } from "react";
6
+ function valueAtPath(value, path) {
7
+ let current = value;
8
+ for (const segment of path.split(".")) {
9
+ if (current === null || Array.isArray(current) || typeof current !== "object")
10
+ return undefined;
11
+ current = current[segment];
12
+ }
13
+ return current;
14
+ }
15
+ function fieldPathFromId(id) {
16
+ return id.startsWith("root.") ? id.slice(5) : undefined;
17
+ }
18
+ function appliesToTrigger(rule, trigger) {
19
+ return (rule.triggers ?? ["blur", "submit"]).includes(trigger);
20
+ }
21
+ function addError(errorSchema, path, message) {
22
+ let current = errorSchema;
23
+ for (const segment of path.split(".")) {
24
+ current[segment] ??= {};
25
+ current = current[segment];
26
+ }
27
+ current.__errors = [...(current.__errors ?? []), message];
28
+ }
29
+ function collectLayout(rows, viewport, spans, order) {
30
+ for (const row of rows) {
31
+ for (const column of row.children) {
32
+ for (const child of column.children) {
33
+ if (child.type === "field") {
34
+ spans[child.path] = column.span[viewport];
35
+ order[child.path] = Object.keys(order).length;
36
+ }
37
+ else {
38
+ collectLayout([child], viewport, spans, order);
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+ function relationToLayout(path, context) {
45
+ return {
46
+ exact: context.layoutPaths.includes(path),
47
+ ancestor: path === "" || context.layoutPaths.some((layoutPath) => layoutPath.startsWith(`${path}.`)),
48
+ descendant: context.layoutPaths.some((layoutPath) => path.startsWith(`${layoutPath}.`)),
49
+ };
50
+ }
51
+ function createFieldTemplate() {
52
+ return function FieldTemplate(props) {
53
+ const path = props.fieldPathId.path.join(".");
54
+ const context = props.registry.formContext;
55
+ const relation = relationToLayout(path, context);
56
+ const asyncState = context.asyncFields[path];
57
+ if (props.hidden)
58
+ return _jsx("div", { className: "a-form-hidden-field", hidden: true, children: props.children });
59
+ if (!relation.exact && !relation.ancestor && !relation.descendant)
60
+ return null;
61
+ if (relation.ancestor && !relation.exact)
62
+ return _jsx(_Fragment, { children: props.children });
63
+ const options = getUiOptions(props.uiSchema);
64
+ const WrapIfAdditionalTemplate = getTemplate("WrapIfAdditionalTemplate", props.registry, options);
65
+ const isCheckbox = options.widget === "checkbox" || props.schema.type === "boolean";
66
+ const style = relation.exact
67
+ ? {
68
+ ...props.style,
69
+ gridColumn: `span ${context.spans[path]}`,
70
+ order: context.order[path],
71
+ }
72
+ : props.style;
73
+ return (_jsxs("div", { className: `a-form-field ${relation.exact ? "a-form-layout-field" : "a-form-nested-field"} ${props.classNames ?? ""}`, "data-a-form-field": relation.exact ? path : undefined, style: style, children: [_jsxs(WrapIfAdditionalTemplate, { ...props, children: [props.displayLabel && !isCheckbox && (_jsxs("label", { className: "a-form-label", htmlFor: props.id, children: [props.label, props.required ? _jsx("span", { className: "a-form-required", children: " *" }) : null] })), props.displayLabel ? props.description : null, props.children, !props.hideError && props.errors, props.help] }), asyncState?.status === "pending" && (_jsx("span", { className: "a-form-async-status", role: "status", children: "Validating..." })), asyncState?.issues.filter(() => !asyncState.blocking).map((issue) => (_jsx("span", { className: `a-form-async-issue a-form-async-issue-${issue.severity}`, role: issue.severity === "error" ? "alert" : "status", children: issue.message }, `${issue.code}:${issue.message}`)))] }));
74
+ };
75
+ }
76
+ function createObjectFieldTemplate() {
77
+ return function ObjectFieldTemplate(props) {
78
+ const path = props.fieldPathId.path.join(".");
79
+ const relation = relationToLayout(path, props.registry.formContext);
80
+ const options = getUiOptions(props.uiSchema);
81
+ const TitleFieldTemplate = getTemplate("TitleFieldTemplate", props.registry, options);
82
+ const DescriptionFieldTemplate = getTemplate("DescriptionFieldTemplate", props.registry, options);
83
+ const { AddButton } = props.registry.templates.ButtonTemplates;
84
+ const showMetadata = path !== "" && !(relation.ancestor && !relation.exact);
85
+ const style = path === ""
86
+ ? { display: "grid", gridTemplateColumns: "repeat(12, minmax(0, 1fr))", gap: "1rem" }
87
+ : relation.ancestor && !relation.exact ? { display: "contents" } : undefined;
88
+ return (_jsxs("div", { className: `a-form-object ${path === "" ? "a-form-object-root" : relation.ancestor && !relation.exact ? "a-form-object-bridge" : "a-form-object-nested"}`, "data-a-form-object": path, style: style, children: [showMetadata && props.title && (_jsx(TitleFieldTemplate, { id: titleId(props.fieldPathId), title: props.title, required: props.required ?? false, schema: props.schema, uiSchema: props.uiSchema ?? {}, registry: props.registry, optionalDataControl: !props.readonly && !props.disabled ? props.optionalDataControl : undefined })), showMetadata && props.description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(props.fieldPathId), description: props.description, schema: props.schema, uiSchema: props.uiSchema ?? {}, registry: props.registry })), (props.readonly || props.disabled || !showMetadata) && props.optionalDataControl, props.properties.map(({ content, name }) => _jsx("div", { className: "a-form-property", style: { display: "contents" }, children: content }, name)), canExpand(props.schema, props.uiSchema, props.formData) && (_jsx(AddButton, { id: buttonId(props.fieldPathId, "add"), onClick: props.onAddProperty, disabled: Boolean(props.disabled || props.readonly), uiSchema: props.uiSchema ?? {}, registry: props.registry }))] }));
89
+ };
90
+ }
91
+ const FieldTemplate = createFieldTemplate();
92
+ const ObjectFieldTemplate = createObjectFieldTemplate();
93
+ export function AForm({ spec, viewport = "desktop", value, disabled, readOnly, noHtml5Validate, className, submitLabel = "Submit", asyncValidation, onChange, onSubmit, }) {
94
+ const [records, setRecords] = useState({});
95
+ const [pending, setPending] = useState({});
96
+ const latestValue = useRef(value ?? {});
97
+ const timers = useRef(new Map());
98
+ const requestVersions = useRef(new Map());
99
+ latestValue.current = value ?? latestValue.current;
100
+ useEffect(() => () => {
101
+ timers.current.forEach(clearTimeout);
102
+ timers.current.clear();
103
+ asyncValidation?.engine.cancelAll();
104
+ }, [asyncValidation?.engine]);
105
+ const rules = spec.validations?.async ?? [];
106
+ const recordKey = (rule, fieldPath) => `${rule.id}:${fieldPath}`;
107
+ const runRule = async (rule, fieldPath, trigger, formData) => {
108
+ if (!asyncValidation)
109
+ return undefined;
110
+ const key = recordKey(rule, fieldPath);
111
+ const version = (requestVersions.current.get(key) ?? 0) + 1;
112
+ requestVersions.current.set(key, version);
113
+ setPending((current) => ({ ...current, [key]: fieldPath }));
114
+ setRecords((current) => {
115
+ const { [key]: removed, ...remaining } = current;
116
+ void removed;
117
+ return remaining;
118
+ });
119
+ const result = await asyncValidation.engine.run({
120
+ rule,
121
+ fieldPath,
122
+ value: valueAtPath(formData, fieldPath),
123
+ formData,
124
+ trigger,
125
+ });
126
+ if (requestVersions.current.get(key) !== version)
127
+ return result;
128
+ setPending((current) => {
129
+ const { [key]: removed, ...remaining } = current;
130
+ void removed;
131
+ return remaining;
132
+ });
133
+ if (result.status !== "cancelled") {
134
+ setRecords((current) => ({ ...current, [key]: { fieldPath, result } }));
135
+ asyncValidation.onResult?.({ ruleId: rule.id, fieldPath, trigger, result });
136
+ }
137
+ return result;
138
+ };
139
+ const scheduleChangeRule = (rule, fieldPath, formData) => {
140
+ const key = recordKey(rule, fieldPath);
141
+ const existing = timers.current.get(key);
142
+ if (existing)
143
+ clearTimeout(existing);
144
+ const debounceMs = rule.debounceMs ?? 0;
145
+ if (debounceMs === 0) {
146
+ void runRule(rule, fieldPath, "change", formData);
147
+ return;
148
+ }
149
+ setPending((current) => ({ ...current, [key]: fieldPath }));
150
+ timers.current.set(key, setTimeout(() => {
151
+ timers.current.delete(key);
152
+ void runRule(rule, fieldPath, "change", formData);
153
+ }, debounceMs));
154
+ };
155
+ const spans = {};
156
+ const order = {};
157
+ collectLayout(spec.layout, viewport, spans, order);
158
+ const asyncFields = {};
159
+ Object.values(records).forEach(({ fieldPath, result }) => {
160
+ const previous = asyncFields[fieldPath];
161
+ asyncFields[fieldPath] = {
162
+ status: result.status,
163
+ issues: [...(previous?.issues ?? []), ...(result.issues ?? [])],
164
+ blocking: result.blocking || (previous?.blocking ?? false),
165
+ };
166
+ });
167
+ Object.values(pending).forEach((fieldPath) => {
168
+ asyncFields[fieldPath] = {
169
+ status: "pending",
170
+ issues: asyncFields[fieldPath]?.issues ?? [],
171
+ blocking: asyncFields[fieldPath]?.blocking ?? false,
172
+ };
173
+ });
174
+ const formContext = { spans, order, layoutPaths: Object.keys(spans), asyncFields };
175
+ const extraErrors = {};
176
+ Object.values(records).forEach(({ fieldPath, result }) => {
177
+ if (!result.blocking)
178
+ return;
179
+ const messages = result.issues?.map(({ message }) => message) ?? ["Async validation failed."];
180
+ messages.forEach((message) => addError(extraErrors, fieldPath, message));
181
+ });
182
+ const isPending = Object.keys(pending).length > 0;
183
+ const SubmitButton = () => (_jsx("button", { className: "a-form-submit", disabled: isPending, type: "submit", children: submitLabel }));
184
+ return (_jsx(Form, { className: className ?? "", schema: spec.schema, uiSchema: (spec.uiSchema ?? {}), validator: validator, formContext: formContext, formData: value ?? {}, idSeparator: ".", disabled: disabled ?? false, readonly: readOnly ?? false, noHtml5Validate: noHtml5Validate ?? false, extraErrors: extraErrors, onBlur: (id) => {
185
+ const fieldPath = fieldPathFromId(id);
186
+ if (!fieldPath)
187
+ return;
188
+ for (const rule of rules) {
189
+ if (rule.paths.includes(fieldPath) && appliesToTrigger(rule, "blur")) {
190
+ const key = recordKey(rule, fieldPath);
191
+ const timer = timers.current.get(key);
192
+ if (timer) {
193
+ clearTimeout(timer);
194
+ timers.current.delete(key);
195
+ }
196
+ void runRule(rule, fieldPath, "blur", latestValue.current);
197
+ }
198
+ }
199
+ }, onChange: ({ formData }) => {
200
+ const nextValue = (formData ?? {});
201
+ const previousValue = latestValue.current;
202
+ latestValue.current = nextValue;
203
+ onChange?.(nextValue);
204
+ for (const rule of rules) {
205
+ if (!appliesToTrigger(rule, "change"))
206
+ continue;
207
+ const watchedPaths = [...rule.paths, ...(rule.dependsOn ?? [])];
208
+ const changed = watchedPaths.some((path) => (valueAtPath(previousValue, path) !== valueAtPath(nextValue, path)));
209
+ if (!changed)
210
+ continue;
211
+ for (const fieldPath of rule.paths) {
212
+ scheduleChangeRule(rule, fieldPath, nextValue);
213
+ }
214
+ }
215
+ }, onSubmit: async ({ formData }, event) => {
216
+ const submittedValue = (formData ?? {});
217
+ latestValue.current = submittedValue;
218
+ timers.current.forEach(clearTimeout);
219
+ timers.current.clear();
220
+ setPending({});
221
+ const results = await Promise.all(rules.filter((rule) => (appliesToTrigger(rule, "submit") || appliesToTrigger(rule, "change"))).flatMap((rule) => {
222
+ const trigger = appliesToTrigger(rule, "submit") ? "submit" : "change";
223
+ return rule.paths.map((fieldPath) => runRule(rule, fieldPath, trigger, submittedValue));
224
+ }));
225
+ if (results.some((result) => result?.blocking))
226
+ return;
227
+ onSubmit?.(submittedValue, event);
228
+ }, templates: { FieldTemplate, ObjectFieldTemplate, ButtonTemplates: { SubmitButton } }, showErrorList: false }));
229
+ }
@@ -0,0 +1,29 @@
1
+ import type { AsyncValidationEngine, AsyncValidationResult } from "a-form-async-validation";
2
+ import type { AsyncValidationTrigger, JsonObject, NormalizedFormSpec } from "a-form-core";
3
+ import type { FormEvent, ReactNode } from "react";
4
+ export type AFormViewport = "mobile" | "tablet" | "desktop";
5
+ export interface AFormAsyncValidationEvent {
6
+ readonly ruleId: string;
7
+ readonly fieldPath: string;
8
+ readonly trigger: AsyncValidationTrigger;
9
+ readonly result: AsyncValidationResult;
10
+ }
11
+ export interface AFormAsyncValidationOptions {
12
+ readonly engine: AsyncValidationEngine;
13
+ readonly onResult?: (event: AFormAsyncValidationEvent) => void;
14
+ }
15
+ export interface AFormProps {
16
+ readonly spec: NormalizedFormSpec;
17
+ readonly viewport?: AFormViewport;
18
+ readonly value?: JsonObject;
19
+ readonly disabled?: boolean;
20
+ readonly readOnly?: boolean;
21
+ readonly noHtml5Validate?: boolean;
22
+ readonly className?: string;
23
+ readonly submitLabel?: ReactNode;
24
+ readonly asyncValidation?: AFormAsyncValidationOptions;
25
+ readonly onChange?: (value: JsonObject) => void;
26
+ readonly onSubmit?: (value: JsonObject, event: FormEvent<HTMLFormElement>) => void;
27
+ }
28
+ export declare function AForm({ spec, viewport, value, disabled, readOnly, noHtml5Validate, className, submitLabel, asyncValidation, onChange, onSubmit, }: AFormProps): import("react").JSX.Element;
29
+ //# sourceMappingURL=JSFLForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JSFLForm.d.ts","sourceRoot":"","sources":["../src/JSFLForm.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,qBAAqB,EAErB,qBAAqB,EAEtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAEV,sBAAsB,EACtB,UAAU,EAEV,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAiB,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,2BAA2B,CAAC;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;CACpF;AA6LD,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,QAAoB,EACpB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,SAAS,EACT,WAAsB,EACtB,eAAe,EACf,QAAQ,EACR,QAAQ,GACT,EAAE,UAAU,+BA4KZ"}
@@ -0,0 +1,229 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Form from "@rjsf/core";
3
+ import { buttonId, canExpand, descriptionId, getTemplate, getUiOptions, titleId, } from "@rjsf/utils";
4
+ import validator from "@rjsf/validator-ajv8";
5
+ import { useEffect, useRef, useState } from "react";
6
+ function valueAtPath(value, path) {
7
+ let current = value;
8
+ for (const segment of path.split(".")) {
9
+ if (current === null || Array.isArray(current) || typeof current !== "object")
10
+ return undefined;
11
+ current = current[segment];
12
+ }
13
+ return current;
14
+ }
15
+ function fieldPathFromId(id) {
16
+ return id.startsWith("root.") ? id.slice(5) : undefined;
17
+ }
18
+ function appliesToTrigger(rule, trigger) {
19
+ return (rule.triggers ?? ["blur", "submit"]).includes(trigger);
20
+ }
21
+ function addError(errorSchema, path, message) {
22
+ let current = errorSchema;
23
+ for (const segment of path.split(".")) {
24
+ current[segment] ??= {};
25
+ current = current[segment];
26
+ }
27
+ current.__errors = [...(current.__errors ?? []), message];
28
+ }
29
+ function collectLayout(rows, viewport, spans, order) {
30
+ for (const row of rows) {
31
+ for (const column of row.children) {
32
+ for (const child of column.children) {
33
+ if (child.type === "field") {
34
+ spans[child.path] = column.span[viewport];
35
+ order[child.path] = Object.keys(order).length;
36
+ }
37
+ else {
38
+ collectLayout([child], viewport, spans, order);
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+ function relationToLayout(path, context) {
45
+ return {
46
+ exact: context.layoutPaths.includes(path),
47
+ ancestor: path === "" || context.layoutPaths.some((layoutPath) => layoutPath.startsWith(`${path}.`)),
48
+ descendant: context.layoutPaths.some((layoutPath) => path.startsWith(`${layoutPath}.`)),
49
+ };
50
+ }
51
+ function createFieldTemplate() {
52
+ return function FieldTemplate(props) {
53
+ const path = props.fieldPathId.path.join(".");
54
+ const context = props.registry.formContext;
55
+ const relation = relationToLayout(path, context);
56
+ const asyncState = context.asyncFields[path];
57
+ if (props.hidden)
58
+ return _jsx("div", { className: "a-form-hidden-field", hidden: true, children: props.children });
59
+ if (!relation.exact && !relation.ancestor && !relation.descendant)
60
+ return null;
61
+ if (relation.ancestor && !relation.exact)
62
+ return _jsx(_Fragment, { children: props.children });
63
+ const options = getUiOptions(props.uiSchema);
64
+ const WrapIfAdditionalTemplate = getTemplate("WrapIfAdditionalTemplate", props.registry, options);
65
+ const isCheckbox = options.widget === "checkbox" || props.schema.type === "boolean";
66
+ const style = relation.exact
67
+ ? {
68
+ ...props.style,
69
+ gridColumn: `span ${context.spans[path]}`,
70
+ order: context.order[path],
71
+ }
72
+ : props.style;
73
+ return (_jsxs("div", { className: `a-form-field ${relation.exact ? "a-form-layout-field" : "a-form-nested-field"} ${props.classNames ?? ""}`, "data-a-form-field": relation.exact ? path : undefined, style: style, children: [_jsxs(WrapIfAdditionalTemplate, { ...props, children: [props.displayLabel && !isCheckbox && (_jsxs("label", { className: "a-form-label", htmlFor: props.id, children: [props.label, props.required ? _jsx("span", { className: "a-form-required", children: " *" }) : null] })), props.displayLabel ? props.description : null, props.children, !props.hideError && props.errors, props.help] }), asyncState?.status === "pending" && (_jsx("span", { className: "a-form-async-status", role: "status", children: "Validating..." })), asyncState?.issues.filter(() => !asyncState.blocking).map((issue) => (_jsx("span", { className: `a-form-async-issue a-form-async-issue-${issue.severity}`, role: issue.severity === "error" ? "alert" : "status", children: issue.message }, `${issue.code}:${issue.message}`)))] }));
74
+ };
75
+ }
76
+ function createObjectFieldTemplate() {
77
+ return function ObjectFieldTemplate(props) {
78
+ const path = props.fieldPathId.path.join(".");
79
+ const relation = relationToLayout(path, props.registry.formContext);
80
+ const options = getUiOptions(props.uiSchema);
81
+ const TitleFieldTemplate = getTemplate("TitleFieldTemplate", props.registry, options);
82
+ const DescriptionFieldTemplate = getTemplate("DescriptionFieldTemplate", props.registry, options);
83
+ const { AddButton } = props.registry.templates.ButtonTemplates;
84
+ const showMetadata = path !== "" && !(relation.ancestor && !relation.exact);
85
+ const style = path === ""
86
+ ? { display: "grid", gridTemplateColumns: "repeat(12, minmax(0, 1fr))", gap: "1rem" }
87
+ : relation.ancestor && !relation.exact ? { display: "contents" } : undefined;
88
+ return (_jsxs("div", { className: `a-form-object ${path === "" ? "a-form-object-root" : relation.ancestor && !relation.exact ? "a-form-object-bridge" : "a-form-object-nested"}`, "data-a-form-object": path, style: style, children: [showMetadata && props.title && (_jsx(TitleFieldTemplate, { id: titleId(props.fieldPathId), title: props.title, required: props.required ?? false, schema: props.schema, uiSchema: props.uiSchema ?? {}, registry: props.registry, optionalDataControl: !props.readonly && !props.disabled ? props.optionalDataControl : undefined })), showMetadata && props.description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(props.fieldPathId), description: props.description, schema: props.schema, uiSchema: props.uiSchema ?? {}, registry: props.registry })), (props.readonly || props.disabled || !showMetadata) && props.optionalDataControl, props.properties.map(({ content, name }) => _jsx("div", { className: "a-form-property", style: { display: "contents" }, children: content }, name)), canExpand(props.schema, props.uiSchema, props.formData) && (_jsx(AddButton, { id: buttonId(props.fieldPathId, "add"), onClick: props.onAddProperty, disabled: Boolean(props.disabled || props.readonly), uiSchema: props.uiSchema ?? {}, registry: props.registry }))] }));
89
+ };
90
+ }
91
+ const FieldTemplate = createFieldTemplate();
92
+ const ObjectFieldTemplate = createObjectFieldTemplate();
93
+ export function AForm({ spec, viewport = "desktop", value, disabled, readOnly, noHtml5Validate, className, submitLabel = "Submit", asyncValidation, onChange, onSubmit, }) {
94
+ const [records, setRecords] = useState({});
95
+ const [pending, setPending] = useState({});
96
+ const latestValue = useRef(value ?? {});
97
+ const timers = useRef(new Map());
98
+ const requestVersions = useRef(new Map());
99
+ latestValue.current = value ?? latestValue.current;
100
+ useEffect(() => () => {
101
+ timers.current.forEach(clearTimeout);
102
+ timers.current.clear();
103
+ asyncValidation?.engine.cancelAll();
104
+ }, [asyncValidation?.engine]);
105
+ const rules = spec.validations?.async ?? [];
106
+ const recordKey = (rule, fieldPath) => `${rule.id}:${fieldPath}`;
107
+ const runRule = async (rule, fieldPath, trigger, formData) => {
108
+ if (!asyncValidation)
109
+ return undefined;
110
+ const key = recordKey(rule, fieldPath);
111
+ const version = (requestVersions.current.get(key) ?? 0) + 1;
112
+ requestVersions.current.set(key, version);
113
+ setPending((current) => ({ ...current, [key]: fieldPath }));
114
+ setRecords((current) => {
115
+ const { [key]: removed, ...remaining } = current;
116
+ void removed;
117
+ return remaining;
118
+ });
119
+ const result = await asyncValidation.engine.run({
120
+ rule,
121
+ fieldPath,
122
+ value: valueAtPath(formData, fieldPath),
123
+ formData,
124
+ trigger,
125
+ });
126
+ if (requestVersions.current.get(key) !== version)
127
+ return result;
128
+ setPending((current) => {
129
+ const { [key]: removed, ...remaining } = current;
130
+ void removed;
131
+ return remaining;
132
+ });
133
+ if (result.status !== "cancelled") {
134
+ setRecords((current) => ({ ...current, [key]: { fieldPath, result } }));
135
+ asyncValidation.onResult?.({ ruleId: rule.id, fieldPath, trigger, result });
136
+ }
137
+ return result;
138
+ };
139
+ const scheduleChangeRule = (rule, fieldPath, formData) => {
140
+ const key = recordKey(rule, fieldPath);
141
+ const existing = timers.current.get(key);
142
+ if (existing)
143
+ clearTimeout(existing);
144
+ const debounceMs = rule.debounceMs ?? 0;
145
+ if (debounceMs === 0) {
146
+ void runRule(rule, fieldPath, "change", formData);
147
+ return;
148
+ }
149
+ setPending((current) => ({ ...current, [key]: fieldPath }));
150
+ timers.current.set(key, setTimeout(() => {
151
+ timers.current.delete(key);
152
+ void runRule(rule, fieldPath, "change", formData);
153
+ }, debounceMs));
154
+ };
155
+ const spans = {};
156
+ const order = {};
157
+ collectLayout(spec.layout, viewport, spans, order);
158
+ const asyncFields = {};
159
+ Object.values(records).forEach(({ fieldPath, result }) => {
160
+ const previous = asyncFields[fieldPath];
161
+ asyncFields[fieldPath] = {
162
+ status: result.status,
163
+ issues: [...(previous?.issues ?? []), ...(result.issues ?? [])],
164
+ blocking: result.blocking || (previous?.blocking ?? false),
165
+ };
166
+ });
167
+ Object.values(pending).forEach((fieldPath) => {
168
+ asyncFields[fieldPath] = {
169
+ status: "pending",
170
+ issues: asyncFields[fieldPath]?.issues ?? [],
171
+ blocking: asyncFields[fieldPath]?.blocking ?? false,
172
+ };
173
+ });
174
+ const formContext = { spans, order, layoutPaths: Object.keys(spans), asyncFields };
175
+ const extraErrors = {};
176
+ Object.values(records).forEach(({ fieldPath, result }) => {
177
+ if (!result.blocking)
178
+ return;
179
+ const messages = result.issues?.map(({ message }) => message) ?? ["Async validation failed."];
180
+ messages.forEach((message) => addError(extraErrors, fieldPath, message));
181
+ });
182
+ const isPending = Object.keys(pending).length > 0;
183
+ const SubmitButton = () => (_jsx("button", { className: "a-form-submit", disabled: isPending, type: "submit", children: submitLabel }));
184
+ return (_jsx(Form, { className: className ?? "", schema: spec.schema, uiSchema: (spec.uiSchema ?? {}), validator: validator, formContext: formContext, formData: value ?? {}, idSeparator: ".", disabled: disabled ?? false, readonly: readOnly ?? false, noHtml5Validate: noHtml5Validate ?? false, extraErrors: extraErrors, onBlur: (id) => {
185
+ const fieldPath = fieldPathFromId(id);
186
+ if (!fieldPath)
187
+ return;
188
+ for (const rule of rules) {
189
+ if (rule.paths.includes(fieldPath) && appliesToTrigger(rule, "blur")) {
190
+ const key = recordKey(rule, fieldPath);
191
+ const timer = timers.current.get(key);
192
+ if (timer) {
193
+ clearTimeout(timer);
194
+ timers.current.delete(key);
195
+ }
196
+ void runRule(rule, fieldPath, "blur", latestValue.current);
197
+ }
198
+ }
199
+ }, onChange: ({ formData }) => {
200
+ const nextValue = (formData ?? {});
201
+ const previousValue = latestValue.current;
202
+ latestValue.current = nextValue;
203
+ onChange?.(nextValue);
204
+ for (const rule of rules) {
205
+ if (!appliesToTrigger(rule, "change"))
206
+ continue;
207
+ const watchedPaths = [...rule.paths, ...(rule.dependsOn ?? [])];
208
+ const changed = watchedPaths.some((path) => (valueAtPath(previousValue, path) !== valueAtPath(nextValue, path)));
209
+ if (!changed)
210
+ continue;
211
+ for (const fieldPath of rule.paths) {
212
+ scheduleChangeRule(rule, fieldPath, nextValue);
213
+ }
214
+ }
215
+ }, onSubmit: async ({ formData }, event) => {
216
+ const submittedValue = (formData ?? {});
217
+ latestValue.current = submittedValue;
218
+ timers.current.forEach(clearTimeout);
219
+ timers.current.clear();
220
+ setPending({});
221
+ const results = await Promise.all(rules.filter((rule) => (appliesToTrigger(rule, "submit") || appliesToTrigger(rule, "change"))).flatMap((rule) => {
222
+ const trigger = appliesToTrigger(rule, "submit") ? "submit" : "change";
223
+ return rule.paths.map((fieldPath) => runRule(rule, fieldPath, trigger, submittedValue));
224
+ }));
225
+ if (results.some((result) => result?.blocking))
226
+ return;
227
+ onSubmit?.(submittedValue, event);
228
+ }, templates: { FieldTemplate, ObjectFieldTemplate, ButtonTemplates: { SubmitButton } }, showErrorList: false }));
229
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./AForm.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from "./AForm.js";
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react/jsx-runtime.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@rjsf/utils/lib/enums.d.ts","../../../node_modules/@rjsf/utils/lib/jsonSchemaAugmentation.d.ts","../../../node_modules/@rjsf/utils/lib/types.d.ts","../../../node_modules/@rjsf/utils/lib/allowAdditionalItems.d.ts","../../../node_modules/@rjsf/utils/lib/asNumber.d.ts","../../../node_modules/@rjsf/utils/lib/canExpand.d.ts","../../../node_modules/@rjsf/utils/lib/createErrorHandler.d.ts","../../../node_modules/@rjsf/utils/lib/createSchemaUtils.d.ts","../../../node_modules/@rjsf/utils/lib/dataURItoBlob.d.ts","../../../node_modules/@rjsf/utils/lib/dateRangeOptions.d.ts","../../../node_modules/@rjsf/utils/lib/deepEquals.d.ts","../../../node_modules/@rjsf/utils/lib/englishStringTranslator.d.ts","../../../node_modules/@rjsf/utils/lib/enumOptionsDeselectValue.d.ts","../../../node_modules/@rjsf/utils/lib/enumOptionSelectedValue.d.ts","../../../node_modules/@rjsf/utils/lib/enumOptionsIndexForValue.d.ts","../../../node_modules/@rjsf/utils/lib/enumOptionsIsSelected.d.ts","../../../node_modules/@rjsf/utils/lib/enumOptionsSelectValue.d.ts","../../../node_modules/@rjsf/utils/lib/enumOptionsValueForIndex.d.ts","../../../node_modules/@rjsf/utils/lib/enumOptionValueDecoder.d.ts","../../../node_modules/@rjsf/utils/lib/enumOptionValueEncoder.d.ts","../../../node_modules/@rjsf/utils/lib/ErrorSchemaBuilder.d.ts","../../../node_modules/@rjsf/utils/lib/findSchemaDefinition.d.ts","../../../node_modules/@rjsf/utils/lib/getChangedFields.d.ts","../../../node_modules/@rjsf/utils/lib/getDateElementProps.d.ts","../../../node_modules/@rjsf/utils/lib/getDecimalSeparator.d.ts","../../../node_modules/@rjsf/utils/lib/getDiscriminatorFieldFromSchema.d.ts","../../../node_modules/@rjsf/utils/lib/getInputProps.d.ts","../../../node_modules/@rjsf/utils/lib/getOptionMatchingSimpleDiscriminator.d.ts","../../../node_modules/@rjsf/utils/lib/getOptionValueFormat.d.ts","../../../node_modules/@rjsf/utils/lib/getPropertySchema.d.ts","../../../node_modules/@rjsf/utils/lib/getSchemaType.d.ts","../../../node_modules/@rjsf/utils/lib/getSubmitButtonOptions.d.ts","../../../node_modules/@rjsf/utils/lib/getTemplate.d.ts","../../../node_modules/@rjsf/utils/lib/getTestIds.d.ts","../../../node_modules/@rjsf/utils/lib/getUiOptions.d.ts","../../../node_modules/@rjsf/utils/lib/getWidget.d.ts","../../../node_modules/@rjsf/utils/lib/guessType.d.ts","../../../node_modules/@rjsf/utils/lib/hashForSchema.d.ts","../../../node_modules/@rjsf/utils/lib/hasWidget.d.ts","../../../node_modules/@rjsf/utils/lib/idGenerators.d.ts","../../../node_modules/@rjsf/utils/lib/isConstant.d.ts","../../../node_modules/@rjsf/utils/lib/isCustomWidget.d.ts","../../../node_modules/@rjsf/utils/lib/isFixedItems.d.ts","../../../node_modules/@rjsf/utils/lib/isFormDataAvailable.d.ts","../../../node_modules/@rjsf/utils/lib/isObject.d.ts","../../../node_modules/@rjsf/utils/lib/isPlainObject.d.ts","../../../node_modules/@rjsf/utils/lib/isRootSchema.d.ts","../../../node_modules/@rjsf/utils/lib/labelValue.d.ts","../../../node_modules/@rjsf/utils/lib/localToUTC.d.ts","../../../node_modules/@rjsf/utils/lib/logUnsupportedDefaultForEnum.d.ts","../../../node_modules/@rjsf/utils/lib/lookupFromFormContext.d.ts","../../../node_modules/@rjsf/utils/lib/mergeDefaultsWithFormData.d.ts","../../../node_modules/@rjsf/utils/lib/mergeObjects.d.ts","../../../node_modules/@rjsf/utils/lib/mergeSchemas.d.ts","../../../node_modules/@rjsf/utils/lib/nameGenerators.d.ts","../../../node_modules/@rjsf/utils/lib/noop.d.ts","../../../node_modules/@rjsf/utils/lib/optionsList.d.ts","../../../node_modules/@rjsf/utils/lib/orderProperties.d.ts","../../../node_modules/@rjsf/utils/lib/pad.d.ts","../../../node_modules/@rjsf/utils/lib/parseDateString.d.ts","../../../node_modules/@rjsf/utils/lib/pathUtils.d.ts","../../../node_modules/@rjsf/utils/lib/rangeSpec.d.ts","../../../node_modules/@rjsf/utils/lib/removeOptionalEmptyObjects.d.ts","../../../node_modules/@rjsf/utils/lib/replaceStringParameters.d.ts","../../../node_modules/@rjsf/utils/lib/resolveUiSchema.d.ts","../../../node_modules/@rjsf/utils/lib/schemaRequiresTrueValue.d.ts","../../../node_modules/@rjsf/utils/lib/SelectedOptionDescription.d.ts","../../../node_modules/@rjsf/utils/lib/shallowEquals.d.ts","../../../node_modules/@rjsf/utils/lib/shouldRender.d.ts","../../../node_modules/@rjsf/utils/lib/shouldRenderOptionalField.d.ts","../../../node_modules/@rjsf/utils/lib/toConstant.d.ts","../../../node_modules/@rjsf/utils/lib/toDateString.d.ts","../../../node_modules/@rjsf/utils/lib/toErrorList.d.ts","../../../node_modules/@rjsf/utils/lib/toErrorSchema.d.ts","../../../node_modules/@rjsf/utils/lib/toFieldPathId.d.ts","../../../node_modules/@rjsf/utils/lib/unwrapErrorHandler.d.ts","../../../node_modules/@rjsf/utils/lib/useAltDateWidgetProps.d.ts","../../../node_modules/@rjsf/utils/lib/useDeepCompareMemo.d.ts","../../../node_modules/@rjsf/utils/lib/useFileWidgetProps.d.ts","../../../node_modules/@rjsf/utils/lib/utcToLocal.d.ts","../../../node_modules/@rjsf/utils/lib/validationDataMerge.d.ts","../../../node_modules/@rjsf/utils/lib/withIdRefPrefix.d.ts","../../../node_modules/@rjsf/utils/lib/constants.d.ts","../../../node_modules/@rjsf/utils/lib/parser/ParserValidator.d.ts","../../../node_modules/@rjsf/utils/lib/parser/schemaParser.d.ts","../../../node_modules/@rjsf/utils/lib/parser/index.d.ts","../../../node_modules/@rjsf/utils/lib/schema/findFieldInSchema.d.ts","../../../node_modules/@rjsf/utils/lib/schema/findSelectedOptionInXxxOf.d.ts","../../../node_modules/@rjsf/utils/lib/schema/getClosestMatchingOption.d.ts","../../../node_modules/@rjsf/utils/lib/schema/getDefaultFormState.d.ts","../../../node_modules/@rjsf/utils/lib/schema/getDisplayLabel.d.ts","../../../node_modules/@rjsf/utils/lib/schema/getFirstMatchingOption.d.ts","../../../node_modules/@rjsf/utils/lib/schema/getFromSchema.d.ts","../../../node_modules/@rjsf/utils/lib/schema/isFilesArray.d.ts","../../../node_modules/@rjsf/utils/lib/schema/isMultiSelect.d.ts","../../../node_modules/@rjsf/utils/lib/schema/isSelect.d.ts","../../../node_modules/@rjsf/utils/lib/schema/omitExtraData.d.ts","../../../node_modules/@rjsf/utils/lib/schema/retrieveSchema.d.ts","../../../node_modules/@rjsf/utils/lib/schema/sanitizeDataForNewSchema.d.ts","../../../node_modules/@rjsf/utils/lib/schema/toPathSchema.d.ts","../../../node_modules/@rjsf/utils/lib/schema/index.d.ts","../../../node_modules/@rjsf/utils/lib/index.d.ts","../../../node_modules/@rjsf/core/lib/components/Form.d.ts","../../../node_modules/@rjsf/core/lib/components/RichDescription.d.ts","../../../node_modules/@rjsf/core/lib/components/RichHelp.d.ts","../../../node_modules/@rjsf/core/lib/components/SchemaExamples.d.ts","../../../node_modules/@rjsf/core/lib/getDefaultRegistry.d.ts","../../../node_modules/@rjsf/core/lib/getTestRegistry.d.ts","../../../node_modules/@rjsf/core/lib/withTheme.d.ts","../../../node_modules/@rjsf/core/lib/index.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/fast-uri/types/index.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/codegen/code.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/codegen/scope.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/codegen/index.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/rules.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/util.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/subschema.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/errors.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/index.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/validate/dataType.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/not.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/if.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/applicator/index.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/required.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/const.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/enum.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/index.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/format/format.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/vocabularies/errors.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/types/json-schema.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/types/jtd-schema.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/runtime/validation_error.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/ref_error.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/core.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/resolve.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/compile/index.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/types/index.d.ts","../../../node_modules/@rjsf/validator-ajv8/node_modules/ajv/dist/ajv.d.ts","../../../node_modules/ajv-formats/node_modules/ajv/dist/ajv.d.ts","../../../node_modules/ajv-formats/dist/formats.d.ts","../../../node_modules/ajv-formats/dist/limit.d.ts","../../../node_modules/ajv-formats/dist/index.d.ts","../../../node_modules/@rjsf/validator-ajv8/lib/types.d.ts","../../../node_modules/@rjsf/validator-ajv8/lib/createPrecompiledValidator.d.ts","../../../node_modules/@rjsf/validator-ajv8/lib/processRawValidationErrors.d.ts","../../../node_modules/@rjsf/validator-ajv8/lib/validator.d.ts","../../../node_modules/@rjsf/validator-ajv8/lib/customizeValidator.d.ts","../../../node_modules/@rjsf/validator-ajv8/lib/index.d.ts","../../core/dist/index.d.ts","../../async-validation/dist/types.d.ts","../../async-validation/dist/registry.d.ts","../../async-validation/dist/engine.d.ts","../../async-validation/dist/index.d.ts","../src/AForm.tsx","../src/index.ts","../../../node_modules/@types/deep-eql/index.d.ts","../../../node_modules/assertion-error/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/esrecurse/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/react-dom/index.d.ts"],"fileIdsList":[[68,172,251,306,323,324],[172,251,306,323,324],[173,174,175,176,177,178,179,251,306,323,324],[68,172,173,251,306,323,324],[73,251,306,323,324],[68,73,251,306,323,324],[251,306,323,324],[71,251,306,323,324],[71,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,156,171,251,306,323,324],[70,72,251,306,323,324],[68,251,306,323,324],[154,155,251,306,323,324],[73,154,251,306,323,324],[157,158,159,160,161,162,163,164,165,166,167,168,169,170,251,306,323,324],[70,72,73,251,306,323,324],[68,70,71,72,251,306,323,324],[68,73,94,251,306,323,324],[172,230,251,306,323,324],[172,230,233,251,306,323,324],[172,230,231,233,234,251,306,323,324],[172,225,230,251,306,323,324],[225,229,251,306,323,324],[172,225,230,232,251,306,323,324],[184,185,189,216,217,219,220,221,223,224,251,306,323,324],[182,183,251,306,323,324],[182,251,306,323,324],[184,224,251,306,323,324],[184,185,221,222,224,251,306,323,324],[224,251,306,323,324],[181,224,225,251,306,323,324],[184,185,223,224,251,306,323,324],[184,185,187,188,223,224,251,306,323,324],[184,185,186,223,224,251,306,323,324],[184,185,189,216,217,218,219,220,223,224,251,306,323,324],[181,184,185,189,221,223,251,306,323,324],[189,224,251,306,323,324],[191,192,193,194,195,196,197,198,199,200,224,251,306,323,324],[214,224,251,306,323,324],[190,201,209,210,211,212,213,215,251,306,323,324],[194,224,251,306,323,324],[202,203,204,205,206,207,208,224,251,306,323,324],[243,244,251,306,323,324],[251,303,304,306,323,324],[251,305,306,323,324],[306,323,324],[251,306,311,323,324,342],[251,306,307,312,317,323,324,326,339,350],[251,306,307,308,317,323,324,326],[251,306,309,323,324,351],[251,306,310,311,318,323,324,328],[251,306,311,323,324,339,347],[251,306,312,314,317,323,324,326],[251,305,306,313,323,324],[251,306,314,315,323,324],[251,306,316,317,323,324],[251,305,306,317,323,324],[251,306,317,318,319,323,324,339,350],[251,306,317,318,319,323,324,334,339,342],[251,298,306,314,317,320,323,324,326,339,350],[251,306,317,318,320,321,323,324,326,339,347,350],[251,306,320,322,323,324,339,347,350],[249,250,251,252,253,254,255,256,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356],[251,306,317,323,324],[251,306,323,324,325,350],[251,306,314,317,323,324,326,339],[251,306,323,324,328],[251,306,323,324,329],[251,305,306,323,324,330],[251,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356],[251,306,323,324,332],[251,306,323,324,333],[251,306,317,323,324,334,335],[251,306,323,324,334,336,351,353],[251,306,318,323,324],[251,306,317,323,324,339,340,342],[251,306,323,324,341,342],[251,306,323,324,339,340],[251,306,323,324,342],[251,306,323,324,343],[251,303,306,323,324,339,344,350],[251,306,317,323,324,345,346],[251,306,323,324,345,346],[251,306,311,323,324,326,339,347],[251,306,323,324,348],[251,306,323,324,326,349],[251,306,320,323,324,333,350],[251,306,311,323,324,351],[251,306,323,324,339,352],[251,306,323,324,325,353],[251,306,323,324,354],[251,306,311,323,324],[251,298,306,323,324],[251,306,323,324,355],[251,298,306,317,319,323,324,330,339,342,350,352,353,355],[251,306,323,324,339,356],[66,67,251,306,323,324],[225,251,306,323,324],[225,227,228,251,306,323,324],[251,263,266,269,270,306,323,324,350],[251,266,306,323,324,339,350],[251,266,270,306,323,324,350],[251,306,323,324,339],[251,260,306,323,324],[251,264,306,323,324],[251,262,263,266,306,323,324,350],[251,306,323,324,326,347],[251,306,323,324,357],[251,260,306,323,324,357],[251,262,266,306,323,324,326,350],[251,257,258,259,261,265,306,317,323,324,339,350],[251,266,275,283,306,323,324],[251,258,264,306,323,324],[251,266,292,293,306,323,324],[251,258,261,266,306,323,324,342,350,357],[251,266,306,323,324],[251,262,266,306,323,324,350],[251,257,306,323,324],[251,260,261,262,264,265,266,267,268,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,293,294,295,296,297,306,323,324],[251,266,285,288,306,314,323,324],[251,266,275,276,277,306,323,324],[251,264,266,276,278,306,323,324],[251,265,306,323,324],[251,258,260,266,306,323,324],[251,266,270,276,278,306,323,324],[251,270,306,323,324],[251,264,266,269,306,323,324,350],[251,258,262,266,275,306,323,324],[251,266,285,306,323,324],[251,278,306,323,324],[251,260,266,292,306,323,324,342,355,357],[237,238,251,306,323,324],[237,238,239,251,306,323,324],[237,251,306,323,324],[236,251,306,323,324],[68,69,172,180,235,236,240,251,306,323,324],[69,241,251,306,323,324]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"045c1b395851aa71ef76393398466330fe1eeebc113c8085eefc6d84abea3a88","impliedFormat":1},{"version":"b838d4c72740eb0afd284bf7575b74c624b105eff2e8c7b4aeead57e7ac320ff","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"9a38b35b6ee89ae9c794297f32c40d581ee31f2a219b4abaae58d235ce8f1a8a","impliedFormat":99},{"version":"1a2bb23e214504eb61baa08c5b191975f4c5f66cfe9bbbc4c4b7671eb345db2b","impliedFormat":99},{"version":"1986f08c3f1184fb2562b9665d9b422ffbb8eb93e6716f6d02e6ff5645f78c9b","impliedFormat":99},{"version":"e81958391a6f9f3e8829f0e625414d9f8d87638c633ba43935be8c5a23d47821","impliedFormat":99},{"version":"2001a26f59d4e2b03ef44eef6c30c0d9654e3d93b687c1a624fae23f2230cd23","impliedFormat":99},{"version":"3e393c6361fe30b431abbb70e28e92eb2d9f90ee408e8704ab859d780d0c7b7d","impliedFormat":99},{"version":"916ba0e33b5317a24bc36fd244f6189050416d0c4e915eb70ca6f15cf07c8158","impliedFormat":99},{"version":"05a8b67c0dc8333df97b9ee88245cff64be93ecd099670a0b885ca54fc61df86","impliedFormat":99},{"version":"47d5dbecb68fb3f6a00df8bc0d37fcc6003fd164958d40e3e2935faeb055a1ad","impliedFormat":99},{"version":"3d4c30b01e3accb91f53715b6aaa129961f52c70b9e0edb19c85e4c8e3e54887","impliedFormat":99},{"version":"48143f0d14b32295ecd99a83bdd509375870b01b52e4e315ea9bd0ba7293d414","impliedFormat":99},{"version":"ca050b0aaf49ed6538636a469040c18cff3e627a94c37630b4b6b21c411a5a00","impliedFormat":99},{"version":"3959bfad13c260ebdfec3eeb4f2bda0d1ad7c0b719c3de54e824fd59ea4ced97","impliedFormat":99},{"version":"7fb6e0b113e53d5a9156857da1d9b73e5d5f9706e4b7d492d9b3fe75fdbaee2f","impliedFormat":99},{"version":"ad812d48ddee73b20a667c539d470a254a92f1b9343e5087e07cbef1b2371b82","impliedFormat":99},{"version":"1bbf0ac8e47d02a202657ba0d4193f7a8421d8d872dcc7ac49b6711a1577b6af","impliedFormat":99},{"version":"ceb2ab4c1556c91493ad2399621146df4e135331e9c02e6292883f41967c02e7","impliedFormat":99},{"version":"d2be84aa5d029d1347cf8868c4f5849458b71cd430abe359e5d6ac776d4619d3","impliedFormat":99},{"version":"6c6c7176d1529da2f75ed3b7c4b9cdc12afc50afbee2662cf187af04e3281449","impliedFormat":99},{"version":"18a60287b79bc32d6a6cd47574df15383059b63780aa7c4d2603cdc666398453","impliedFormat":99},{"version":"3f4d0fd9020cb25780109ee4e75ac10d4556e6e3bf82f17ba1c47e4727f6e6a4","impliedFormat":99},{"version":"bd19e3abbdd5f20a2cf607ef3e234e7a6f5feb8a3b3775a633618cfdf5f1dc2c","impliedFormat":99},{"version":"ff39383c02b12354aa4ff2fc3e76eeb92b62e77bdaff9127687073aef52637cf","impliedFormat":99},{"version":"cdd435f5571d6cd39b883223b1b13e1c0d84933d7b839494d989dde1e8e283da","impliedFormat":99},{"version":"a1820f033f408a63133d8de8478842ee73f7ab7b2156e46d5256fe0f10c5d4bc","impliedFormat":99},{"version":"9be836a1c12ee9ac77ac1fbc03428b7d0141940151f5bb73bc9c4b1b90b5d004","impliedFormat":99},{"version":"3e53b5eb7029a80d52a19e4ba21116afdb2b22132837b7cf55504780ace1859e","impliedFormat":99},{"version":"fdd253581fe3359e8847e254fff2aad8edbab6736a77493ba9e25d330cf525eb","impliedFormat":99},{"version":"712d57678fd94104edfa939a80967ea754209e442d9780f9b92c2d9f7a46850b","impliedFormat":99},{"version":"b1fa810f9882cfc0b5ac244a98d18e72a805be7cef8deca28351a156f9186b91","impliedFormat":99},{"version":"4461b96a78d0ee3476dcb2c09559aa15762a5508ceb185964d20e1c35c91e1c1","impliedFormat":99},{"version":"aecc15534c5cadddde4dccf8fd2d0cfc0beab1492f9e2896491e71d60a37a605","impliedFormat":99},{"version":"c9f00e2505c60742d59a17139639e7d797c124576d27fa41d7a529cbbd68025a","impliedFormat":99},{"version":"471af33b1857fa4b317b16e9d7ccae480a22dfc810b8c45ef77aa2ab56979aec","impliedFormat":99},{"version":"965c39e74a193b31c3ec5366c51aa01c25110cbf1ec7f7357fd23cc5d93d1d10","impliedFormat":99},{"version":"c56f83829e2f39661fd0ba5ea5d9951a3a030c8a7af7aea64063f47f5df30d91","impliedFormat":99},{"version":"365cd3bd7c34b33c9410b5611d5fda910f240d3f00d064de604872e9059df2a2","impliedFormat":99},{"version":"1b4b29676899b1f65c78333bba3d957a1aaf808a2878e175552f91d8e050cd4e","impliedFormat":99},{"version":"c5bead95b9253b4f8dd936174e574caec177d9d8faffe7ef5076b446a5dedc78","impliedFormat":99},{"version":"d607488d3ac6f52664eaf55cec3fa8f5cf4917213e38a4da1e6b7c50ea681d61","impliedFormat":99},{"version":"c11ba533e1a748cdcead147e9db889be4bda2195c740047b9714cca4f9b6130f","impliedFormat":99},{"version":"aa1c559ddb4ce8f5f5c4850af996bb6e2f4b9f71c023d4cc0ff881b8a3fe452d","impliedFormat":99},{"version":"421c86686d0cf898f01d38868512d6e3b59dc2a7047ca17236c9467de735f784","impliedFormat":99},{"version":"a0bb263f337f060c60d374daaf8fecaf0b72068a930a7a14427d09bb995e518a","impliedFormat":99},{"version":"256a906e6257e38face45afa6e310728c40e1f5fae9c3ba353bf4803759938a0","impliedFormat":99},{"version":"d0611871e96e9b929fd91d9e6ba1dad5433bb9b39207017756ea62741519bf06","impliedFormat":99},{"version":"823515a598ff16a37aa8f9fef02245443c3eb307e904eea970f83fd10ef91e8a","impliedFormat":99},{"version":"05989f5ed7c10ee6bdff96ef66763807115d0bb8e3bd8f577fc22ca53ba618ff","impliedFormat":99},{"version":"ad2f328fad1477039b2fb73a8a851ba2bf2bfa77f24f2cc976e4b378e2b87fe2","impliedFormat":99},{"version":"9fb4e05d86275ed414fe10e47002d6a4ef14d7ee9d82de7b3424e716f2af0978","impliedFormat":99},{"version":"a677960d6fc98d4b3f08cc4da99d9f413a96eda0b3314dac659cfdc949b9ea1a","impliedFormat":99},{"version":"fadc49f432b8e92bc69001fe070f49771e10fd5ca4133c858a596249031c5f21","impliedFormat":99},{"version":"d8f8110e56492c19459e5638701c467612d2f4231fc5bb7adaffb8c7c76da14e","impliedFormat":99},{"version":"f2d6b04310961110c86dbb8c33e818438b8fbd0a236a43c638761fb68b1d62e9","impliedFormat":99},{"version":"74583718a5d66275a4420e9b6b0274670b0db17cafa520fa16a84fb2334a603f","impliedFormat":99},{"version":"fcf97d741226ded66f45877a28640a1af3424dfb659cf81304ba4b223da72a15","impliedFormat":99},{"version":"e05e069db143b8d3ab0f79843dc92c1bbd63992ae3fda8e29f51de27ca8f7188","impliedFormat":99},{"version":"37208e76fd609808109257e4c375bc68cecaf0c20aba4d8c47fef87639c53339","impliedFormat":99},{"version":"250f85657a04d064d8f0ff02c46e2461e5485576007a06f28cb136411a091c6f","impliedFormat":99},{"version":"89b5b1578ec022ad0e6af3a864c051f127f5cfdf8ef478bbfd46f67eac5f012a","impliedFormat":99},{"version":"963b729b17c37c64a28444735f11caebd2f8f2e6f7e99370e1d1cce33f92a635","impliedFormat":99},{"version":"c6ef9eeeb1a7200a27da2af28f56093b827fe7bed77098bf123259c7c9d72ca2","impliedFormat":99},{"version":"37281754bbe6062fec2de8abe59f9cecf24feb87230207a7811edaffc2a86eba","impliedFormat":99},{"version":"20773d48a109f2c3993259683290f8f3b7c04cb1089c98ec1293bc9436689d21","impliedFormat":99},{"version":"7cb90c9f9a9ed56c7bfda0ceb572fecd731c111c97ef342b1ce06feb20eece90","impliedFormat":99},{"version":"81ebad612fc1d5666eba3954592497c7268eb42c4997b739faa7d23f86d52a3d","impliedFormat":99},{"version":"1ba8c9e2727877c16b9c76820d92befd453c5dc852c3dff42a4306517674437c","impliedFormat":99},{"version":"0b20accf4e27943958860d16dc3624ca74193f9539bd075919f5493cb948653d","impliedFormat":99},{"version":"1332643816c00889cb1571f4d0bc9eb056f9b69eb024cb5eaa02bed67dd3efe6","impliedFormat":99},{"version":"66c39742bfca97c270775fc7272e11e4f2e6619d31b763f22705c26759c14a90","impliedFormat":99},{"version":"3179455f87d97b1add088969efba06190cfbd53b0fe31582ae9227759a104b3b","impliedFormat":99},{"version":"c486d690ddd5ec93be00c5ac9ef4441859d63c2f0724f0b0c26b8d5ab47ce350","impliedFormat":99},{"version":"9692e992f23d577267b88280c10897f7fe156cac30f74b921a2878422f186122","impliedFormat":99},{"version":"5a3ac17eb52dcd5b4c229d1205c435fc2b78352560f7753544a1d803f28e8cde","impliedFormat":99},{"version":"e65d2dd21a009f7dfafff8cd53fe5fcc47aee2a3208534a6983b38eea9ea83cb","impliedFormat":99},{"version":"f0c9a49f08868e24d072252460faa59c23c64268b9e88c6992219cc449846fe4","impliedFormat":99},{"version":"d17443c56d206d02942309e0252dea6f25e23a3f8bf097c43e1a9c44762e347d","impliedFormat":99},{"version":"8bb9b43941fda0ec388a519e80df9bb759ebab41c59579cd9354f324a1ed5f77","impliedFormat":99},{"version":"d7b0159b6f98e1a8c2848521fe9bb2daed4703bd04edc94db9a50019c2609883","impliedFormat":99},{"version":"2e20c09076f10b8008351c207570c18557b6e1ee27312929acb458044f41178d","impliedFormat":99},{"version":"a5c66967a087b7e96272b5d8f576bf0511dd84287619ffc2286ccaff696d97e5","impliedFormat":99},{"version":"3259f342c0bb790af6c4baef0e3b11ce8fe7b1ebeb1443acdee36ba4ac2e2b0b","impliedFormat":99},{"version":"640f8d8b3921c4a4243017ffa70c4f204b177c5831be59d570c066f39b67a001","impliedFormat":99},{"version":"152c1ca116c52931a9e0e65eb6231603a23026c7177e93b894ae0536925c3725","impliedFormat":99},{"version":"4cb490350f2c02bdd863585304774528b4368b5ef9be0baf3165275c1d20fc5a","impliedFormat":99},{"version":"4daae0eecf571f8b08987b0196ac8cac95a9678cd7b074104b356a48ebc3d2f2","impliedFormat":99},{"version":"a18e6462533de3559b62809edc2a2ce96ab96bed2d55be70b958aa00ebdf5a02","impliedFormat":99},{"version":"64343713d1e9643958b49a06ce112dea701c1be9c89b25d45047673f9dad11cb","impliedFormat":99},{"version":"c40245912583c6d3ef9645125895d8752887be10f4d4d454cbfd50da95f55d95","impliedFormat":99},{"version":"11640b1d7762f5ae7130a3de0c66da4cc7aeea4eff8498824761f5bce62c4d6f","impliedFormat":99},{"version":"a960bce8d07306cb838d640a142cf196a6e2a26dd4dfd572037b08192583c823","impliedFormat":99},{"version":"3fd392050c000fdf7fb5d76da1678870ab300f67ab56fdb12e8f42162cdcd158","impliedFormat":99},{"version":"68c2093b49b323d0f694581ff201141bad4195e817931e96a6855d0593c78d5f","impliedFormat":99},{"version":"3038aa1ecaa400d82ff14699d17aa62a0cb39090db5e5900e97d83907f33742a","impliedFormat":99},{"version":"0298abaab88b542cc161d5d708cc106f770fb5f2a7f3126df07b1ad93ac0aa43","impliedFormat":99},{"version":"d4638592d670740d1805dd8ab308a88bba925a44e2c57e3bdaa841e2c8184426","impliedFormat":99},{"version":"3a46fa6516bd4576f1d3c20e5ae4ee1a2e3c976af74fd8367fff8914fcea2f63","impliedFormat":99},{"version":"11ae2083e856bfd49d6929ba4ec7860dabb3068e8839ea9820d7c6d7ade39b43","impliedFormat":99},{"version":"67958d8ca612f5cb0a084a68d6651f7d0004fefded8b79aef19cf2c4b06d2c21","impliedFormat":99},{"version":"88dba31b191015fa0c02f687d7d715a657b3c7c8a044dda74d33a9ef40eefdda","impliedFormat":99},{"version":"bd40deaa690c1ba2cc294451dcffab88843a3f200d1053a140d17ebb45e48747","impliedFormat":99},{"version":"8b9f41091e1ff0304b2f5f3b27903a4afbbcc68ae14b52b95dc08ca2bee54c8d","impliedFormat":99},{"version":"065ba85b587c5ddf26d7b9c4533230c4e21c4933ccf11f93ca5d2952d43f5219","impliedFormat":99},{"version":"a57829832feef501282ba96e361048ae28fccf7b4aa6b2a86d1c998edbaaf8d9","impliedFormat":99},{"version":"ee1fbe27922f289284ac8c6874a4cfc2bf1c9250e269b8cad0d870d213e9414e","impliedFormat":99},{"version":"bc7074160cc06a82c0a148ec3889ca7a76378a01c6a5a76d77c8a4910b2dc8d9","impliedFormat":99},{"version":"af1687b35bf07abf38e7434c3b0003d0fe1f6a249ce11d979c4e5f36b830fc2c","impliedFormat":99},{"version":"41aced6fab28dbd3c0b266d7055466cd7eba51a13a63913507036036905c1e77","impliedFormat":99},{"version":"2149a7b37d6f1cd8e7fd37959f6b918d1085544c88e417e57b2230cddbc23f20","impliedFormat":99},{"version":"a1cfeb8962e295cc95d247777ab2de03d24bf7cb7f160d4846214111e60e98a2","impliedFormat":99},{"version":"84bcc7c6b06f4d643a55dc63b56be0c81d990f8d549b66ea615c553268774dc3","impliedFormat":1},{"version":"2d225e7bda2871c066a7079c88174340950fb604f624f2586d3ea27bb9e5f4ff","impliedFormat":1},{"version":"6a785f84e63234035e511817dd48ada756d984dd8f9344e56eb8b2bdcd8fd001","impliedFormat":1},{"version":"c1422d016f7df2ccd3594c06f2923199acd09898f2c42f50ea8159f1f856f618","impliedFormat":1},{"version":"2973b1b7857ca144251375b97f98474e9847a890331e27132d5a8b3aea9350a8","impliedFormat":1},{"version":"0eb6152d37c84d6119295493dfcc20c331c6fda1304a513d159cdaa599dcb78b","impliedFormat":1},{"version":"237df26f8c326ca00cd9d2deb40214a079749062156386b6d75bdcecc6988a6b","impliedFormat":1},{"version":"cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","impliedFormat":1},{"version":"58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","impliedFormat":1},{"version":"7557d4d7f19f94341f4413575a3453ba7f6039c9591015bcf4282a8e75414043","impliedFormat":1},{"version":"a3b2cc16f3ce2d882eca44e1066f57a24751545f2a5e4a153d4de31b4cac9bb5","impliedFormat":1},{"version":"ac2b3b377d3068bfb6e1cb8889c99098f2c875955e2325315991882a74d92cc8","impliedFormat":1},{"version":"8deb39d89095469957f73bd194d11f01d9894b8c1f1e27fbf3f6e8122576b336","impliedFormat":1},{"version":"a38a9c41f433b608a0d37e645a31eecf7233ef3d3fffeb626988d3219f80e32f","impliedFormat":1},{"version":"8e1428dcba6a984489863935049893631170a37f9584c0479f06e1a5b1f04332","impliedFormat":1},{"version":"1fce9ecb87a2d3898941c60df617e52e50fb0c03c9b7b2ba8381972448327285","impliedFormat":1},{"version":"5ef0597b8238443908b2c4bf69149ed3894ac0ddd0515ac583d38c7595b151f1","impliedFormat":1},{"version":"ac52b775a80badff5f4ac329c5725a26bd5aaadd57afa7ad9e98b4844767312a","impliedFormat":1},{"version":"6ae5b4a63010c82bf2522b4ecfc29ffe6a8b0c5eea6b2b35120077e9ac54d7a1","impliedFormat":1},{"version":"dd7109c49f416f218915921d44f0f28975df78e04e437c62e1e1eb3be5e18a35","impliedFormat":1},{"version":"eee181112e420b345fc78422a6cc32385ede3d27e2eaf8b8c4ad8b2c29e3e52e","impliedFormat":1},{"version":"25fbe57c8ee3079e2201fe580578fab4f3a78881c98865b7c96233af00bf9624","impliedFormat":1},{"version":"62cc8477858487b4c4de7d7ae5e745a8ce0015c1592f398b63ee05d6e64ca295","impliedFormat":1},{"version":"cc2a9ec3cb10e4c0b8738b02c31798fad312d21ef20b6a2f5be1d077e9f5409d","impliedFormat":1},{"version":"4b4fadcda7d34034737598c07e2dca5d7e1e633cb3ba8dd4d2e6a7782b30b296","impliedFormat":1},{"version":"360fdc8829a51c5428636f1f83e7db36fef6c5a15ed4411b582d00a1c2bd6e97","impliedFormat":1},{"version":"1cf0d15e6ab1ecabbf329b906ae8543e6b8955133b7f6655f04d433e3a0597ab","impliedFormat":1},{"version":"7c9f98fe812643141502b30fb2b5ec56d16aaf94f98580276ae37b7924dd44a4","impliedFormat":1},{"version":"b3547893f24f59d0a644c52f55901b15a3fa1a115bc5ea9a582911469b9348b7","impliedFormat":1},{"version":"596e5b88b6ca8399076afcc22af6e6e0c4700c7cd1f420a78d637c3fb44a885e","impliedFormat":1},{"version":"adddf736e08132c7059ee572b128fdacb1c2650ace80d0f582e93d097ed4fbaf","impliedFormat":1},{"version":"d4cad9dc13e9c5348637170ddd5d95f7ed5fdfc856ddca40234fa55518bc99a6","impliedFormat":1},{"version":"d70675ba7ba7d02e52b7070a369957a70827e4b2bca2c1680c38a832e87b61fd","impliedFormat":1},{"version":"3be71f4ce8988a01e2f5368bdd58e1d60236baf511e4510ee9291c7b3729a27e","impliedFormat":1},{"version":"423d2ccc38e369a7527988d682fafc40267bcd6688a7473e59c5eea20a29b64f","impliedFormat":1},{"version":"2f9fde0868ed030277c678b435f63fcf03d27c04301299580a4017963cc04ce6","impliedFormat":1},{"version":"feeb73d48cc41c6dd23d17473521b0af877751504c30c18dc84267c8eeea429a","impliedFormat":1},{"version":"25f1159094dc0bf3a71313a74e0885426af21c5d6564a254004f2cadf9c5b052","impliedFormat":1},{"version":"cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","impliedFormat":1},{"version":"3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","impliedFormat":1},{"version":"4304f640f7cb4724ea82441accb7c7607fa7207541182470d625adda99b2900b","impliedFormat":1},{"version":"e0205f04611bea8b5b82168065b8ef1476a8e96236201494eb8c785331c43118","impliedFormat":1},{"version":"62d26d8ba4fa15ab425c1b57a050ed76c5b0ecbffaa53f182110aa3a02405a07","impliedFormat":1},{"version":"9941cbf7ca695e95d588f5f1692ab040b078d44a95d231fa9a8f828186b7b77d","impliedFormat":1},{"version":"41b8775befd7ded7245a627e9f4de6110236688ce4c124d2d40c37bc1a3bfe05","impliedFormat":1},{"version":"41b8775befd7ded7245a627e9f4de6110236688ce4c124d2d40c37bc1a3bfe05","impliedFormat":1},{"version":"18992725cbd51b0846132ec46237bc7de4da1db440deb66a6242e2de8715dcfb","impliedFormat":1},{"version":"44f29187cfbc7aa4a6109204c8e5186509abc3b78874a2ee1498c51ab50f0f62","impliedFormat":1},{"version":"19ab78c1376c16e18c5b87dfa750813c935f0c4ce1d6ef88058ec38f9cf5ef08","impliedFormat":1},{"version":"3011b023a4b924b03162c2ced4dc643fcd1fcef49628e3e4e15b97f112528015","impliedFormat":99},{"version":"285559a2659f3425404276ca76374bba5433bb5bf39dbdbce708a1fa7cf7d001","impliedFormat":99},{"version":"19d7c3e1fc436752207229783cc61ea750bfb833e6ca4e55cc7bea4198c7c41d","impliedFormat":99},{"version":"12b67f9afdad26ceb8a09e3289a0bbc5e2c520f1e26b3e52a032ef438aac48f4","impliedFormat":99},{"version":"231021b7ca78832455df572eff75683eb94a81059bddaec01c5e6b22e6be6168","impliedFormat":99},{"version":"2ed8dd1f0829bd4bfd87b8e622727e951b607d83f880f51bff5b5e6556e8ca62","impliedFormat":99},{"version":"8992c6df1af81698b45bab8a703679a5a0fade848a6db9389cd379429d5c7b4f","impliedFormat":99},{"version":"0ca27c0874602203f97b015b8533e4d5fc893e6544d4e890c277bc497e27e2de","impliedFormat":99},{"version":"2680d0e29d526b5ea45e8bf6103ec9cf19141f79f196609d95cdac716bc1a53c","impliedFormat":99},{"version":"13ade40c4a68a04ac8b8a7fe11fbf7ae0219716d64c35b24f4fef3472e9ebe99","impliedFormat":99},{"version":"7f4e989cabdbb41f5f6e07c8654e2fa3a7e9da932e0bb7b6e12f1490d06e0e91","impliedFormat":99},{"version":"c46176262bf9aea02f7ba61f1043019bec86a2245a6a456f5ee5d1162fdeed98","signature":"15dfa93501cd7b731845530f042fbae29ae4f2155a71006350753e3a4e98043b","impliedFormat":99},{"version":"fb2890d22f329878f5a3475196e4b7821e6f4aa5bd4949af943c2c4f25a7014d","signature":"f08d7d051138c0f05e3826c884a97dc7df3407d30d64b6913b0727ff00cf0306","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"d5799bcf7fe4e6de3063abf4e321c14b051706f03cf5716d8a19f22fe1f69519","impliedFormat":1},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"378281aa35786c27d5811af7e6bcaa492eebd0c7013d48137c35bbc69a2b9751","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b2dd1cbeb0cc6ae20795958ba5950395ebb2849b7c8326853dd15530c77ab0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"387a023d363f755eb63450a66c28b14cdd7bc30a104565e2dbf0a8988bb4a56c","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"24371e69a38fc33e268d4a8716dbcda430d6c2c414a99ff9669239c4b8f40dea","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"c63b9ada8c72f95aac5db92aea07e5e87ec810353cdf63b2d78f49a58662cf6c","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"f724236417941ea77ec8d38c6b7021f5fb7f8521c7f8c1538e87661f2c6a0774","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ea15fd99b2e34cb25fe8346c955000bb70c8b423ae4377a972ef46bfb37f595","impliedFormat":1},{"version":"7cf69dd5502c41644c9e5106210b5da7144800670cbe861f66726fa209e231c4","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"f9b4137a0d285bd77dba2e6e895530112264310ae47e07bf311feae428fb8b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"c06b2652ffeb89afd0f1c52c165ced77032f9cd09bc481153fbd6b5504c69494","impliedFormat":1},{"version":"51aecd2df90a3cffea1eb4696b33b2d78594ea2aa2138e6b9471ec4841c6c2ee","impliedFormat":1},{"version":"9d8f9e63e29a3396285620908e7f14d874d066caea747dc4b2c378f0599166b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"612422d5ba6b4a5c4537f423e9199645468ad80a689801da63ab7edb43f7b835","impliedFormat":1},{"version":"db9ada976f9e52e13f7ae8b9a320f4b67b87685938c5879187d8864b2fbe97f3","impliedFormat":1},{"version":"9f39e70a354d0fba29ac3cdf6eca00b7f9e96f64b2b2780c432e8ea27f133743","impliedFormat":1},{"version":"0dace96cc0f7bc6d0ee2044921bdf19fe42d16284dbcc8ae200800d1c9579335","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"1cbdcdef62bf42688e5d825898c3a59458466c48ad8a4ef3f88d8a1cd04310d6","impliedFormat":1},{"version":"c64e1888baaa3253ca4405b455e4bf44f76357868a1bd0a52998ade9a092ad78","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc8c6f5322961b56d9906601b20798725df60baeab45ec014fba9f795d5596fd","impliedFormat":1},{"version":"67e435fa530778903f5525904e6645b7368eb5ac622055febd19bb399e328ccd","impliedFormat":1},{"version":"060d305fe4494d8cb2b99d620928d369d1ee55c1645f5e729a2aca07d0f108cb","impliedFormat":1},{"version":"5b22bf96be06fca1e134e3a85351ffe7aa2edf0c9a5bd175b7239ee48186dbf5","impliedFormat":1},{"version":"0c50296ee73dae94efc3f0da4936b1146ca6ce2217acfabb44c19c9a33fa30e5","impliedFormat":1},{"version":"bbf42f98a5819f4f06e18c8b669a994afe9a17fe520ae3454a195e6eabf7700d","impliedFormat":1},{"version":"5b48cc670da1dfe926036deaf349085caf822def460a6d50de23f1cc12a5f8cd","impliedFormat":1},{"version":"418f34087d52d001e2688a6282a5de9bf583ff771ed5546af0ae36e4f60a458b","affectsGlobalScope":true,"impliedFormat":1},{"version":"036c9a03b01281f99f8251fdc7088e894566be44b3f139a9d48501a978b611df","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"ff65b8a8bd380c6d129becc35de02f7c29ad7ce03300331ca91311fb4044d1a9","impliedFormat":1},{"version":"04bf1aa481d1adfb16d93d76e44ce71c51c8ef68039d849926551199489637f6","impliedFormat":1},{"version":"2c9adcc85574b002c9a6311ff2141055769e0071856ec979d92ff989042b1f1b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1569ad5969ae0de6ad0bdfaaab0dabcd8878bc3147ab096206eed2019bb84e7f","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"42a350ce4f6f291198dc89833afcc4fd078248b4e1fdc9d05c846c66a670f710","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"5fb39858b2459864b139950a09adae4f38dad87c25bf572ce414f10e4bd7baab","impliedFormat":1},{"version":"b03754211d839cdc48979996525a32eb62130682c2f9801dfc2f25533ce7238d","impliedFormat":1},{"version":"3910dab597c40e173bf0e0d419d3ce9682c54ebf6ae84849f9b829b1451a17ec","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"4e5d5874ff5bf94b02e856cffbcc2b3ddea5d52f463ef55cc0206f1afaa2ab28","affectsGlobalScope":true,"impliedFormat":1},{"version":"c119835edf36415081dfd9ed15fc0cd37aaa28d232be029ad073f15f3d88c323","impliedFormat":1},{"version":"f4d99ac08c4097a3cc202bec2c7198c19dcdd80d4ec6c62d1356b10d03b119d5","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"ca77e83162eccec633513723d178d4203bdd5465297267696be08013bab0aa1d","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"f61c153d5abbe4381a1fba0d41be0babdd5de51c626ee7ff14cede14dedc33f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7803171d745ab18e77f16bf82e742268ff72b7f7382ab191e4277527580c2d89","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e9ba65cd3d6d194bdda7343f9f2917f7144ead96a924ca58d1a14919992dc20","impliedFormat":1},{"version":"255d948f87f24ffd57bcb2fdf95792fd418a2e1f712a98cf2cce88744d75085c","impliedFormat":1},{"version":"0d5b085f36e6dc55bc6332ecb9c733be3a534958c238fb8d8d18d4a2b6f2a15a","impliedFormat":1},{"version":"0b0dfb2d3e8420ead06f6a11acfb02ddcec42257e6ce391993e895ba0af86de4","affectsGlobalScope":true,"impliedFormat":1},{"version":"bfd3b3c21a56104693183942e221c1896ee23bcb8f8d91ab0b941f7b32985411","impliedFormat":1},{"version":"d7e9ab1b0996639047c61c1e62f85c620e4382206b3abb430d9a21fb7bc23c77","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"dfb24c6874a941ebd8947c97efb27c6b40f4a48218ce7433d1d088d1245b6d58","impliedFormat":1}],"root":[241,242],"options":{"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"jsx":4,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"target":9,"tsBuildInfoFile":"./react.tsbuildinfo"},"referencedMap":[[173,1],[174,1],[175,1],[176,1],[177,2],[178,2],[180,3],[179,4],[91,5],[137,6],[74,5],[75,7],[76,5],[153,7],[77,5],[78,5],[79,7],[80,5],[81,7],[82,8],[84,5],[89,5],[90,5],[83,5],[85,5],[86,5],[87,5],[88,5],[71,7],[92,5],[93,7],[94,5],[95,7],[96,5],[97,5],[98,5],[99,5],[100,5],[101,5],[102,5],[103,5],[104,5],[105,5],[106,5],[107,7],[109,5],[108,5],[110,5],[172,9],[111,5],[112,5],[113,5],[114,7],[115,5],[116,7],[117,5],[72,10],[118,11],[119,7],[120,5],[121,5],[122,7],[123,5],[124,5],[125,5],[126,7],[127,5],[128,7],[129,7],[130,5],[154,5],[156,12],[155,13],[131,5],[132,5],[133,5],[134,7],[135,5],[157,5],[158,5],[159,5],[160,5],[161,5],[162,5],[163,5],[171,14],[164,5],[165,5],[166,5],[167,5],[168,5],[169,5],[170,5],[136,5],[138,7],[139,11],[140,5],[141,15],[142,5],[143,5],[144,5],[145,5],[73,16],[146,5],[147,17],[148,7],[149,7],[150,7],[151,5],[152,5],[231,18],[234,19],[235,20],[232,21],[230,22],[233,23],[225,24],[182,7],[184,25],[183,26],[188,27],[223,28],[220,29],[222,30],[185,29],[186,31],[190,31],[189,32],[187,33],[221,34],[219,29],[224,35],[217,7],[218,7],[191,36],[196,29],[198,29],[193,29],[194,36],[200,29],[201,37],[192,29],[197,29],[199,29],[195,29],[215,38],[214,29],[216,39],[210,29],[212,29],[211,29],[207,29],[213,40],[208,29],[209,41],[202,29],[203,29],[204,29],[205,29],[206,29],[181,7],[245,42],[243,7],[246,7],[247,7],[70,7],[248,7],[303,43],[304,43],[305,44],[251,45],[306,46],[307,47],[308,48],[249,7],[309,49],[310,50],[311,51],[312,52],[313,53],[314,54],[315,54],[316,55],[317,56],[318,57],[319,58],[252,7],[250,7],[320,59],[321,60],[322,61],[357,62],[323,63],[324,7],[325,64],[326,65],[328,66],[329,67],[330,68],[331,69],[332,70],[333,71],[334,72],[335,72],[336,73],[337,7],[338,74],[339,75],[341,76],[340,77],[342,78],[343,79],[344,80],[345,81],[346,82],[347,83],[348,84],[349,85],[350,86],[351,87],[352,88],[353,89],[354,90],[253,7],[254,91],[255,7],[256,7],[299,92],[300,93],[301,7],[302,78],[355,94],[356,95],[358,7],[359,11],[66,7],[68,96],[69,11],[227,97],[229,98],[228,97],[226,24],[244,7],[327,7],[67,7],[64,7],[65,7],[11,7],[12,7],[14,7],[13,7],[2,7],[15,7],[16,7],[17,7],[18,7],[19,7],[20,7],[21,7],[22,7],[3,7],[23,7],[24,7],[4,7],[25,7],[29,7],[26,7],[27,7],[28,7],[30,7],[31,7],[32,7],[5,7],[33,7],[34,7],[35,7],[36,7],[6,7],[40,7],[37,7],[38,7],[39,7],[41,7],[7,7],[42,7],[47,7],[48,7],[43,7],[44,7],[45,7],[46,7],[8,7],[52,7],[49,7],[50,7],[51,7],[53,7],[9,7],[54,7],[55,7],[56,7],[58,7],[57,7],[59,7],[60,7],[10,7],[61,7],[1,7],[62,7],[63,7],[275,99],[287,100],[272,101],[288,102],[297,103],[263,104],[264,105],[262,106],[296,107],[291,108],[295,109],[266,110],[284,111],[265,112],[294,113],[260,114],[261,108],[267,115],[268,7],[274,116],[271,115],[258,117],[298,118],[289,119],[278,120],[277,115],[279,121],[282,122],[276,123],[280,124],[292,107],[269,125],[270,126],[283,127],[259,102],[286,128],[285,115],[273,126],[281,129],[290,7],[257,7],[293,130],[239,131],[240,132],[238,133],[237,134],[236,7],[241,135],[242,136]],"latestChangedDtsFile":"./JSFLForm.d.ts","version":"5.9.3"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "a-form-react",
3
+ "version": "0.1.4",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": {
7
+ "types": "./dist/index.d.ts",
8
+ "import": "./dist/index.js"
9
+ }
10
+ },
11
+ "files": [
12
+ "dist"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsc -b",
16
+ "typecheck": "tsc -b --pretty false"
17
+ },
18
+ "dependencies": {
19
+ "@rjsf/core": "^6.10.0",
20
+ "@rjsf/utils": "^6.10.0",
21
+ "@rjsf/validator-ajv8": "^6.10.0",
22
+ "a-form-async-validation": "^0.1.4",
23
+ "a-form-core": "^0.1.4"
24
+ },
25
+ "peerDependencies": {
26
+ "react": ">=18.0.0",
27
+ "react-dom": ">=18.0.0"
28
+ },
29
+ "devDependencies": {
30
+ "@types/react": "^19.2.18",
31
+ "@types/react-dom": "^19.2.7",
32
+ "jsdom": "^29.1.1",
33
+ "react": "^19.2.8",
34
+ "react-dom": "^19.2.8"
35
+ }
36
+ }