@ng-forge/dynamic-forms 1.1.0-next.3 → 1.1.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-forge/dynamic-forms",
3
- "version": "1.1.0-next.3",
3
+ "version": "1.1.0-next.4",
4
4
  "description": "Type-safe, signal-powered dynamic forms for Angular. Build complex forms from configuration with full TypeScript inference.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -2661,8 +2661,13 @@ declare class FieldContextRegistryService {
2661
2661
  /**
2662
2662
  * Resolves external data signals to their current values.
2663
2663
  *
2664
- * @param reactive - If true, reads signals reactively (creates dependencies).
2665
- * If false, reads signals with untracked() (no dependencies).
2664
+ * Always reads reactively. Unlike the field value and form value (which are
2665
+ * read untracked to break the validator -> state -> valid -> validator cycle),
2666
+ * externalData is one-directional external input that validation output can
2667
+ * never feed back into, so tracking it cannot cause a cycle. Reading it
2668
+ * reactively is what lets dynamic values and validators bound to externalData
2669
+ * update when it changes.
2670
+ *
2666
2671
  * @returns Record of resolved external data values, or undefined if no external data.
2667
2672
  */
2668
2673
  private resolveExternalData;
@@ -3509,9 +3514,13 @@ declare function interpolateParams(message: string, error: ValidationError): str
3509
3514
  /**
3510
3515
  * Performs a deep equality comparison between two values.
3511
3516
  *
3517
+ * Symbol-keyed properties are intentionally ignored: form values carry
3518
+ * enumerable symbol metadata stamped by Angular Signal Forms, and comparing it
3519
+ * would make structurally equal values compare unequal. Only string keys count.
3520
+ *
3512
3521
  * @param a - First value
3513
3522
  * @param b - Second value
3514
- * @returns true if values are deeply equal
3523
+ * @returns true if values are deeply equal by their string-keyed properties
3515
3524
  */
3516
3525
  declare function isEqual(a: unknown, b: unknown): boolean;
3517
3526
  /**