import * as Yup from 'yup'; import { GridFilterModel } from '@mui/x-data-grid'; import * as geojson from 'geojson'; import { ChoiceItem, ChoiceValue, ConditionalVisible, CustomFormField, ExtraValidators, Field, FormFieldLayout, GenericValue, GeometryFieldType, GridEnrichedBySchemaColDef, Item, SchemaType, TField } from '../@types'; export declare const emptyByType: GenericValue; export declare const getChoiceByValue: (value: ChoiceValue, choices: ChoiceItem[] | undefined) => string | null | undefined; export declare const toChoiceItem: (rawValue: GenericValue, choices: ChoiceItem[] | undefined) => any; export declare function enrichChoices(rawData: Item, schema: SchemaType): Item; export declare function populateValues({ data, schema }: { data: Item; schema: SchemaType; }): Record; export declare function buildGenericYupValidationSchema({ data, schema, many, skipFields, extraValidators, uiFields, }: { data: Item; schema: SchemaType; many?: boolean; skipFields?: string[]; extraValidators?: ExtraValidators; uiFields?: string[]; }): Yup.ObjectSchema<{ [x: string]: any; }, Yup.AnyObject, { [x: string]: any; }, ""> | Yup.ArraySchema<{ [x: string]: any; }[] | undefined, Yup.AnyObject, "", "">; export declare function loadSinglePageDataHelper({ data, schema, columns, fieldsLayout, defaults, extraValidators, }: { data: Item; schema: SchemaType; columns?: GridEnrichedBySchemaColDef[]; fieldsLayout: FormFieldLayout[] | undefined; defaults?: Item; extraValidators?: ExtraValidators; }): { values: Record; finalSchema: { [x: string]: Field; }; validationSchema: Yup.ObjectSchema, Yup.AnyObject, any, ""> | null; }; export declare const errorProps: ({ errors, fieldKey, fieldKeyProp, index, }: { errors: Item; fieldKey: string; fieldKeyProp: string; index?: number; }) => { error: any; helperText: any; }; /** * Normalizes a DRF (Django REST Framework) validation error payload into a * react-hook-form `setError`-compatible map: `{ fieldKey: { type, message } }`. * * DRF returns per-field errors both as `{ field: "message" }` and * `{ field: ["message 1", "message 2"] }`, plus `{ non_field_errors: [...] }`. * Only fields present in the given `schema` are mapped, so backend-only keys * (or `non_field_errors`) are skipped and remain surfaced through the generic * error message instead. This is what allows a `validate()` raised * `ValidationError({"field": "..."})` to be rendered under the offending field, * exactly like a yup validation error. */ export declare function getFieldErrorsFromResponse(response: unknown, schema?: SchemaType): Record; export declare const getTmpId: () => string; export declare const isTmpId: (id: string | number | undefined | null) => boolean; export declare function reducer(state: T | null, newState: Partial | null): T | null; export declare const getPatternFormat: (type: string) => string; export declare function buildDateFormatBySchema(dateViews: string[] | null | undefined): "DD/MM/YYYY" | "MM/YYYY" | "YYYY" | "MM" | "DD"; export declare const slugToCamelCase: (str: string, includeFirst?: boolean) => string; export declare const slugify: (text: string | null) => string; export declare function mergeFilterItems(defaultFilter: GridFilterModel | undefined, filter: GridFilterModel | undefined): GridFilterModel | undefined; export declare function initViewColumns({ schema, columns, customColumnOperations, }: { schema: SchemaType; columns: GridEnrichedBySchemaColDef[]; customColumnOperations?: (p: GridEnrichedBySchemaColDef) => GridEnrichedBySchemaColDef | Promise; }): Promise<(Omit>, "field"> & { field: string; isIndexField?: boolean; creatable?: boolean; disabled?: boolean; orderable?: boolean; patternFormat?: string; uiRequired?: boolean; })[]>; export declare function deepEqual(a: unknown, b: unknown, maxIterations?: number): boolean; export declare function shouldMemoUpdate(prevProps: Readonly, nextProps: Readonly): boolean; export declare const convertToFormData: (data: Item) => FormData; export declare function formatFileSize(bytes: number): string; export declare function getFieldsFromFieldsLayout(fieldsLayout: FormFieldLayout[]): string[]; export declare function isFieldRequired(fieldSchema?: Field, isInForm?: boolean): boolean; export declare function extractFieldValue(genericValue: GenericValue): any; export declare function buildConditionalVisibleBySchema(schema?: SchemaType | null): ConditionalVisible[]; export declare function showConditionalVisibleField(field: string | CustomFormField, conditionalVisible?: ConditionalVisible[], values?: GenericValue[]): boolean; export declare function showConditionalVisibleFieldObj(field: string | CustomFormField, conditionalVisible?: ConditionalVisible[], values?: Item): boolean; /** * Detect whether the consuming app has installed leaflet + leaflet-draw. * Uses CJS require so that the bundler does not fail to build when they are * absent; returns null so callers can fall back to text inputs. */ export declare function getMapLibraries(): any; /** Normalize a GeoJSON value (object, JSON string or null) to a string. */ export declare function geometryValueToString(value: GenericValue): string; /** Parse a GeoJSON value (object or JSON string) into an object, or null. */ export declare function parseGeoJSON(geoType: GeometryFieldType, rawValue: GenericValue): geojson.GeoJsonObject | geojson.GeoJsonObject[] | null; //# sourceMappingURL=utils.d.ts.map