@spartacus/storefront
Version:
Spartacus Storefront is a package that you can include in your application, which allows you to add default storefront features.
36 lines • 4.5 kB
JavaScript
import { FormArray, FormGroup } from '@angular/forms';
/**
* Utils for Angular forms
*/
export var FormUtils;
(function (FormUtils) {
/**
* Calls the native Angular method `#updateValueAndValidity` for the given from control
* and all its descendants (in case when it's `FormGroup` or `FormArray`).
*
* In particular it's useful for triggering re-emission of observables
* `valueChanges` and `statusChanges` for all descendant form controls.
*
* _Note: Dropping this function may be considered, when it's implemented natively
* by Angular. See https://github.com/angular/angular/issues/6170_
*
* @param control form control
* @param options additional options
* * `emitEvent`: When true or not given (the default), the `statusChanges` and
* `valueChanges` observables emit the latest status and value. When false,
* it doesn't trigger observables emission.
*/
function deepUpdateValueAndValidity(control, options = {}) {
if (control instanceof FormGroup || control instanceof FormArray) {
Object.values(control.controls).forEach((childControl) => {
deepUpdateValueAndValidity(childControl, options);
});
}
control.updateValueAndValidity({
onlySelf: true,
emitEvent: options.emitEvent,
});
}
FormUtils.deepUpdateValueAndValidity = deepUpdateValueAndValidity;
})(FormUtils || (FormUtils = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0b3JlZnJvbnRsaWIvdXRpbHMvZm9ybS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RTs7R0FFRztBQUNILE1BQU0sS0FBVyxTQUFTLENBa0N6QjtBQWxDRCxXQUFpQixTQUFTO0lBQ3hCOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILFNBQWdCLDBCQUEwQixDQUN4QyxPQUF3QixFQUN4QixVQUFtQyxFQUFFO1FBRXJDLElBQUksT0FBTyxZQUFZLFNBQVMsSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFO1lBQ2hFLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FDckMsQ0FBQyxZQUE2QixFQUFFLEVBQUU7Z0JBQ2hDLDBCQUEwQixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQ0YsQ0FBQztTQUNIO1FBRUQsT0FBTyxDQUFDLHNCQUFzQixDQUFDO1lBQzdCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFoQmUsb0NBQTBCLDZCQWdCekMsQ0FBQTtBQUNILENBQUMsRUFsQ2dCLFNBQVMsS0FBVCxTQUFTLFFBa0N6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogVXRpbHMgZm9yIEFuZ3VsYXIgZm9ybXNcbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBGb3JtVXRpbHMge1xuICAvKipcbiAgICogQ2FsbHMgdGhlIG5hdGl2ZSBBbmd1bGFyIG1ldGhvZCBgI3VwZGF0ZVZhbHVlQW5kVmFsaWRpdHlgIGZvciB0aGUgZ2l2ZW4gZnJvbSBjb250cm9sXG4gICAqIGFuZCBhbGwgaXRzIGRlc2NlbmRhbnRzIChpbiBjYXNlIHdoZW4gaXQncyBgRm9ybUdyb3VwYCBvciBgRm9ybUFycmF5YCkuXG4gICAqXG4gICAqIEluIHBhcnRpY3VsYXIgaXQncyB1c2VmdWwgZm9yIHRyaWdnZXJpbmcgcmUtZW1pc3Npb24gb2Ygb2JzZXJ2YWJsZXNcbiAgICogYHZhbHVlQ2hhbmdlc2AgYW5kIGBzdGF0dXNDaGFuZ2VzYCBmb3IgYWxsIGRlc2NlbmRhbnQgZm9ybSBjb250cm9scy5cbiAgICpcbiAgICogX05vdGU6IERyb3BwaW5nIHRoaXMgZnVuY3Rpb24gbWF5IGJlIGNvbnNpZGVyZWQsIHdoZW4gaXQncyBpbXBsZW1lbnRlZCBuYXRpdmVseVxuICAgKiBieSBBbmd1bGFyLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNjE3MF9cbiAgICpcbiAgICogQHBhcmFtIGNvbnRyb2wgZm9ybSBjb250cm9sXG4gICAqIEBwYXJhbSBvcHRpb25zIGFkZGl0aW9uYWwgb3B0aW9uc1xuICAgKiAqIGBlbWl0RXZlbnRgOiBXaGVuIHRydWUgb3Igbm90IGdpdmVuICh0aGUgZGVmYXVsdCksIHRoZSBgc3RhdHVzQ2hhbmdlc2AgYW5kXG4gICAqIGB2YWx1ZUNoYW5nZXNgIG9ic2VydmFibGVzIGVtaXQgdGhlIGxhdGVzdCBzdGF0dXMgYW5kIHZhbHVlLiBXaGVuIGZhbHNlLFxuICAgKiBpdCBkb2Vzbid0IHRyaWdnZXIgb2JzZXJ2YWJsZXMgZW1pc3Npb24uXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gZGVlcFVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoXG4gICAgY29udHJvbDogQWJzdHJhY3RDb250cm9sLFxuICAgIG9wdGlvbnM6IHsgZW1pdEV2ZW50PzogYm9vbGVhbiB9ID0ge31cbiAgKTogdm9pZCB7XG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXAgfHwgY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgT2JqZWN0LnZhbHVlcyhjb250cm9sLmNvbnRyb2xzKS5mb3JFYWNoKFxuICAgICAgICAoY2hpbGRDb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgICAgICBkZWVwVXBkYXRlVmFsdWVBbmRWYWxpZGl0eShjaGlsZENvbnRyb2wsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICBvbmx5U2VsZjogdHJ1ZSwgLy8gYXZvaWQgY2FsbGluZyBgI3VwZGF0ZVZhbHVlQW5kVmFsaWRpdHlgIGZvciBhbGwgYW5jZXN0b3JzXG4gICAgICBlbWl0RXZlbnQ6IG9wdGlvbnMuZW1pdEV2ZW50LFxuICAgIH0pO1xuICB9XG59XG4iXX0=