@mindmakr/gs-websdk
Version:
Web SDK for Guru SaaS System - Complete JavaScript/TypeScript SDK for building applications with dynamic schema management
93 lines (92 loc) • 2.78 kB
TypeScript
/**
* Form Helper Utilities
* Provides utility functions for form generation, rendering, and data handling
*/
import { SchemaTemplate, SchemaInstance, SchemaField } from '../types';
/**
* Generate form fields configuration from schema template
*/
export declare function generateFormFields(template: SchemaTemplate): SchemaField[];
/**
* Determine field type from schema property
*/
export declare function determineFieldType(property: any): string;
/**
* Create form configuration for rendering
*/
export declare function createFormConfig(template: SchemaTemplate, instance?: SchemaInstance): {
fields: SchemaField[];
initialData: Record<string, any>;
validationRules: Record<string, any>;
layout: {
sections: Array<{
title?: string;
fields: string[];
layout?: string;
}>;
};
};
/**
* Generate initial form data from template
*/
export declare function generateInitialFormData(template: SchemaTemplate): Record<string, any>;
/**
* Extract validation rules from schema
*/
export declare function extractValidationRules(template: SchemaTemplate): Record<string, any>;
/**
* Generate form layout configuration
*/
export declare function generateFormLayout(fields: SchemaField[]): {
sections: Array<{
title?: string;
fields: string[];
layout?: string;
}>;
};
/**
* Transform form data for submission
*/
export declare function transformFormDataForSubmission(formData: Record<string, any>, template: SchemaTemplate): Record<string, any>;
/**
* Get field display configuration
*/
export declare function getFieldDisplayConfig(field: SchemaField): {
label: string;
placeholder?: string;
helpText?: string;
required: boolean;
disabled?: boolean;
hidden?: boolean;
width: string;
className?: string;
};
/**
* Convert layout width to CSS class or percentage
*/
export declare function getFieldWidth(width: string): string;
/**
* Check if field should be conditionally displayed
*/
export declare function shouldDisplayField(field: SchemaField, formData: Record<string, any>): boolean;
/**
* Generate field options for select, radio, and checkbox fields
*/
export declare function generateFieldOptions(field: SchemaField): Array<{
value: any;
label: string;
disabled?: boolean;
}>;
/**
* Calculate form completion percentage
*/
export declare function calculateFormCompletion(formData: Record<string, any>, template: SchemaTemplate): {
percentage: number;
completed: number;
total: number;
missingFields: string[];
};
/**
* Export form data in various formats
*/
export declare function exportFormData(formData: Record<string, any>, template: SchemaTemplate, format?: 'json' | 'csv' | 'xml'): string;