UNPKG

@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
/** * 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;