@tanstack/angular-form 0.36.2 → 0.37.1

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.
@@ -12,6 +12,7 @@ export class TanStackField {
12
12
  validatorAdapter;
13
13
  tanstackField;
14
14
  validators;
15
+ listeners;
15
16
  defaultMeta;
16
17
  api;
17
18
  getOptions() {
@@ -21,6 +22,7 @@ export class TanStackField {
21
22
  asyncAlways: this.asyncAlways,
22
23
  validatorAdapter: this.validatorAdapter,
23
24
  validators: this.validators,
25
+ listeners: this.listeners,
24
26
  defaultMeta: this.defaultMeta,
25
27
  name: this.name,
26
28
  form: this.tanstackField,
@@ -41,7 +43,7 @@ export class TanStackField {
41
43
  api.update(this.getOptions());
42
44
  }
43
45
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TanStackField, deps: [], target: i0.ɵɵFactoryTarget.Directive });
44
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.12", type: TanStackField, isStandalone: true, selector: "[tanstackField]", inputs: { name: "name", defaultValue: "defaultValue", asyncDebounceMs: ["asyncDebounceMs", "asyncDebounceMs", numberAttribute], asyncAlways: ["asyncAlways", "asyncAlways", booleanAttribute], validatorAdapter: "validatorAdapter", tanstackField: "tanstackField", validators: "validators", defaultMeta: "defaultMeta" }, exportAs: ["field"], usesOnChanges: true, ngImport: i0 });
46
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.12", type: TanStackField, isStandalone: true, selector: "[tanstackField]", inputs: { name: "name", defaultValue: "defaultValue", asyncDebounceMs: ["asyncDebounceMs", "asyncDebounceMs", numberAttribute], asyncAlways: ["asyncAlways", "asyncAlways", booleanAttribute], validatorAdapter: "validatorAdapter", tanstackField: "tanstackField", validators: "validators", listeners: "listeners", defaultMeta: "defaultMeta" }, exportAs: ["field"], usesOnChanges: true, ngImport: i0 });
45
47
  }
