@gaddario98/react-core 2.1.3 → 2.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/form/index.d.ts +41 -27
- package/dist/form/index.js +9 -4
- package/dist/form/index.js.map +1 -1
- package/dist/form/index.mjs +9 -4
- package/dist/form/index.mjs.map +1 -1
- package/dist/notifications/index.d.ts +4 -4
- package/dist/pages/index.d.ts +10 -1
- package/dist/pages/index.js +43 -21
- package/dist/pages/index.js.map +1 -1
- package/dist/pages/index.mjs +43 -21
- package/dist/pages/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/form/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../form/config.ts","../../form/containers.tsx","../../form/hooks/useJotaiForm.ts","../../form/FormField.tsx","../../form/atoms/formAtom.ts","../../form/hooks/useFormValues.ts","../../node_modules/@tanstack/react-store/dist/esm/index.js","../../form/hooks/useFormManager.tsx","../../form/FormManager.tsx"],"sourcesContent":["import { atomStateGenerator } from '@gaddario98/react-state'\nimport type { PropsWithChildren } from 'react'\n\nexport interface FormNotificationMessage {\n message: string\n type: 'success' | 'error' | 'info' | 'warning'\n autoHideDuration?: number\n textTransOption?: Record<string, unknown>\n ns?: string\n}\nexport interface FormTranslationOptions {\n [key: string]: string | number | boolean | undefined\n ns?: string\n}\nexport interface FormConfigProps {\n formFieldContainer: React.FC<PropsWithChildren>\n showNotification?: (notification: FormNotificationMessage) => void\n translateText?: (key: string, options?: FormTranslationOptions) => string\n}\n\nconst DefaultContainer = ({ children }: PropsWithChildren) => {\n return children\n}\n// Lazy initialization to avoid side effects at module load time\nconst _formConfig: FormConfigProps = {\n formFieldContainer: DefaultContainer,\n}\n\nexport const {\n atom: formConfigAtom,\n useValue: useFormConfigValue,\n useState: useFormConfigState,\n useReset: useFormConfigReset,\n} = atomStateGenerator<FormConfigProps>({\n key: 'formConfig',\n defaultValue: _formConfig,\n persist: false,\n})\n","import { useCallback } from 'react'\nimport type { FieldValues, ViewSettingsContainerProps } from './types'\n\nexport interface DefaultFormContainerProps {\n children: React.ReactNode\n}\n\nconst createDefaultContainer = () => {\n return ({ children }: ViewSettingsContainerProps) => {\n return children\n }\n}\n\nlet DefaultContainer = createDefaultContainer()\n\nconst setDefaultFormContainer = (\n val: ({\n children,\n }: ViewSettingsContainerProps) => React.ReactNode,\n) => {\n DefaultContainer = val\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst DefaultFormContainer = <_T extends FieldValues = FieldValues>({\n children,\n}: ViewSettingsContainerProps) => {\n const handleSubmit = useCallback((e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n const form = e.currentTarget\n const submitButton = form.querySelector('button[type=\"submit\"]') as\n | HTMLButtonElement\n | undefined\n submitButton?.click()\n }, [])\n\n return (\n <form onSubmit={handleSubmit} className=\"gap-3 flex flex-col\">\n {children}\n </form>\n )\n}\n\nexport { DefaultContainer, setDefaultFormContainer, DefaultFormContainer }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useForm } from '@tanstack/react-form'\nimport type {FormOptions} from '@tanstack/react-form';\nimport type { FieldValues } from '../types'\n\nexport interface UseCustomFormOptions<TData extends FieldValues>\n extends FormOptions<\n TData,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n > {\n formId?: string\n}\n\nexport function useJotaiForm<TData extends FieldValues>(formOptions: UseCustomFormOptions<TData>) {\n const form = useForm<\n TData,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n >(formOptions)\n\n return form\n}\n","/* eslint-disable react-hooks/refs */\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { useFormConfigValue } from './config'\nimport type { FieldValues, FormFieldProps } from './types'\n\nexport const FormField = <T extends FieldValues>({\n config,\n onFieldChange,\n ns: globalNs,\n globalErrorNs,\n}: FormFieldProps<T>) => {\n const ns = config.ns ?? globalNs\n const errorNs = config.errorNs ?? globalErrorNs\n const { formFieldContainer, translateText } = useFormConfigValue()\n\n // TanStack Form uses field.state.meta.errors which is an array of ValidationError\n const firstError =\n config.field.state.meta.errors.length > 0\n ? config.field.state.meta.errors[0]\n : undefined\n const errorMessageStr = firstError ? String(firstError) : undefined\n\n const errorMessage = useMemo(() => {\n if (!errorMessageStr) return undefined\n return errorNs\n ? translateText?.(errorMessageStr, {\n ns: errorNs || '',\n defaultValue: '',\n })\n : errorMessageStr\n }, [errorMessageStr, errorNs, translateText])\n\n const label = useMemo(\n () => (ns ? translateText?.(config.label ?? '') : config.label),\n [ns, config.label, translateText],\n )\n\n const helperMessage = useMemo(\n () =>\n config.helper?.text\n ? translateText?.(config.helper.text, config.helper.translationOption)\n : '',\n [config.helper, translateText],\n )\n\n const ref = useRef({ onFieldChange, handleChange: config.field.handleChange })\n\n useEffect(() => {\n ref.current = {\n onFieldChange,\n handleChange: config.field.handleChange,\n }\n }, [config.field.handleChange, onFieldChange])\n\n const handleChange = useCallback((value: T) => {\n // TanStack Form handleChange usually expects just the value for input\n // but if we are manually calling it we should pass the value.\n ref.current.handleChange(value)\n ref.current.onFieldChange?.(value)\n }, [])\n\n const handleBlur = useCallback(() => {\n config.field.handleBlur()\n }, [config.field])\n\n const baseProps = useMemo(\n () => ({\n value: config.field.state.value,\n onChange: handleChange,\n onBlur: handleBlur,\n error: config.field.state.meta.errors.length > 0,\n errorMessage,\n label,\n helperMessage,\n }),\n [\n config.field.state.value,\n handleChange,\n handleBlur,\n config.field.state.meta.errors.length,\n errorMessage,\n label,\n helperMessage,\n ],\n )\n\n const ConfigContainer = useMemo(() => config.container, [config.container])\n const FormFieldContainer = useMemo(\n () => formFieldContainer,\n [formFieldContainer],\n )\n\n if (ConfigContainer) {\n return (\n <ConfigContainer>\n {config.component(baseProps)}\n </ConfigContainer>\n )\n }\n return (\n <FormFieldContainer>\n {config.component(baseProps)}\n </FormFieldContainer>\n )\n}\n","import { atom, useAtom, useAtomValue, useSetAtom } from 'jotai'\nimport { selectAtom } from 'jotai/utils'\nimport { useCallback, useMemo } from 'react'\nimport type { FieldValues, SetValueFunction } from '../types'\n\nexport interface FormStoreEntry<F extends FieldValues = FieldValues> {\n formValues: F\n setValue: SetValueFunction<F>\n}\n\nexport const DEFAULT_FORM_ENTRY: FormStoreEntry<FieldValues> = Object.freeze({\n formValues: {} as FieldValues,\n setValue: () => {},\n})\n\n/**\n * Global atom storing all form state.\n * Key format: \"scopeId:formId\" or just \"formId\" for backward compatibility.\n */\nexport const formAtom = atom<Record<string, FormStoreEntry>>({})\n\n/**\n * Helper to generate composite keys for forms.\n */\nexport const getFormCompositeKey = (scopeId: string, key: string): string =>\n `${scopeId}:${key}`\n\n/**\n * Creates a derived atom for accessing forms of a specific scope.\n */\nexport const createScopeFormsAtom = (scopeId: string) =>\n atom(\n (get) => {\n const allForms = get(formAtom)\n const prefix = `${scopeId}:`\n const scopeForms: Record<string, FormStoreEntry> = {}\n\n for (const [key, value] of Object.entries(allForms)) {\n if (key.startsWith(prefix)) {\n scopeForms[key.slice(prefix.length)] = value\n }\n }\n\n return scopeForms\n },\n (get, set, update: Record<string, FormStoreEntry>) => {\n const allForms = get(formAtom)\n const prefix = `${scopeId}:`\n const newForms = { ...allForms }\n\n // Remove old scope entries\n for (const key of Object.keys(newForms)) {\n if (key.startsWith(prefix)) {\n delete newForms[key]\n }\n }\n\n // Add new scope entries\n for (const [key, value] of Object.entries(update)) {\n newForms[`${prefix}${key}`] = value\n }\n\n set(formAtom, newForms)\n },\n )\n\nexport const createFormSelector = <F extends FieldValues = FieldValues>(\n formId: string,\n) =>\n selectAtom(\n formAtom,\n (forms) => {\n const entry = forms[formId] as FormStoreEntry<F> | undefined\n return entry ?? (DEFAULT_FORM_ENTRY as unknown as FormStoreEntry<F>)\n },\n (a, b) =>\n a === b || (a.formValues === b.formValues && a.setValue === b.setValue),\n )\n\nexport const useFormValue = <F extends FieldValues>(formId: string) => {\n const selectorAtom = useMemo(() => createFormSelector<F>(formId), [formId])\n return useAtomValue(selectorAtom)\n}\n\nexport const useFormState = <F extends FieldValues>() => {\n return useAtom(formAtom) as unknown as [\n Record<string, FormStoreEntry<F>>,\n (value: Record<string, FormStoreEntry<F>>) => void,\n ]\n}\n\nexport const useSetFormState = <F extends FieldValues>(formId: string) => {\n const setForms = useSetAtom(formAtom)\n\n return useCallback(\n (val: Partial<FormStoreEntry<F>>) => {\n setForms((prev) => {\n const prevEntry =\n (prev[formId] as FormStoreEntry<FieldValues> | undefined) ??\n DEFAULT_FORM_ENTRY\n\n return {\n ...prev,\n [formId]: {\n ...(prevEntry as unknown as FormStoreEntry<F>),\n ...(val as unknown as Partial<FormStoreEntry<FieldValues>>),\n } as unknown as FormStoreEntry<FieldValues>,\n }\n })\n },\n [formId, setForms],\n )\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport equal from 'fast-deep-equal'\nimport { useFormValue } from '../atoms'\nimport type {\n FieldValues,\n FormFunctionProps,\n GetFormValuesFunction,\n} from '../types'\nimport type { DeepKeys, DeepValue } from '@tanstack/react-form'\n\nconst getValueAtPath = (\n obj: unknown,\n path: string,\n defaultObj?: unknown,\n): unknown => {\n if (!path) return undefined\n const normalized = path.replace(/\\[(\\d+)\\]/g, '.$1')\n const parts = normalized.split('.').filter(Boolean)\n let current: unknown = obj\n for (const part of parts) {\n if (!current || !Object.keys(current).length) {\n if (!defaultObj) return undefined\n current = { [part]: defaultObj }\n }\n if (typeof current !== 'object') return undefined\n current = (current as Record<string, unknown>)[part]\n }\n\n return current\n}\n\nexport interface UseFormValuesProps {\n formId: string\n scopeId?: string\n}\n\nexport const useFormValues = <F extends FieldValues>({\n formId,\n}: UseFormValuesProps): FormFunctionProps<F> => {\n // We subscribe to the specific form entry in the atoms\n // Note: This subscription is a bit coarse (entire form entry), but we optimize re-renders locally\n // Ideally we would want to subscribe only to specific paths, but Jotai atoms are per-form.\n const formEntry = useFormValue(formId)\n const currentValues = useMemo(\n () => formEntry.formValues,\n [formEntry.formValues],\n )\n\n const subscriptions = useRef(new Map<string, unknown>())\n // trigger state is used to force re-render when a subscribed value changes\n const [trigger, setTrigger] = useState(0)\n\n // Ref to hold the latest values without causing re-renders itself\n const formRef = useRef({\n formValues: formEntry.formValues,\n setValue: formEntry.setValue,\n })\n\n useEffect(() => {\n formRef.current.setValue = formEntry.setValue\n }, [formEntry.setValue])\n\n useEffect(() => {\n let shouldTrigger = false\n subscriptions.current.forEach((_, path) => {\n const newValue = getValueAtPath(currentValues, path)\n const oldValue = getValueAtPath(formRef.current.formValues, path)\n if (!equal(newValue, oldValue)) {\n shouldTrigger = true\n }\n })\n\n formRef.current.formValues = currentValues\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (shouldTrigger) {\n setTrigger((c) => c + 1)\n }\n }, [currentValues])\n\n const get = useCallback(\n (key: string, defaultValue?: unknown) => {\n const val =\n getValueAtPath(formRef.current.formValues, key) ?? defaultValue\n subscriptions.current.set(key, val)\n return subscriptions.current.get(key)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [trigger],\n ) as GetFormValuesFunction<F>\n\n const set = useCallback(\n <TField extends DeepKeys<F>>(\n field: TField,\n value: DeepValue<F, TField>,\n ) => {\n formRef.current.setValue(field, value)\n },\n [],\n )\n\n return { get, set }\n}\n","import { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector.js\";\nexport * from \"@tanstack/store\";\nfunction useStore(store, selector = (d) => d, options = {}) {\n const equal = options.equal ?? shallow;\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n equal\n );\n return slice;\n}\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [k, v] of objA) {\n if (!objB.has(k) || !Object.is(v, objB.get(k))) return false;\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const v of objA) {\n if (!objB.has(v)) return false;\n }\n return true;\n }\n if (objA instanceof Date && objB instanceof Date) {\n if (objA.getTime() !== objB.getTime()) return false;\n return true;\n }\n const keysA = getOwnKeys(objA);\n if (keysA.length !== getOwnKeys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nfunction getOwnKeys(obj) {\n return Object.keys(obj).concat(\n Object.getOwnPropertySymbols(obj)\n );\n}\nexport {\n shallow,\n useStore\n};\n//# sourceMappingURL=index.js.map\n","import { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { FormField } from \"../FormField\";\nimport { useSetFormState } from \"../atoms\";\nimport { useFormConfigValue } from \"../config\";\nimport { useFormValues } from \"./useFormValues\";\nimport { useJotaiForm } from \"./useJotaiForm\";\nimport { useStore } from \"@tanstack/react-store\";\nimport type { FormNotificationMessage } from \"../config\";\nimport type { DeepKeys, DeepValue, Updater } from \"@tanstack/react-form\";\nimport type {\n FieldValues,\n FormFieldConfig,\n FormManagerConfig,\n FormManagerProps,\n GenericFieldApi,\n GenericFieldState,\n GenericFormApi,\n SetValueFunction,\n Submit,\n SubmitKeysArg,\n SubmitPayload,\n UseFormManagerProps,\n} from \"../types\";\nimport type { JSX } from \"react\";\n\nexport interface FormElements {\n index: number;\n element: JSX.Element;\n renderInFooter: boolean;\n renderInHeader: boolean;\n isSubmit?: boolean;\n}\n\ntype PayloadOf<\n F extends FieldValues,\n S extends Submit<F, SubmitKeysArg<F>>,\n> = SubmitPayload<F, S extends Submit<F, infer K> ? K : undefined>;\n\nconst trimObject = <T extends object>(obj?: T): T =>\n Object.entries(obj ?? {}).reduce(\n (prev, [key, val]) => ({\n ...prev,\n [key]:\n typeof val === \"string\" && ![\"password\", \"pPassword\"].includes(key)\n ? val.trim()\n : val,\n }),\n {} as T,\n );\nconst RenderField = <F extends FieldValues = FieldValues>({\n field,\n fieldState,\n fieldProps,\n onFieldChange,\n}: {\n field: GenericFieldApi<F>;\n fieldState: GenericFieldState<F>;\n fieldProps: FormManagerConfig<F>;\n onFieldChange?: (value: F) => void;\n}) => {\n const config: FormFieldConfig<F> = useMemo(\n () => ({\n ...fieldProps,\n field,\n fieldState,\n }),\n [fieldProps, field, fieldState],\n );\n return (\n <FormField<F>\n config={config}\n ns={fieldProps.ns}\n globalErrorNs={fieldProps.errorNs}\n onFieldChange={onFieldChange}\n />\n );\n};\n\nconst DynamicFieldItem = <F extends FieldValues>({\n item,\n form,\n globalErrorNs,\n formId,\n}: {\n item: FormManagerProps<F>[\"data\"][number];\n form: GenericFormApi<F>;\n globalErrorNs?: string;\n formId: string;\n}) => {\n const { get, set } = useFormValues<F>({ formId });\n\n const fieldProps = useMemo(() => {\n if (typeof item === \"function\") {\n return item({ get, set });\n } else {\n return item;\n }\n }, [get, set, item]);\n\n const isHidden = useMemo(() => {\n if (!fieldProps.hidden) {\n return false;\n } else if (typeof fieldProps.hidden === \"function\") {\n return fieldProps.hidden({ get, set });\n } else {\n return !!fieldProps.hidden;\n }\n }, [get, set, fieldProps]);\n\n const rules = useMemo(() => {\n if (!fieldProps.rules) {\n return undefined;\n } else if (typeof fieldProps.rules === \"function\") {\n return fieldProps.rules({ get, set });\n } else {\n return fieldProps.rules;\n }\n }, [get, set, fieldProps]);\n\n const props = useMemo(() => {\n return {\n ...fieldProps,\n errorNs: fieldProps.errorNs ?? globalErrorNs,\n };\n }, [fieldProps, globalErrorNs]);\n\n if (isHidden) {\n return <></>;\n }\n\n return (\n <form.Field\n name={props.name}\n validators={rules}\n // eslint-disable-next-line react/no-children-prop\n children={(field) => (\n <RenderField<F>\n field={field}\n fieldState={field.state}\n fieldProps={props}\n onFieldChange={props.onFieldChange}\n />\n )}\n />\n );\n};\n\nconst SubmitItem = <F extends FieldValues>({\n item,\n index,\n handlersRef,\n}: {\n item: Submit<F>;\n index: number;\n handlersRef: React.MutableRefObject<{\n formControl: GenericFormApi<F>;\n onInvalidHandle: (err: unknown, submitConfig: Submit<F>) => void;\n createSubmitHandler: (\n submitConfig: Submit<F>,\n ) => (data: F) => Promise<unknown>;\n values: F;\n errors: unknown;\n }>;\n}) => {\n const handleClick = useCallback(async () => {\n const { formControl, createSubmitHandler, onInvalidHandle } =\n handlersRef.current;\n\n // Partial or full validation logic\n let isValid = true;\n\n const keys = item.values as ReadonlyArray<string> | undefined;\n if (keys && keys.length > 0) {\n // Validate only specific fields\n await Promise.all(\n keys.map((key) => formControl.validateField(key, \"change\")),\n );\n const hasError = keys.some((key) => {\n // This is a simplified check. TanStack form errors might be structured differently.\n // You might need deep checking if errors are nested objects.\n // For now assume flat or use lodash get if possible, but state.errors is usually flat-ish map in newer versions or object.\n // Checking standard TanStack: form.state.fieldMeta[key]?.errors\n const meta = formControl.getFieldMeta(key);\n return meta?.errors && meta.errors.length > 0;\n });\n isValid = !hasError;\n } else {\n // Validate all\n await formControl.validateAllFields(\"submit\");\n isValid = formControl.state.isValid;\n }\n\n if (!isValid) {\n onInvalidHandle(handlersRef.current.errors, item);\n return;\n }\n\n const values = handlersRef.current.values;\n // Call handlers\n await createSubmitHandler(item)(values);\n }, [item, handlersRef]);\n\n const Component = useMemo(() => item.component, [item]);\n if (item.hidden || !Component) return <></>;\n\n return (\n <Component\n onClick={handleClick}\n index={index}\n key={`submit-${index}`}\n type={item.type || \"button\"}\n />\n );\n};\n\nexport const useFormManager = <F extends FieldValues = FieldValues>({\n data,\n onInvalid,\n submit = [],\n notification,\n formOptions,\n onValuesChange,\n globalErrorNs,\n id = \"form-manager\",\n}: UseFormManagerProps<F>) => {\n const formControl = useJotaiForm<F>(formOptions);\n const errors = useStore(formControl.store, (state) => state.errors);\n const values = useStore(formControl.store, (state) => state.values);\n const setFormState = useSetFormState<F>(id);\n const { showNotification } = useFormConfigValue();\n\n const setValue = useCallback(\n <TField extends DeepKeys<F>>(\n field: TField,\n updater: Updater<DeepValue<F, TField>>,\n ) => formControl.setFieldValue(field, updater),\n [formControl],\n ) as SetValueFunction<F>;\n\n useEffect(() => {\n setFormState({\n setValue,\n formValues: values,\n });\n }, [setFormState, setValue, values]);\n\n const handleNotification = useCallback(\n (props: FormNotificationMessage) => {\n if (props.message) {\n showNotification?.(props);\n }\n },\n [showNotification],\n );\n\n const filterFormData = useCallback(\n <S extends Submit<F, SubmitKeysArg<F>>>(\n v: F,\n submitConfig: S,\n ): PayloadOf<F, S> => {\n const keys = submitConfig.values as ReadonlyArray<keyof F> | undefined;\n if (!keys || keys.length === 0) {\n return v as PayloadOf<F, S>;\n }\n\n const out = {} as Record<keyof F, F[keyof F]>;\n for (const key of keys) {\n if (key in v) {\n out[key] = v[key];\n }\n }\n return out as PayloadOf<F, S>;\n },\n [],\n );\n\n const processSubmit = useCallback(\n async <S extends Submit<F, SubmitKeysArg<F>>>(d: F, submitConfig: S) => {\n const filteredData = filterFormData(d, submitConfig);\n if (submitConfig.onSuccess) {\n return await submitConfig.onSuccess(filteredData);\n }\n throw new Error(\"No submit handler provided\");\n },\n [filterFormData],\n );\n\n const handleError = useCallback(\n <S extends Submit<F, SubmitKeysArg<F>>>(\n error: unknown,\n submitConfig: S,\n ) => {\n if (submitConfig.onError) {\n submitConfig.onError(error as Error);\n }\n const notificationProps =\n typeof notification?.error === \"function\"\n ? notification.error((error as Error).message)\n : notification?.error;\n if (notificationProps?.message) {\n handleNotification(notificationProps);\n }\n },\n [handleNotification, notification],\n );\n\n const createSubmitHandler = useCallback(\n <S extends Submit<F, SubmitKeysArg<F>>>(submitConfig: S) =>\n async (dataSubmit: F) => {\n try {\n const res = await processSubmit(\n trimObject<F>(dataSubmit),\n submitConfig,\n );\n const notificationProps =\n typeof notification?.success === \"function\"\n ? notification.success(res)\n : notification?.success;\n if (notificationProps?.message) {\n handleNotification(notificationProps);\n }\n return res;\n } catch (error) {\n handleError(error, submitConfig);\n throw error;\n }\n },\n [processSubmit, notification, handleNotification, handleError],\n );\n\n const onInvalidHandle = useCallback(\n (err: unknown, submitConfig: Submit<F>) => {\n onInvalid?.(err);\n handleError(new Error(\"invalidData\"), submitConfig);\n },\n [handleError, onInvalid],\n );\n\n const handlersRef = useRef({\n formControl,\n onInvalidHandle,\n createSubmitHandler,\n setValue: formControl.setFieldValue,\n trigger: formControl.validateField,\n onValuesChange,\n values,\n errors,\n });\n\n useEffect(() => {\n handlersRef.current.onInvalidHandle = onInvalidHandle;\n handlersRef.current.createSubmitHandler = createSubmitHandler;\n handlersRef.current.setValue = formControl.setFieldValue;\n handlersRef.current.trigger = formControl.validateField;\n handlersRef.current.onValuesChange = onValuesChange;\n }, [onInvalidHandle, createSubmitHandler, formControl, onValuesChange]);\n\n useEffect(() => {\n handlersRef.current.values = values;\n handlersRef.current.errors = errors;\n }, [values, errors]);\n\n const fields = useMemo(\n () =>\n data.map((item, index): FormElements => {\n const staticItem = typeof item === \"function\" ? null : item;\n return {\n index: staticItem?.index ?? index,\n element: (\n <DynamicFieldItem<F>\n key={staticItem?.name ?? index}\n item={item}\n form={formControl}\n globalErrorNs={globalErrorNs}\n formId={id}\n />\n ),\n renderInFooter: !!staticItem?.renderInFooter,\n renderInHeader: !!staticItem?.renderInHeader,\n };\n }),\n [data, formControl, globalErrorNs, id],\n );\n\n const submits = useMemo(\n () =>\n submit.map((submitConfig, index): FormElements => {\n return {\n index: submitConfig.index === undefined ? index : submitConfig.index,\n element: (\n <SubmitItem<F>\n key={`submit-${index}`}\n item={submitConfig}\n index={index}\n handlersRef={handlersRef}\n />\n ),\n renderInFooter: !!submitConfig.renderInFooter,\n renderInHeader: !!submitConfig.renderInHeader,\n isSubmit: true,\n };\n }),\n [submit],\n );\n\n const elements = useMemo(\n (): Array<FormElements> => fields.concat(submits),\n [fields, submits],\n );\n\n const formContents = useMemo(() => [...data, ...submit], [data, submit]);\n\n useEffect(() => {\n handlersRef.current.onValuesChange?.(values, handlersRef.current.setValue);\n }, [values]);\n\n return {\n elements,\n formContents,\n errors,\n formValues: values,\n setValue,\n };\n};\n","import { useMemo } from \"react\";\nimport { useFormManager } from \"./hooks\";\nimport { DefaultContainer, DefaultFormContainer } from \"./containers\";\nimport type { FieldValues, FormManagerProps } from \"./types\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const FormManager = <T extends Record<string, any> = FieldValues>({\n data,\n defaultValues,\n onInvalid,\n submit = [],\n ns,\n globalErrorNs,\n notification,\n formSettings,\n viewSettings,\n onValuesChange,\n id = \"form-manager\",\n}: FormManagerProps<T>) => {\n const { elements = [] } = useFormManager({\n data,\n globalErrorNs,\n notification,\n ns,\n onInvalid,\n submit,\n onValuesChange,\n id,\n formOptions: {\n defaultValues: defaultValues,\n ...formSettings,\n formId: id,\n },\n });\n\n // Render logic remains similar\n const render = useMemo(\n () =>\n elements\n .filter((el) => !el.isSubmit)\n .sort((a, b) => a.index - b.index)\n .map((el) => el.element),\n [elements],\n );\n const renderSubmit = useMemo(\n () =>\n elements\n .filter((el) => el.isSubmit)\n .sort((a, b) => a.index - b.index)\n .map((el) => el.element),\n [elements],\n );\n\n const Container = viewSettings?.container || DefaultFormContainer<T>;\n const BodyContainer = viewSettings?.bodyContainer || DefaultContainer;\n const SubmitContainer = viewSettings?.submitContainer || DefaultContainer;\n\n return (\n <Container {...(viewSettings?.containerProps || {})}>\n <BodyContainer {...(viewSettings?.bodyContainerProps || {})}>\n {render}\n </BodyContainer>\n <SubmitContainer {...(viewSettings?.submitContainerProps || {})}>\n {renderSubmit}\n </SubmitContainer>\n </Container>\n );\n};\n"],"names":["DefaultContainer","children","_formConfig","formFieldContainer","atom","formConfigAtom","useValue","useFormConfigValue","useState","useFormConfigState","useReset","useFormConfigReset","atomStateGenerator","key","defaultValue","persist","createDefaultContainer","setDefaultFormContainer","val","DefaultFormContainer","t0","$","_c","handleSubmit","_temp","t1","_jsx","onSubmit","className","e","preventDefault","form","currentTarget","submitButton","querySelector","click","useJotaiForm","formOptions","useForm","FormField","config","onFieldChange","ns","globalNs","globalErrorNs","_a","errorNs","_b","translateText","firstError","field","state","meta","errors","length","undefined","errorMessageStr","String","errorMessage","useMemo","label","helperMessage","helper","text","translationOption","ref","useRef","handleChange","useEffect","current","useCallback","value","call","handleBlur","baseProps","onChange","onBlur","error","ConfigContainer","container","FormFieldContainer","component","DEFAULT_FORM_ENTRY","Object","freeze","formValues","setValue","formAtom","getFormCompositeKey","scopeId","createScopeFormsAtom","get","allForms","prefix","scopeForms","entries","startsWith","slice","set","update","newForms","assign","keys","createFormSelector","formId","selectAtom","forms","entry","a","b","useFormValue","selectorAtom","useAtomValue","useFormState","useAtom","useSetFormState","setForms","useSetAtom","prev","prevEntry","getValueAtPath","obj","path","defaultObj","normalized","replace","parts","split","filter","Boolean","part","useFormValues","formEntry","currentValues","subscriptions","Map","trigger","setTrigger","formRef","shouldTrigger","forEach","_","newValue","oldValue","equal","c","trimObject","reduce","includes","trim","RenderField","fieldState","fieldProps","t2","DynamicFieldItem","item","isHidden","hidden","rules","props","Field","name","validators","SubmitItem","index","handlersRef","handleClick","formControl","createSubmitHandler","onInvalidHandle","isValid","values","Promise","all","map","validateField","hasError","some","getFieldMeta","validateAllFields","Component","onClick","type","useFormManager","data","onInvalid","submit","notification","onValuesChange","id","useStore","store","setFormState","showNotification","updater","setFieldValue","handleNotification","message","filterFormData","v","submitConfig","out","processSubmit","d","filteredData","onSuccess","Error","handleError","onError","notificationProps","dataSubmit","res","success","err","fields","staticItem","element","renderInFooter","renderInHeader","submits","isSubmit","elements","concat","formContents","FormManager","defaultValues","formSettings","viewSettings","t3","t4","t5","t6","t7","t8","sort","_temp2","_temp3","render","t9","_temp4","_temp5","_temp6","renderSubmit","Container","BodyContainer","bodyContainer","SubmitContainer","submitContainer","t10","_jsxs","containerProps","bodyContainerProps","submitContainerProps","el","el_0","el_1","a_0","b_0","el_2"],"mappings":"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","x_google_ignoreList":[6]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../form/config.ts","../../form/containers.tsx","../../form/hooks/useJotaiForm.ts","../../form/FormField.tsx","../../form/atoms/formAtom.ts","../../form/hooks/useFormValues.ts","../../node_modules/@tanstack/react-store/dist/esm/index.js","../../form/hooks/useFormManager.tsx","../../form/FormManager.tsx"],"sourcesContent":["import { atomStateGenerator } from \"@gaddario98/react-state\";\nimport type { PropsWithChildren } from \"react\";\nimport { ViewSettingsContainerProps } from \"./types\";\n\nexport interface FormNotificationMessage {\n message: string;\n type: \"success\" | \"error\" | \"info\" | \"warning\";\n autoHideDuration?: number;\n textTransOption?: Record<string, unknown>;\n ns?: string;\n id?: string;\n}\nexport interface FormTranslationOptions {\n [key: string]: string | number | boolean | undefined;\n ns?: string;\n}\nexport interface FormConfigProps {\n container?: React.ComponentType<ViewSettingsContainerProps>;\n submitContainer?: React.ComponentType<ViewSettingsContainerProps>;\n bodyContainer?: React.ComponentType<ViewSettingsContainerProps>;\n formFieldContainer: React.FC<PropsWithChildren>;\n showNotification?: (notification: FormNotificationMessage) => void;\n translateText?: (key: string, options?: FormTranslationOptions) => string;\n}\n\nconst DefaultContainer = ({ children }: PropsWithChildren) => {\n return children;\n};\n// Lazy initialization to avoid side effects at module load time\nconst _formConfig: FormConfigProps = {\n formFieldContainer: DefaultContainer,\n};\n\nexport const {\n atom: formConfigAtom,\n useValue: useFormConfigValue,\n useState: useFormConfigState,\n useReset: useFormConfigReset,\n} = atomStateGenerator<FormConfigProps>({\n key: \"formConfig\",\n defaultValue: _formConfig,\n persist: false,\n});\n","import { useCallback } from 'react'\nimport type { FieldValues, ViewSettingsContainerProps } from './types'\n\nexport interface DefaultFormContainerProps {\n children: React.ReactNode\n}\n\nconst createDefaultContainer = () => {\n return ({ children }: ViewSettingsContainerProps) => {\n return children\n }\n}\n\nlet DefaultContainer = createDefaultContainer()\n\nconst setDefaultFormContainer = (\n val: ({\n children,\n }: ViewSettingsContainerProps) => React.ReactNode,\n) => {\n DefaultContainer = val\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst DefaultFormContainer = <_T extends FieldValues = FieldValues>({\n children,\n}: ViewSettingsContainerProps) => {\n const handleSubmit = useCallback((e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n const form = e.currentTarget\n const submitButton = form.querySelector('button[type=\"submit\"]') as\n | HTMLButtonElement\n | undefined\n submitButton?.click()\n }, [])\n\n return (\n <form onSubmit={handleSubmit} className=\"gap-3 flex flex-col\">\n {children}\n </form>\n )\n}\n\nexport { DefaultContainer, setDefaultFormContainer, DefaultFormContainer }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useForm } from '@tanstack/react-form'\nimport type {FormOptions} from '@tanstack/react-form';\nimport type { FieldValues } from '../types'\n\nexport interface UseCustomFormOptions<TData extends FieldValues>\n extends FormOptions<\n TData,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n > {\n formId?: string\n}\n\nexport function useJotaiForm<TData extends FieldValues>(formOptions: UseCustomFormOptions<TData>) {\n const form = useForm<\n TData,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n >(formOptions)\n\n return form\n}\n","/* eslint-disable react-hooks/refs */\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { useFormConfigValue } from './config'\nimport type { FieldValues, FormFieldProps } from './types'\n\nexport const FormField = <T extends FieldValues>({\n config,\n onFieldChange,\n ns: globalNs,\n globalErrorNs,\n}: FormFieldProps<T>) => {\n const ns = config.ns ?? globalNs\n const errorNs = config.errorNs ?? globalErrorNs\n const { formFieldContainer, translateText } = useFormConfigValue()\n\n // TanStack Form uses field.state.meta.errors which is an array of ValidationError\n const firstError =\n config.field.state.meta.errors.length > 0\n ? config.field.state.meta.errors[0]\n : undefined\n const errorMessageStr = firstError ? String(firstError) : undefined\n\n const errorMessage = useMemo(() => {\n if (!errorMessageStr) return undefined\n return errorNs\n ? translateText?.(errorMessageStr, {\n ns: errorNs || '',\n defaultValue: '',\n })\n : errorMessageStr\n }, [errorMessageStr, errorNs, translateText])\n\n const label = useMemo(\n () => (ns ? translateText?.(config.label ?? '') : config.label),\n [ns, config.label, translateText],\n )\n\n const helperMessage = useMemo(\n () =>\n config.helper?.text\n ? translateText?.(config.helper.text, config.helper.translationOption)\n : '',\n [config.helper, translateText],\n )\n\n const ref = useRef({ onFieldChange, handleChange: config.field.handleChange })\n\n useEffect(() => {\n ref.current = {\n onFieldChange,\n handleChange: config.field.handleChange,\n }\n }, [config.field.handleChange, onFieldChange])\n\n const handleChange = useCallback((value: T) => {\n // TanStack Form handleChange usually expects just the value for input\n // but if we are manually calling it we should pass the value.\n ref.current.handleChange(value)\n ref.current.onFieldChange?.(value)\n }, [])\n\n const handleBlur = useCallback(() => {\n config.field.handleBlur()\n }, [config.field])\n\n const baseProps = useMemo(\n () => ({\n value: config.field.state.value,\n onChange: handleChange,\n onBlur: handleBlur,\n error: config.field.state.meta.errors.length > 0,\n errorMessage,\n label,\n helperMessage,\n }),\n [\n config.field.state.value,\n handleChange,\n handleBlur,\n config.field.state.meta.errors.length,\n errorMessage,\n label,\n helperMessage,\n ],\n )\n\n const ConfigContainer = useMemo(() => config.container, [config.container])\n const FormFieldContainer = useMemo(\n () => formFieldContainer,\n [formFieldContainer],\n )\n\n if (ConfigContainer) {\n return (\n <ConfigContainer>\n {config.component(baseProps)}\n </ConfigContainer>\n )\n }\n return (\n <FormFieldContainer>\n {config.component(baseProps)}\n </FormFieldContainer>\n )\n}\n","import { atom, useAtom, useAtomValue, useSetAtom } from 'jotai'\nimport { selectAtom } from 'jotai/utils'\nimport { useCallback, useMemo } from 'react'\nimport type { FieldValues, SetValueFunction } from '../types'\n\nexport interface FormStoreEntry<F extends FieldValues = FieldValues> {\n formValues: F\n setValue: SetValueFunction<F>\n}\n\nexport const DEFAULT_FORM_ENTRY: FormStoreEntry<FieldValues> = Object.freeze({\n formValues: {} as FieldValues,\n setValue: () => {},\n})\n\n/**\n * Global atom storing all form state.\n * Key format: \"scopeId:formId\" or just \"formId\" for backward compatibility.\n */\nexport const formAtom = atom<Record<string, FormStoreEntry>>({})\n\n/**\n * Helper to generate composite keys for forms.\n */\nexport const getFormCompositeKey = (scopeId: string, key: string): string =>\n `${scopeId}:${key}`\n\n/**\n * Creates a derived atom for accessing forms of a specific scope.\n */\nexport const createScopeFormsAtom = (scopeId: string) =>\n atom(\n (get) => {\n const allForms = get(formAtom)\n const prefix = `${scopeId}:`\n const scopeForms: Record<string, FormStoreEntry> = {}\n\n for (const [key, value] of Object.entries(allForms)) {\n if (key.startsWith(prefix)) {\n scopeForms[key.slice(prefix.length)] = value\n }\n }\n\n return scopeForms\n },\n (get, set, update: Record<string, FormStoreEntry>) => {\n const allForms = get(formAtom)\n const prefix = `${scopeId}:`\n const newForms = { ...allForms }\n\n // Remove old scope entries\n for (const key of Object.keys(newForms)) {\n if (key.startsWith(prefix)) {\n delete newForms[key]\n }\n }\n\n // Add new scope entries\n for (const [key, value] of Object.entries(update)) {\n newForms[`${prefix}${key}`] = value\n }\n\n set(formAtom, newForms)\n },\n )\n\nexport const createFormSelector = <F extends FieldValues = FieldValues>(\n formId: string,\n) =>\n selectAtom(\n formAtom,\n (forms) => {\n const entry = forms[formId] as FormStoreEntry<F> | undefined\n return entry ?? (DEFAULT_FORM_ENTRY as unknown as FormStoreEntry<F>)\n },\n (a, b) =>\n a === b || (a.formValues === b.formValues && a.setValue === b.setValue),\n )\n\nexport const useFormValue = <F extends FieldValues>(formId: string) => {\n const selectorAtom = useMemo(() => createFormSelector<F>(formId), [formId])\n return useAtomValue(selectorAtom)\n}\n\nexport const useFormState = <F extends FieldValues>() => {\n return useAtom(formAtom) as unknown as [\n Record<string, FormStoreEntry<F>>,\n (value: Record<string, FormStoreEntry<F>>) => void,\n ]\n}\n\nexport const useSetFormState = <F extends FieldValues>(formId: string) => {\n const setForms = useSetAtom(formAtom)\n\n return useCallback(\n (val: Partial<FormStoreEntry<F>>) => {\n setForms((prev) => {\n const prevEntry =\n (prev[formId] as FormStoreEntry<FieldValues> | undefined) ??\n DEFAULT_FORM_ENTRY\n\n return {\n ...prev,\n [formId]: {\n ...(prevEntry as unknown as FormStoreEntry<F>),\n ...(val as unknown as Partial<FormStoreEntry<FieldValues>>),\n } as unknown as FormStoreEntry<FieldValues>,\n }\n })\n },\n [formId, setForms],\n )\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport equal from 'fast-deep-equal'\nimport { useFormValue } from '../atoms'\nimport type {\n FieldValues,\n FormFunctionProps,\n GetFormValuesFunction,\n} from '../types'\nimport type { DeepKeys, DeepValue } from '@tanstack/react-form'\n\nconst getValueAtPath = (\n obj: unknown,\n path: string,\n defaultObj?: unknown,\n): unknown => {\n if (!path) return undefined\n const normalized = path.replace(/\\[(\\d+)\\]/g, '.$1')\n const parts = normalized.split('.').filter(Boolean)\n let current: unknown = obj\n for (const part of parts) {\n if (!current || !Object.keys(current).length) {\n if (!defaultObj) return undefined\n current = { [part]: defaultObj }\n }\n if (typeof current !== 'object') return undefined\n current = (current as Record<string, unknown>)[part]\n }\n\n return current\n}\n\nexport interface UseFormValuesProps {\n formId: string\n scopeId?: string\n}\n\nexport const useFormValues = <F extends FieldValues>({\n formId,\n}: UseFormValuesProps): FormFunctionProps<F> => {\n // We subscribe to the specific form entry in the atoms\n // Note: This subscription is a bit coarse (entire form entry), but we optimize re-renders locally\n // Ideally we would want to subscribe only to specific paths, but Jotai atoms are per-form.\n const formEntry = useFormValue(formId)\n const currentValues = useMemo(\n () => formEntry.formValues,\n [formEntry.formValues],\n )\n\n const subscriptions = useRef(new Map<string, unknown>())\n // trigger state is used to force re-render when a subscribed value changes\n const [trigger, setTrigger] = useState(0)\n\n // Ref to hold the latest values without causing re-renders itself\n const formRef = useRef({\n formValues: formEntry.formValues,\n setValue: formEntry.setValue,\n })\n\n useEffect(() => {\n formRef.current.setValue = formEntry.setValue\n }, [formEntry.setValue])\n\n useEffect(() => {\n let shouldTrigger = false\n subscriptions.current.forEach((_, path) => {\n const newValue = getValueAtPath(currentValues, path)\n const oldValue = getValueAtPath(formRef.current.formValues, path)\n if (!equal(newValue, oldValue)) {\n shouldTrigger = true\n }\n })\n\n formRef.current.formValues = currentValues\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (shouldTrigger) {\n setTrigger((c) => c + 1)\n }\n }, [currentValues])\n\n const get = useCallback(\n (key: string, defaultValue?: unknown) => {\n const val =\n getValueAtPath(formRef.current.formValues, key) ?? defaultValue\n subscriptions.current.set(key, val)\n return subscriptions.current.get(key)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [trigger],\n ) as GetFormValuesFunction<F>\n\n const set = useCallback(\n <TField extends DeepKeys<F>>(\n field: TField,\n value: DeepValue<F, TField>,\n ) => {\n formRef.current.setValue(field, value)\n },\n [],\n )\n\n return { get, set }\n}\n","import { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector.js\";\nexport * from \"@tanstack/store\";\nfunction useStore(store, selector = (d) => d, options = {}) {\n const equal = options.equal ?? shallow;\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n equal\n );\n return slice;\n}\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [k, v] of objA) {\n if (!objB.has(k) || !Object.is(v, objB.get(k))) return false;\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const v of objA) {\n if (!objB.has(v)) return false;\n }\n return true;\n }\n if (objA instanceof Date && objB instanceof Date) {\n if (objA.getTime() !== objB.getTime()) return false;\n return true;\n }\n const keysA = getOwnKeys(objA);\n if (keysA.length !== getOwnKeys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nfunction getOwnKeys(obj) {\n return Object.keys(obj).concat(\n Object.getOwnPropertySymbols(obj)\n );\n}\nexport {\n shallow,\n useStore\n};\n//# sourceMappingURL=index.js.map\n","import { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { FormField } from \"../FormField\";\nimport { useSetFormState } from \"../atoms\";\nimport { useFormConfigValue } from \"../config\";\nimport { useFormValues } from \"./useFormValues\";\nimport { useJotaiForm } from \"./useJotaiForm\";\nimport { useStore } from \"@tanstack/react-store\";\nimport type { FormNotificationMessage } from \"../config\";\nimport type { DeepKeys, DeepValue, Updater } from \"@tanstack/react-form\";\nimport type {\n FieldValues,\n FormFieldConfig,\n FormManagerConfig,\n FormManagerProps,\n GenericFieldApi,\n GenericFieldState,\n GenericFormApi,\n SetValueFunction,\n Submit,\n SubmitKeysArg,\n SubmitPayload,\n UseFormManagerProps,\n} from \"../types\";\nimport type { JSX } from \"react\";\n\nexport interface FormElements {\n index: number;\n element: JSX.Element;\n renderInFooter: boolean;\n renderInHeader: boolean;\n isSubmit?: boolean;\n}\n\ntype PayloadOf<\n F extends FieldValues,\n S extends Submit<F, SubmitKeysArg<F>>,\n> = SubmitPayload<F, S extends Submit<F, infer K> ? K : undefined>;\n\nconst trimObject = <T extends object>(obj?: T): T =>\n Object.entries(obj ?? {}).reduce(\n (prev, [key, val]) => ({\n ...prev,\n [key]:\n typeof val === \"string\" && ![\"password\", \"pPassword\"].includes(key)\n ? val.trim()\n : val,\n }),\n {} as T,\n );\nconst RenderField = <F extends FieldValues = FieldValues>({\n field,\n fieldState,\n fieldProps,\n onFieldChange,\n}: {\n field: GenericFieldApi<F>;\n fieldState: GenericFieldState<F>;\n fieldProps: FormManagerConfig<F>;\n onFieldChange?: (value: F) => void;\n}) => {\n const config: FormFieldConfig<F> = useMemo(\n () => ({\n ...fieldProps,\n field,\n fieldState,\n }),\n [fieldProps, field, fieldState],\n );\n return (\n <FormField<F>\n config={config}\n ns={fieldProps.ns}\n globalErrorNs={fieldProps.errorNs}\n onFieldChange={onFieldChange}\n />\n );\n};\n\nconst DynamicFieldItem = <F extends FieldValues>({\n item,\n form,\n globalErrorNs,\n formId,\n}: {\n item: FormManagerProps<F>[\"data\"][number];\n form: GenericFormApi<F>;\n globalErrorNs?: string;\n formId: string;\n}) => {\n const { get, set } = useFormValues<F>({ formId });\n\n const fieldProps = useMemo(() => {\n if (typeof item === \"function\") {\n return item({ get, set });\n } else {\n return item;\n }\n }, [get, set, item]);\n\n const isHidden = useMemo(() => {\n if (!fieldProps.hidden) {\n return false;\n } else if (typeof fieldProps.hidden === \"function\") {\n return fieldProps.hidden({ get, set });\n } else {\n return !!fieldProps.hidden;\n }\n }, [get, set, fieldProps]);\n\n const rules = useMemo(() => {\n if (!fieldProps.rules) {\n return undefined;\n } else if (typeof fieldProps.rules === \"function\") {\n return fieldProps.rules({ get, set });\n } else {\n return fieldProps.rules;\n }\n }, [get, set, fieldProps]);\n\n const props = useMemo(() => {\n return {\n ...fieldProps,\n errorNs: fieldProps.errorNs ?? globalErrorNs,\n };\n }, [fieldProps, globalErrorNs]);\n\n if (isHidden) {\n return <></>;\n }\n\n return (\n <form.Field\n name={props.name}\n validators={rules}\n // eslint-disable-next-line react/no-children-prop\n children={(field) => (\n <RenderField<F>\n field={field}\n fieldState={field.state}\n fieldProps={props}\n onFieldChange={props.onFieldChange}\n />\n )}\n />\n );\n};\n\nconst SubmitItem = <F extends FieldValues>({\n item,\n index,\n handlersRef,\n}: {\n item: Submit<F>;\n index: number;\n handlersRef: React.MutableRefObject<{\n formControl: GenericFormApi<F>;\n onInvalidHandle: (err: unknown, submitConfig: Submit<F>) => void;\n createSubmitHandler: (\n submitConfig: Submit<F>,\n ) => (data: F) => Promise<unknown>;\n values: F;\n errors: unknown;\n }>;\n}) => {\n const handleClick = useCallback(async () => {\n const { formControl, createSubmitHandler, onInvalidHandle } =\n handlersRef.current;\n\n // Partial or full validation logic\n let isValid = true;\n\n const keys = item.values as ReadonlyArray<string> | undefined;\n if (keys && keys.length > 0) {\n // Validate only specific fields\n await Promise.all(\n keys.map((key) => formControl.validateField(key, \"change\")),\n );\n const hasError = keys.some((key) => {\n // This is a simplified check. TanStack form errors might be structured differently.\n // You might need deep checking if errors are nested objects.\n // For now assume flat or use lodash get if possible, but state.errors is usually flat-ish map in newer versions or object.\n // Checking standard TanStack: form.state.fieldMeta[key]?.errors\n const meta = formControl.getFieldMeta(key);\n return meta?.errors && meta.errors.length > 0;\n });\n isValid = !hasError;\n } else {\n // Validate all\n await formControl.validateAllFields(\"submit\");\n isValid = formControl.state.isValid;\n }\n\n if (!isValid) {\n onInvalidHandle(handlersRef.current.errors, item);\n return;\n }\n\n const values = handlersRef.current.values;\n // Call handlers\n await createSubmitHandler(item)(values);\n }, [item, handlersRef]);\n\n const Component = useMemo(() => item.component, [item]);\n if (item.hidden || !Component) return <></>;\n\n return (\n <Component\n onClick={handleClick}\n index={index}\n key={`submit-${index}`}\n type={item.type || \"button\"}\n />\n );\n};\n\nexport const useFormManager = <F extends FieldValues = FieldValues>({\n data,\n onInvalid,\n submit = [],\n notification,\n formOptions,\n onValuesChange,\n globalErrorNs,\n id = \"form-manager\",\n}: UseFormManagerProps<F>) => {\n const formControl = useJotaiForm<F>(formOptions);\n const errors = useStore(formControl.store, (state) => state.errors);\n const values = useStore(formControl.store, (state) => state.values);\n const setFormState = useSetFormState<F>(id);\n const { showNotification } = useFormConfigValue();\n\n const setValue = useCallback(\n <TField extends DeepKeys<F>>(\n field: TField,\n updater: Updater<DeepValue<F, TField>>,\n ) => formControl.setFieldValue(field, updater),\n [formControl],\n ) as SetValueFunction<F>;\n\n useEffect(() => {\n setFormState({\n setValue,\n formValues: values,\n });\n }, [setFormState, setValue, values]);\n\n const handleNotification = useCallback(\n (props: FormNotificationMessage) => {\n if (props.message) {\n showNotification?.(props);\n }\n },\n [showNotification],\n );\n\n const filterFormData = useCallback(\n <S extends Submit<F, SubmitKeysArg<F>>>(\n v: F,\n submitConfig: S,\n ): PayloadOf<F, S> => {\n const keys = submitConfig.values as ReadonlyArray<keyof F> | undefined;\n if (!keys || keys.length === 0) {\n return v as PayloadOf<F, S>;\n }\n\n const out = {} as Record<keyof F, F[keyof F]>;\n for (const key of keys) {\n if (key in v) {\n out[key] = v[key];\n }\n }\n return out as PayloadOf<F, S>;\n },\n [],\n );\n\n const processSubmit = useCallback(\n async <S extends Submit<F, SubmitKeysArg<F>>>(d: F, submitConfig: S) => {\n const filteredData = filterFormData(d, submitConfig);\n if (submitConfig.onSuccess) {\n return await submitConfig.onSuccess(filteredData);\n }\n throw new Error(\"No submit handler provided\");\n },\n [filterFormData],\n );\n\n const handleError = useCallback(\n <S extends Submit<F, SubmitKeysArg<F>>>(\n error: unknown,\n submitConfig: S,\n ) => {\n if (submitConfig.onError) {\n submitConfig.onError(error as Error);\n }\n const notificationProps =\n typeof notification?.error === \"function\"\n ? notification.error((error as Error).message)\n : notification?.error;\n if (notificationProps?.message) {\n handleNotification(notificationProps);\n }\n },\n [handleNotification, notification],\n );\n\n const createSubmitHandler = useCallback(\n <S extends Submit<F, SubmitKeysArg<F>>>(submitConfig: S) =>\n async (dataSubmit: F) => {\n try {\n const res = await processSubmit(\n trimObject<F>(dataSubmit),\n submitConfig,\n );\n const notificationProps =\n typeof notification?.success === \"function\"\n ? notification.success(res)\n : notification?.success;\n if (notificationProps?.message) {\n handleNotification(notificationProps);\n }\n return res;\n } catch (error) {\n handleError(error, submitConfig);\n throw error;\n }\n },\n [processSubmit, notification, handleNotification, handleError],\n );\n\n const onInvalidHandle = useCallback(\n (err: unknown, submitConfig: Submit<F>) => {\n onInvalid?.(err);\n handleError(new Error(\"invalidData\"), submitConfig);\n },\n [handleError, onInvalid],\n );\n\n const handlersRef = useRef({\n formControl,\n onInvalidHandle,\n createSubmitHandler,\n setValue: formControl.setFieldValue,\n trigger: formControl.validateField,\n onValuesChange,\n values,\n errors,\n });\n\n useEffect(() => {\n handlersRef.current.onInvalidHandle = onInvalidHandle;\n handlersRef.current.createSubmitHandler = createSubmitHandler;\n handlersRef.current.setValue = formControl.setFieldValue;\n handlersRef.current.trigger = formControl.validateField;\n handlersRef.current.onValuesChange = onValuesChange;\n }, [onInvalidHandle, createSubmitHandler, formControl, onValuesChange]);\n\n useEffect(() => {\n handlersRef.current.values = values;\n handlersRef.current.errors = errors;\n }, [values, errors]);\n\n const fields = useMemo(\n () =>\n data.map((item, index): FormElements => {\n const staticItem = typeof item === \"function\" ? null : item;\n return {\n index: staticItem?.index ?? index,\n element: (\n <DynamicFieldItem<F>\n key={staticItem?.name ?? index}\n item={item}\n form={formControl}\n globalErrorNs={globalErrorNs}\n formId={id}\n />\n ),\n renderInFooter: !!staticItem?.renderInFooter,\n renderInHeader: !!staticItem?.renderInHeader,\n };\n }),\n [data, formControl, globalErrorNs, id],\n );\n\n const submits = useMemo(\n () =>\n submit.map((submitConfig, index): FormElements => {\n return {\n index: submitConfig.index === undefined ? index : submitConfig.index,\n element: (\n <SubmitItem<F>\n key={`submit-${index}`}\n item={submitConfig}\n index={index}\n handlersRef={handlersRef}\n />\n ),\n renderInFooter: !!submitConfig.renderInFooter,\n renderInHeader: !!submitConfig.renderInHeader,\n isSubmit: true,\n };\n }),\n [submit],\n );\n\n const elements = useMemo(\n (): Array<FormElements> => fields.concat(submits),\n [fields, submits],\n );\n\n const formContents = useMemo(() => [...data, ...submit], [data, submit]);\n\n useEffect(() => {\n handlersRef.current.onValuesChange?.(values, handlersRef.current.setValue);\n }, [values]);\n\n return {\n elements,\n formContents,\n errors,\n formValues: values,\n setValue,\n };\n};\n","import { useMemo } from \"react\";\nimport { useFormManager } from \"./hooks\";\nimport { DefaultContainer, DefaultFormContainer } from \"./containers\";\nimport type { FieldValues, FormManagerProps } from \"./types\";\nimport { useFormConfigValue } from \"./config\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const FormManager = <T extends Record<string, any> = FieldValues>({\n data,\n defaultValues,\n onInvalid,\n submit = [],\n ns,\n globalErrorNs,\n notification,\n formSettings,\n viewSettings,\n onValuesChange,\n id = \"form-manager\",\n}: FormManagerProps<T>) => {\n const { elements = [] } = useFormManager({\n data,\n globalErrorNs,\n notification,\n ns,\n onInvalid,\n submit,\n onValuesChange,\n id,\n formOptions: {\n defaultValues: defaultValues,\n ...formSettings,\n formId: id,\n },\n });\n\n // Render logic remains similar\n const render = useMemo(\n () =>\n elements\n .filter((el) => !el.isSubmit)\n .sort((a, b) => a.index - b.index)\n .map((el) => el.element),\n [elements],\n );\n const renderSubmit = useMemo(\n () =>\n elements\n .filter((el) => el.isSubmit)\n .sort((a, b) => a.index - b.index)\n .map((el) => el.element),\n [elements],\n );\n const { container, bodyContainer, submitContainer } = useFormConfigValue();\n\n const Container =\n viewSettings?.container || container || DefaultFormContainer<T>;\n const BodyContainer =\n viewSettings?.bodyContainer || bodyContainer || DefaultContainer;\n const SubmitContainer =\n viewSettings?.submitContainer || submitContainer || DefaultContainer;\n\n return (\n <Container {...(viewSettings?.containerProps || {})}>\n <BodyContainer {...(viewSettings?.bodyContainerProps || {})}>\n {render}\n </BodyContainer>\n <SubmitContainer {...(viewSettings?.submitContainerProps || {})}>\n {renderSubmit}\n </SubmitContainer>\n </Container>\n );\n};\n"],"names":["DefaultContainer","children","_formConfig","formFieldContainer","atom","formConfigAtom","useValue","useFormConfigValue","useState","useFormConfigState","useReset","useFormConfigReset","atomStateGenerator","key","defaultValue","persist","createDefaultContainer","setDefaultFormContainer","val","DefaultFormContainer","t0","$","_c","handleSubmit","_temp","t1","_jsx","onSubmit","className","e","preventDefault","form","currentTarget","submitButton","querySelector","click","useJotaiForm","formOptions","useForm","FormField","config","onFieldChange","ns","globalNs","globalErrorNs","_a","errorNs","_b","translateText","firstError","field","state","meta","errors","length","undefined","errorMessageStr","String","errorMessage","useMemo","label","helperMessage","helper","text","translationOption","ref","useRef","handleChange","useEffect","current","useCallback","value","call","handleBlur","baseProps","onChange","onBlur","error","ConfigContainer","container","FormFieldContainer","component","DEFAULT_FORM_ENTRY","Object","freeze","formValues","setValue","formAtom","getFormCompositeKey","scopeId","createScopeFormsAtom","get","allForms","prefix","scopeForms","entries","startsWith","slice","set","update","newForms","assign","keys","createFormSelector","formId","selectAtom","forms","entry","a","b","useFormValue","selectorAtom","useAtomValue","useFormState","useAtom","useSetFormState","setForms","useSetAtom","prev","prevEntry","getValueAtPath","obj","path","defaultObj","normalized","replace","parts","split","filter","Boolean","part","useFormValues","formEntry","currentValues","subscriptions","Map","trigger","setTrigger","formRef","shouldTrigger","forEach","_","newValue","oldValue","equal","c","trimObject","reduce","includes","trim","RenderField","fieldState","fieldProps","t2","DynamicFieldItem","item","isHidden","hidden","rules","props","Field","name","validators","SubmitItem","index","handlersRef","handleClick","formControl","createSubmitHandler","onInvalidHandle","isValid","values","Promise","all","map","validateField","hasError","some","getFieldMeta","validateAllFields","Component","onClick","type","useFormManager","data","onInvalid","submit","notification","onValuesChange","id","useStore","store","setFormState","showNotification","updater","setFieldValue","handleNotification","message","filterFormData","v","submitConfig","out","processSubmit","d","filteredData","onSuccess","Error","handleError","onError","notificationProps","dataSubmit","res","success","err","fields","staticItem","element","renderInFooter","renderInHeader","submits","isSubmit","elements","concat","formContents","FormManager","defaultValues","formSettings","viewSettings","t3","t4","t5","t6","t7","t8","sort","_temp2","_temp3","render","t9","_temp4","_temp5","_temp6","renderSubmit","bodyContainer","submitContainer","Container","BodyContainer","SubmitContainer","t10","_jsxs","containerProps","bodyContainerProps","submitContainerProps","el","el_0","el_1","a_0","b_0","el_2"],"mappings":"wdAyBA,MAAMA,kBAAgB,GAAGA,CAAC;AAAEC,EAAAA;AAAQ,CAAqB,KAAI;AAC3D,EAAA,OAAOA,QAAQ;AACjB,CAAC;AACD;AACA,MAAMC,WAAW,GAAoB;AACnCC,EAAAA,kBAAkB,EAAEH;CACrB;AAEM,MAAM;AACXI,EAAAA,IAAI,EAAEC,cAAc;AACpBC,EAAAA,QAAQ,EAAEC,kBAAkB;AAC5BC,EAAAA,QAAQ,EAAEC,kBAAkB;AAC5BC,EAAAA,QAAQ,EAAEC;AAAkB,CAC7B,GAAGC,kBAAkB,CAAkB;AACtCC,EAAAA,GAAG,EAAE,YAAY;AACjBC,EAAAA,YAAY,EAAEZ,WAAW;AACzBa,EAAAA,OAAO,EAAE;AACV,CAAA,ECnCD,MAAMC,sBAAsB,GAAGA,MAAK;AAClC,EAAA,OAAO,CAAC;AAAEf,IAAAA;AAAQ,GAA8B,KAAI;AAClD,IAAA,OAAOA,QAAQ;EACjB,CAAC;AACH,CAAC;AAED,IAAID,gBAAgB,GAAGgB,sBAAsB;AAE7C,MAAMC,uBAAuB,GAC3BC,GAEiD,IAC/C;AACFlB,EAAAA,gBAAgB,GAAGkB,GAAG;AACxB;AAEA;AACA,MAAMC,oBAAoB,GAAGC,EAAA,IAAA;EAAA,MAAAC,CAAA,GAAAC,CAAA,CAAA,CAAA,CAAA;AAAuC,EAAA,MAAA;AAAArB,IAAAA;AAAA,GAAA,GAAAmB,EAEvC;EAC3B,MAAAG,YAAA,GAAqBC,OAOf;AAAA,EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAApB,QAAA,EAAA;AAGJwB,IAAAA,EAAA,GAAAC,GAAA,CAAA,MAAA,EAAA;AAAAC,MAAAA,QAAA,EAAgBJ,YAAY;AAAAK,MAAAA,SAAA,EAAY,qBAAqB;AAAA3B,MAAAA;AAClD,KAAA,CACJ;AAAAoB,IAAAA,CAAA,MAAApB,QAAA;AAAAoB,IAAAA,CAAA,MAAAI,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAAJ,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAFPI,EAEO;AAAA;AAfkB,SAAAD,QAAAK,CAAA,EAAA;EAIzBA,CAAC,CAAAC,cAAe,EAAE;AAClB,EAAA,MAAAC,IAAA,GAAaF,CAAC,CAAAG,aAAc;AAC5B,EAAA,MAAAC,YAAA,GAAqBF,IAAI,CAAAG,aAAc,CAAC,yBAAuB,CAElD;AACbD,EAAAA,YAAY,SAAA,IAAZA,YAAY,KAAA,MAAS,GAArB,MAAqB,GAArBA,YAAY,CAAAE,KAAO,EAAE;AAAA,CCjCzB;AAuBM,SAAAC,aAAAC,WAAA,EAAA;AACJ,EAAA,MAAAN,IAAA,GAAaO,OAAO,CAalBD,WAAW,CAAC;AAAA,EAAA,OAEPN,IAAI;AAAA,CClCN,MAAMQ,SAAS,GAAGA,CAAwB;EAC/CC,MAAM;EACNC,aAAa;AACbC,EAAAA,EAAE,EAAEC,QAAQ;AACZC,EAAAA;AAAa,CACK,KAAI;;AACtB,EAAA,MAAMF,EAAE,GAAG,CAAAG,EAAA,GAAAL,MAAM,CAACE,EAAE,MAAA,IAAA,IAAAG,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAIF,QAAQ;AAChC,EAAA,MAAMG,OAAO,GAAG,CAAAC,EAAA,GAAAP,MAAM,CAACM,OAAO,MAAA,IAAA,IAAAC,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAIH,aAAa;EAC/C,MAAM;IAAEzC,kBAAkB;AAAE6C,IAAAA;GAAe,GAAGzC,kBAAkB,EAAE;AAElE;AACA,EAAA,MAAM0C,UAAU,GACdT,MAAM,CAACU,KAAK,CAACC,KAAK,CAACC,IAAI,CAACC,MAAM,CAACC,MAAM,GAAG,CAAC,GACrCd,MAAM,CAACU,KAAK,CAACC,KAAK,CAACC,IAAI,CAACC,MAAM,CAAC,CAAC,CAAC,GACjCE,SAAS;EACf,MAAMC,eAAe,GAAGP,UAAU,GAAGQ,MAAM,CAACR,UAAU,CAAC,GAAGM,SAAS;AAEnE,EAAA,MAAMG,YAAY,GAAGC,OAAO,CAAC,MAAK;AAChC,IAAA,IAAI,CAACH,eAAe,EAAE,OAAOD,SAAS;AACtC,IAAA,OAAOT,OAAO,GACVE,aAAa,KAAA,IAAA,IAAbA,aAAa,uBAAbA,aAAa,CAAGQ,eAAe,EAAE;MAC/Bd,EAAE,EAAEI,OAAO,IAAI,EAAE;AACjBhC,MAAAA,YAAY,EAAE;KACf,CAAC,GACF0C,eAAe;EACrB,CAAC,EAAE,CAACA,eAAe,EAAEV,OAAO,EAAEE,aAAa,CAAC,CAAC;AAE7C,EAAA,MAAMY,KAAK,GAAGD,OAAO,CACnB,MAAK;AAAA,IAAA,IAAAd,IAAA;AAAC,IAAA,OAACH,EAAE,GAAGM,aAAa,KAAA,IAAA,IAAbA,aAAa,uBAAbA,aAAa,CAAG,CAAAH,IAAA,GAAAL,MAAM,CAACoB,KAAK,uCAAI,EAAE,CAAC,GAAGpB,MAAM,CAACoB,KAAK;EAAC,CAAA,EAC/D,CAAClB,EAAE,EAAEF,MAAM,CAACoB,KAAK,EAAEZ,aAAa,CAAC,CAClC;AAED,EAAA,MAAMa,aAAa,GAAGF,OAAO,CAC3B,MAAK;;IACH,OAAA,CAAA,CAAAd,IAAA,GAAAL,MAAM,CAACsB,MAAM,8CAAEC,IAAI,IACff,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAa,CAAGR,MAAM,CAACsB,MAAM,CAACC,IAAI,EAAEvB,MAAM,CAACsB,MAAM,CAACE,iBAAiB,CAAC,GACpE,EAAE;GAAA,EACR,CAACxB,MAAM,CAACsB,MAAM,EAAEd,aAAa,CAAC,CAC/B;EAED,MAAMiB,GAAG,GAAGC,MAAM,CAAC;IAAEzB,aAAa;AAAE0B,IAAAA,YAAY,EAAE3B,MAAM,CAACU,KAAK,CAACiB;AAAY,GAAE,CAAC;AAE9EC,EAAAA,SAAS,CAAC,MAAK;IACbH,GAAG,CAACI,OAAO,GAAG;MACZ5B,aAAa;AACb0B,MAAAA,YAAY,EAAE3B,MAAM,CAACU,KAAK,CAACiB;KAC5B;EACH,CAAC,EAAE,CAAC3B,MAAM,CAACU,KAAK,CAACiB,YAAY,EAAE1B,aAAa,CAAC,CAAC;AAE9C,EAAA,MAAM0B,YAAY,GAAGG,WAAW,CAAEC,KAAQ,IAAI;;AAC5C;AACA;AACAN,IAAAA,GAAG,CAACI,OAAO,CAACF,YAAY,CAACI,KAAK,CAAC;AAC/B,IAAA,CAAAxB,IAAA,GAAA,CAAAF,IAAA,GAAAoB,GAAG,CAACI,OAAO,EAAC5B,aAAa,MAAA,IAAA,IAAAM,IAAA,KAAA,MAAA,GAAA,MAAA,GAAAA,IAAA,CAAAyB,IAAA,CAAA3B,IAAA,EAAG0B,KAAK,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,MAAME,UAAU,GAAGH,WAAW,CAAC,MAAK;AAClC9B,IAAAA,MAAM,CAACU,KAAK,CAACuB,UAAU,EAAE;AAC3B,EAAA,CAAC,EAAE,CAACjC,MAAM,CAACU,KAAK,CAAC,CAAC;AAElB,EAAA,MAAMwB,SAAS,GAAGf,OAAO,CACvB,OAAO;AACLY,IAAAA,KAAK,EAAE/B,MAAM,CAACU,KAAK,CAACC,KAAK,CAACoB,KAAK;AAC/BI,IAAAA,QAAQ,EAAER,YAAY;AACtBS,IAAAA,MAAM,EAAEH,UAAU;AAClBI,IAAAA,KAAK,EAAErC,MAAM,CAACU,KAAK,CAACC,KAAK,CAACC,IAAI,CAACC,MAAM,CAACC,MAAM,GAAG,CAAC;IAChDI,YAAY;IACZE,KAAK;AACLC,IAAAA;AACD,GAAA,CAAC,EACF,CACErB,MAAM,CAACU,KAAK,CAACC,KAAK,CAACoB,KAAK,EACxBJ,YAAY,EACZM,UAAU,EACVjC,MAAM,CAACU,KAAK,CAACC,KAAK,CAACC,IAAI,CAACC,MAAM,CAACC,MAAM,EACrCI,YAAY,EACZE,KAAK,EACLC,aAAa,CACd,CACF;AAED,EAAA,MAAMiB,eAAe,GAAGnB,OAAO,CAAC,MAAMnB,MAAM,CAACuC,SAAS,EAAE,CAACvC,MAAM,CAACuC,SAAS,CAAC,CAAC;EAC3E,MAAMC,kBAAkB,GAAGrB,OAAO,CAChC,MAAMxD,kBAAkB,EACxB,CAACA,kBAAkB,CAAC,CACrB;AAED,EAAA,IAAI2E,eAAe,EAAE;IACnB,OACEpD,GAAA,CAACoD,eAAe,EAAA;AAAA7E,MAAAA,QAAA,EACbuC,MAAM,CAACyC,SAAS,CAACP,SAAS;AAAC,KAAA,CACZ;AAEtB,EAAA;EACA,OACEhD,GAAA,CAACsD,kBAAkB,EAAA;AAAA/E,IAAAA,QAAA,EAChBuC,MAAM,CAACyC,SAAS,CAACP,SAAS;AAAC,GAAA,CACT;AAEzB,QC9FaQ,kBAAkB,GAAgCC,MAAM,CAACC,MAAM,CAAC;EAC3EC,UAAU,EAAE,EAAiB;EAC7BC,QAAQ,EAAEA,MAAK,CAAE;AAClB,CAAA;AAED;;;AAGG;MACUC,QAAQ,GAAGnF,IAAI,CAAiC,EAAE;AAE/D;;AAEG;AACI,MAAMoF,mBAAmB,GAAGA,CAACC,OAAe,EAAE5E,GAAW,KAC9D,CAAA,EAAG4E,OAAO,CAAA,CAAA,EAAI5E,GAAG,CAAA;AAEnB;;AAEG;AACI,MAAM6E,oBAAoB,GAAID,OAAe,IAClDrF,IAAI,CACDuF,GAAG,IAAI;AACN,EAAA,MAAMC,QAAQ,GAAGD,GAAG,CAACJ,QAAQ,CAAC;AAC9B,EAAA,MAAMM,MAAM,GAAG,CAAA,EAAGJ,OAAO,CAAA,CAAA,CAAG;EAC5B,MAAMK,UAAU,GAAmC,EAAE;AAErD,EAAA,KAAK,MAAM,CAACjF,GAAG,EAAE0D,KAAK,CAAC,IAAIY,MAAM,CAACY,OAAO,CAACH,QAAQ,CAAC,EAAE;AACnD,IAAA,IAAI/E,GAAG,CAACmF,UAAU,CAACH,MAAM,CAAC,EAAE;MAC1BC,UAAU,CAACjF,GAAG,CAACoF,KAAK,CAACJ,MAAM,CAACvC,MAAM,CAAC,CAAC,GAAGiB,KAAK;AAC9C,IAAA;AACF,EAAA;AAEA,EAAA,OAAOuB,UAAU;AACnB,CAAC,EACD,CAACH,GAAG,EAAEO,GAAG,EAAEC,MAAsC,KAAI;AACnD,EAAA,MAAMP,QAAQ,GAAGD,GAAG,CAACJ,QAAQ,CAAC;AAC9B,EAAA,MAAMM,MAAM,GAAG,CAAA,EAAGJ,OAAO,CAAA,CAAA,CAAG;EAC5B,MAAMW,QAAQ,GAAAjB,MAAA,CAAAkB,MAAA,CAAA,EAAA,EAAQT,QAAQ,CAAE;AAEhC;EACA,KAAK,MAAM/E,GAAG,IAAIsE,MAAM,CAACmB,IAAI,CAACF,QAAQ,CAAC,EAAE;AACvC,IAAA,IAAIvF,GAAG,CAACmF,UAAU,CAACH,MAAM,CAAC,EAAE;MAC1B,OAAOO,QAAQ,CAACvF,GAAG,CAAC;AACtB,IAAA;AACF,EAAA;AAEA;AACA,EAAA,KAAK,MAAM,CAACA,GAAG,EAAE0D,KAAK,CAAC,IAAIY,MAAM,CAACY,OAAO,CAACI,MAAM,CAAC,EAAE;IACjDC,QAAQ,CAAC,GAAGP,MAAM,CAAA,EAAGhF,GAAG,CAAA,CAAE,CAAC,GAAG0D,KAAK;AACrC,EAAA;AAEA2B,EAAAA,GAAG,CAACX,QAAQ,EAAEa,QAAQ,CAAC;AACzB,CAAC;AAGE,MAAMG,kBAAkB,GAC7BC,MAAc,IAEdC,UAAU,CACRlB,QAAQ,EACPmB,KAAK,IAAI;AACR,EAAA,MAAMC,KAAK,GAAGD,KAAK,CAACF,MAAM,CAAkC;EAC5D,OAAOG,KAAK,KAAA,IAAA,IAALA,KAAK,cAALA,KAAK,GAAKzB,kBAAmD;AACtE,CAAC,EACD,CAAC0B,CAAC,EAAEC,CAAC,KACHD,CAAC,KAAKC,CAAC,IAAKD,CAAC,CAACvB,UAAU,KAAKwB,CAAC,CAACxB,UAAU,IAAIuB,CAAC,CAACtB,QAAQ,KAAKuB,CAAC,CAACvB,QAAS;AAGtE,MAAMwB,YAAY,GAAGN,MAAA,IAAA;EAAA,MAAAnF,CAAA,GAAAC,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA,IAAAF,EAAA;EAAA,IAAAC,CAAA,QAAAmF,MAAA,EAAA;AACSpF,IAAAA,EAAA,GAAAmF,kBAAkB,CAAIC,MAAM,CAAC;AAAAnF,IAAAA,CAAA,MAAAmF,MAAA;AAAAnF,IAAAA,CAAA,MAAAD,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAAC,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;EAAhE,MAAA0F,YAAA,GAAmC3F,EAA6B;EAAW,OACpE4F,YAAY,CAACD,YAAY,CAAC;AAAA;AAG5B,MAAME,YAAY,GAAGA,MAAA;EAAA,OACnBC,OAAO,CAAC3B,QAAQ,CAGtB;AAAA;AAGI,MAAM4B,eAAe,GAA2BX,MAAc,IAAI;AACvE,EAAA,MAAMY,QAAQ,GAAGC,UAAU,CAAC9B,QAAQ,CAAC;EAErC,OAAOjB,WAAW,CACfpD,GAA+B,IAAI;IAClCkG,QAAQ,CAAEE,IAAI,IAAI;;AAChB,MAAA,MAAMC,SAAS,GACb,CAAA1E,EAAA,GAACyE,IAAI,CAACd,MAAM,CAA6C,MAAA,IAAA,IAAA3D,EAAA,KAAA,MAAA,GAAAA,EAAA,GACzDqC,kBAAkB;AAEpB,MAAA,OAAAC,MAAA,CAAAkB,MAAA,CAAAlB,MAAA,CAAAkB,MAAA,CAAA,EAAA,EACKiB,IAAI,CAAA,EAAA;AACP,QAAA,CAACd,MAAM,GAAGrB,MAAA,CAAAkB,MAAA,CAAAlB,MAAA,CAAAkB,MAAA,CAAA,EAAA,EACJkB,SAA0C,CAAA,EAC1CrG,GAAuD;AAClB,OAAA,CAAA;AAE/C,IAAA,CAAC,CAAC;AACJ,EAAA,CAAC,EACD,CAACsF,MAAM,EAAEY,QAAQ,CAAC,CACnB;AACH,ECtGA,MAAMI,cAAc,GAAGA,CACrBC,GAAY,EACZC,IAAY,EACZC,UAAoB,KACT;AACX,EAAA,IAAI,CAACD,IAAI,EAAE,OAAOnE,SAAS;EAC3B,MAAMqE,UAAU,GAAGF,IAAI,CAACG,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC;AACpD,EAAA,MAAMC,KAAK,GAAGF,UAAU,CAACG,KAAK,CAAC,GAAG,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC;EACnD,IAAI5D,OAAO,GAAYoD,GAAG;AAC1B,EAAA,KAAK,MAAMS,IAAI,IAAIJ,KAAK,EAAE;AACxB,IAAA,IAAI,CAACzD,OAAO,IAAI,CAACc,MAAM,CAACmB,IAAI,CAACjC,OAAO,CAAC,CAACf,MAAM,EAAE;AAC5C,MAAiB,OAAOC,SAAS;AAEnC,IAAA;AACA,IAAA,IAAI,OAAOc,OAAO,KAAK,QAAQ,EAAE,OAAOd,SAAS;AACjDc,IAAAA,OAAO,GAAIA,OAAmC,CAAC6D,IAAI,CAAC;AACtD,EAAA;AAEA,EAAA,OAAO7D,OAAO;AAChB,CAAC;AAOM,MAAM8D,aAAa,GAAGA,CAAwB;AACnD3B,EAAAA;AAAM,CACa,KAA0B;AAC7C;AACA;AACA;AACA,EAAA,MAAM4B,SAAS,GAAGtB,YAAY,CAACN,MAAM,CAAC;AACtC,EAAA,MAAM6B,aAAa,GAAG1E,OAAO,CAC3B,MAAMyE,SAAS,CAAC/C,UAAU,EAC1B,CAAC+C,SAAS,CAAC/C,UAAU,CAAC,CACvB;EAED,MAAMiD,aAAa,GAAGpE,MAAM,CAAC,IAAIqE,GAAG,EAAmB,CAAC;AACxD;EACA,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGjI,QAAQ,CAAC,CAAC,CAAC;AAEzC;EACA,MAAMkI,OAAO,GAAGxE,MAAM,CAAC;IACrBmB,UAAU,EAAE+C,SAAS,CAAC/C,UAAU;IAChCC,QAAQ,EAAE8C,SAAS,CAAC9C;AACrB,GAAA,CAAC;AAEFlB,EAAAA,SAAS,CAAC,MAAK;AACbsE,IAAAA,OAAO,CAACrE,OAAO,CAACiB,QAAQ,GAAG8C,SAAS,CAAC9C,QAAQ;AAC/C,EAAA,CAAC,EAAE,CAAC8C,SAAS,CAAC9C,QAAQ,CAAC,CAAC;AAExBlB,EAAAA,SAAS,CAAC,MAAK;IACb,IAAIuE,aAAa,GAAG,KAAK;IACzBL,aAAa,CAACjE,OAAO,CAACuE,OAAO,CAAC,CAACC,CAAC,EAAEnB,IAAI,KAAI;AACxC,MAAA,MAAMoB,QAAQ,GAAGtB,cAAc,CAACa,aAAa,EAAEX,IAAI,CAAC;MACpD,MAAMqB,QAAQ,GAAGvB,cAAc,CAACkB,OAAO,CAACrE,OAAO,CAACgB,UAAU,EAAEqC,IAAI,CAAC;AACjE,MAAA,IAAI,CAACsB,KAAK,CAACF,QAAQ,EAAEC,QAAQ,CAAC,EAAE;AAC9BJ,QAAAA,aAAa,GAAG,IAAI;AACtB,MAAA;AACF,IAAA,CAAC,CAAC;AAEFD,IAAAA,OAAO,CAACrE,OAAO,CAACgB,UAAU,GAAGgD,aAAa;AAC1C;AACA,IAAA,IAAIM,aAAa,EAAE;AACjBF,MAAAA,UAAU,CAAEQ,CAAC,IAAKA,CAAC,GAAG,CAAC,CAAC;AAC1B,IAAA;AACF,EAAA,CAAC,EAAE,CAACZ,aAAa,CAAC,CAAC;EAEnB,MAAM1C,GAAG,GAAGrB,WAAW,CACrB,CAACzD,GAAW,EAAEC,YAAsB,KAAI;;IACtC,MAAMI,GAAG,GACP,CAAA2B,EAAA,GAAA2E,cAAc,CAACkB,OAAO,CAACrE,OAAO,CAACgB,UAAU,EAAExE,GAAG,CAAC,MAAA,IAAA,IAAAgC,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAI/B,YAAY;IACjEwH,aAAa,CAACjE,OAAO,CAAC6B,GAAG,CAACrF,GAAG,EAAEK,GAAG,CAAC;AACnC,IAAA,OAAOoH,aAAa,CAACjE,OAAO,CAACsB,GAAG,CAAC9E,GAAG,CAAC;EACvC,CAAC;AACD;EACA,CAAC2H,OAAO,CAAC,CACkB;EAE7B,MAAMtC,GAAG,GAAG5B,WAAW,CACrB,CACEpB,KAAa,EACbqB,KAA2B,KACzB;IACFmE,OAAO,CAACrE,OAAO,CAACiB,QAAQ,CAACpC,KAAK,EAAEqB,KAAK,CAAC;EACxC,CAAC,EACD,EAAE,CACH;EAED,OAAO;IAAEoB,GAAG;AAAEO,IAAAA;GAAK;AACrB,ECnGA,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE;AAC5D,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO;AACxC,EAAE,MAAM,KAAK,GAAG,gCAAgC;AAChD,IAAI,KAAK,CAAC,SAAS;AACnB,IAAI,MAAM,KAAK,CAAC,KAAK;AACrB,IAAI,MAAM,KAAK,CAAC,KAAK;AACrB,IAAI,QAAQ;AACZ,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,KAAK;AACd;AACA,SAAS,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE;AAC7B,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AAC7B,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AAC9F,IAAI,OAAO,KAAK;AAChB,EAAE;AACF,EAAE,IAAI,IAAI,YAAY,GAAG,IAAI,IAAI,YAAY,GAAG,EAAE;AAClD,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK;AAC7C,IAAI,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;AAC/B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK;AAClE,IAAI;AACJ,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,IAAI,IAAI,YAAY,GAAG,IAAI,IAAI,YAAY,GAAG,EAAE;AAClD,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK;AAC7C,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;AAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK;AACpC,IAAI;AACJ,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,EAAE;AACpD,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,KAAK;AACvD,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;AAChC,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AAChD,IAAI,OAAO,KAAK;AAChB,EAAE;AACF,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7G,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACA,SAAS,UAAU,CAAC,GAAG,EAAE;AACzB,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;AAChC,IAAI,MAAM,CAAC,qBAAqB,CAAC,GAAG;AACpC,GAAG;AACH,CCfA,MAAMgD,UAAU,GAAsBzB,GAAO,IAC3CtC,MAAM,CAACY,OAAO,CAAC0B,GAAG,aAAHA,GAAG,KAAA,MAAA,GAAHA,GAAG,GAAI,EAAE,CAAC,CAAC0B,MAAM,CAC9B,CAAC7B,IAAI,EAAE,CAACzG,GAAG,EAAEK,GAAG,CAAC,KAAKiE,MAAA,CAAAkB,MAAA,CAAAlB,MAAA,CAAAkB,MAAA,CAAA,EAAA,EACjBiB,IAAI,CAAA,EAAA;EACP,CAACzG,GAAG,GACF,OAAOK,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAACkI,QAAQ,CAACvI,GAAG,CAAC,GAC/DK,GAAG,CAACmI,IAAI,EAAE,GACVnI;AAAG,CAAA,CACT,EACF,EAAO,CACR;AACH,MAAMoI,WAAW,GAAGlI,EAAA,IAAA;EAAA,MAAAC,CAAA,GAAAC,CAAA,CAAA,CAAA,CAAA;AAAsC,EAAA,MAAA;IAAA4B,KAAA;IAAAqG,UAAA;IAAAC,UAAA;AAAA/G,IAAAA;AAAA,GAAA,GAAArB,EAUzD;AAAA,EAAA,IAAAK,EAAA;EAAA,IAAAJ,CAAA,CAAA,CAAA,CAAA,KAAA6B,KAAA,IAAA7B,CAAA,QAAAmI,UAAA,IAAAnI,CAAA,CAAA,CAAA,CAAA,KAAAkI,UAAA,EAAA;AAES9H,IAAAA,EAAA,GAAA0D,MAAA,CAAAkB,MAAA,CAAAlB,MAAA,CAAAkB,MAAA,CAAA,EAAA,EACDmD,UAAU,CAAA,EAAA;MAAAtG,KAAA;AAAAqG,MAAAA;AAEH,KAAA,CAAA;AAAAlI,IAAAA,CAAA,MAAA6B,KAAA;AAAA7B,IAAAA,CAAA,MAAAmI,UAAA;AAAAnI,IAAAA,CAAA,MAAAkI,UAAA;AAAAlI,IAAAA,CAAA,MAAAI,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAAJ,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;EAJd,MAAAmB,MAAA,GACQf,EAGM;AAGZ,EAAA,IAAAgI,EAAA;AAAA,EAAA,IAAApI,CAAA,CAAA,CAAA,CAAA,KAAAmB,MAAA,IAAAnB,CAAA,CAAA,CAAA,CAAA,KAAAmI,UAAA,CAAA1G,OAAA,IAAAzB,CAAA,QAAAmI,UAAA,CAAA9G,EAAA,IAAArB,CAAA,QAAAoB,aAAA,EAAA;AAEAgH,IAAAA,EAAA,GAAA/H,GAAA,CAACa,SAAS,EAAA;MAAAC,MAAA;MAAAE,EAAA,EAEJ8G,UAAU,CAAA9G,EAAG;MAAAE,aAAA,EACF4G,UAAU,CAAA1G,OAAQ;AAAAL,MAAAA;AACL,KAAA,CAC5B;AAAApB,IAAAA,CAAA,MAAAmB,MAAA;IAAAnB,CAAA,CAAA,CAAA,CAAA,GAAAmI,UAAA,CAAA1G,OAAA;IAAAzB,CAAA,CAAA,CAAA,CAAA,GAAAmI,UAAA,CAAA9G,EAAA;AAAArB,IAAAA,CAAA,MAAAoB,aAAA;AAAApB,IAAAA,CAAA,MAAAoI,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAApI,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OALFoI,EAKE;AAAA,CAEL;AAED,MAAMC,gBAAgB,GAAGA,CAAwB;EAC/CC,IAAI;EACJ5H,IAAI;EACJa,aAAa;AACb4D,EAAAA;AAAM,CAMP,KAAI;EACH,MAAM;IAAEb,GAAG;AAAEO,IAAAA;GAAK,GAAGiC,aAAa,CAAI;AAAE3B,IAAAA;AAAM,GAAE,CAAC;AAEjD,EAAA,MAAMgD,UAAU,GAAG7F,OAAO,CAAC,MAAK;AAC9B,IAAA,IAAI,OAAOgG,IAAI,KAAK,UAAU,EAAE;AAC9B,MAAA,OAAOA,IAAI,CAAC;QAAEhE,GAAG;AAAEO,QAAAA;AAAG,OAAE,CAAC;AAC3B,IAAA,CAAC,MAAM;AACL,MAAA,OAAOyD,IAAI;AACb,IAAA;EACF,CAAC,EAAE,CAAChE,GAAG,EAAEO,GAAG,EAAEyD,IAAI,CAAC,CAAC;AAEpB,EAAA,MAAMC,QAAQ,GAAGjG,OAAO,CAAC,MAAK;AAC5B,IAAA,IAAI,CAAC6F,UAAU,CAACK,MAAM,EAAE;AACtB,MAAA,OAAO,KAAK;IACd,CAAC,MAAM,IAAI,OAAOL,UAAU,CAACK,MAAM,KAAK,UAAU,EAAE;MAClD,OAAOL,UAAU,CAACK,MAAM,CAAC;QAAElE,GAAG;AAAEO,QAAAA;AAAG,OAAE,CAAC;AACxC,IAAA,CAAC,MAAM;AACL,MAAA,OAAO,CAAC,CAACsD,UAAU,CAACK,MAAM;AAC5B,IAAA;EACF,CAAC,EAAE,CAAClE,GAAG,EAAEO,GAAG,EAAEsD,UAAU,CAAC,CAAC;AAE1B,EAAA,MAAMM,KAAK,GAAGnG,OAAO,CAAC,MAAK;AACzB,IAAA,IAAI,CAAC6F,UAAU,CAACM,KAAK,EAAE;AACrB,MAAA,OAAOvG,SAAS;IAClB,CAAC,MAAM,IAAI,OAAOiG,UAAU,CAACM,KAAK,KAAK,UAAU,EAAE;MACjD,OAAON,UAAU,CAACM,KAAK,CAAC;QAAEnE,GAAG;AAAEO,QAAAA;AAAG,OAAE,CAAC;AACvC,IAAA,CAAC,MAAM;MACL,OAAOsD,UAAU,CAACM,KAAK;AACzB,IAAA;EACF,CAAC,EAAE,CAACnE,GAAG,EAAEO,GAAG,EAAEsD,UAAU,CAAC,CAAC;AAE1B,EAAA,MAAMO,KAAK,GAAGpG,OAAO,CAAC,MAAK;;AACzB,IAAA,OAAAwB,MAAA,CAAAkB,MAAA,CAAAlB,MAAA,CAAAkB,MAAA,CAAA,EAAA,EACKmD,UAAU,CAAA,EAAA;AACb1G,MAAAA,OAAO,EAAE,CAAAD,EAAA,GAAA2G,UAAU,CAAC1G,OAAO,MAAA,IAAA,IAAAD,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAID;AAAa,KAAA,CAAA;AAEhD,EAAA,CAAC,EAAE,CAAC4G,UAAU,EAAE5G,aAAa,CAAC,CAAC;AAE/B,EAAA,IAAIgH,QAAQ,EAAE;AACZ,IAAA,OAAOlI,iBAAK;AACd,EAAA;AAEA,EAAA,OACEA,GAAA,CAACK,IAAI,CAACiI,KAAK,EAAA;IACTC,IAAI,EAAEF,KAAK,CAACE,IAAI;AAChBC,IAAAA,UAAU,EAAEJ,KAAK;AACjB;AACA7J,IAAAA,QAAQ,EAAGiD,KAAK,IACdxB,GAAA,CAAC4H,WAAW,EAAA;AACVpG,MAAAA,KAAK,EAAEA,KAAK;MACZqG,UAAU,EAAErG,KAAK,CAACC,KAAK;AACvBqG,MAAAA,UAAU,EAAEO,KAAK;MACjBtH,aAAa,EAAEsH,KAAK,CAACtH;KAAa;AAErC,GAAA,CACD;AAEN,CAAC;AAED,MAAM0H,UAAU,GAAGA,CAAwB;EACzCR,IAAI;EACJS,KAAK;AACLC,EAAAA;AAAW,CAaZ,KAAI;AACH,EAAA,MAAMC,WAAW,GAAGhG,WAAW,CAAC,YAAW;IACzC,MAAM;MAAEiG,WAAW;MAAEC,mBAAmB;AAAEC,MAAAA;KAAiB,GACzDJ,WAAW,CAAChG,OAAO;AAErB;IACA,IAAIqG,OAAO,GAAG,IAAI;AAElB,IAAA,MAAMpE,IAAI,GAAGqD,IAAI,CAACgB,MAA2C;AAC7D,IAAA,IAAIrE,IAAI,IAAIA,IAAI,CAAChD,MAAM,GAAG,CAAC,EAAE;AAC3B;AACA,MAAA,MAAMsH,OAAO,CAACC,GAAG,CACfvE,IAAI,CAACwE,GAAG,CAAEjK,GAAG,IAAK0J,WAAW,CAACQ,aAAa,CAAClK,GAAG,EAAE,QAAQ,CAAC,CAAC,CAC5D;AACD,MAAA,MAAMmK,QAAQ,GAAG1E,IAAI,CAAC2E,IAAI,CAAEpK,KAAG,IAAI;AACjC;AACA;AACA;AACA;AACA,QAAA,MAAMuC,IAAI,GAAGmH,WAAW,CAACW,YAAY,CAACrK,KAAG,CAAC;QAC1C,OAAO,CAAAuC,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEC,MAAM,KAAID,IAAI,CAACC,MAAM,CAACC,MAAM,GAAG,CAAC;AAC/C,MAAA,CAAC,CAAC;MACFoH,OAAO,GAAG,CAACM,QAAQ;AACrB,IAAA,CAAC,MAAM;AACL;AACA,MAAA,MAAMT,WAAW,CAACY,iBAAiB,CAAC,QAAQ,CAAC;AAC7CT,MAAAA,OAAO,GAAGH,WAAW,CAACpH,KAAK,CAACuH,OAAO;AACrC,IAAA;IAEA,IAAI,CAACA,OAAO,EAAE;MACZD,eAAe,CAACJ,WAAW,CAAChG,OAAO,CAAChB,MAAM,EAAEsG,IAAI,CAAC;AACjD,MAAA;AACF,IAAA;AAEA,IAAA,MAAMgB,MAAM,GAAGN,WAAW,CAAChG,OAAO,CAACsG,MAAM;AACzC;AACA,IAAA,MAAMH,mBAAmB,CAACb,IAAI,CAAC,CAACgB,MAAM,CAAC;AACzC,EAAA,CAAC,EAAE,CAAChB,IAAI,EAAEU,WAAW,CAAC,CAAC;AAEvB,EAAA,MAAMe,SAAS,GAAGzH,OAAO,CAAC,MAAMgG,IAAI,CAAC1E,SAAS,EAAE,CAAC0E,IAAI,CAAC,CAAC;AACvD,EAAA,IAAIA,IAAI,CAACE,MAAM,IAAI,CAACuB,SAAS,EAAE,OAAO1J,iBAAK;EAE3C,OACEA,GAAA,CAAC0J,SAAS,EAAA;AACRC,IAAAA,OAAO,EAAEf,WAAW;AACpBF,IAAAA,KAAK,EAAEA,KAAK;AAEZkB,IAAAA,IAAI,EAAE3B,IAAI,CAAC2B,IAAI,IAAI;AAAQ,GAAA,EADtB,CAAA,OAAA,EAAUlB,KAAK,CAAA,CAAE,CAEtB;AAEN,CAAC;AAEM,MAAMmB,cAAc,GAAGA,CAAsC;EAClEC,IAAI;EACJC,SAAS;AACTC,EAAAA,MAAM,GAAG,EAAE;EACXC,YAAY;EACZtJ,WAAW;EACXuJ,cAAc;EACdhJ,aAAa;AACbiJ,EAAAA,EAAE,GAAG;AAAc,CACI,KAAI;AAC3B,EAAA,MAAMtB,WAAW,GAAGnI,YAAY,CAAIC,WAAW,CAAC;AAChD,EAAA,MAAMgB,MAAM,GAAGyI,QAAQ,CAACvB,WAAW,CAACwB,KAAK,EAAG5I,KAAK,IAAKA,KAAK,CAACE,MAAM,CAAC;AACnE,EAAA,MAAMsH,MAAM,GAAGmB,QAAQ,CAACvB,WAAW,CAACwB,KAAK,EAAG5I,OAAK,IAAKA,OAAK,CAACwH,MAAM,CAAC;AACnE,EAAA,MAAMqB,YAAY,GAAG7E,eAAe,CAAI0E,EAAE,CAAC;EAC3C,MAAM;AAAEI,IAAAA;GAAkB,GAAG1L,kBAAkB,EAAE;EAEjD,MAAM+E,QAAQ,GAAGhB,WAAW,CAC1B,CACEpB,KAAa,EACbgJ,OAAsC,KACnC3B,WAAW,CAAC4B,aAAa,CAACjJ,KAAK,EAAEgJ,OAAO,CAAC,EAC9C,CAAC3B,WAAW,CAAC,CACS;AAExBnG,EAAAA,SAAS,CAAC,MAAK;AACb4H,IAAAA,YAAY,CAAC;MACX1G,QAAQ;AACRD,MAAAA,UAAU,EAAEsF;AACb,KAAA,CAAC;EACJ,CAAC,EAAE,CAACqB,YAAY,EAAE1G,QAAQ,EAAEqF,MAAM,CAAC,CAAC;AAEpC,EAAA,MAAMyB,kBAAkB,GAAG9H,WAAW,CACnCyF,KAA8B,IAAI;IACjC,IAAIA,KAAK,CAACsC,OAAO,EAAE;AACjBJ,MAAAA,gBAAgB,aAAhBA,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhBA,gBAAgB,CAAGlC,KAAK,CAAC;AAC3B,IAAA;AACF,EAAA,CAAC,EACD,CAACkC,gBAAgB,CAAC,CACnB;EAED,MAAMK,cAAc,GAAGhI,WAAW,CAChC,CACEiI,CAAI,EACJC,YAAe,KACI;AACnB,IAAA,MAAMlG,IAAI,GAAGkG,YAAY,CAAC7B,MAA4C;IACtE,IAAI,CAACrE,IAAI,IAAIA,IAAI,CAAChD,MAAM,KAAK,CAAC,EAAE;AAC9B,MAAA,OAAOiJ,CAAoB;AAC7B,IAAA;IAEA,MAAME,GAAG,GAAG,EAAiC;AAC7C,IAAA,KAAK,MAAM5L,GAAG,IAAIyF,IAAI,EAAE;MACtB,IAAIzF,GAAG,IAAI0L,CAAC,EAAE;AACZE,QAAAA,GAAG,CAAC5L,GAAG,CAAC,GAAG0L,CAAC,CAAC1L,GAAG,CAAC;AACnB,MAAA;AACF,IAAA;AACA,IAAA,OAAO4L,GAAsB;EAC/B,CAAC,EACD,EAAE,CACH;EAED,MAAMC,aAAa,GAAGpI,WAAW,CAC/B,OAA8CqI,CAAI,EAAEH,cAAe,KAAI;AACrE,IAAA,MAAMI,YAAY,GAAGN,cAAc,CAACK,CAAC,EAAEH,cAAY,CAAC;IACpD,IAAIA,cAAY,CAACK,SAAS,EAAE;AAC1B,MAAA,OAAO,MAAML,cAAY,CAACK,SAAS,CAACD,YAAY,CAAC;AACnD,IAAA;AACA,IAAA,MAAM,IAAIE,KAAK,CAAC,4BAA4B,CAAC;AAC/C,EAAA,CAAC,EACD,CAACR,cAAc,CAAC,CACjB;EAED,MAAMS,WAAW,GAAGzI,WAAW,CAC7B,CACEO,KAAc,EACd2H,cAAe,KACb;IACF,IAAIA,cAAY,CAACQ,OAAO,EAAE;AACxBR,MAAAA,cAAY,CAACQ,OAAO,CAACnI,KAAc,CAAC;AACtC,IAAA;IACA,MAAMoI,iBAAiB,GACrB,QAAOtB,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,MAAA,GAAA,MAAA,GAAZA,YAAY,CAAE9G,KAAK,CAAA,KAAK,UAAU,GACrC8G,YAAY,CAAC9G,KAAK,CAAEA,KAAe,CAACwH,OAAO,CAAC,GAC5CV,YAAY,KAAA,IAAA,IAAZA,YAAY,uBAAZA,YAAY,CAAE9G,KAAK;AACzB,IAAA,IAAIoI,iBAAiB,aAAjBA,iBAAiB,KAAA,MAAA,GAAA,MAAA,GAAjBA,iBAAiB,CAAEZ,OAAO,EAAE;MAC9BD,kBAAkB,CAACa,iBAAiB,CAAC;AACvC,IAAA;AACF,EAAA,CAAC,EACD,CAACb,kBAAkB,EAAET,YAAY,CAAC,CACnC;EAED,MAAMnB,mBAAmB,GAAGlG,WAAW,CACGkI,cAAe,IACrD,MAAOU,UAAa,IAAI;IACtB,IAAI;MACF,MAAMC,GAAG,GAAG,MAAMT,aAAa,CAC7BxD,UAAU,CAAIgE,UAAU,CAAC,EACzBV,cAAY,CACb;AACD,MAAA,MAAMS,mBAAiB,GACrB,QAAOtB,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,MAAA,GAAA,MAAA,GAAZA,YAAY,CAAEyB,OAAO,CAAA,KAAK,UAAU,GACvCzB,YAAY,CAACyB,OAAO,CAACD,GAAG,CAAC,GACzBxB,YAAY,KAAA,IAAA,IAAZA,YAAY,uBAAZA,YAAY,CAAEyB,OAAO;AAC3B,MAAA,IAAIH,mBAAiB,aAAjBA,mBAAiB,KAAA,MAAA,GAAA,MAAA,GAAjBA,mBAAiB,CAAEZ,OAAO,EAAE;QAC9BD,kBAAkB,CAACa,mBAAiB,CAAC;AACvC,MAAA;AACA,MAAA,OAAOE,GAAG;IACZ,CAAC,CAAC,OAAOtI,OAAK,EAAE;AACdkI,MAAAA,WAAW,CAAClI,OAAK,EAAE2H,cAAY,CAAC;AAChC,MAAA,MAAM3H,OAAK;AACb,IAAA;EACF,CAAC,EACH,CAAC6H,aAAa,EAAEf,YAAY,EAAES,kBAAkB,EAAEW,WAAW,CAAC,CAC/D;EAED,MAAMtC,eAAe,GAAGnG,WAAW,CACjC,CAAC+I,GAAY,EAAEb,cAAuB,KAAI;AACxCf,IAAAA,SAAS,aAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAG4B,GAAG,CAAC;IAChBN,WAAW,CAAC,IAAID,KAAK,CAAC,aAAa,CAAC,EAAEN,cAAY,CAAC;AACrD,EAAA,CAAC,EACD,CAACO,WAAW,EAAEtB,SAAS,CAAC,CACzB;EAED,MAAMpB,WAAW,GAAGnG,MAAM,CAAC;IACzBqG,WAAW;IACXE,eAAe;IACfD,mBAAmB;IACnBlF,QAAQ,EAAEiF,WAAW,CAAC4B,aAAa;IACnC3D,OAAO,EAAE+B,WAAW,CAACQ,aAAa;IAClCa,cAAc;IACdjB,MAAM;AACNtH,IAAAA;AACD,GAAA,CAAC;AAEFe,EAAAA,SAAS,CAAC,MAAK;AACbiG,IAAAA,WAAW,CAAChG,OAAO,CAACoG,eAAe,GAAGA,eAAe;AACrDJ,IAAAA,WAAW,CAAChG,OAAO,CAACmG,mBAAmB,GAAGA,mBAAmB;AAC7DH,IAAAA,WAAW,CAAChG,OAAO,CAACiB,QAAQ,GAAGiF,WAAW,CAAC4B,aAAa;AACxD9B,IAAAA,WAAW,CAAChG,OAAO,CAACmE,OAAO,GAAG+B,WAAW,CAACQ,aAAa;AACvDV,IAAAA,WAAW,CAAChG,OAAO,CAACuH,cAAc,GAAGA,cAAc;EACrD,CAAC,EAAE,CAACnB,eAAe,EAAED,mBAAmB,EAAED,WAAW,EAAEqB,cAAc,CAAC,CAAC;AAEvExH,EAAAA,SAAS,CAAC,MAAK;AACbiG,IAAAA,WAAW,CAAChG,OAAO,CAACsG,MAAM,GAAGA,MAAM;AACnCN,IAAAA,WAAW,CAAChG,OAAO,CAAChB,MAAM,GAAGA,MAAM;AACrC,EAAA,CAAC,EAAE,CAACsH,MAAM,EAAEtH,MAAM,CAAC,CAAC;AAEpB,EAAA,MAAMiK,MAAM,GAAG3J,OAAO,CACpB,MACE6H,IAAI,CAACV,GAAG,CAAC,CAACnB,IAAI,EAAES,KAAK,KAAkB;;IACrC,MAAMmD,UAAU,GAAG,OAAO5D,IAAI,KAAK,UAAU,GAAG,IAAI,GAAGA,IAAI;IAC3D,OAAO;AACLS,MAAAA,KAAK,EAAE,CAAAvH,EAAA,GAAA0K,UAAU,KAAA,IAAA,IAAVA,UAAU,uBAAVA,UAAU,CAAEnD,KAAK,MAAA,IAAA,IAAAvH,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAIuH,KAAK;AACjCoD,MAAAA,OAAO,EACL9L,GAAA,CAACgI,gBAAgB;AAEfC,QAAAA,IAAI,EAAEA,IAAI;AACV5H,QAAAA,IAAI,EAAEwI,WAAW;AACjB3H,QAAAA,aAAa,EAAEA,aAAa;AAC5B4D,QAAAA,MAAM,EAAEqF;AAAE,OAAA,EAJL,CAAA9I,EAAA,GAAAwK,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEtD,IAAI,MAAA,IAAA,IAAAlH,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAIqH,KAAK,CAMjC;AACDqD,MAAAA,cAAc,EAAE,CAAC,EAACF,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEE,cAAc,CAAA;AAC5CC,MAAAA,cAAc,EAAE,CAAC,EAACH,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEG,cAAc;KAC7C;EACH,CAAC,CAAC,EACJ,CAAClC,IAAI,EAAEjB,WAAW,EAAE3H,aAAa,EAAEiJ,EAAE,CAAC,CACvC;AAED,EAAA,MAAM8B,OAAO,GAAGhK,OAAO,CACrB,MACE+H,MAAM,CAACZ,GAAG,CAAC,CAAC0B,cAAY,EAAEpC,OAAK,KAAkB;IAC/C,OAAO;MACLA,KAAK,EAAEoC,cAAY,CAACpC,KAAK,KAAK7G,SAAS,GAAG6G,OAAK,GAAGoC,cAAY,CAACpC,KAAK;AACpEoD,MAAAA,OAAO,EACL9L,GAAA,CAACyI,UAAU;AAETR,QAAAA,IAAI,EAAE6C,cAAY;AAClBpC,QAAAA,KAAK,EAAEA,OAAK;AACZC,QAAAA,WAAW,EAAEA;SAHR,CAAA,OAAA,EAAUD,OAAK,CAAA,CAAE,CAKzB;AACDqD,MAAAA,cAAc,EAAE,CAAC,CAACjB,cAAY,CAACiB,cAAc;AAC7CC,MAAAA,cAAc,EAAE,CAAC,CAAClB,cAAY,CAACkB,cAAc;AAC7CE,MAAAA,QAAQ,EAAE;KACX;AACH,EAAA,CAAC,CAAC,EACJ,CAAClC,MAAM,CAAC,CACT;AAED,EAAA,MAAMmC,QAAQ,GAAGlK,OAAO,CACtB,MAA2B2J,MAAM,CAACQ,MAAM,CAACH,OAAO,CAAC,EACjD,CAACL,MAAM,EAAEK,OAAO,CAAC,CAClB;AAED,EAAA,MAAMI,YAAY,GAAGpK,OAAO,CAAC,MAAM,CAAC,GAAG6H,IAAI,EAAE,GAAGE,MAAM,CAAC,EAAE,CAACF,IAAI,EAAEE,MAAM,CAAC,CAAC;AAExEtH,EAAAA,SAAS,CAAC,MAAK;;AACb,IAAA,CAAArB,IAAA,GAAA,CAAAF,IAAA,GAAAwH,WAAW,CAAChG,OAAO,EAACuH,cAAc,MAAA,IAAA,IAAA7I,IAAA,KAAA,MAAA,GAAA,MAAA,GAAAA,IAAA,CAAAyB,IAAA,CAAA3B,IAAA,EAAG8H,MAAM,EAAEN,WAAW,CAAChG,OAAO,CAACiB,QAAQ,CAAC;AAC5E,EAAA,CAAC,EAAE,CAACqF,MAAM,CAAC,CAAC;EAEZ,OAAO;IACLkD,QAAQ;IACRE,YAAY;IACZ1K,MAAM;AACNgC,IAAAA,UAAU,EAAEsF,MAAM;AAClBrF,IAAAA;GACD;AACH,ECjaA;AACO,MAAM0I,WAAW,GAAG5M,EAAA,IAAA;EAAA,MAAAC,CAAA,GAAAC,CAAA,CAAA,EAAA,CAAA;AAA8C,EAAA,MAAA;IAAAkK,IAAA;IAAAyC,aAAA;IAAAxC,SAAA;AAAAC,IAAAA,MAAA,EAAAjK,EAAA;IAAAiB,EAAA;IAAAE,aAAA;IAAA+I,YAAA;IAAAuC,YAAA;IAAAC,YAAA;IAAAvC,cAAA;AAAAC,IAAAA,EAAA,EAAApC;AAAA,GAAA,GAAArI,EAYnD;AAAA,EAAA,IAAAgN,EAAA;EAAA,IAAA/M,CAAA,QAAAI,EAAA,EAAA;AARpB2M,IAAAA,EAAA,GAAA3M,EAAW,KAAX8B,SAAW,GAAX,EAAW,GAAX9B,EAAW;AAAAJ,IAAAA,CAAA,MAAAI,EAAA;AAAAJ,IAAAA,CAAA,MAAA+M,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAA/M,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;EAAX,MAAAqK,MAAA,GAAA0C,EAAW;EAOX,MAAAvC,EAAA,GAAApC,EAAmB,KAAnBlG,SAAmB,GAAnB,cAAmB,GAAnBkG,EAAmB;AAAA,EAAA,IAAA4E,EAAA;EAAA,IAAAhN,CAAA,CAAA,CAAA,CAAA,KAAA4M,aAAA,IAAA5M,CAAA,QAAA6M,YAAA,IAAA7M,CAAA,CAAA,CAAA,CAAA,KAAAwK,EAAA,EAAA;IAWNwC,EAAA,GAAAlJ,MAAA,CAAAkB,MAAA,CAAAlB,MAAA,CAAAkB,MAAA,CAAA;AAAA4H,MAAAA;KACmB,EACzBC,YAAY,CAAA,EAAA;AAAA1H,MAAAA,MAAA,EACPqF;AAAE,KAAA,CACX;AAAAxK,IAAAA,CAAA,MAAA4M,aAAA;AAAA5M,IAAAA,CAAA,MAAA6M,YAAA;AAAA7M,IAAAA,CAAA,MAAAwK,EAAA;AAAAxK,IAAAA,CAAA,MAAAgN,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAAhN,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAiN,EAAA;AAAA,EAAA,IAAAjN,CAAA,CAAA,CAAA,CAAA,KAAAmK,IAAA,IAAAnK,CAAA,CAAA,CAAA,CAAA,KAAAuB,aAAA,IAAAvB,CAAA,QAAAwK,EAAA,IAAAxK,CAAA,CAAA,CAAA,CAAA,KAAAsK,YAAA,IAAAtK,CAAA,CAAA,EAAA,CAAA,KAAAqB,EAAA,IAAArB,CAAA,CAAA,EAAA,CAAA,KAAAoK,SAAA,IAAApK,CAAA,CAAA,EAAA,CAAA,KAAAuK,cAAA,IAAAvK,CAAA,CAAA,EAAA,CAAA,KAAAqK,MAAA,IAAArK,CAAA,SAAAgN,EAAA,EAAA;IAbsCC,EAAA,GAAA;MAAA9C,IAAA;MAAA5I,aAAA;MAAA+I,YAAA;MAAAjJ,EAAA;MAAA+I,SAAA;MAAAC,MAAA;MAAAE,cAAA;MAAAC,EAAA;AAAAxJ,MAAAA,WAAA,EAS5BgM;KAKZ;AAAAhN,IAAAA,CAAA,MAAAmK,IAAA;AAAAnK,IAAAA,CAAA,MAAAuB,aAAA;AAAAvB,IAAAA,CAAA,MAAAwK,EAAA;AAAAxK,IAAAA,CAAA,MAAAsK,YAAA;AAAAtK,IAAAA,CAAA,OAAAqB,EAAA;AAAArB,IAAAA,CAAA,OAAAoK,SAAA;AAAApK,IAAAA,CAAA,OAAAuK,cAAA;AAAAvK,IAAAA,CAAA,OAAAqK,MAAA;AAAArK,IAAAA,CAAA,OAAAgN,EAAA;AAAAhN,IAAAA,CAAA,OAAAiN,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAAjN,CAAA,CAAA,EAAA,CAAA;AAAA,EAAA;AAdD,EAAA,MAAA;AAAAwM,IAAAA,QAAA,EAAAU;GAAA,GAA0BhD,cAAc,CAAC+C,EAcxC,CAAC;AAAC,EAAA,IAAAE,EAAA;EAAA,IAAAnN,CAAA,SAAAkN,EAAA,EAAA;AAdKC,IAAAA,EAAA,GAAAD,EAAa,KAAbhL,SAAa,GAAb,EAAa,GAAbgL,EAAa;AAAAlN,IAAAA,CAAA,OAAAkN,EAAA;AAAAlN,IAAAA,CAAA,OAAAmN,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAAnN,CAAA,CAAA,EAAA,CAAA;AAAA,EAAA;EAAb,MAAAwM,QAAA,GAAAW,EAAa;AAAA,EAAA,IAAAC,EAAA;EAAA,IAAApN,CAAA,SAAAwM,QAAA,EAAA;AAmBjBY,IAAAA,EAAA,GAAAZ,QAAQ,CAAA7F,MACC,CAACxG,KAAoB,CAAC,CAAAkN,IACxB,CAACC,MAA2B,CAAC,CAAA7D,GAC9B,CAAC8D,MAAkB,CAAC;AAAAvN,IAAAA,CAAA,OAAAwM,QAAA;AAAAxM,IAAAA,CAAA,OAAAoN,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAApN,CAAA,CAAA,EAAA,CAAA;AAAA,EAAA;EAL9B,MAAAwN,MAAA,GAEIJ,EAG0B;AAE5B,EAAA,IAAAK,EAAA;EAAA,IAAAzN,CAAA,SAAAwM,QAAA,EAAA;AAGEiB,IAAAA,EAAA,GAAAjB,QAAQ,CAAA7F,MACC,CAAC+G,MAAmB,CAAC,CAAAL,IACvB,CAACM,MAA2B,CAAC,CAAAlE,GAC9B,CAACmE,MAAkB,CAAC;AAAA5N,IAAAA,CAAA,OAAAwM,QAAA;AAAAxM,IAAAA,CAAA,OAAAyN,EAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAA,GAAAzN,CAAA,CAAA,EAAA,CAAA;AAAA,EAAA;EAL9B,MAAA6N,YAAA,GAEIJ,EAG0B;AAG9B,EAAA,MAAA;IAAA/J,SAAA;IAAAoK,aAAA;AAAAC,IAAAA;GAAA,GAAsD7O,kBAAkB,EAAE;EAE1E,MAAA8O,SAAA,GACE,CAAAlB,YAAY,SAAA,IAAZA,YAAY,KAAA,MAAW,GAAvB,MAAuB,GAAvBA,YAAY,CAAApJ,SAAwB,KAApCA,SAA+D,IAA/D5D,oBAA+D;EACjE,MAAAmO,aAAA,GACE,CAAAnB,YAAY,SAAA,IAAZA,YAAY,KAAA,MAAe,GAA3B,MAA2B,GAA3BA,YAAY,CAAAgB,aAAgC,KAA5CA,aAAgE,IAAhEnP,gBAAgE;EAClE,MAAAuP,eAAA,GACE,CAAApB,YAAY,SAAA,IAAZA,YAAY,KAAA,MAAiB,GAA7B,MAA6B,GAA7BA,YAAY,CAAAiB,eAAoC,KAAhDA,eAAoE,IAApEpP,gBAAoE;AAAC,EAAA,IAAAwP,GAAA;EAAA,IAAAnO,CAAA,SAAAiO,aAAA,IAAAjO,CAAA,CAAA,EAAA,CAAA,KAAAgO,SAAA,IAAAhO,CAAA,CAAA,EAAA,CAAA,KAAAkO,eAAA,IAAAlO,CAAA,CAAA,EAAA,CAAA,KAAAwN,MAAA,IAAAxN,CAAA,SAAA6N,YAAA,IAAA7N,CAAA,CAAA,EAAA,CAAA,KAAA8M,YAAA,EAAA;AAGrEqB,IAAAA,GAAA,GAAAC,IAAA,CAACJ,SAAS,EAAAlK,MAAA,CAAAkB,MAAA,CAAA,EAAA,EAAM,CAAA8H,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,MAAgB,GAA5B,MAA4B,GAA5BA,YAAY,CAAAuB,cAAsB,KAAlC,EAAkC,EAAC;AAAAzP,MAAAA,QAAA,EAAA,CACjDyB,GAAA,CAAC4N,aAAa,EAAAnK,MAAA,CAAAkB,MAAA,CAAA,EAAA,EAAM,CAAA8H,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,MAAoB,GAAhC,MAAgC,GAAhCA,YAAY,CAAAwB,kBAA0B,KAAtC,EAAsC,EAAC;AAAA1P,QAAAA,QAAA,EACxD4O;AAAM,OAAA,CAAA,CACO,EAChBnN,GAAA,CAAC6N,eAAe,EAAApK,MAAA,CAAAkB,MAAA,CAAA,EAAA,EAAM,CAAA8H,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,MAAsB,GAAlC,MAAkC,GAAlCA,YAAY,CAAAyB,oBAA4B,KAAxC,EAAwC,EAAC;AAAA3P,QAAAA,QAAA,EAC5DiP;AAAY,OAAA,CAAA,CACG;AAAA,KAAA,CAAA,CACR;AAAA7N,IAAAA,CAAA,OAAAiO,aAAA;AAAAjO,IAAAA,CAAA,OAAAgO,SAAA;AAAAhO,IAAAA,CAAA,OAAAkO,eAAA;AAAAlO,IAAAA,CAAA,OAAAwN,MAAA;AAAAxN,IAAAA,CAAA,OAAA6N,YAAA;AAAA7N,IAAAA,CAAA,OAAA8M,YAAA;AAAA9M,IAAAA,CAAA,OAAAmO,GAAA;AAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,GAAA,GAAAnO,CAAA,CAAA,EAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAPZmO,GAOY;AAAA;AA/DW,SAAAhO,MAAAqO,EAAA,EAAA;EAAA,OAiCH,CAACA,EAAE,CAAAjC,QAAS;AAAA;AAjCT,SAAAe,MAAAA,CAAA/H,CAAA,EAAAC,CAAA,EAAA;AAAA,EAAA,OAkCHD,CAAC,CAAAwD,KAAM,GAAGvD,CAAC,CAAAuD,KAAM;AAAA;AAlCd,SAAAwE,OAAAkB,IAAA,EAAA;EAAA,OAmCND,IAAE,CAAArC,OAAQ;AAAA;AAnCJ,SAAAuB,OAAAgB,IAAA,EAAA;EAAA,OAyCHF,IAAE,CAAAjC,QAAS;AAAA;AAzCR,SAAAoB,MAAAA,CAAAgB,GAAA,EAAAC,GAAA,EAAA;AAAA,EAAA,OA0CHrJ,GAAC,CAAAwD,KAAM,GAAGvD,GAAC,CAAAuD,KAAM;AAAA;AA1Cd,SAAA6E,OAAAiB,IAAA,EAAA;EAAA,OA2CNL,IAAE,CAAArC,OAAQ;AAAA","x_google_ignoreList":[6]}
|
|
@@ -3,12 +3,12 @@ import * as jotai_vanilla_atom from 'jotai/vanilla/atom';
|
|
|
3
3
|
interface NotificationMessage {
|
|
4
4
|
id: string;
|
|
5
5
|
message: string;
|
|
6
|
-
type:
|
|
6
|
+
type: "success" | "error" | "info" | "warning";
|
|
7
7
|
autoHideDuration?: number;
|
|
8
8
|
textTransOption?: Record<string, unknown>;
|
|
9
9
|
ns?: string;
|
|
10
10
|
}
|
|
11
|
-
type TypeNotification =
|
|
11
|
+
type TypeNotification = "like" | "message" | "comments" | "follow";
|
|
12
12
|
interface UserNotification {
|
|
13
13
|
uid: string;
|
|
14
14
|
type: TypeNotification;
|
|
@@ -22,7 +22,7 @@ interface UserNotification {
|
|
|
22
22
|
nickname?: string;
|
|
23
23
|
titlePost?: string;
|
|
24
24
|
}
|
|
25
|
-
type NotificationConfig = Partial<Omit<NotificationMessage,
|
|
25
|
+
type NotificationConfig = Partial<Omit<NotificationMessage, "id">>;
|
|
26
26
|
|
|
27
27
|
declare const useNotification: (ns?: string) => {
|
|
28
28
|
showNotification: (notification: Omit<NotificationMessage, "id">) => void;
|
|
@@ -34,4 +34,4 @@ declare const useNotificationValue: () => NotificationMessage | null;
|
|
|
34
34
|
declare const useNotificationState: () => [NotificationMessage | null, (value: NotificationMessage | null) => void];
|
|
35
35
|
|
|
36
36
|
export { notificationAtom, useNotification, useNotificationState, useNotificationValue };
|
|
37
|
-
export type { NotificationConfig, NotificationMessage, UserNotification };
|
|
37
|
+
export type { NotificationConfig, NotificationMessage, TypeNotification, UserNotification };
|
package/dist/pages/index.d.ts
CHANGED
|
@@ -618,6 +618,8 @@ type Items<F extends FieldValues, Q extends QueriesArray, V extends Record<strin
|
|
|
618
618
|
isDraggable?: boolean;
|
|
619
619
|
isInDraggableView?: boolean;
|
|
620
620
|
key?: string;
|
|
621
|
+
/** @deprecated Query dependencies for selective rendering */
|
|
622
|
+
usedQueries?: string[];
|
|
621
623
|
lazy?: boolean;
|
|
622
624
|
lazyTrigger?: "viewport" | "interaction" | "conditional";
|
|
623
625
|
lazyCondition?: MappedItemsFunction<F, Q, boolean, V>;
|
|
@@ -634,6 +636,8 @@ type ContainerItem<F extends FieldValues, Q extends QueriesArray, V extends Reco
|
|
|
634
636
|
isDraggable?: boolean;
|
|
635
637
|
isInDraggableView?: boolean;
|
|
636
638
|
key?: string;
|
|
639
|
+
/** @deprecated Query dependencies for selective rendering */
|
|
640
|
+
usedQueries?: string[];
|
|
637
641
|
lazy?: boolean;
|
|
638
642
|
lazyTrigger?: "viewport" | "interaction" | "conditional";
|
|
639
643
|
lazyCondition?: MappedItemsFunction<F, Q, boolean, V>;
|
|
@@ -1371,6 +1375,11 @@ declare function useMetadata<F extends FieldValues = FieldValues, Q extends Quer
|
|
|
1371
1375
|
*/
|
|
1372
1376
|
declare function useApplyMetadata(): (meta: ResolvedMetadata) => void;
|
|
1373
1377
|
|
|
1378
|
+
declare const usePageUtiles: () => {
|
|
1379
|
+
getContentProps: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray>(props: ContentItem<F, Q>) => ContentItem<F, Q>;
|
|
1380
|
+
getContentItems: <F extends FieldValues = FieldValues, Q extends QueriesArray = QueriesArray>(props: Array<ContentItem<F, Q>>) => ContentItem<F, Q>[];
|
|
1381
|
+
};
|
|
1382
|
+
|
|
1374
1383
|
/**
|
|
1375
1384
|
* Optimized shallow equality check for objects and functions
|
|
1376
1385
|
* @param objA - First object to compare
|
|
@@ -1822,5 +1831,5 @@ declare function pageToMarkdown(options: {
|
|
|
1822
1831
|
content: string;
|
|
1823
1832
|
}): string;
|
|
1824
1833
|
|
|
1825
|
-
export { MemoizationCache, MetadataStoreProvider, PageGenerator, RenderComponents, applyMetadataToDom, buildArticleJsonLd, buildBreadcrumbListJsonLd, buildFAQPageJsonLd, buildOrganizationJsonLd, buildProductJsonLd, buildWebSiteJsonLd, clearMetadataLog, collectMetadataToHtml, createMetadataStore, createScopePageVariablesAtom, deepEqual, generateLlmsFullTxt, generateLlmsTxt, generateRobotsTxt, generateSitemapEntries, generateSitemapXml, getMetadata, getMetadataLog, getPageConfig, getPageVariablesCompositeKey, isStableValue, logMetadata, memoPropsComparator, memoize, optimizeDeps, pageConfigAtom, pageToMarkdown, pageVariablesAtom, pageVariablesAtomFamily, resetMetadata, resolveMetadata, setMetadata, setMetadataLogging, shallowEqual, toNextHeadTags, toNextMetadata, useApplyMetadata, useFormData, useGenerateContent, useGenerateContentRender, useMetadata, useMetadataStore, usePageConfig, usePageConfigReset, usePageConfigState, usePageConfigValue, useViewSettings };
|
|
1834
|
+
export { MemoizationCache, MetadataStoreProvider, PageGenerator, RenderComponents, applyMetadataToDom, buildArticleJsonLd, buildBreadcrumbListJsonLd, buildFAQPageJsonLd, buildOrganizationJsonLd, buildProductJsonLd, buildWebSiteJsonLd, clearMetadataLog, collectMetadataToHtml, createMetadataStore, createScopePageVariablesAtom, deepEqual, generateLlmsFullTxt, generateLlmsTxt, generateRobotsTxt, generateSitemapEntries, generateSitemapXml, getMetadata, getMetadataLog, getPageConfig, getPageVariablesCompositeKey, isStableValue, logMetadata, memoPropsComparator, memoize, optimizeDeps, pageConfigAtom, pageToMarkdown, pageVariablesAtom, pageVariablesAtomFamily, resetMetadata, resolveMetadata, setMetadata, setMetadataLogging, shallowEqual, toNextHeadTags, toNextMetadata, useApplyMetadata, useFormData, useGenerateContent, useGenerateContentRender, useMetadata, useMetadataStore, usePageConfig, usePageConfigReset, usePageConfigState, usePageConfigValue, usePageUtiles, useViewSettings };
|
|
1826
1835
|
export type { AIHintsConfig, AlternatesConfig, ArticleJsonLdInput, BreadcrumbItem, ContainerItem, ContentItem, ContentItemsType, ContentProps, DefaultContainerProps, DependencyGraph, DependencyNode, Elements, FAQItem, FormPageProps, FunctionProps, GenerateContentProps, GenerateContentRenderProps, GetFunction, HeadTag, IconConfig, IconsConfig, ItemContainerProps, Items, LazyLoadingConfig, LlmsTxtConfig, LlmsTxtEntry, MappedContents, MappedItemsFunction, MemoizationCacheStats, MetaTag, MetadataConfig, MetadataProvider, MetadataStore, NextMetadata, OpenGraphArticle, OpenGraphConfig, OpenGraphImage, OrganizationJsonLdInput, PageAuthState, PageConfigProps, MetadataConfig as PageMetadataProps, PageProps, PageTranslationOptions, PlatformOverrides, ProductJsonLdInput, Props, QueryPageConfigArray, RenderComponentsProps, ResolvedMetadata, RobotsConfig, RobotsTxtConfig, SetFunction, SitemapEntry, StructuredDataConfig, TwitterCardConfig, UseMetadataProps, ViewSettings, WebSiteJsonLdInput };
|
package/dist/pages/index.js
CHANGED
|
@@ -313,7 +313,7 @@ const PageContentItemInner = ({
|
|
|
313
313
|
pageId
|
|
314
314
|
});
|
|
315
315
|
const isHidden = react.useMemo(() => {
|
|
316
|
-
if (typeof item.hidden ===
|
|
316
|
+
if (typeof item.hidden === "function") {
|
|
317
317
|
return item.hidden({
|
|
318
318
|
get,
|
|
319
319
|
set
|
|
@@ -326,12 +326,12 @@ const PageContentItemInner = ({
|
|
|
326
326
|
content: item,
|
|
327
327
|
ns: ns,
|
|
328
328
|
pageId: pageId
|
|
329
|
-
}, (_a = item.key) !== null && _a !== void 0 ? _a :
|
|
329
|
+
}, (_a = item.key) !== null && _a !== void 0 ? _a : "");
|
|
330
330
|
};
|
|
331
331
|
const PageContentItem = react.memo(PageContentItemInner);
|
|
332
332
|
const useGenerateContentRender = ({
|
|
333
333
|
pageId,
|
|
334
|
-
ns =
|
|
334
|
+
ns = "",
|
|
335
335
|
contents = [],
|
|
336
336
|
formData
|
|
337
337
|
}) => {
|
|
@@ -342,7 +342,7 @@ const useGenerateContentRender = ({
|
|
|
342
342
|
pageId
|
|
343
343
|
});
|
|
344
344
|
const contentsWithQueriesDeps = react.useMemo(() => {
|
|
345
|
-
if (typeof contents ===
|
|
345
|
+
if (typeof contents === "function") {
|
|
346
346
|
return contents({
|
|
347
347
|
get,
|
|
348
348
|
set
|
|
@@ -374,7 +374,10 @@ const useGenerateContentRender = ({
|
|
|
374
374
|
};
|
|
375
375
|
}), [contentsWithQueriesDeps, ns, pageId]);
|
|
376
376
|
// Merge and sort - only when either array changes
|
|
377
|
-
const memorizedContents = react.useMemo(() =>
|
|
377
|
+
const memorizedContents = react.useMemo(() => {
|
|
378
|
+
var _a_0, _b;
|
|
379
|
+
return (_b = (_a_0 = [...dynamicElements, ...formElementsWithKey].sort((a, b) => a.index - b.index || String(a.key).localeCompare(String(b.key)))) === null || _a_0 === void 0 ? void 0 : _a_0.filter(item => item.element !== null)) !== null && _b !== void 0 ? _b : [];
|
|
380
|
+
}, [dynamicElements, formElementsWithKey]);
|
|
378
381
|
return {
|
|
379
382
|
components: memorizedContents,
|
|
380
383
|
allContents: [...contentsWithQueriesDeps, ...formData.formContents]
|
|
@@ -422,7 +425,7 @@ const useGenerateContentRender = ({
|
|
|
422
425
|
} = useGenerateContentRender(t4);
|
|
423
426
|
let t5;
|
|
424
427
|
if ($[7] !== components) {
|
|
425
|
-
t5 = components.filter(_temp$
|
|
428
|
+
t5 = components.filter(_temp$2).map(_temp2$2);
|
|
426
429
|
$[7] = components;
|
|
427
430
|
$[8] = t5;
|
|
428
431
|
} else {
|
|
@@ -465,10 +468,10 @@ const useGenerateContentRender = ({
|
|
|
465
468
|
}
|
|
466
469
|
return t8;
|
|
467
470
|
};
|
|
468
|
-
function _temp$
|
|
471
|
+
function _temp$2(el) {
|
|
469
472
|
return !el.renderInFooter && !el.renderInHeader;
|
|
470
473
|
}
|
|
471
|
-
function _temp2$
|
|
474
|
+
function _temp2$2(item) {
|
|
472
475
|
return item.element;
|
|
473
476
|
}
|
|
474
477
|
function _temp3(el_0) {
|
|
@@ -1445,7 +1448,7 @@ function useFormData({
|
|
|
1445
1448
|
const hiddenMapped = react.useCallback(() => {
|
|
1446
1449
|
const isHidden = form === null || form === void 0 ? void 0 : form.hidden;
|
|
1447
1450
|
if (!isHidden) return false;
|
|
1448
|
-
if (typeof isHidden ===
|
|
1451
|
+
if (typeof isHidden === "function") {
|
|
1449
1452
|
return isHidden({
|
|
1450
1453
|
get,
|
|
1451
1454
|
set
|
|
@@ -1457,16 +1460,14 @@ function useFormData({
|
|
|
1457
1460
|
const mappedFormData = react.useMemo(() => {
|
|
1458
1461
|
if (!(form === null || form === void 0 ? void 0 : form.data) || hiddenMapped()) return [];
|
|
1459
1462
|
return form.data.map(el => {
|
|
1460
|
-
if (typeof el ===
|
|
1463
|
+
if (typeof el === "function") {
|
|
1461
1464
|
return el({
|
|
1462
1465
|
get,
|
|
1463
1466
|
set
|
|
1464
1467
|
});
|
|
1465
1468
|
}
|
|
1466
1469
|
return el;
|
|
1467
|
-
})
|
|
1468
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
1469
|
-
.filter(el_0 => !!el_0).map((el_1, i) => {
|
|
1470
|
+
}).filter(el_0 => !!el_0).map((el_1, i) => {
|
|
1470
1471
|
var _a;
|
|
1471
1472
|
return Object.assign(Object.assign({}, el_1), {
|
|
1472
1473
|
key: (_a = el_1.key) !== null && _a !== void 0 ? _a : `${i}`
|
|
@@ -1476,7 +1477,7 @@ function useFormData({
|
|
|
1476
1477
|
const formSubmit = react.useMemo(() => {
|
|
1477
1478
|
if (!(form === null || form === void 0 ? void 0 : form.submit) || hiddenMapped()) return [];
|
|
1478
1479
|
const submitFn = form.submit;
|
|
1479
|
-
return (typeof submitFn ===
|
|
1480
|
+
return (typeof submitFn === "function" ? submitFn({
|
|
1480
1481
|
get,
|
|
1481
1482
|
set
|
|
1482
1483
|
}) : submitFn).map((el_2, i_0) => {
|
|
@@ -1520,8 +1521,8 @@ function useFormData({
|
|
|
1520
1521
|
return () => unsubscribe();
|
|
1521
1522
|
}, [form === null || form === void 0 ? void 0 : form.defaultValueQueryKey, form === null || form === void 0 ? void 0 : form.defaultValues, queryClient]);
|
|
1522
1523
|
const defaultValues = react.useMemo(() => {
|
|
1523
|
-
var _a, _b;
|
|
1524
|
-
return Object.assign(
|
|
1524
|
+
var _a, _b, _c;
|
|
1525
|
+
return Object.assign({}, (_c = (_b = (_a = form === null || form === void 0 ? void 0 : form.defaultValueQueryMap) === null || _a === void 0 ? void 0 : _a.call(form, defaultValueQuery)) !== null && _b !== void 0 ? _b : defaultValueQuery) !== null && _c !== void 0 ? _c : {});
|
|
1525
1526
|
}, [defaultValueQuery, form]);
|
|
1526
1527
|
const {
|
|
1527
1528
|
mappedFormData,
|
|
@@ -1845,6 +1846,27 @@ function useApplyMetadata() {
|
|
|
1845
1846
|
t0 = $[1];
|
|
1846
1847
|
}
|
|
1847
1848
|
return t0;
|
|
1849
|
+
}const usePageUtiles = () => {
|
|
1850
|
+
const $ = compilerRuntime.c(1);
|
|
1851
|
+
const getContentProps = _temp$1;
|
|
1852
|
+
const getContentItems = _temp2$1;
|
|
1853
|
+
let t0;
|
|
1854
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
1855
|
+
t0 = {
|
|
1856
|
+
getContentProps,
|
|
1857
|
+
getContentItems
|
|
1858
|
+
};
|
|
1859
|
+
$[0] = t0;
|
|
1860
|
+
} else {
|
|
1861
|
+
t0 = $[0];
|
|
1862
|
+
}
|
|
1863
|
+
return t0;
|
|
1864
|
+
};
|
|
1865
|
+
function _temp$1(props) {
|
|
1866
|
+
return props;
|
|
1867
|
+
}
|
|
1868
|
+
function _temp2$1(props_0) {
|
|
1869
|
+
return props_0;
|
|
1848
1870
|
}/**
|
|
1849
1871
|
* Headless component that manages metadata injection.
|
|
1850
1872
|
* On web: injects metadata into `<head>`.
|
|
@@ -1908,20 +1930,20 @@ const MetadataManager = MetadataManagerImpl;const PageGenerator = _a => {
|
|
|
1908
1930
|
} = usePageConfigValue();
|
|
1909
1931
|
const isUnlogged = react.useMemo(() => enableAuthControl && !isLogged(authValues ? authValues : null), [enableAuthControl, authValues, isLogged]);
|
|
1910
1932
|
const selectedProps = react.useMemo(() => {
|
|
1911
|
-
return
|
|
1912
|
-
}, [
|
|
1933
|
+
return isUnlogged ? authPageProps : props;
|
|
1934
|
+
}, [isUnlogged, authPageProps, props]);
|
|
1913
1935
|
const {
|
|
1914
1936
|
contents = [],
|
|
1915
1937
|
queries = [],
|
|
1916
1938
|
form,
|
|
1917
|
-
id =
|
|
1939
|
+
id = "default-page-id",
|
|
1918
1940
|
viewSettings,
|
|
1919
1941
|
ns
|
|
1920
1942
|
} = react.useMemo(() => selectedProps, [selectedProps]);
|
|
1921
1943
|
const config = usePageConfig({
|
|
1922
1944
|
queries,
|
|
1923
1945
|
form,
|
|
1924
|
-
ns: ns !== null && ns !== void 0 ? ns :
|
|
1946
|
+
ns: ns !== null && ns !== void 0 ? ns : "",
|
|
1925
1947
|
viewSettings,
|
|
1926
1948
|
pageId: id,
|
|
1927
1949
|
variables
|
|
@@ -2923,4 +2945,4 @@ function pageToMarkdown(options) {
|
|
|
2923
2945
|
lines.push('');
|
|
2924
2946
|
lines.push(options.content);
|
|
2925
2947
|
return lines.join('\n');
|
|
2926
|
-
}exports.MemoizationCache=MemoizationCache;exports.MetadataStoreProvider=MetadataStoreProvider;exports.PageGenerator=PageGenerator;exports.RenderComponents=RenderComponents;exports.applyMetadataToDom=applyMetadataToDom;exports.buildArticleJsonLd=buildArticleJsonLd;exports.buildBreadcrumbListJsonLd=buildBreadcrumbListJsonLd;exports.buildFAQPageJsonLd=buildFAQPageJsonLd;exports.buildOrganizationJsonLd=buildOrganizationJsonLd;exports.buildProductJsonLd=buildProductJsonLd;exports.buildWebSiteJsonLd=buildWebSiteJsonLd;exports.clearMetadataLog=clearMetadataLog;exports.collectMetadataToHtml=collectMetadataToHtml;exports.createMetadataStore=createMetadataStore;exports.createScopePageVariablesAtom=createScopePageVariablesAtom;exports.deepEqual=deepEqual;exports.generateLlmsFullTxt=generateLlmsFullTxt;exports.generateLlmsTxt=generateLlmsTxt;exports.generateRobotsTxt=generateRobotsTxt;exports.generateSitemapEntries=generateSitemapEntries;exports.generateSitemapXml=generateSitemapXml;exports.getMetadata=getMetadata;exports.getMetadataLog=getMetadataLog;exports.getPageConfig=getPageConfig;exports.getPageVariablesCompositeKey=getPageVariablesCompositeKey;exports.isStableValue=isStableValue;exports.logMetadata=logMetadata;exports.memoPropsComparator=memoPropsComparator;exports.memoize=memoize;exports.optimizeDeps=optimizeDeps;exports.pageConfigAtom=pageConfigAtom;exports.pageToMarkdown=pageToMarkdown;exports.pageVariablesAtom=pageVariablesAtom;exports.pageVariablesAtomFamily=pageVariablesAtomFamily;exports.resetMetadata=resetMetadata;exports.resolveMetadata=resolveMetadata;exports.setMetadata=setMetadata;exports.setMetadataLogging=setMetadataLogging;exports.shallowEqual=shallowEqual;exports.toNextHeadTags=toNextHeadTags;exports.toNextMetadata=toNextMetadata;exports.useApplyMetadata=useApplyMetadata;exports.useFormData=useFormData;exports.useGenerateContent=useGenerateContent;exports.useGenerateContentRender=useGenerateContentRender;exports.useMetadata=useMetadata;exports.useMetadataStore=useMetadataStore;exports.usePageConfig=usePageConfig;exports.usePageConfigReset=usePageConfigReset;exports.usePageConfigState=usePageConfigState;exports.usePageConfigValue=usePageConfigValue;exports.useViewSettings=useViewSettings;//# sourceMappingURL=index.js.map
|
|
2948
|
+
}exports.MemoizationCache=MemoizationCache;exports.MetadataStoreProvider=MetadataStoreProvider;exports.PageGenerator=PageGenerator;exports.RenderComponents=RenderComponents;exports.applyMetadataToDom=applyMetadataToDom;exports.buildArticleJsonLd=buildArticleJsonLd;exports.buildBreadcrumbListJsonLd=buildBreadcrumbListJsonLd;exports.buildFAQPageJsonLd=buildFAQPageJsonLd;exports.buildOrganizationJsonLd=buildOrganizationJsonLd;exports.buildProductJsonLd=buildProductJsonLd;exports.buildWebSiteJsonLd=buildWebSiteJsonLd;exports.clearMetadataLog=clearMetadataLog;exports.collectMetadataToHtml=collectMetadataToHtml;exports.createMetadataStore=createMetadataStore;exports.createScopePageVariablesAtom=createScopePageVariablesAtom;exports.deepEqual=deepEqual;exports.generateLlmsFullTxt=generateLlmsFullTxt;exports.generateLlmsTxt=generateLlmsTxt;exports.generateRobotsTxt=generateRobotsTxt;exports.generateSitemapEntries=generateSitemapEntries;exports.generateSitemapXml=generateSitemapXml;exports.getMetadata=getMetadata;exports.getMetadataLog=getMetadataLog;exports.getPageConfig=getPageConfig;exports.getPageVariablesCompositeKey=getPageVariablesCompositeKey;exports.isStableValue=isStableValue;exports.logMetadata=logMetadata;exports.memoPropsComparator=memoPropsComparator;exports.memoize=memoize;exports.optimizeDeps=optimizeDeps;exports.pageConfigAtom=pageConfigAtom;exports.pageToMarkdown=pageToMarkdown;exports.pageVariablesAtom=pageVariablesAtom;exports.pageVariablesAtomFamily=pageVariablesAtomFamily;exports.resetMetadata=resetMetadata;exports.resolveMetadata=resolveMetadata;exports.setMetadata=setMetadata;exports.setMetadataLogging=setMetadataLogging;exports.shallowEqual=shallowEqual;exports.toNextHeadTags=toNextHeadTags;exports.toNextMetadata=toNextMetadata;exports.useApplyMetadata=useApplyMetadata;exports.useFormData=useFormData;exports.useGenerateContent=useGenerateContent;exports.useGenerateContentRender=useGenerateContentRender;exports.useMetadata=useMetadata;exports.useMetadataStore=useMetadataStore;exports.usePageConfig=usePageConfig;exports.usePageConfigReset=usePageConfigReset;exports.usePageConfigState=usePageConfigState;exports.usePageConfigValue=usePageConfigValue;exports.usePageUtiles=usePageUtiles;exports.useViewSettings=useViewSettings;//# sourceMappingURL=index.js.map
|