All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
FormSchema- Signal-based reactive form state managementFormState- Reactive form state with Angular SignalsSchemaFactory- Dynamic form generation from JSON configurationDependencyResolver- Inter-field dependencies without RxJSFieldRegistry- Custom field type registration system
StringField- Text input with minLength, maxLength, pattern, email, url validationNumberField- Numeric input with min, max, integer, positive, negative constraintsBooleanField- Checkbox/switch with required=true means "must be checked"DateField- Date picker with min, max, minToday, maxToday supportSelectField<T>- Single selection dropdownMultiselectField<T>- Multi-selection with minSelected, maxSelectedTextareaField- Multi-line text inputPasswordField- Password with strength meter and complexity rulesEmailField- Email-specific validationPhoneField- Turkish phone number supportUrlField- URL validationColorField- Color picker with HEX, RGB, HSL supportFileField- File upload with accept, maxSize, multipleJsonField- JSON data validationArrayField- Repeatable field groupsGroupField- Nested object structure
tcknSchema- Turkish ID number (TCKN) with Mod10 algorithmvknSchema- Tax ID (VKN) validationturkishIbanSchema- Turkish IBAN with Mod97 checksumturkishPhoneSchema- Mobile phone validation (5XX format)turkishPlateSchema- Vehicle plate validationturkishPostalCodeSchema- Postal code validation
ZgFormDirective- Form directive for template bindingZgFieldDirective- Field directive for input bindingZgErrorsComponent- Error message display componentZgAutoFieldComponent- Auto-render based on field type
- Regex escape bug in
PasswordFieldspecial character validation (dash character was creating unintended range) - Date overflow handling in
DateField.fromImport()for Turkish date format (32.01.2024 etc.)
- All validators use algorithmic verification (no simple regex patterns)
- Password field supports complexity requirements and strength calculation
-
FormPersistence- localStorage/sessionStorage form state persistence- Auto-save with debounce support
- Field filtering (include/exclude for sensitive data)
- TTL/expiry support
- Namespace prefix support
createFormPersistence()factory functionclearAllZignalPersistence()utility
-
AsyncValidator- API-based asynchronous validation- Email/username uniqueness checks
- Debounce support for API call optimization
- LRU cache to prevent duplicate requests
- AbortController for request cancellation
- Signal-based reactive state (pending, valid, invalid)
createEmailValidator()factorycreateUsernameValidator()factorycreateUniquenessValidator()generic factory
-
I18nService- Multi-language validation message support- Signal-based reactive locale management
- Turkish (tr) and English (en) built-in messages
- Placeholder interpolation ({min}, {max}, etc.)
- Custom locale/message support via
addLocale(),addMessages() - Browser locale detection via
detectBrowserLocale() - Helper functions:
t(),setLocale(),getLocale(),getI18n() - All field validation messages now use i18n
- Fallback to Turkish if message not found in current locale
- All field classes now use i18n for validation messages instead of hard-coded Turkish strings
- StringField, NumberField, DateField, BooleanField, PasswordField, SelectField, MultiselectField, TextareaField, EmailField, UrlField, ArrayField, FileField, JsonField all updated
- Angular Material UI adapter
- PrimeNG UI adapter
- Cross-field validation improvements
- Async validation support
- File upload progress tracking