UNPKG

@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
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=