@webdev-tools/ng-nested-reactive-forms
Version:
Implement Nested FormControl for Angular Reactive Forms.
39 lines • 4.3 kB
JavaScript
import { EventEmitter, Injectable } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { cloneDeep } from '../utils/clone-deep';
var NrfFormService = (function () {
function NrfFormService() {
this.formGroup = new FormGroup({});
this.submit$ = new EventEmitter();
}
Object.defineProperty(NrfFormService.prototype, "entity", {
get: function () {
return this.privateEntity;
},
set: function (entity) {
this.privateEntity = entity;
this.formData = cloneDeep(entity);
},
enumerable: true,
configurable: true
});
NrfFormService.decorators = [
{ type: Injectable }
];
return NrfFormService;
}());
export { NrfFormService };
if (false) {
NrfFormService.prototype.formGroup;
NrfFormService.prototype.privateEntity;
NrfFormService.prototype.formData;
NrfFormService.prototype.submit$;
}
export function newNrfFormService() {
return new NrfFormService();
}
export var NRF_FORM_SERVICE_PROVIDER = {
provide: NrfFormService,
useFactory: newNrfFormService,
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdlYmRldi10b29scy9uZy1uZXN0ZWQtcmVhY3RpdmUtZm9ybXMvIiwic291cmNlcyI6WyJsaWIvZm9ybS9mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUtoRDtJQUFBO1FBU1csY0FBUyxHQUFjLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBcUJ6QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDdkQsQ0FBQztJQWpCQyxzQkFBSSxrQ0FBTTthQUlWO1lBQ0UsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUM7YUFORCxVQUFXLE1BQVc7WUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsQ0FBQzs7O09BQUE7O2dCQWpCRixVQUFVOztJQStCWCxxQkFBQztDQUFBLEFBL0JELElBK0JDO1NBOUJZLGNBQWM7O0lBUXpCLG1DQUFrRDtJQUdsRCx1Q0FBMkI7SUFhM0Isa0NBQWM7SUFLZCxpQ0FBcUQ7O0FBTXZELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFDO0FBQzlCLENBQUM7QUFLRCxNQUFNLEtBQU8seUJBQXlCLEdBQWE7SUFDakQsT0FBTyxFQUFFLGNBQWM7SUFDdkIsVUFBVSxFQUFFLGlCQUFpQjtDQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnLi4vdXRpbHMvY2xvbmUtZGVlcCc7XG5pbXBvcnQgeyBOcmZTdWJtaXREYXRhIH0gZnJvbSAnLi9mb3JtLXN1Ym1pdC1kYXRhLmNsYXNzJztcblxuLyogdHNsaW50OmRpc2FibGUgdGVyLXBhZGRlZC1ibG9ja3MgKi9cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5yZkZvcm1TZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEZvcm0gZ3JvdXAgd2lsbCBob2xkIGFsbCBpbnB1dHMgd2l0aGluIHRoaXMgZm9ybS5cbiAgICpcbiAgICogRXZlcnkgaW5wdXQgc2hvdWxkIHJlZ2lzdGVyIGl0c2VsZiB0byB0aGlzIGZvcm0gZ3JvdXAuXG4gICAqXG4gICAqIFRoZSBkYXRhIGluIHRoaXMgZm9ybSBncm91cCB3aWxsIG5vdCBiZSBzZW50IHRvIGJhY2tlbmQsIGp1c3QgZm9ybSB2YWxpZGF0aW9ucyBhbmQgaW5wdXQgbWFuYWdlbWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgcHJpdmF0ZSBwcml2YXRlRW50aXR5OiBhbnk7XG5cbiAgc2V0IGVudGl0eShlbnRpdHk6IGFueSkge1xuICAgIHRoaXMucHJpdmF0ZUVudGl0eSA9IGVudGl0eTtcbiAgICB0aGlzLmZvcm1EYXRhID0gY2xvbmVEZWVwKGVudGl0eSk7IC8vIFRPRE8gbWVyZ2Ugd2l0aCBleGlzdGVudCBmb3JtRGF0YVxuICB9XG4gIGdldCBlbnRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJpdmF0ZUVudGl0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBkYXRhIGlucHV0dGVkIGJ5IHRoZSB1c2VyIG9uIHRoZSBmaWVsZHNcbiAgICovXG4gIGZvcm1EYXRhOiBhbnk7XG5cbiAgLyoqXG4gICAqIEludGVybmFsIGVtaXR0ZXIgdG8gaGFuZGxlIGZvcm0gc3VibWl0XG4gICAqL1xuICByZWFkb25seSBzdWJtaXQkID0gbmV3IEV2ZW50RW1pdHRlcjxOcmZTdWJtaXREYXRhPigpO1xufVxuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5ld05yZkZvcm1TZXJ2aWNlKCkge1xuICByZXR1cm4gbmV3IE5yZkZvcm1TZXJ2aWNlKCk7XG59XG5cbi8qKlxuICogVXNlIHRoaXMgdG8gcHJvdmlkZSBmb3JtLXNlcnZpY2UgdG8gQ29tcG9uZW50cyB0aGF0IHdyYXBzIG5yZkZvcm0gYW5kIHB1dCBpbnB1dHMgaW5zaWRlIDxuZy1jb250ZW50PlxuICovXG5leHBvcnQgY29uc3QgTlJGX0ZPUk1fU0VSVklDRV9QUk9WSURFUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5yZkZvcm1TZXJ2aWNlLFxuICB1c2VGYWN0b3J5OiBuZXdOcmZGb3JtU2VydmljZSxcbn07XG4iXX0=