46
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TanStackField, decorators: [{
47
49
  type: Directive,
@@ -68,7 +70,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
68
70
  args: [{ required: true }]
69
71
  }], validators: [{
70
72
  type: Input
73
+ }], listeners: [{
74
+ type: Input
71
75
  }], defaultMeta: [{
72
76
  type: Input
73
77
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuc3RhY2stZmllbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RhbnN0YWNrLWZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsUUFBUSxFQUFXLE1BQU0scUJBQXFCLENBQUE7O0FBaUJ2RCxNQUFNLE9BQU8sYUFBYTtJQWlCRyxJQUFJLENBQVE7SUFDdkMsbUZBQW1GO0lBQ25GLHdFQUF3RTtJQUN4RSxnREFBZ0Q7SUFDdkMsWUFBWSxDQUFxQjtJQUNILGVBQWUsQ0FBUztJQUN2QixXQUFXLENBQVU7SUFDcEQsZ0JBQWdCLENBQWtCO0lBQ2hCLGFBQWEsQ0FHdkM7SUFDUSxVQUFVLENBRWxCO0lBQ1EsV0FBVyxDQUFxQjtJQUV6QyxHQUFHLENBQXVFO0lBRWxFLFVBQVU7UUFDaEIsT0FBTztZQUNMLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDekIsQ0FBQTtJQUNILENBQUM7SUFFRCxPQUFPLENBQWE7SUFFcEIsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFFMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUE7SUFDbEIsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBa0MsQ0FBQTtRQUNuRCxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU07UUFDaEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUMvQixDQUFDO3dHQWpFVSxhQUFhOzRGQUFiLGFBQWEsaUtBc0JKLGVBQWUsK0NBQ2YsZ0JBQWdCOzs0RkF2QnpCLGFBQWE7a0JBTHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxPQUFPO2lCQUNsQjs4QkFrQjRCLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUloQixZQUFZO3NCQUFwQixLQUFLO2dCQUNpQyxlQUFlO3NCQUFyRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFDRyxXQUFXO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUM3QixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ3FCLGFBQWE7c0JBQXZDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUloQixVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGaWVsZEFwaSwgRm9ybUFwaSB9IGZyb20gJ0B0YW5zdGFjay9mb3JtLWNvcmUnXG5pbXBvcnQgdHlwZSB7IE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHR5cGUge1xuICBEZWVwS2V5cyxcbiAgRGVlcFZhbHVlLFxuICBGaWVsZE1ldGEsXG4gIEZpZWxkT3B0aW9ucyxcbiAgRmllbGRWYWxpZGF0b3JzLFxuICBOb0luZmVyIGFzIE5vSW5mZXJIYWNrLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0B0YW5zdGFjay9mb3JtLWNvcmUnXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0YW5zdGFja0ZpZWxkXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGV4cG9ydEFzOiAnZmllbGQnLFxufSlcbmV4cG9ydCBjbGFzcyBUYW5TdGFja0ZpZWxkPFxuICAgIFRQYXJlbnREYXRhLFxuICAgIGNvbnN0IFROYW1lIGV4dGVuZHMgRGVlcEtleXM8VFBhcmVudERhdGE+LFxuICAgIFRGaWVsZFZhbGlkYXRvciBleHRlbmRzXG4gICAgICB8IFZhbGlkYXRvcjxEZWVwVmFsdWU8VFBhcmVudERhdGEsIFROYW1lPiwgdW5rbm93bj5cbiAgICAgIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFRGb3JtVmFsaWRhdG9yIGV4dGVuZHNcbiAgICAgIHwgVmFsaWRhdG9yPFRQYXJlbnREYXRhLCB1bmtub3duPlxuICAgICAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgVERhdGEgZXh0ZW5kcyBEZWVwVmFsdWU8VFBhcmVudERhdGEsIFROYW1lPiA9IERlZXBWYWx1ZTxUUGFyZW50RGF0YSwgVE5hbWU+LFxuICA+XG4gIGltcGxlbWVudHNcbiAgICBPbkluaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBGaWVsZE9wdGlvbnM8VFBhcmVudERhdGEsIFROYW1lLCBURmllbGRWYWxpZGF0b3IsIFRGb3JtVmFsaWRhdG9yLCBURGF0YT5cbntcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbmFtZSE6IFROYW1lXG4gIC8vIFNldHRpbmcgYXMgTm9JbmZlckhhY2sgYXMgaXQncyB0aGUgc2FtZSBpbnRlcm5hbCB0eXBlIGNhc3QgYXMgVGFuU3RhY2sgRm9ybSBDb3JlXG4gIC8vIFRoaXMgY2FuIGJlIHJlbW92ZWQgd2hlbiBUYW5TdGFjayBGb3JtIENvcmUgaXMgbW92ZWQgdG8gVFMgbWluIG9mIDUuNFxuICAvLyBhbmQgdGhlIE5vSW5mZXIgaW50ZXJuYWwgdXRpbCB0eXBlIGlzIHJtLXJmJ2RcbiAgQElucHV0KCkgZGVmYXVsdFZhbHVlPzogTm9JbmZlckhhY2s8VERhdGE+XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGFzeW5jRGVib3VuY2VNcz86IG51bWJlclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYXN5bmNBbHdheXM/OiBib29sZWFuXG4gIEBJbnB1dCgpIHZhbGlkYXRvckFkYXB0ZXI/OiBURmllbGRWYWxpZGF0b3JcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdGFuc3RhY2tGaWVsZCE6IEZvcm1BcGk8XG4gICAgVFBhcmVudERhdGEsXG4gICAgVEZvcm1WYWxpZGF0b3JcbiAgPlxuICBASW5wdXQoKSB2YWxpZGF0b3JzPzogTm9JbmZlcjxcbiAgICBGaWVsZFZhbGlkYXRvcnM8VFBhcmVudERhdGEsIFROYW1lLCBURmllbGRWYWxpZGF0b3IsIFRGb3JtVmFsaWRhdG9yLCBURGF0YT5cbiAgPlxuICBASW5wdXQoKSBkZWZhdWx0TWV0YT86IFBhcnRpYWw8RmllbGRNZXRhPlxuXG4gIGFwaSE6IEZpZWxkQXBpPFRQYXJlbnREYXRhLCBUTmFtZSwgVEZpZWxkVmFsaWRhdG9yLCBURm9ybVZhbGlkYXRvciwgVERhdGE+XG5cbiAgcHJpdmF0ZSBnZXRPcHRpb25zKCkge1xuICAgIHJldHVybiB7XG4gICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuZGVmYXVsdFZhbHVlLFxuICAgICAgYXN5bmNEZWJvdW5jZU1zOiB0aGlzLmFzeW5jRGVib3VuY2VNcyxcbiAgICAgIGFzeW5jQWx3YXlzOiB0aGlzLmFzeW5jQWx3YXlzLFxuICAgICAgdmFsaWRhdG9yQWRhcHRlcjogdGhpcy52YWxpZGF0b3JBZGFwdGVyLFxuICAgICAgdmFsaWRhdG9yczogdGhpcy52YWxpZGF0b3JzLFxuICAgICAgZGVmYXVsdE1ldGE6IHRoaXMuZGVmYXVsdE1ldGEsXG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBmb3JtOiB0aGlzLnRhbnN0YWNrRmllbGQsXG4gICAgfVxuICB9XG5cbiAgdW5tb3VudD86ICgpID0+IHZvaWRcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFwaSA9IG5ldyBGaWVsZEFwaSh0aGlzLmdldE9wdGlvbnMoKSlcblxuICAgIHRoaXMudW5tb3VudCA9IHRoaXMuYXBpLm1vdW50KClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudW5tb3VudD8uKClcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGNvbnN0IGFwaSA9IHRoaXMuYXBpIGFzIHR5cGVvZiB0aGlzLmFwaSB8IHVuZGVmaW5lZFxuICAgIGlmICghYXBpKSByZXR1cm5cbiAgICBhcGkudXBkYXRlKHRoaXMuZ2V0T3B0aW9ucygpKVxuICB9XG59XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuc3RhY2stZmllbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RhbnN0YWNrLWZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsUUFBUSxFQUFXLE1BQU0scUJBQXFCLENBQUE7O0FBa0J2RCxNQUFNLE9BQU8sYUFBYTtJQWlCRyxJQUFJLENBQVE7SUFDdkMsbUZBQW1GO0lBQ25GLHdFQUF3RTtJQUN4RSxnREFBZ0Q7SUFDdkMsWUFBWSxDQUFxQjtJQUNILGVBQWUsQ0FBUztJQUN2QixXQUFXLENBQVU7SUFDcEQsZ0JBQWdCLENBQWtCO0lBQ2hCLGFBQWEsQ0FHdkM7SUFDUSxVQUFVLENBRWxCO0lBQ1EsU0FBUyxDQUVqQjtJQUNRLFdBQVcsQ0FBcUI7SUFFekMsR0FBRyxDQUF1RTtJQUVsRSxVQUFVO1FBQ2hCLE9BQU87WUFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYTtTQUN6QixDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBYTtJQUVwQixRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtRQUUxQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFrQyxDQUFBO1FBQ25ELElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTTtRQUNoQixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFBO0lBQy9CLENBQUM7d0dBckVVLGFBQWE7NEZBQWIsYUFBYSxpS0FzQkosZUFBZSwrQ0FDZixnQkFBZ0I7OzRGQXZCekIsYUFBYTtrQkFMekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLE9BQU87aUJBQ2xCOzhCQWtCNEIsSUFBSTtzQkFBOUIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSWhCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ2lDLGVBQWU7c0JBQXJELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUNHLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQzdCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDcUIsYUFBYTtzQkFBdkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSWhCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgbnVtYmVyQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRmllbGRBcGksIEZvcm1BcGkgfSBmcm9tICdAdGFuc3RhY2svZm9ybS1jb3JlJ1xuaW1wb3J0IHR5cGUgeyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB0eXBlIHtcbiAgRGVlcEtleXMsXG4gIERlZXBWYWx1ZSxcbiAgRmllbGRMaXN0ZW5lcnMsXG4gIEZpZWxkTWV0YSxcbiAgRmllbGRPcHRpb25zLFxuICBGaWVsZFZhbGlkYXRvcnMsXG4gIE5vSW5mZXIgYXMgTm9JbmZlckhhY2ssXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQHRhbnN0YWNrL2Zvcm0tY29yZSdcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RhbnN0YWNrRmllbGRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdmaWVsZCcsXG59KVxuZXhwb3J0IGNsYXNzIFRhblN0YWNrRmllbGQ8XG4gICAgVFBhcmVudERhdGEsXG4gICAgY29uc3QgVE5hbWUgZXh0ZW5kcyBEZWVwS2V5czxUUGFyZW50RGF0YT4sXG4gICAgVEZpZWxkVmFsaWRhdG9yIGV4dGVuZHNcbiAgICAgIHwgVmFsaWRhdG9yPERlZXBWYWx1ZTxUUGFyZW50RGF0YSwgVE5hbWU+LCB1bmtub3duPlxuICAgICAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgVEZvcm1WYWxpZGF0b3IgZXh0ZW5kc1xuICAgICAgfCBWYWxpZGF0b3I8VFBhcmVudERhdGEsIHVua25vd24+XG4gICAgICB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBURGF0YSBleHRlbmRzIERlZXBWYWx1ZTxUUGFyZW50RGF0YSwgVE5hbWU+ID0gRGVlcFZhbHVlPFRQYXJlbnREYXRhLCBUTmFtZT4sXG4gID5cbiAgaW1wbGVtZW50c1xuICAgIE9uSW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIEZpZWxkT3B0aW9uczxUUGFyZW50RGF0YSwgVE5hbWUsIFRGaWVsZFZhbGlkYXRvciwgVEZvcm1WYWxpZGF0b3IsIFREYXRhPlxue1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBuYW1lITogVE5hbWVcbiAgLy8gU2V0dGluZyBhcyBOb0luZmVySGFjayBhcyBpdCdzIHRoZSBzYW1lIGludGVybmFsIHR5cGUgY2FzdCBhcyBUYW5TdGFjayBGb3JtIENvcmVcbiAgLy8gVGhpcyBjYW4gYmUgcmVtb3ZlZCB3aGVuIFRhblN0YWNrIEZvcm0gQ29yZSBpcyBtb3ZlZCB0byBUUyBtaW4gb2YgNS40XG4gIC8vIGFuZCB0aGUgTm9JbmZlciBpbnRlcm5hbCB1dGlsIHR5cGUgaXMgcm0tcmYnZFxuICBASW5wdXQoKSBkZWZhdWx0VmFsdWU/OiBOb0luZmVySGFjazxURGF0YT5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgYXN5bmNEZWJvdW5jZU1zPzogbnVtYmVyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhc3luY0Fsd2F5cz86IGJvb2xlYW5cbiAgQElucHV0KCkgdmFsaWRhdG9yQWRhcHRlcj86IFRGaWVsZFZhbGlkYXRvclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB0YW5zdGFja0ZpZWxkITogRm9ybUFwaTxcbiAgICBUUGFyZW50RGF0YSxcbiAgICBURm9ybVZhbGlkYXRvclxuICA+XG4gIEBJbnB1dCgpIHZhbGlkYXRvcnM/OiBOb0luZmVyPFxuICAgIEZpZWxkVmFsaWRhdG9yczxUUGFyZW50RGF0YSwgVE5hbWUsIFRGaWVsZFZhbGlkYXRvciwgVEZvcm1WYWxpZGF0b3IsIFREYXRhPlxuICA+XG4gIEBJbnB1dCgpIGxpc3RlbmVycz86IE5vSW5mZXI8XG4gICAgRmllbGRMaXN0ZW5lcnM8VFBhcmVudERhdGEsIFROYW1lLCBURmllbGRWYWxpZGF0b3IsIFRGb3JtVmFsaWRhdG9yLCBURGF0YT5cbiAgPlxuICBASW5wdXQoKSBkZWZhdWx0TWV0YT86IFBhcnRpYWw8RmllbGRNZXRhPlxuXG4gIGFwaSE6IEZpZWxkQXBpPFRQYXJlbnREYXRhLCBUTmFtZSwgVEZpZWxkVmFsaWRhdG9yLCBURm9ybVZhbGlkYXRvciwgVERhdGE+XG5cbiAgcHJpdmF0ZSBnZXRPcHRpb25zKCkge1xuICAgIHJldHVybiB7XG4gICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuZGVmYXVsdFZhbHVlLFxuICAgICAgYXN5bmNEZWJvdW5jZU1zOiB0aGlzLmFzeW5jRGVib3VuY2VNcyxcbiAgICAgIGFzeW5jQWx3YXlzOiB0aGlzLmFzeW5jQWx3YXlzLFxuICAgICAgdmFsaWRhdG9yQWRhcHRlcjogdGhpcy52YWxpZGF0b3JBZGFwdGVyLFxuICAgICAgdmFsaWRhdG9yczogdGhpcy52YWxpZGF0b3JzLFxuICAgICAgbGlzdGVuZXJzOiB0aGlzLmxpc3RlbmVycyxcbiAgICAgIGRlZmF1bHRNZXRhOiB0aGlzLmRlZmF1bHRNZXRhLFxuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgZm9ybTogdGhpcy50YW5zdGFja0ZpZWxkLFxuICAgIH1cbiAgfVxuXG4gIHVubW91bnQ/OiAoKSA9PiB2b2lkXG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hcGkgPSBuZXcgRmllbGRBcGkodGhpcy5nZXRPcHRpb25zKCkpXG5cbiAgICB0aGlzLnVubW91bnQgPSB0aGlzLmFwaS5tb3VudCgpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVubW91bnQ/LigpXG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBjb25zdCBhcGkgPSB0aGlzLmFwaSBhcyB0eXBlb2YgdGhpcy5hcGkgfCB1bmRlZmluZWRcbiAgICBpZiAoIWFwaSkgcmV0dXJuXG4gICAgYXBpLnVwZGF0ZSh0aGlzLmdldE9wdGlvbnMoKSlcbiAgfVxufVxuIl19
@@ -21,6 +21,7 @@ class TanStackField {
21
21
  validatorAdapter;
22
22
  tanstackField;
23
23
  validators;
24
+ listeners;
24
25
  defaultMeta;
25
26
  api;
26
27
  getOptions() {
@@ -30,6 +31,7 @@ class TanStackField {
30
31
  asyncAlways: this.asyncAlways,
31
32
  validatorAdapter: this.validatorAdapter,
32
33
  validators: this.validators,
34
+ listeners: this.listeners,
33
35
  defaultMeta: this.defaultMeta,
34
36
  name: this.name,
35
37
  form: this.tanstackField,
@@ -50,7 +52,7 @@ class TanStackField {
50
52
  api.update(this.getOptions());
51
53
  }
52
54
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TanStackField, deps: [], target: i0.ɵɵFactoryTarget.Directive });
53
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.12", type: TanStackField, isStandalone: true, selector: "[tanstackField]", inputs: { name: "name", defaultValue: "defaultValue", asyncDebounceMs: ["asyncDebounceMs", "asyncDebounceMs", numberAttribute], asyncAlways: ["asyncAlways", "asyncAlways", booleanAttribute], validatorAdapter: "validatorAdapter", tanstackField: "tanstackField", validators: "validators", defaultMeta: "defaultMeta" }, exportAs: ["field"], usesOnChanges: true, ngImport: i0 });
55
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.12", type: TanStackField, isStandalone: true, selector: "[tanstackField]", inputs: { name: "name", defaultValue: "defaultValue", asyncDebounceMs: ["asyncDebounceMs", "asyncDebounceMs", numberAttribute], asyncAlways: ["asyncAlways", "asyncAlways", booleanAttribute], validatorAdapter: "validatorAdapter", tanstackField: "tanstackField", validators: "validators", listeners: "listeners", defaultMeta: "defaultMeta" }, exportAs: ["field"], usesOnChanges: true, ngImport: i0 });
54
56
  }
55
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TanStackField, decorators: [{
56
58
  type: Directive,
@@ -77,6 +79,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
77
79
  args: [{ required: true }]
78
80
  }], validators: [{
79
81
  type: Input
82
+ }], listeners: [{
83
+ type: Input
80
84
  }], defaultMeta: [{
81
85
  type: Input
82
86
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack-angular-form.mjs","sources":["../../src/inject-form.ts","../../src/tanstack-field.directive.ts","../../src/inject-store.ts","../../src/tanstack-angular-form.ts"],"sourcesContent":["import { FormApi } from '@tanstack/form-core'\nimport { injectStore } from '@tanstack/angular-store'\nimport type { FormOptions, Validator } from '@tanstack/form-core'\n\nexport function injectForm<\n TFormData,\n TFormValidator extends Validator<TFormData, unknown> | undefined = undefined,\n>(opts?: FormOptions<TFormData, TFormValidator>) {\n const api = new FormApi<TFormData, TFormValidator>(opts)\n\n injectStore(api.store, (state) => state.isSubmitting)\n\n return api\n}\n","import {\n Directive,\n Input,\n booleanAttribute,\n numberAttribute,\n} from '@angular/core'\nimport { FieldApi, FormApi } from '@tanstack/form-core'\nimport type { OnChanges, OnDestroy, OnInit } from '@angular/core'\nimport type {\n DeepKeys,\n DeepValue,\n FieldMeta,\n FieldOptions,\n FieldValidators,\n NoInfer as NoInferHack,\n Validator,\n} from '@tanstack/form-core'\n\n@Directive({\n selector: '[tanstackField]',\n standalone: true,\n exportAs: 'field',\n})\nexport class TanStackField<\n TParentData,\n const TName extends DeepKeys<TParentData>,\n TFieldValidator extends\n | Validator<DeepValue<TParentData, TName>, unknown>\n | undefined = undefined,\n TFormValidator extends\n | Validator<TParentData, unknown>\n | undefined = undefined,\n TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>,\n >\n implements\n OnInit,\n OnChanges,\n OnDestroy,\n FieldOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>\n{\n @Input({ required: true }) name!: TName\n // Setting as NoInferHack as it's the same internal type cast as TanStack Form Core\n // This can be removed when TanStack Form Core is moved to TS min of 5.4\n // and the NoInfer internal util type is rm-rf'd\n @Input() defaultValue?: NoInferHack<TData>\n @Input({ transform: numberAttribute }) asyncDebounceMs?: number\n @Input({ transform: booleanAttribute }) asyncAlways?: boolean\n @Input() validatorAdapter?: TFieldValidator\n @Input({ required: true }) tanstackField!: FormApi<\n TParentData,\n TFormValidator\n >\n @Input() validators?: NoInfer<\n FieldValidators<TParentData, TName, TFieldValidator, TFormValidator, TData>\n >\n @Input() defaultMeta?: Partial<FieldMeta>\n\n api!: FieldApi<TParentData, TName, TFieldValidator, TFormValidator, TData>\n\n private getOptions() {\n return {\n defaultValue: this.defaultValue,\n asyncDebounceMs: this.asyncDebounceMs,\n asyncAlways: this.asyncAlways,\n validatorAdapter: this.validatorAdapter,\n validators: this.validators,\n defaultMeta: this.defaultMeta,\n name: this.name,\n form: this.tanstackField,\n }\n }\n\n unmount?: () => void\n\n ngOnInit() {\n this.api = new FieldApi(this.getOptions())\n\n this.unmount = this.api.mount()\n }\n\n ngOnDestroy() {\n this.unmount?.()\n }\n\n ngOnChanges() {\n const api = this.api as typeof this.api | undefined\n if (!api) return\n api.update(this.getOptions())\n }\n}\n","import { injectStore as injectAngularStore } from '@tanstack/angular-store'\nimport type { FormApi, FormState, Validator } from '@tanstack/form-core'\n\nexport function injectStore<\n TFormData,\n TFormValidator extends Validator<TFormData, unknown> | undefined = undefined,\n TSelected = NoInfer<FormState<TFormData>>,\n>(\n form: FormApi<TFormData, TFormValidator>,\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,\n) {\n return injectAngularStore(form.store, selector)\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["injectStore","injectAngularStore"],"mappings":"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"}
1
+ {"version":3,"file":"tanstack-angular-form.mjs","sources":["../../src/inject-form.ts","../../src/tanstack-field.directive.ts","../../src/inject-store.ts","../../src/tanstack-angular-form.ts"],"sourcesContent":["import { FormApi } from '@tanstack/form-core'\nimport { injectStore } from '@tanstack/angular-store'\nimport type { FormOptions, Validator } from '@tanstack/form-core'\n\nexport function injectForm<\n TFormData,\n TFormValidator extends Validator<TFormData, unknown> | undefined = undefined,\n>(opts?: FormOptions<TFormData, TFormValidator>) {\n const api = new FormApi<TFormData, TFormValidator>(opts)\n\n injectStore(api.store, (state) => state.isSubmitting)\n\n return api\n}\n","import {\n Directive,\n Input,\n booleanAttribute,\n numberAttribute,\n} from '@angular/core'\nimport { FieldApi, FormApi } from '@tanstack/form-core'\nimport type { OnChanges, OnDestroy, OnInit } from '@angular/core'\nimport type {\n DeepKeys,\n DeepValue,\n FieldListeners,\n FieldMeta,\n FieldOptions,\n FieldValidators,\n NoInfer as NoInferHack,\n Validator,\n} from '@tanstack/form-core'\n\n@Directive({\n selector: '[tanstackField]',\n standalone: true,\n exportAs: 'field',\n})\nexport class TanStackField<\n TParentData,\n const TName extends DeepKeys<TParentData>,\n TFieldValidator extends\n | Validator<DeepValue<TParentData, TName>, unknown>\n | undefined = undefined,\n TFormValidator extends\n | Validator<TParentData, unknown>\n | undefined = undefined,\n TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>,\n >\n implements\n OnInit,\n OnChanges,\n OnDestroy,\n FieldOptions<TParentData, TName, TFieldValidator, TFormValidator, TData>\n{\n @Input({ required: true }) name!: TName\n // Setting as NoInferHack as it's the same internal type cast as TanStack Form Core\n // This can be removed when TanStack Form Core is moved to TS min of 5.4\n // and the NoInfer internal util type is rm-rf'd\n @Input() defaultValue?: NoInferHack<TData>\n @Input({ transform: numberAttribute }) asyncDebounceMs?: number\n @Input({ transform: booleanAttribute }) asyncAlways?: boolean\n @Input() validatorAdapter?: TFieldValidator\n @Input({ required: true }) tanstackField!: FormApi<\n TParentData,\n TFormValidator\n >\n @Input() validators?: NoInfer<\n FieldValidators<TParentData, TName, TFieldValidator, TFormValidator, TData>\n >\n @Input() listeners?: NoInfer<\n FieldListeners<TParentData, TName, TFieldValidator, TFormValidator, TData>\n >\n @Input() defaultMeta?: Partial<FieldMeta>\n\n api!: FieldApi<TParentData, TName, TFieldValidator, TFormValidator, TData>\n\n private getOptions() {\n return {\n defaultValue: this.defaultValue,\n asyncDebounceMs: this.asyncDebounceMs,\n asyncAlways: this.asyncAlways,\n validatorAdapter: this.validatorAdapter,\n validators: this.validators,\n listeners: this.listeners,\n defaultMeta: this.defaultMeta,\n name: this.name,\n form: this.tanstackField,\n }\n }\n\n unmount?: () => void\n\n ngOnInit() {\n this.api = new FieldApi(this.getOptions())\n\n this.unmount = this.api.mount()\n }\n\n ngOnDestroy() {\n this.unmount?.()\n }\n\n ngOnChanges() {\n const api = this.api as typeof this.api | undefined\n if (!api) return\n api.update(this.getOptions())\n }\n}\n","import { injectStore as injectAngularStore } from '@tanstack/angular-store'\nimport type { FormApi, FormState, Validator } from '@tanstack/form-core'\n\nexport function injectStore<\n TFormData,\n TFormValidator extends Validator<TFormData, unknown> | undefined = undefined,\n TSelected = NoInfer<FormState<TFormData>>,\n>(\n form: FormApi<TFormData, TFormValidator>,\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,\n) {\n return injectAngularStore(form.store, selector)\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["injectStore","injectAngularStore"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { FieldApi, FormApi } from '@tanstack/form-core';
2
2
  import type { OnChanges, OnDestroy, OnInit } from '@angular/core';
3
- import type { DeepKeys, DeepValue, FieldMeta, FieldOptions, FieldValidators, NoInfer as NoInferHack, Validator } from '@tanstack/form-core';
3
+ import type { DeepKeys, DeepValue, FieldListeners, FieldMeta, FieldOptions, FieldValidators, NoInfer as NoInferHack, Validator } from '@tanstack/form-core';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class TanStackField<TParentData, const TName extends DeepKeys<TParentData>, TFieldValidator extends Validator<DeepValue<TParentData, TName>, unknown> | undefined = undefined, TFormValidator extends Validator<TParentData, unknown> | undefined = undefined, TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>> implements OnInit, OnChanges, OnDestroy, FieldOptions<TParentData, TName, TFieldValidator, TFormValidator, TData> {
6
6
  name: TName;
@@ -10,6 +10,7 @@ export declare class TanStackField<TParentData, const TName extends DeepKeys<TPa
10
10
  validatorAdapter?: TFieldValidator;
11
11
  tanstackField: FormApi<TParentData, TFormValidator>;
12
12
  validators?: NoInfer<FieldValidators<TParentData, TName, TFieldValidator, TFormValidator, TData>>;
13
+ listeners?: NoInfer<FieldListeners<TParentData, TName, TFieldValidator, TFormValidator, TData>>;
13
14
  defaultMeta?: Partial<FieldMeta>;
14
15
  api: FieldApi<TParentData, TName, TFieldValidator, TFormValidator, TData>;
15
16
  private getOptions;
@@ -18,7 +19,7 @@ export declare class TanStackField<TParentData, const TName extends DeepKeys<TPa
18
19
  ngOnDestroy(): void;
19
20
  ngOnChanges(): void;
20
21
  static ɵfac: i0.ɵɵFactoryDeclaration<TanStackField<any, any, any, any, any>, never>;
21
- static ɵdir: i0.ɵɵDirectiveDeclaration<TanStackField<any, any, any, any, any>, "[tanstackField]", ["field"], { "name": { "alias": "name"; "required": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "asyncDebounceMs": { "alias": "asyncDebounceMs"; "required": false; }; "asyncAlways": { "alias": "asyncAlways"; "required": false; }; "validatorAdapter": { "alias": "validatorAdapter"; "required": false; }; "tanstackField": { "alias": "tanstackField"; "required": true; }; "validators": { "alias": "validators"; "required": false; }; "defaultMeta": { "alias": "defaultMeta"; "required": false; }; }, {}, never, never, true, never>;
22
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TanStackField<any, any, any, any, any>, "[tanstackField]", ["field"], { "name": { "alias": "name"; "required": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "asyncDebounceMs": { "alias": "asyncDebounceMs"; "required": false; }; "asyncAlways": { "alias": "asyncAlways"; "required": false; }; "validatorAdapter": { "alias": "validatorAdapter"; "required": false; }; "tanstackField": { "alias": "tanstackField"; "required": true; }; "validators": { "alias": "validators"; "required": false; }; "listeners": { "alias": "listeners"; "required": false; }; "defaultMeta": { "alias": "defaultMeta"; "required": false; }; }, {}, never, never, true, never>;
22
23
  static ngAcceptInputType_asyncDebounceMs: unknown;
23
24
  static ngAcceptInputType_asyncAlways: unknown;
24
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/angular-form",
3
- "version": "0.36.2",
3
+ "version": "0.37.1",
4
4
  "description": "Powerful, type-safe forms for Angular.",
5
5
  "author": "tannerlinsley",
6
6
  "license": "MIT",
@@ -36,7 +36,7 @@
36
36
  "dependencies": {
37
37
  "@tanstack/angular-store": "^0.5.6",
38
38
  "tslib": "^2.8.1",
39
- "@tanstack/form-core": "0.36.2"
39
+ "@tanstack/form-core": "0.37.1"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@analogjs/vite-plugin-angular": "^1.9.2",
@@ -9,6 +9,7 @@ import type { OnChanges, OnDestroy, OnInit } from '@angular/core'
9
9
  import type {
10
10
  DeepKeys,
11
11
  DeepValue,
12
+ FieldListeners,
12
13
  FieldMeta,
13
14
  FieldOptions,
14
15
  FieldValidators,
@@ -53,6 +54,9 @@ export class TanStackField<
53
54
  @Input() validators?: NoInfer<
54
55
  FieldValidators<TParentData, TName, TFieldValidator, TFormValidator, TData>
55
56
  >
57
+ @Input() listeners?: NoInfer<
58
+ FieldListeners<TParentData, TName, TFieldValidator, TFormValidator, TData>
59
+ >
56
60
  @Input() defaultMeta?: Partial<FieldMeta>
57
61
 
58
62
  api!: FieldApi<TParentData, TName, TFieldValidator, TFormValidator, TData>
@@ -64,6 +68,7 @@ export class TanStackField<
64
68
  asyncAlways: this.asyncAlways,
65
69
  validatorAdapter: this.validatorAdapter,
66
70
  validators: this.validators,
71
+ listeners: this.listeners,
67
72
  defaultMeta: this.defaultMeta,
68
73
  name: this.name,
69
74
  form: this.tanstackField,