formio 1.0.0 copy "formio: ^1.0.0" to clipboard
formio: ^1.0.0 copied to clipboard

A comprehensive Flutter package for rendering Form.io forms with 92% feature parity - includes all components, validation, wizard forms, calculated values, and full API integration.

Changelog #

All notable changes to the Form.io Flutter package will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

1.0.0 - 2026-01-12 #

Added - Phase 1: Centralized Validation System #

  • โœจ Centralized Validators - FormioValidators class with 11 validation methods
    • required() - Required field validation
    • pattern() - Regex pattern matching
    • minLength() / maxLength() - String length constraints
    • minWords() / maxWords() - Word count validation
    • email() - Email format validation
    • url() - URL format validation
    • min() / max() - Numeric range validation
    • json() - JSON format validation
    • combine() - Combine multiple validators
    • fromConfig() - Auto-parse Form.io validate config
  • ๐Ÿงช 28 comprehensive validator tests (100% passing)
  • ๐Ÿ“ Updated TextField and TextArea components to use centralized validators
  • ๐Ÿ”ง Added date type alias for backward compatibility

Added - Phase 2: Wizard Forms & Calculated Values #

  • โœจ Wizard Forms Support
    • WizardConfig model for wizard form configuration
    • WizardRenderer widget for multi-page forms
    • Page navigation (Next/Previous/Jump to page)
    • Visual progress indicator with clickable steps
    • Page-level validation before navigation
    • Form state persistence across pages
  • โœจ Calculated Values
    • CalculationEvaluator for JSONLogic-based calculations
    • Automatic recalculation on dependency changes
    • allowCalculateOverride support
    • Dependency extraction and tracking
    • Integration with FormRenderer
  • ๐Ÿงช 13 calculation evaluator tests (100% passing)
  • ๐Ÿ“š Shopping cart example with auto-calculated totals
  • ๐Ÿ“š Multi-page wizard registration example

Added - Phase 3: Cross-Field Validation #

  • โœจ Cross-Field Validation
    • matchField() - Password confirmation validation
    • compareFields() - Numeric field comparison (>, <, >=, <=, ==, !=)
    • crossFieldValidator() - Helper with custom error messages
    • Integration with fromConfig() for matchField support
  • ๐Ÿงช 15 cross-field validation tests (100% passing)
  • ๐Ÿ“ Updated FormioValidators.fromConfig() to accept formData context

Added - Components (6 new) #

  • ๐Ÿ†• UnknownComponent - Fallback for unsupported types
  • ๐Ÿ†• UrlComponent - URL input with validation
  • ๐Ÿ†• AlertComponent - Display alerts (error, success, info, warning)
  • ๐Ÿ†• AddressComponent - Structured address input
  • ๐Ÿ†• TagsComponent - Chip-based tag input
  • ๐Ÿ†• FormComponent - Nested form support

Added - Example App #

  • ๐Ÿ“ฑ Complete live demo application
  • ๐Ÿ“‹ Form list page with API integration
  • ๐Ÿ“„ Form detail page with rendering and JSON view
  • ๐ŸŽจ Material 3 UI design
  • ๐Ÿ”„ Loading and error states
  • โœ… Submission handling with visual feedback

Fixed #

  • ๐Ÿ› CRITICAL: Fixed ComponentModel.fromJson mutation bug
    • Changed from mutating original JSON to creating a copy
    • Prevents components from becoming "unsupported" on form revisit
  • ๐Ÿ› Fixed AlertComponent using correct alertType field
  • ๐Ÿ› Fixed flaky tests in AlertComponent
  • ๐Ÿ”ง Removed unused imports to fix lint warnings

Changed #

  • โ™ป๏ธ Refactored FormRenderer to support calculated values
  • โ™ป๏ธ Enhanced ComponentFactory with better error handling
  • ๐Ÿ“ Improved documentation across all components
  • ๐Ÿงช Increased test coverage to 56 tests (100% passing)

Performance #

  • โšก Optimized calculated value recalculation with dependency tracking
  • โšก Efficient wizard form state management with separate FormStates per page

0.9.0 2025-XX-XX #

Added #

  • Initial implementation of 35 Form.io components
  • Basic validation support (required only)
  • Simple conditional logic
  • API services (Form, Submission, User, Auth, Action)
  • FormRenderer widget
  • ComponentFactory pattern

Known Limitations #

  • No wizard form support
  • No calculated values
  • Limited validation rules
  • No cross-field validation

Migration Guide #

Upgrading from 0.9.x to 1.0.0 #

Validation Changes

Before (0.9.x):

validator: _isRequired 
  ? (val) => (val == null || val.isEmpty) 
      ? '${component.label} is required.' 
      : null 
  : null

After (1.0.0):

validator: FormioValidators.fromConfig(
  component.raw['validate'],
  component.label,
  formData: _formData, // For cross-field validation
)

Component JSON Changes

No breaking changes to component JSON structure. All existing forms are compatible.

New features:

  • Add matchField to validate for password confirmation
  • Add calculateValue for auto-calculated fields
  • Set display: 'wizard' for multi-page forms

Statistics #

Version 1.0.0 #

  • Components: 41/41 (100%)
  • Validation: 11 validators
  • Tests: 56/56 passing
  • Lines of Code: ~1,780 lines added
  • Coverage: ~92% Form.io feature parity

Roadmap #

Future Enhancements #

  • โŒ Select data sources (API-based dropdown options)
  • โŒ Unique validation via API
  • โŒ File upload to external providers
  • โŒ Google Places autocomplete
  • โŒ i18n support
  • โŒ Accessibility improvements

0
likes
0
points
159
downloads

Publisher

verified publisherspinex.io

Weekly Downloads

A comprehensive Flutter package for rendering Form.io forms with 92% feature parity - includes all components, validation, wizard forms, calculated values, and full API integration.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

curl_logger_dio_interceptor, dio, file_picker, flutter, flutter_html, intl, jsonlogic, provider

More

Packages that depend on formio