UNPKG

@terminus/ngx-tools

Version:

[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github

35 lines 3.83 kB
import { inputHasChanged } from '../input-has-changed/input-has-changed'; import { NgChangeObjectValueParser } from '../ngchange-object-value-parser/ngchange-object-value-parser'; /** * Helper function to determine if a specific value has changed * * @param changes - The object of changes * @param path - A string with keys defined, separate with '.' * @param control - The formControl * @returns True if the value has changed * * @example * ... * AngularInput: * public myInput; * AngularInput: * public myFormControl; * * ngOnChanges(changes: SimpleChanges) { * // This will update the form control's value whenever the `@Input` value changes: * updateControlOnInputChanges(changes, 'myInput', this.myFormControl)); * } * ... */ export function updateControlOnInputChanges(changes, path, control) { if (!changes || !path || !control) { return false; } if (inputHasChanged(changes, path)) { const newValue = NgChangeObjectValueParser.getNewValue(changes, path); control.setValue(newValue); return true; } return false; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWNvbnRyb2wtb24taW5wdXQtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0ZXJtaW51cy9uZ3gtdG9vbHMvdXRpbGl0aWVzLyIsInNvdXJjZXMiOlsidXBkYXRlLWNvbnRyb2wtb24taW5wdXQtY2hhbmdlcy91cGRhdGUtY29udHJvbC1vbi1pbnB1dC1jaGFuZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUd6Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLE9BQXNCLEVBQ3RCLElBQVksRUFDWixPQUErQjtJQUUvQixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ2pDLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxJQUFJLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7UUFDbEMsTUFBTSxRQUFRLEdBQUcseUJBQXlCLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IGlucHV0SGFzQ2hhbmdlZCB9IGZyb20gJy4uL2lucHV0LWhhcy1jaGFuZ2VkL2lucHV0LWhhcy1jaGFuZ2VkJztcbmltcG9ydCB7IE5nQ2hhbmdlT2JqZWN0VmFsdWVQYXJzZXIgfSBmcm9tICcuLi9uZ2NoYW5nZS1vYmplY3QtdmFsdWUtcGFyc2VyL25nY2hhbmdlLW9iamVjdC12YWx1ZS1wYXJzZXInO1xuXG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiBhIHNwZWNpZmljIHZhbHVlIGhhcyBjaGFuZ2VkXG4gKlxuICogQHBhcmFtIGNoYW5nZXMgLSBUaGUgb2JqZWN0IG9mIGNoYW5nZXNcbiAqIEBwYXJhbSBwYXRoIC0gQSBzdHJpbmcgd2l0aCBrZXlzIGRlZmluZWQsIHNlcGFyYXRlIHdpdGggJy4nXG4gKiBAcGFyYW0gY29udHJvbCAtIFRoZSBmb3JtQ29udHJvbFxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgdmFsdWUgaGFzIGNoYW5nZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLi4uXG4gKiAgIEFuZ3VsYXJJbnB1dDpcbiAqICAgcHVibGljIG15SW5wdXQ7XG4gKiAgIEFuZ3VsYXJJbnB1dDpcbiAqICAgcHVibGljIG15Rm9ybUNvbnRyb2w7XG4gKlxuICogICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gKiAgICAgLy8gVGhpcyB3aWxsIHVwZGF0ZSB0aGUgZm9ybSBjb250cm9sJ3MgdmFsdWUgd2hlbmV2ZXIgdGhlIGBASW5wdXRgIHZhbHVlIGNoYW5nZXM6XG4gKiAgICAgdXBkYXRlQ29udHJvbE9uSW5wdXRDaGFuZ2VzKGNoYW5nZXMsICdteUlucHV0JywgdGhpcy5teUZvcm1Db250cm9sKSk7XG4gKiAgIH1cbiAqIC4uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ29udHJvbE9uSW5wdXRDaGFuZ2VzKFxuICBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzLFxuICBwYXRoOiBzdHJpbmcsXG4gIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwsXG4pOiBib29sZWFuIHtcbiAgaWYgKCFjaGFuZ2VzIHx8ICFwYXRoIHx8ICFjb250cm9sKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGlucHV0SGFzQ2hhbmdlZChjaGFuZ2VzLCBwYXRoKSkge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gTmdDaGFuZ2VPYmplY3RWYWx1ZVBhcnNlci5nZXROZXdWYWx1ZShjaGFuZ2VzLCBwYXRoKTtcbiAgICBjb250cm9sLnNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG4iXX0=