bnk-components
Version:
Reusable React components for Issaglam UI - Modern, responsive UI components with TypeScript support
115 lines (114 loc) • 3.28 kB
TypeScript
import { FieldMetadata, FormMetadata, RelationMetadata } from './types';
export declare function generateFieldMetadata(propertyName: string, propertyType: any, options?: {
label?: string;
required?: boolean;
placeholder?: string;
helpText?: string;
validation?: any;
relation?: RelationMetadata;
enumValues?: Array<{
value: any;
label: string;
}>;
}): FieldMetadata;
export declare function generateFormMetadata(dtoProperties: Record<string, any>, options?: {
layout?: 'single' | 'two-column' | 'three-column';
sections?: Array<{
title: string;
fields: string[];
}>;
fieldOptions?: Record<string, any>;
}): FormMetadata;
export declare const PREDEFINED_METADATA: {
firma: {
fields: ({
name: string;
type: "string";
label: string;
required: boolean;
placeholder: string;
validation: {
required: boolean;
minLength: number;
pattern?: undefined;
min?: undefined;
};
} | {
name: string;
type: "boolean";
label: string;
required: boolean;
placeholder?: undefined;
validation?: undefined;
} | {
name: string;
type: "tel";
label: string;
placeholder: string;
validation: {
pattern: string;
required?: undefined;
minLength?: undefined;
min?: undefined;
};
required?: undefined;
} | {
name: string;
type: "email";
label: string;
placeholder: string;
validation: {
pattern: string;
required?: undefined;
minLength?: undefined;
min?: undefined;
};
required?: undefined;
} | {
name: string;
type: "string";
label: string;
placeholder: string;
required?: undefined;
validation?: undefined;
} | {
name: string;
type: "textarea";
label: string;
placeholder: string;
required?: undefined;
validation?: undefined;
} | {
name: string;
type: "number";
label: string;
validation: {
min: number;
required?: undefined;
minLength?: undefined;
pattern?: undefined;
};
required?: undefined;
placeholder?: undefined;
} | {
name: string;
type: "url";
label: string;
placeholder: string;
required?: undefined;
validation?: undefined;
} | {
name: string;
type: "date";
label: string;
required?: undefined;
placeholder?: undefined;
validation?: undefined;
})[];
layout: "two-column";
sections: {
title: string;
fields: string[];
}[];
};
};