Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@yoozly/ngrx-form

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@yoozly/ngrx-form - npm Package Compare versions

Comparing version 0.0.7 to 0.0.8

yoozly-ngrx-form-0.0.8.tgz

209

bundles/yoozly-ngrx-form.umd.js
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@ngrx/store'), require('rxjs/operators'), require('rxjs'), require('@angular/core'), require('@angular/forms')) :
typeof define === 'function' && define.amd ? define('@yoozly/ngrx-form', ['exports', '@ngrx/store', 'rxjs/operators', 'rxjs', '@angular/core', '@angular/forms'], factory) :
(factory((global.yoozly = global.yoozly || {}, global.yoozly['ngrx-form'] = {}),global.store,global.rxjs.operators,global.rxjs,global.ng.core,global.ng.forms));
}(this, (function (exports,store,operators,rxjs,i0,i1) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/forms'), require('@ngrx/store'), require('rxjs/operators'), require('rxjs')) :
typeof define === 'function' && define.amd ? define('@yoozly/ngrx-form', ['exports', '@angular/core', '@angular/forms', '@ngrx/store', 'rxjs/operators', 'rxjs'], factory) :
(factory((global.yoozly = global.yoozly || {}, global.yoozly['ngrx-form'] = {}),global.ng.core,global.ng.forms,global.store,global.rxjs.operators,global.rxjs));
}(this, (function (exports,core,forms,store,operators,rxjs) { 'use strict';

@@ -81,4 +81,4 @@ /*! *****************************************************************************

*/
function NgrxFormReducer(forms) {
return forms.reduce(( /**
function NgrxFormReducer(forms$$1) {
return forms$$1.reduce(( /**
* @param {?} results

@@ -142,5 +142,5 @@ * @param {?} key

/** @type {?} */
var NGRX_FORMS_FEATURE = new i0.InjectionToken('Feature Name');
var NGRX_FORMS_FEATURE = new core.InjectionToken('Feature Name');
/** @type {?} */
var FEATURE_REDUCER_TOKEN = new i0.InjectionToken('Feature Reducers');
var FEATURE_REDUCER_TOKEN = new core.InjectionToken('Feature Reducers');

@@ -151,100 +151,4 @@ /**

*/
var FormService = /** @class */ (function () {
function FormService(fb) {
this.fb = fb;
}
/**
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
FormService.prototype.updateForm = /**
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
function (formDatas, formObject) {
var _this = this;
Object.keys(formDatas).map(( /**
* @param {?} key
* @return {?}
*/function (key) {
/** @type {?} */
var values = formDatas[key];
// FormArray
if (values instanceof Array) {
// The array contains FormGroup items so we need
// to create the groups before adding them to the array
if (values[0] instanceof Object) {
/** @type {?} */
var arrayOfControls = values.map(( /**
* @param {?} field
* @return {?}
*/function (field) { return _this.fb.group(field); }));
formObject.setControl(key, _this.fb.array(arrayOfControls));
}
else {
formObject.setControl(key, _this.fb.array(values));
}
// FormGroup
}
else if (values instanceof Object) {
_this.updateForm(values, ( /** @type {?} */(formObject.get(key))));
}
}));
};
/**
* @param {?} formGroup
* @return {?}
*/
FormService.prototype.getErrors = /**
* @param {?} formGroup
* @return {?}
*/
function (formGroup) {
var _this = this;
return Object.keys(formGroup.controls).reduce(( /**
* @param {?} acc
* @param {?} key
* @return {?}
*/function (acc, key) {
var _a;
/** @type {?} */
var control = formGroup.get(key);
acc = acc === undefined ? {} : acc;
if (control instanceof i1.FormControl && control.errors) {
return __assign({}, acc, (_a = {}, _a[key] = control.errors, _a));
}
else if (control instanceof i1.FormGroup) {
return __assign({}, acc, _this.getErrors(control));
}
else {
return acc;
}
}), {});
};
FormService.decorators = [
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
];
/** @nocollapse */
FormService.ctorParameters = function () {
return [
{ type: i1.FormBuilder }
];
};
/** @nocollapse */ FormService.ngInjectableDef = i0.defineInjectable({ factory: function FormService_Factory() { return new FormService(i0.inject(i1.FormBuilder)); }, token: FormService, providedIn: "root" });
return FormService;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NgrxFormDirective = /** @class */ (function () {
function NgrxFormDirective(featureName, formGroupDirective, store$$1, cd, formService) {
function NgrxFormDirective(featureName, formGroupDirective, store$$1, cd, fb) {
this.featureName = featureName;

@@ -254,3 +158,3 @@ this.formGroupDirective = formGroupDirective;

this.cd = cd;
this.formService = formService;
this.fb = fb;
this.componentDestroy$ = new rxjs.Subject();

@@ -300,3 +204,3 @@ }

*/function (formObject) {
_this.formService.updateForm(formObject, _this.formGroupDirective.form);
_this.updateForm(formObject, _this.formGroupDirective.form);
_this.formGroupDirective.form.patchValue(formObject);

@@ -349,3 +253,3 @@ _this.cd.markForCheck();

value: formDatas,
errors: this.formService.getErrors(this.formGroupDirective.form),
errors: this.getErrors(this.formGroupDirective.form),
pristine: this.formGroupDirective.pristine,

@@ -357,4 +261,78 @@ valid: this.formGroupDirective.valid

/**
* @private
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
NgrxFormDirective.prototype.updateForm = /**
* @private
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
function (formDatas, formObject) {
var _this = this;
Object.keys(formDatas).map(( /**
* @param {?} key
* @return {?}
*/function (key) {
/** @type {?} */
var values = formDatas[key];
// FormArray
if (values instanceof Array) {
// The array contains FormGroup items so we need
// to create the groups before adding them to the array
if (values[0] instanceof Object) {
/** @type {?} */
var arrayOfControls = values.map(( /**
* @param {?} field
* @return {?}
*/function (field) { return _this.fb.group(field); }));
formObject.setControl(key, _this.fb.array(arrayOfControls));
}
else {
formObject.setControl(key, _this.fb.array(values));
}
// FormGroup
}
else if (values instanceof Object) {
_this.updateForm(values, ( /** @type {?} */(formObject.get(key))));
}
}));
};
/**
* @private
* @param {?} formGroup
* @return {?}
*/
NgrxFormDirective.prototype.getErrors = /**
* @private
* @param {?} formGroup
* @return {?}
*/
function (formGroup) {
var _this = this;
return Object.keys(formGroup.controls).reduce(( /**
* @param {?} acc
* @param {?} key
* @return {?}
*/function (acc, key) {
var _a;
/** @type {?} */
var control = formGroup.get(key);
acc = acc === undefined ? {} : acc;
if (control instanceof forms.FormControl && control.errors) {
return __assign({}, acc, (_a = {}, _a[key] = control.errors, _a));
}
else if (control instanceof forms.FormGroup) {
return __assign({}, acc, _this.getErrors(control));
}
else {
return acc;
}
}), {});
};
/**
* @return {?}
*/
NgrxFormDirective.prototype.ngOnDestroy = /**

@@ -368,3 +346,3 @@ * @return {?}

NgrxFormDirective.decorators = [
{ type: i0.Directive, args: [{
{ type: core.Directive, args: [{
selector: '[NgrxFormConnect]'

@@ -376,11 +354,11 @@ },] }

return [
{ type: String, decorators: [{ type: i0.Inject, args: [NGRX_FORMS_FEATURE,] }] },
{ type: i1.FormGroupDirective },
{ type: String, decorators: [{ type: core.Inject, args: [NGRX_FORMS_FEATURE,] }] },
{ type: forms.FormGroupDirective },
{ type: store.Store },
{ type: i0.ChangeDetectorRef },
{ type: FormService }
{ type: core.ChangeDetectorRef },
{ type: forms.FormBuilder }
];
};
NgrxFormDirective.propDecorators = {
path: [{ type: i0.Input, args: ['NgrxFormConnect',] }]
path: [{ type: core.Input, args: ['NgrxFormConnect',] }]
};

@@ -417,3 +395,3 @@ return NgrxFormDirective;

NgrxFormModule.decorators = [
{ type: i0.NgModule, args: [{
{ type: core.NgModule, args: [{
declarations: [NgrxFormDirective],

@@ -440,3 +418,2 @@ exports: [NgrxFormDirective],

exports.ɵa = NgrxFormDirective;
exports.ɵb = FormService;

@@ -443,0 +420,0 @@ Object.defineProperty(exports, '__esModule', { value: true });

@@ -1,2 +0,2 @@

!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@ngrx/store"),require("rxjs/operators"),require("rxjs"),require("@angular/core"),require("@angular/forms")):"function"==typeof define&&define.amd?define("@yoozly/ngrx-form",["exports","@ngrx/store","rxjs/operators","rxjs","@angular/core","@angular/forms"],e):e((r.yoozly=r.yoozly||{},r.yoozly["ngrx-form"]={}),r.store,r.rxjs.operators,r.rxjs,r.ng.core,r.ng.forms)}(this,function(r,t,n,i,o,a){"use strict";var c=function(){return(c=Object.assign||function(r){for(var e,t=1,o=arguments.length;t<o;t++)for(var n in e=arguments[t])Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}).apply(this,arguments)};function s(r,e){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var o,n,i=t.call(r),a=[];try{for(;(void 0===e||0<e--)&&!(o=i.next()).done;)a.push(o.value)}catch(s){n={error:s}}finally{try{o&&!o.done&&(t=i["return"])&&t.call(i)}finally{if(n)throw n.error}}return a}function u(r){return void 0===r&&(r={}),{value:r,errors:{},pristine:!0,valid:!1}}var f=function d(r){this.payload=r,this.type="[NgrxForm] Update Form"},p=new o.InjectionToken("Feature Name"),e=new o.InjectionToken("Feature Reducers"),m=function(){function r(r){this.fb=r}return r.prototype.updateForm=function(o,n){var i=this;Object.keys(o).map(function(r){var e=o[r];if(e instanceof Array)if(e[0]instanceof Object){var t=e.map(function(r){return i.fb.group(r)});n.setControl(r,i.fb.array(t))}else n.setControl(r,i.fb.array(e));else e instanceof Object&&i.updateForm(e,n.get(r))})},r.prototype.getErrors=function(n){var i=this;return Object.keys(n.controls).reduce(function(r,e){var t,o=n.get(e);return r=r===undefined?{}:r,o instanceof a.FormControl&&o.errors?c({},r,((t={})[e]=o.errors,t)):o instanceof a.FormGroup?c({},r,i.getErrors(o)):r},{})},r.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],r.ctorParameters=function(){return[{type:a.FormBuilder}]},r.ngInjectableDef=o.defineInjectable({factory:function(){return new r(o.inject(a.FormBuilder))},token:r,providedIn:"root"}),r}(),l=function(){function r(r,e,t,o,n){this.featureName=r,this.formGroupDirective=e,this.store=t,this.cd=o,this.formService=n,this.componentDestroy$=new i.Subject}return r.prototype.ngOnInit=function(){this.subscriptions(),this.storeToForm(),this.formToStore()},r.prototype.subscriptions=function(){var e=this;this.formChanges$=this.formGroupDirective.form.valueChanges.pipe(n.debounceTime(300)),this.storeDatas$=this.store.pipe(t.select(function(r){return r[e.featureName][e.path].value}))},r.prototype.storeToForm=function(){var e=this;this.storeDatas$.pipe(n.map(function(r){e.formService.updateForm(r,e.formGroupDirective.form),e.formGroupDirective.form.patchValue(r),e.cd.markForCheck()}),n.takeUntil(this.componentDestroy$)).subscribe()},r.prototype.formToStore=function(){var o=this;this.formChanges$.pipe(n.withLatestFrom(this.storeDatas$),n.filter(function(r){var e=s(r,2),t=e[0],o=e[1];return JSON.stringify(t)!==JSON.stringify(o)}),n.map(function(r){var e=s(r,2),t=e[0];e[1];return o.store.dispatch(new f(o.mapActionPayload(t)))}),n.takeUntil(this.componentDestroy$)).subscribe()},r.prototype.mapActionPayload=function(r){return{feature:this.featureName,path:this.path,form:{value:r,errors:this.formService.getErrors(this.formGroupDirective.form),pristine:this.formGroupDirective.pristine,valid:this.formGroupDirective.valid}}},r.prototype.ngOnDestroy=function(){this.componentDestroy$.next(),this.componentDestroy$.complete()},r.decorators=[{type:o.Directive,args:[{selector:"[NgrxFormConnect]"}]}],r.ctorParameters=function(){return[{type:String,decorators:[{type:o.Inject,args:[p]}]},{type:a.FormGroupDirective},{type:t.Store},{type:o.ChangeDetectorRef},{type:m}]},r.propDecorators={path:[{type:o.Input,args:["NgrxFormConnect"]}]},r}(),y=function(){function e(){}return e.forFeature=function(r){return{ngModule:e,providers:[{provide:p,useValue:r}]}},e.decorators=[{type:o.NgModule,args:[{declarations:[l],exports:[l],imports:[]}]}],e}();r.getInitialState=u,r.NgrxFormReducer=function h(r){return r.reduce(function(r,e){var t;return c({},r,((t={})[e]=function(r,e){return void 0===r&&(r=u()),r},t))},{})},r.ngrxForm=function v(u){return function(r,e){var t,o;if("[NgrxForm] Update Form"==e.type){var n=e.payload,i=n.feature,a=n.path,s=n.form;r=c({},r,((t={})[i]=c({},r[i],((o={})[a]=c({},r[i][a],s),o)),t))}return u(r,e)}},r.Updateform=f,r.NGRX_FORMS_FEATURE=p,r.FEATURE_REDUCER_TOKEN=e,r.NgrxFormModule=y,r.ɵa=l,r.ɵb=m,Object.defineProperty(r,"__esModule",{value:!0})});
!function(r,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/forms"),require("@ngrx/store"),require("rxjs/operators"),require("rxjs")):"function"==typeof define&&define.amd?define("@yoozly/ngrx-form",["exports","@angular/core","@angular/forms","@ngrx/store","rxjs/operators","rxjs"],t):t((r.yoozly=r.yoozly||{},r.yoozly["ngrx-form"]={}),r.ng.core,r.ng.forms,r.store,r.rxjs.operators,r.rxjs)}(this,function(r,e,s,o,n,i){"use strict";var c=function(){return(c=Object.assign||function(r){for(var t,e=1,o=arguments.length;e<o;e++)for(var n in t=arguments[e])Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n]);return r}).apply(this,arguments)};function a(r,t){var e="function"==typeof Symbol&&r[Symbol.iterator];if(!e)return r;var o,n,i=e.call(r),s=[];try{for(;(void 0===t||0<t--)&&!(o=i.next()).done;)s.push(o.value)}catch(a){n={error:a}}finally{try{o&&!o.done&&(e=i["return"])&&e.call(i)}finally{if(n)throw n.error}}return s}function u(r){return void 0===r&&(r={}),{value:r,errors:{},pristine:!0,valid:!1}}var p=function l(r){this.payload=r,this.type="[NgrxForm] Update Form"},f=new e.InjectionToken("Feature Name"),t=new e.InjectionToken("Feature Reducers"),m=function(){function r(r,t,e,o,n){this.featureName=r,this.formGroupDirective=t,this.store=e,this.cd=o,this.fb=n,this.componentDestroy$=new i.Subject}return r.prototype.ngOnInit=function(){this.subscriptions(),this.storeToForm(),this.formToStore()},r.prototype.subscriptions=function(){var t=this;this.formChanges$=this.formGroupDirective.form.valueChanges.pipe(n.debounceTime(300)),this.storeDatas$=this.store.pipe(o.select(function(r){return r[t.featureName][t.path].value}))},r.prototype.storeToForm=function(){var t=this;this.storeDatas$.pipe(n.map(function(r){t.updateForm(r,t.formGroupDirective.form),t.formGroupDirective.form.patchValue(r),t.cd.markForCheck()}),n.takeUntil(this.componentDestroy$)).subscribe()},r.prototype.formToStore=function(){var o=this;this.formChanges$.pipe(n.withLatestFrom(this.storeDatas$),n.filter(function(r){var t=a(r,2),e=t[0],o=t[1];return JSON.stringify(e)!==JSON.stringify(o)}),n.map(function(r){var t=a(r,2),e=t[0];t[1];return o.store.dispatch(new p(o.mapActionPayload(e)))}),n.takeUntil(this.componentDestroy$)).subscribe()},r.prototype.mapActionPayload=function(r){return{feature:this.featureName,path:this.path,form:{value:r,errors:this.getErrors(this.formGroupDirective.form),pristine:this.formGroupDirective.pristine,valid:this.formGroupDirective.valid}}},r.prototype.updateForm=function(o,n){var i=this;Object.keys(o).map(function(r){var t=o[r];if(t instanceof Array)if(t[0]instanceof Object){var e=t.map(function(r){return i.fb.group(r)});n.setControl(r,i.fb.array(e))}else n.setControl(r,i.fb.array(t));else t instanceof Object&&i.updateForm(t,n.get(r))})},r.prototype.getErrors=function(n){var i=this;return Object.keys(n.controls).reduce(function(r,t){var e,o=n.get(t);return r=r===undefined?{}:r,o instanceof s.FormControl&&o.errors?c({},r,((e={})[t]=o.errors,e)):o instanceof s.FormGroup?c({},r,i.getErrors(o)):r},{})},r.prototype.ngOnDestroy=function(){this.componentDestroy$.next(),this.componentDestroy$.complete()},r.decorators=[{type:e.Directive,args:[{selector:"[NgrxFormConnect]"}]}],r.ctorParameters=function(){return[{type:String,decorators:[{type:e.Inject,args:[f]}]},{type:s.FormGroupDirective},{type:o.Store},{type:e.ChangeDetectorRef},{type:s.FormBuilder}]},r.propDecorators={path:[{type:e.Input,args:["NgrxFormConnect"]}]},r}(),y=function(){function t(){}return t.forFeature=function(r){return{ngModule:t,providers:[{provide:f,useValue:r}]}},t.decorators=[{type:e.NgModule,args:[{declarations:[m],exports:[m],imports:[]}]}],t}();r.getInitialState=u,r.NgrxFormReducer=function h(r){return r.reduce(function(r,t){var e;return c({},r,((e={})[t]=function(r,t){return void 0===r&&(r=u()),r},e))},{})},r.ngrxForm=function d(u){return function(r,t){var e,o;if("[NgrxForm] Update Form"==t.type){var n=t.payload,i=n.feature,s=n.path,a=n.form;r=c({},r,((e={})[i]=c({},r[i],((o={})[s]=c({},r[i][s],a),o)),e))}return u(r,t)}},r.Updateform=p,r.NGRX_FORMS_FEATURE=f,r.FEATURE_REDUCER_TOKEN=t,r.NgrxFormModule=y,r.ɵa=m,Object.defineProperty(r,"__esModule",{value:!0})});
//# sourceMappingURL=yoozly-ngrx-form.umd.min.js.map

@@ -6,3 +6,3 @@ /**

import { Directive, Input, Inject, ChangeDetectorRef } from '@angular/core';
import { FormGroupDirective } from '@angular/forms';
import { FormGroupDirective, FormGroup, FormBuilder, FormControl } from '@angular/forms';
import { Store, select } from '@ngrx/store';

@@ -12,3 +12,2 @@ import { debounceTime, takeUntil, filter, map, withLatestFrom } from 'rxjs/operators';

import { NGRX_FORMS_FEATURE } from '../services/form.tokens';
import * as fromService from '../services';
import * as fromAction from '../store/form.actions';

@@ -21,5 +20,5 @@ export class NgrxFormDirective {

* @param {?} cd
* @param {?} formService
* @param {?} fb
*/
constructor(featureName, formGroupDirective, store, cd, formService) {
constructor(featureName, formGroupDirective, store, cd, fb) {
this.featureName = featureName;

@@ -29,3 +28,3 @@ this.formGroupDirective = formGroupDirective;

this.cd = cd;
this.formService = formService;
this.fb = fb;
this.componentDestroy$ = new Subject();

@@ -64,3 +63,3 @@ }

(formObject) => {
this.formService.updateForm(formObject, this.formGroupDirective.form);
this.updateForm(formObject, this.formGroupDirective.form);
this.formGroupDirective.form.patchValue(formObject);

@@ -99,3 +98,3 @@ this.cd.markForCheck();

value: formDatas,
errors: this.formService.getErrors(this.formGroupDirective.form),
errors: this.getErrors(this.formGroupDirective.form),
pristine: this.formGroupDirective.pristine,

@@ -107,4 +106,67 @@ valid: this.formGroupDirective.valid

/**
* @private
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
updateForm(formDatas, formObject) {
Object.keys(formDatas).map((/**
* @param {?} key
* @return {?}
*/
key => {
/** @type {?} */
const values = formDatas[key];
// FormArray
if (values instanceof Array) {
// The array contains FormGroup items so we need
// to create the groups before adding them to the array
if (values[0] instanceof Object) {
/** @type {?} */
const arrayOfControls = values.map((/**
* @param {?} field
* @return {?}
*/
field => this.fb.group(field)));
formObject.setControl(key, this.fb.array(arrayOfControls));
}
else {
formObject.setControl(key, this.fb.array(values));
}
// FormGroup
}
else if (values instanceof Object) {
this.updateForm(values, (/** @type {?} */ (formObject.get(key))));
}
}));
}
/**
* @private
* @param {?} formGroup
* @return {?}
*/
getErrors(formGroup) {
return Object.keys(formGroup.controls).reduce((/**
* @param {?} acc
* @param {?} key
* @return {?}
*/
(acc, key) => {
/** @type {?} */
const control = formGroup.get(key);
acc = acc === undefined ? {} : acc;
if (control instanceof FormControl && control.errors) {
return Object.assign({}, acc, { [key]: control.errors });
}
else if (control instanceof FormGroup) {
return Object.assign({}, acc, this.getErrors(control));
}
else {
return acc;
}
}), {});
}
/**
* @return {?}
*/
ngOnDestroy() {

@@ -126,3 +188,3 @@ this.componentDestroy$.next();

{ type: ChangeDetectorRef },
{ type: fromService.FormService }
{ type: FormBuilder }
];

@@ -171,4 +233,4 @@ NgrxFormDirective.propDecorators = {

*/
NgrxFormDirective.prototype.formService;
NgrxFormDirective.prototype.fb;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5kaXJlY3RpdmVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHlvb3pseS9uZ3J4LWZvcm0vIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9mb3JtLmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLFNBQVMsRUFDVCxNQUFNLEVBQ04sR0FBRyxFQUNILGNBQWMsRUFDZixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0QsT0FBTyxLQUFLLFdBQVcsTUFBTSxhQUFhLENBQUM7QUFFM0MsT0FBTyxLQUFLLFVBQVUsTUFBTSx1QkFBdUIsQ0FBQztBQUtwRCxNQUFNLE9BQU8saUJBQWlCOzs7Ozs7OztJQU81QixZQUNxQyxXQUFtQixFQUM5QyxrQkFBc0MsRUFDdEMsS0FBaUIsRUFDakIsRUFBcUIsRUFDckIsV0FBb0M7UUFKVCxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUM5Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBVHRDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFVaEQsQ0FBQzs7OztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIs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QixpQ0FBdUM7Ozs7O0lBRXZDLDhDQUFtRDs7Ozs7SUFDbkQseUNBQTRDOzs7OztJQUM1Qyx3Q0FBb0Q7O0lBR2xELHdDQUFzRDs7Ozs7SUFDdEQsK0NBQThDOzs7OztJQUM5QyxrQ0FBeUI7Ozs7O0lBQ3pCLCtCQUE2Qjs7Ozs7SUFDN0Isd0NBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwRGlyZWN0aXZlLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdG9yZSwgc2VsZWN0IH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgZGVib3VuY2VUaW1lLFxuICB0YWtlVW50aWwsXG4gIGZpbHRlcixcbiAgbWFwLFxuICB3aXRoTGF0ZXN0RnJvbVxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5HUlhfRk9STVNfRkVBVFVSRSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zvcm0udG9rZW5zJztcbmltcG9ydCB7IE5ncnhGb3JtU3RhdGUsIFVwZGF0ZUZvcm1QYXlsb2FkIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0ubW9kZWxzJztcbmltcG9ydCAqIGFzIGZyb21TZXJ2aWNlIGZyb20gJy4uL3NlcnZpY2VzJztcblxuaW1wb3J0ICogYXMgZnJvbUFjdGlvbiBmcm9tICcuLi9zdG9yZS9mb3JtLmFjdGlvbnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbTmdyeEZvcm1Db25uZWN0XSdcbn0pXG5leHBvcnQgY2xhc3MgTmdyeEZvcm1EaXJlY3RpdmUge1xuICBASW5wdXQoJ05ncnhGb3JtQ29ubmVjdCcpIHBhdGg6IHN0cmluZztcblxuICBwcml2YXRlIGNvbXBvbmVudERlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBmb3JtQ2hhbmdlcyQ6IE9ic2VydmFibGU8Rm9ybUdyb3VwPjtcbiAgcHJpdmF0ZSBzdG9yZURhdGFzJDogT2JzZXJ2YWJsZTxOZ3J4Rm9ybVN0YXRlPGFueT4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTkdSWF9GT1JNU19GRUFUVVJFKSBwdWJsaWMgZmVhdHVyZU5hbWU6IHN0cmluZyxcbiAgICBwcml2YXRlIGZvcm1Hcm91cERpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBmb3JtU2VydmljZTogZnJvbVNlcnZpY2UuRm9ybVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucygpO1xuICAgIHRoaXMuc3RvcmVUb0Zvcm0oKTtcbiAgICB0aGlzLmZvcm1Ub1N0b3JlKCk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMoKSB7XG4gICAgdGhpcy5mb3JtQ2hhbmdlcyQgPSB0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDMwMClcbiAgICApO1xuICAgIHRoaXMuc3RvcmVEYXRhcyQgPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgICBzZWxlY3QoXG4gICAgICAgIChkYXRhOiBOZ3J4Rm9ybVN0YXRlPGFueT4pID0+IGRhdGFbdGhpcy5mZWF0dXJlTmFtZV1bdGhpcy5wYXRoXS52YWx1ZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0b3JlVG9Gb3JtKCkge1xuICAgIHRoaXMuc3RvcmVEYXRhcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGZvcm1PYmplY3Q6IE5ncnhGb3JtU3RhdGU8YW55PikgPT4ge1xuICAgICAgICAgIHRoaXMuZm9ybVNlcnZpY2UudXBkYXRlRm9ybShmb3JtT2JqZWN0LCB0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5mb3JtKTtcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5mb3JtLnBhdGNoVmFsdWUoZm9ybU9iamVjdCk7XG4gICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtVG9TdG9yZSgpIHtcbiAgICB0aGlzLmZvcm1DaGFuZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmVEYXRhcyQpLFxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgKFtmb3JtRGF0YXMsIHN0b3JlRGF0YXNdKSA9PlxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZm9ybURhdGFzKSAhPT0gSlNPTi5zdHJpbmdpZnkoc3RvcmVEYXRhcylcbiAgICAgICAgKSxcbiAgICAgICAgbWFwKChbZm9ybURhdGFzLCBzdG9yZURhdGFzXSkgPT5cbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IGZyb21BY3Rpb24uVXBkYXRlZm9ybSh0aGlzLm1hcEFjdGlvblBheWxvYWQoZm9ybURhdGFzKSlcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBBY3Rpb25QYXlsb2FkKGZvcm1EYXRhczogRm9ybUdyb3VwKTogVXBkYXRlRm9ybVBheWxvYWQ8YW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZlYXR1cmU6IHRoaXMuZmVhdHVyZU5hbWUsXG4gICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICBmb3JtOiB7XG4gICAgICAgIHZhbHVlOiBmb3JtRGF0YXMsXG4gICAgICAgIGVycm9yczogdGhpcy5mb3JtU2VydmljZS5nZXRFcnJvcnModGhpcy5mb3JtR3JvdXBEaXJlY3RpdmUuZm9ybSksXG4gICAgICAgIHByaXN0aW5lOiB0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5wcmlzdGluZSxcbiAgICAgICAgdmFsaWQ6IHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLnZhbGlkXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5kaXJlY3RpdmVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHlvb3pseS9uZ3J4LWZvcm0vIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9mb3JtLmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsV0FBVyxFQUNaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUNMLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxFQUNOLEdBQUcsRUFDSCxjQUFjLEVBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzdELE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFLcEQsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7Ozs7SUFPNUIsWUFDcUMsV0FBbUIsRUFDOUMsa0JBQXNDLEVBQ3RDLEtBQWlCLEVBQ2pCLEVBQXFCLEVBQ3JCLEVBQWU7UUFKWSxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUM5Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQVRqQixzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBVWhELENBQUM7Ozs7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FB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L0M7aUJBQU07Z0JBQ0wsT0FBTyxHQUFHLENBQUM7YUFDWjtRQUNILENBQUMsR0FBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7WUF0SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7YUFDOUI7Ozs7eUNBU0ksTUFBTSxTQUFDLGtCQUFrQjtZQS9CNUIsa0JBQWtCO1lBS1gsS0FBSztZQVBxQixpQkFBaUI7WUFJbEQsV0FBVzs7O21CQXNCVixLQUFLLFNBQUMsaUJBQWlCOzs7O0lBQXhCLGlDQUF1Qzs7Ozs7SUFFdkMsOENBQW1EOzs7OztJQUNuRCx5Q0FBNEM7Ozs7O0lBQzVDLHdDQUFvRDs7SUFHbEQsd0NBQXNEOzs7OztJQUN0RCwrQ0FBOEM7Ozs7O0lBQzlDLGtDQUF5Qjs7Ozs7SUFDekIsK0JBQTZCOzs7OztJQUM3QiwrQkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBJbmplY3QsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIEZvcm1Hcm91cCxcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Db250cm9sXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN0b3JlLCBzZWxlY3QgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBkZWJvdW5jZVRpbWUsXG4gIHRha2VVbnRpbCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHdpdGhMYXRlc3RGcm9tXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTkdSWF9GT1JNU19GRUFUVVJFIH0gZnJvbSAnLi4vc2VydmljZXMvZm9ybS50b2tlbnMnO1xuaW1wb3J0IHsgTmdyeEZvcm1TdGF0ZSwgVXBkYXRlRm9ybVBheWxvYWQgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS5tb2RlbHMnO1xuXG5pbXBvcnQgKiBhcyBmcm9tQWN0aW9uIGZyb20gJy4uL3N0b3JlL2Zvcm0uYWN0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tOZ3J4Rm9ybUNvbm5lY3RdJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3J4Rm9ybURpcmVjdGl2ZSB7XG4gIEBJbnB1dCgnTmdyeEZvcm1Db25uZWN0JykgcGF0aDogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29tcG9uZW50RGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIGZvcm1DaGFuZ2VzJDogT2JzZXJ2YWJsZTxGb3JtR3JvdXA+O1xuICBwcml2YXRlIHN0b3JlRGF0YXMkOiBPYnNlcnZhYmxlPE5ncnhGb3JtU3RhdGU8YW55Pj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChOR1JYX0ZPUk1TX0ZFQVRVUkUpIHB1YmxpYyBmZWF0dXJlTmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgZm9ybUdyb3VwRGlyZWN0aXZlOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlclxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zKCk7XG4gICAgdGhpcy5zdG9yZVRvRm9ybSgpO1xuICAgIHRoaXMuZm9ybVRvU3RvcmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucygpIHtcbiAgICB0aGlzLmZvcm1DaGFuZ2VzJCA9IHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKVxuICAgICk7XG4gICAgdGhpcy5zdG9yZURhdGFzJCA9IHRoaXMuc3RvcmUucGlwZShcbiAgICAgIHNlbGVjdChcbiAgICAgICAgKGRhdGE6IE5ncnhGb3JtU3RhdGU8YW55PikgPT4gZGF0YVt0aGlzLmZlYXR1cmVOYW1lXVt0aGlzLnBhdGhdLnZhbHVlXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcmVUb0Zvcm0oKSB7XG4gICAgdGhpcy5zdG9yZURhdGFzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZm9ybU9iamVjdDogTmdyeEZvcm1TdGF0ZTxhbnk+KSA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVGb3JtKGZvcm1PYmplY3QsIHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLmZvcm0pO1xuICAgICAgICAgIHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLmZvcm0ucGF0Y2hWYWx1ZShmb3JtT2JqZWN0KTtcbiAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1Ub1N0b3JlKCkge1xuICAgIHRoaXMuZm9ybUNoYW5nZXMkXG4gICAgICAucGlwZShcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZURhdGFzJCksXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAoW2Zvcm1EYXRhcywgc3RvcmVEYXRhc10pID0+XG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShmb3JtRGF0YXMpICE9PSBKU09OLnN0cmluZ2lmeShzdG9yZURhdGFzKVxuICAgICAgICApLFxuICAgICAgICBtYXAoKFtmb3JtRGF0YXMsIHN0b3JlRGF0YXNdKSA9PlxuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICBuZXcgZnJvbUFjdGlvbi5VcGRhdGVmb3JtKHRoaXMubWFwQWN0aW9uUGF5bG9hZChmb3JtRGF0YXMpKVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIG1hcEFjdGlvblBheWxvYWQoZm9ybURhdGFzOiBGb3JtR3JvdXApOiBVcGRhdGVGb3JtUGF5bG9hZDxhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZmVhdHVyZTogdGhpcy5mZWF0dXJlTmFtZSxcbiAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgIGZvcm06IHtcbiAgICAgICAgdmFsdWU6IGZvcm1EYXRhcyxcbiAgICAgICAgZXJyb3JzOiB0aGlzLmdldEVycm9ycyh0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5mb3JtKSxcbiAgICAgICAgcHJpc3RpbmU6IHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLnByaXN0aW5lLFxuICAgICAgICB2YWxpZDogdGhpcy5mb3JtR3JvdXBEaXJlY3RpdmUudmFsaWRcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JtKGZvcm1EYXRhcywgZm9ybU9iamVjdDogRm9ybUdyb3VwKSB7XG4gICAgT2JqZWN0LmtleXMoZm9ybURhdGFzKS5tYXAoa2V5ID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IGZvcm1EYXRhc1trZXldO1xuXG4gICAgICAvLyBGb3JtQXJyYXlcbiAgICAgIGlmICh2YWx1ZXMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAvLyBUaGUgYXJyYXkgY29udGFpbnMgRm9ybUdyb3VwIGl0ZW1zIHNvIHdlIG5lZWRcbiAgICAgICAgLy8gdG8gY3JlYXRlIHRoZSBncm91cHMgYmVmb3JlIGFkZGluZyB0aGVtIHRvIHRoZSBhcnJheVxuICAgICAgICBpZiAodmFsdWVzWzBdIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgY29uc3QgYXJyYXlPZkNvbnRyb2xzID0gdmFsdWVzLm1hcChmaWVsZCA9PiB0aGlzLmZiLmdyb3VwKGZpZWxkKSk7XG4gICAgICAgICAgZm9ybU9iamVjdC5zZXRDb250cm9sKGtleSwgdGhpcy5mYi5hcnJheShhcnJheU9mQ29udHJvbHMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtT2JqZWN0LnNldENvbnRyb2woa2V5LCB0aGlzLmZiLmFycmF5KHZhbHVlcykpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9ybUdyb3VwXG4gICAgICB9IGVsc2UgaWYgKHZhbHVlcyBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm0odmFsdWVzLCBmb3JtT2JqZWN0LmdldChrZXkpIGFzIEZvcm1Hcm91cCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEVycm9ycyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGtleSk7XG4gICAgICBhY2MgPSBhY2MgPT09IHVuZGVmaW5lZCA/IHt9IDogYWNjO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCAmJiBjb250cm9sLmVycm9ycykge1xuICAgICAgICByZXR1cm4geyAuLi5hY2MsIC4uLnsgW2tleV06IGNvbnRyb2wuZXJyb3JzIH0gfTtcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICByZXR1cm4geyAuLi5hY2MsIC4uLnRoaXMuZ2V0RXJyb3JzKGNvbnRyb2wpIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfVxuICAgIH0sIHt9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19

@@ -10,3 +10,2 @@ /**

export { NgrxFormDirective as ɵa } from './lib/directives/form.directives';
export { FormService as ɵb } from './lib/services';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieW9vemx5LW5ncngtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B5b296bHkvbmdyeC1mb3JtLyIsInNvdXJjZXMiOlsieW9vemx5LW5ncngtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsa0lBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge05ncnhGb3JtRGlyZWN0aXZlIGFzIMm1YX0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9mb3JtLmRpcmVjdGl2ZXMnO1xuZXhwb3J0IHtGb3JtU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vbGliL3NlcnZpY2VzJzsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieW9vemx5LW5ncngtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B5b296bHkvbmdyeC1mb3JtLyIsInNvdXJjZXMiOlsieW9vemx5LW5ncngtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsa0lBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcblxuZXhwb3J0IHtOZ3J4Rm9ybURpcmVjdGl2ZSBhcyDJtWF9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZm9ybS5kaXJlY3RpdmVzJzsiXX0=

@@ -7,3 +7,3 @@ /**

import { Directive, Input, Inject, ChangeDetectorRef } from '@angular/core';
import { FormGroupDirective } from '@angular/forms';
import { FormGroupDirective, FormGroup, FormBuilder, FormControl } from '@angular/forms';
import { Store, select } from '@ngrx/store';

@@ -13,6 +13,5 @@ import { debounceTime, takeUntil, filter, map, withLatestFrom } from 'rxjs/operators';

import { NGRX_FORMS_FEATURE } from '../services/form.tokens';
import * as fromService from '../services';
import * as fromAction from '../store/form.actions';
var NgrxFormDirective = /** @class */ (function () {
function NgrxFormDirective(featureName, formGroupDirective, store, cd, formService) {
function NgrxFormDirective(featureName, formGroupDirective, store, cd, fb) {
this.featureName = featureName;

@@ -22,3 +21,3 @@ this.formGroupDirective = formGroupDirective;

this.cd = cd;
this.formService = formService;
this.fb = fb;
this.componentDestroy$ = new Subject();

@@ -70,3 +69,3 @@ }

function (formObject) {
_this.formService.updateForm(formObject, _this.formGroupDirective.form);
_this.updateForm(formObject, _this.formGroupDirective.form);
_this.formGroupDirective.form.patchValue(formObject);

@@ -121,3 +120,3 @@ _this.cd.markForCheck();

value: formDatas,
errors: this.formService.getErrors(this.formGroupDirective.form),
errors: this.getErrors(this.formGroupDirective.form),
pristine: this.formGroupDirective.pristine,

@@ -129,4 +128,81 @@ valid: this.formGroupDirective.valid

/**
* @private
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
NgrxFormDirective.prototype.updateForm = /**
* @private
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
function (formDatas, formObject) {
var _this = this;
Object.keys(formDatas).map((/**
* @param {?} key
* @return {?}
*/
function (key) {
/** @type {?} */
var values = formDatas[key];
// FormArray
if (values instanceof Array) {
// The array contains FormGroup items so we need
// to create the groups before adding them to the array
if (values[0] instanceof Object) {
/** @type {?} */
var arrayOfControls = values.map((/**
* @param {?} field
* @return {?}
*/
function (field) { return _this.fb.group(field); }));
formObject.setControl(key, _this.fb.array(arrayOfControls));
}
else {
formObject.setControl(key, _this.fb.array(values));
}
// FormGroup
}
else if (values instanceof Object) {
_this.updateForm(values, (/** @type {?} */ (formObject.get(key))));
}
}));
};
/**
* @private
* @param {?} formGroup
* @return {?}
*/
NgrxFormDirective.prototype.getErrors = /**
* @private
* @param {?} formGroup
* @return {?}
*/
function (formGroup) {
var _this = this;
return Object.keys(formGroup.controls).reduce((/**
* @param {?} acc
* @param {?} key
* @return {?}
*/
function (acc, key) {
var _a;
/** @type {?} */
var control = formGroup.get(key);
acc = acc === undefined ? {} : acc;
if (control instanceof FormControl && control.errors) {
return tslib_1.__assign({}, acc, (_a = {}, _a[key] = control.errors, _a));
}
else if (control instanceof FormGroup) {
return tslib_1.__assign({}, acc, _this.getErrors(control));
}
else {
return acc;
}
}), {});
};
/**
* @return {?}
*/
NgrxFormDirective.prototype.ngOnDestroy = /**

@@ -150,3 +226,3 @@ * @return {?}

{ type: ChangeDetectorRef },
{ type: fromService.FormService }
{ type: FormBuilder }
]; };

@@ -198,4 +274,4 @@ NgrxFormDirective.propDecorators = {

*/
NgrxFormDirective.prototype.formService;
NgrxFormDirective.prototype.fb;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5kaXJlY3RpdmVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHlvb3pseS9uZ3J4LWZvcm0vIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9mb3JtLmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLGtCQUFrQixFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUNMLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxFQUNOLEdBQUcsRUFDSCxjQUFjLEVBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sS0FBSyxXQUFXLE1BQU0sYUFBYSxDQUFDO0FBRTNDLE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQ7SUFVRSwyQkFDcUMsV0FBbUIsRUFDOUMsa0JBQXNDLEVBQ3RDLEtBQWlCLEVBQ2pCLEVBQXFCLEVBQ3JCLFdBQW9DO1FBSlQsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDOUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQVR0QyxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBVWhELENBQUM7Ozs7SUFFSixvQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcs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LE1BQU0sU0FBQyxrQkFBa0I7Z0JBNUJyQixrQkFBa0I7Z0JBQ2xCLEtBQUs7Z0JBRnFCLGlCQUFpQjtnQkFpQzNCLFdBQVcsQ0FBQyxXQUFXOzs7dUJBWDdDLEtBQUssU0FBQyxpQkFBaUI7O0lBK0UxQix3QkFBQztDQUFBLEFBbkZELElBbUZDO1NBaEZZLGlCQUFpQjs7O0lBQzVCLGlDQUF1Qzs7Ozs7SUFFdkMsOENBQW1EOzs7OztJQUNuRCx5Q0FBNEM7Ozs7O0lBQzVDLHdDQUFvRDs7SUFHbEQsd0NBQXNEOzs7OztJQUN0RCwrQ0FBOEM7Ozs7O0lBQzlDLGtDQUF5Qjs7Ozs7SUFDekIsK0JBQTZCOzs7OztJQUM3Qix3Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBJbmplY3QsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXBEaXJlY3RpdmUsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN0b3JlLCBzZWxlY3QgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBkZWJvdW5jZVRpbWUsXG4gIHRha2VVbnRpbCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHdpdGhMYXRlc3RGcm9tXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTkdSWF9GT1JNU19GRUFUVVJFIH0gZnJvbSAnLi4vc2VydmljZXMvZm9ybS50b2tlbnMnO1xuaW1wb3J0IHsgTmdyeEZvcm1TdGF0ZSwgVXBkYXRlRm9ybVBheWxvYWQgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS5tb2RlbHMnO1xuaW1wb3J0ICogYXMgZnJvbVNlcnZpY2UgZnJvbSAnLi4vc2VydmljZXMnO1xuXG5pbXBvcnQgKiBhcyBmcm9tQWN0aW9uIGZyb20gJy4uL3N0b3JlL2Zvcm0uYWN0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tOZ3J4Rm9ybUNvbm5lY3RdJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3J4Rm9ybURpcmVjdGl2ZSB7XG4gIEBJbnB1dCgnTmdyeEZvcm1Db25uZWN0JykgcGF0aDogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29tcG9uZW50RGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIGZvcm1DaGFuZ2VzJDogT2JzZXJ2YWJsZTxGb3JtR3JvdXA+O1xuICBwcml2YXRlIHN0b3JlRGF0YXMkOiBPYnNlcnZhYmxlPE5ncnhGb3JtU3RhdGU8YW55Pj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChOR1JYX0ZPUk1TX0ZFQVRVUkUpIHB1YmxpYyBmZWF0dXJlTmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgZm9ybUdyb3VwRGlyZWN0aXZlOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGZvcm1TZXJ2aWNlOiBmcm9tU2VydmljZS5Gb3JtU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zKCk7XG4gICAgdGhpcy5zdG9yZVRvRm9ybSgpO1xuICAgIHRoaXMuZm9ybVRvU3RvcmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucygpIHtcbiAgICB0aGlzLmZvcm1DaGFuZ2VzJCA9IHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKVxuICAgICk7XG4gICAgdGhpcy5zdG9yZURhdGFzJCA9IHRoaXMuc3RvcmUucGlwZShcbiAgICAgIHNlbGVjdChcbiAgICAgICAgKGRhdGE6IE5ncnhGb3JtU3RhdGU8YW55PikgPT4gZGF0YVt0aGlzLmZlYXR1cmVOYW1lXVt0aGlzLnBhdGhdLnZhbHVlXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcmVUb0Zvcm0oKSB7XG4gICAgdGhpcy5zdG9yZURhdGFzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZm9ybU9iamVjdDogTmdyeEZvcm1TdGF0ZTxhbnk+KSA9PiB7XG4gICAgICAgICAgdGhpcy5mb3JtU2VydmljZS51cGRhdGVGb3JtKGZvcm1PYmplY3QsIHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLmZvcm0pO1xuICAgICAgICAgIHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLmZvcm0ucGF0Y2hWYWx1ZShmb3JtT2JqZWN0KTtcbiAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1Ub1N0b3JlKCkge1xuICAgIHRoaXMuZm9ybUNoYW5nZXMkXG4gICAgICAucGlwZShcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZURhdGFzJCksXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAoW2Zvcm1EYXRhcywgc3RvcmVEYXRhc10pID0+XG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShmb3JtRGF0YXMpICE9PSBKU09OLnN0cmluZ2lmeShzdG9yZURhdGFzKVxuICAgICAgICApLFxuICAgICAgICBtYXAoKFtmb3JtRGF0YXMsIHN0b3JlRGF0YXNdKSA9PlxuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICBuZXcgZnJvbUFjdGlvbi5VcGRhdGVmb3JtKHRoaXMubWFwQWN0aW9uUGF5bG9hZChmb3JtRGF0YXMpKVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIG1hcEFjdGlvblBheWxvYWQoZm9ybURhdGFzOiBGb3JtR3JvdXApOiBVcGRhdGVGb3JtUGF5bG9hZDxhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZmVhdHVyZTogdGhpcy5mZWF0dXJlTmFtZSxcbiAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgIGZvcm06IHtcbiAgICAgICAgdmFsdWU6IGZvcm1EYXRhcyxcbiAgICAgICAgZXJyb3JzOiB0aGlzLmZvcm1TZXJ2aWNlLmdldEVycm9ycyh0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5mb3JtKSxcbiAgICAgICAgcHJpc3RpbmU6IHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLnByaXN0aW5lLFxuICAgICAgICB2YWxpZDogdGhpcy5mb3JtR3JvdXBEaXJlY3RpdmUudmFsaWRcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5kaXJlY3RpdmVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHlvb3pseS9uZ3J4LWZvcm0vIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9mb3JtLmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixTQUFTLEVBQ1QsV0FBVyxFQUNYLFdBQVcsRUFDWixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFDTCxZQUFZLEVBQ1osU0FBUyxFQUNULE1BQU0sRUFDTixHQUFHLEVBQ0gsY0FBYyxFQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc3RCxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBRXBEO0lBVUUsMkJBQ3FDLFdBQW1CLEVBQzlDLGtCQUFzQyxFQUN0QyxLQUFpQixFQUNqQixFQUFxQixFQUNyQixFQUFlO1FBSlksZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDOUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFUakIsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQVVoRCxDQUFDOzs7O0lBRUosb0NBQVE7OztJQUFSO1FBQ0UsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FB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LEdBQUMsR0FBRyxJQUFHLE9BQU8sQ0FBQyxNQUFNLE9BQUs7YUFDakQ7aUJBQU0sSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFO2dCQUN2Qyw0QkFBWSxHQUFHLEVBQUssS0FBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRzthQUMvQztpQkFBTTtnQkFDTCxPQUFPLEdBQUcsQ0FBQzthQUNaO1FBQ0gsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQzs7OztJQUVELHVDQUFXOzs7SUFBWDtRQUNFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7Z0JBdEhGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2lCQUM5Qjs7Ozs2Q0FTSSxNQUFNLFNBQUMsa0JBQWtCO2dCQS9CNUIsa0JBQWtCO2dCQUtYLEtBQUs7Z0JBUHFCLGlCQUFpQjtnQkFJbEQsV0FBVzs7O3VCQXNCVixLQUFLLFNBQUMsaUJBQWlCOztJQW1IMUIsd0JBQUM7Q0FBQSxBQXZIRCxJQXVIQztTQXBIWSxpQkFBaUI7OztJQUM1QixpQ0FBdUM7Ozs7O0lBRXZDLDhDQUFtRDs7Ozs7SUFDbkQseUNBQTRDOzs7OztJQUM1Qyx3Q0FBb0Q7O0lBR2xELHdDQUFzRDs7Ozs7SUFDdEQsK0NBQThDOzs7OztJQUM5QyxrQ0FBeUI7Ozs7O0lBQ3pCLCtCQUE2Qjs7Ozs7SUFDN0IsK0JBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBGb3JtR3JvdXAsXG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtQ29udHJvbFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdG9yZSwgc2VsZWN0IH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgZGVib3VuY2VUaW1lLFxuICB0YWtlVW50aWwsXG4gIGZpbHRlcixcbiAgbWFwLFxuICB3aXRoTGF0ZXN0RnJvbVxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5HUlhfRk9STVNfRkVBVFVSRSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zvcm0udG9rZW5zJztcbmltcG9ydCB7IE5ncnhGb3JtU3RhdGUsIFVwZGF0ZUZvcm1QYXlsb2FkIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0ubW9kZWxzJztcblxuaW1wb3J0ICogYXMgZnJvbUFjdGlvbiBmcm9tICcuLi9zdG9yZS9mb3JtLmFjdGlvbnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbTmdyeEZvcm1Db25uZWN0XSdcbn0pXG5leHBvcnQgY2xhc3MgTmdyeEZvcm1EaXJlY3RpdmUge1xuICBASW5wdXQoJ05ncnhGb3JtQ29ubmVjdCcpIHBhdGg6IHN0cmluZztcblxuICBwcml2YXRlIGNvbXBvbmVudERlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBmb3JtQ2hhbmdlcyQ6IE9ic2VydmFibGU8Rm9ybUdyb3VwPjtcbiAgcHJpdmF0ZSBzdG9yZURhdGFzJDogT2JzZXJ2YWJsZTxOZ3J4Rm9ybVN0YXRlPGFueT4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTkdSWF9GT1JNU19GRUFUVVJFKSBwdWJsaWMgZmVhdHVyZU5hbWU6IHN0cmluZyxcbiAgICBwcml2YXRlIGZvcm1Hcm91cERpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXJcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucygpO1xuICAgIHRoaXMuc3RvcmVUb0Zvcm0oKTtcbiAgICB0aGlzLmZvcm1Ub1N0b3JlKCk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMoKSB7XG4gICAgdGhpcy5mb3JtQ2hhbmdlcyQgPSB0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDMwMClcbiAgICApO1xuICAgIHRoaXMuc3RvcmVEYXRhcyQgPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgICBzZWxlY3QoXG4gICAgICAgIChkYXRhOiBOZ3J4Rm9ybVN0YXRlPGFueT4pID0+IGRhdGFbdGhpcy5mZWF0dXJlTmFtZV1bdGhpcy5wYXRoXS52YWx1ZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0b3JlVG9Gb3JtKCkge1xuICAgIHRoaXMuc3RvcmVEYXRhcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGZvcm1PYmplY3Q6IE5ncnhGb3JtU3RhdGU8YW55PikgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlRm9ybShmb3JtT2JqZWN0LCB0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5mb3JtKTtcbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5mb3JtLnBhdGNoVmFsdWUoZm9ybU9iamVjdCk7XG4gICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtVG9TdG9yZSgpIHtcbiAgICB0aGlzLmZvcm1DaGFuZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmVEYXRhcyQpLFxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgKFtmb3JtRGF0YXMsIHN0b3JlRGF0YXNdKSA9PlxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZm9ybURhdGFzKSAhPT0gSlNPTi5zdHJpbmdpZnkoc3RvcmVEYXRhcylcbiAgICAgICAgKSxcbiAgICAgICAgbWFwKChbZm9ybURhdGFzLCBzdG9yZURhdGFzXSkgPT5cbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IGZyb21BY3Rpb24uVXBkYXRlZm9ybSh0aGlzLm1hcEFjdGlvblBheWxvYWQoZm9ybURhdGFzKSlcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBBY3Rpb25QYXlsb2FkKGZvcm1EYXRhczogRm9ybUdyb3VwKTogVXBkYXRlRm9ybVBheWxvYWQ8YW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZlYXR1cmU6IHRoaXMuZmVhdHVyZU5hbWUsXG4gICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICBmb3JtOiB7XG4gICAgICAgIHZhbHVlOiBmb3JtRGF0YXMsXG4gICAgICAgIGVycm9yczogdGhpcy5nZXRFcnJvcnModGhpcy5mb3JtR3JvdXBEaXJlY3RpdmUuZm9ybSksXG4gICAgICAgIHByaXN0aW5lOiB0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5wcmlzdGluZSxcbiAgICAgICAgdmFsaWQ6IHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLnZhbGlkXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRm9ybShmb3JtRGF0YXMsIGZvcm1PYmplY3Q6IEZvcm1Hcm91cCkge1xuICAgIE9iamVjdC5rZXlzKGZvcm1EYXRhcykubWFwKGtleSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBmb3JtRGF0YXNba2V5XTtcblxuICAgICAgLy8gRm9ybUFycmF5XG4gICAgICBpZiAodmFsdWVzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgLy8gVGhlIGFycmF5IGNvbnRhaW5zIEZvcm1Hcm91cCBpdGVtcyBzbyB3ZSBuZWVkXG4gICAgICAgIC8vIHRvIGNyZWF0ZSB0aGUgZ3JvdXBzIGJlZm9yZSBhZGRpbmcgdGhlbSB0byB0aGUgYXJyYXlcbiAgICAgICAgaWYgKHZhbHVlc1swXSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICAgIGNvbnN0IGFycmF5T2ZDb250cm9scyA9IHZhbHVlcy5tYXAoZmllbGQgPT4gdGhpcy5mYi5ncm91cChmaWVsZCkpO1xuICAgICAgICAgIGZvcm1PYmplY3Quc2V0Q29udHJvbChrZXksIHRoaXMuZmIuYXJyYXkoYXJyYXlPZkNvbnRyb2xzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybU9iamVjdC5zZXRDb250cm9sKGtleSwgdGhpcy5mYi5hcnJheSh2YWx1ZXMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvcm1Hcm91cFxuICAgICAgfSBlbHNlIGlmICh2YWx1ZXMgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtKHZhbHVlcywgZm9ybU9iamVjdC5nZXQoa2V5KSBhcyBGb3JtR3JvdXApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFcnJvcnMoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChrZXkpO1xuICAgICAgYWNjID0gYWNjID09PSB1bmRlZmluZWQgPyB7fSA6IGFjYztcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wgJiYgY29udHJvbC5lcnJvcnMpIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCAuLi57IFtrZXldOiBjb250cm9sLmVycm9ycyB9IH07XG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCAuLi50aGlzLmdldEVycm9ycyhjb250cm9sKSB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cbiAgICB9LCB7fSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNvbXBvbmVudERlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmNvbXBvbmVudERlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==

@@ -10,3 +10,2 @@ /**

export { NgrxFormDirective as ɵa } from './lib/directives/form.directives';
export { FormService as ɵb } from './lib/services';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieW9vemx5LW5ncngtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B5b296bHkvbmdyeC1mb3JtLyIsInNvdXJjZXMiOlsieW9vemx5LW5ncngtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsa0lBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge05ncnhGb3JtRGlyZWN0aXZlIGFzIMm1YX0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9mb3JtLmRpcmVjdGl2ZXMnO1xuZXhwb3J0IHtGb3JtU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vbGliL3NlcnZpY2VzJzsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieW9vemx5LW5ncngtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B5b296bHkvbmdyeC1mb3JtLyIsInNvdXJjZXMiOlsieW9vemx5LW5ncngtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsa0lBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcblxuZXhwb3J0IHtOZ3J4Rm9ybURpcmVjdGl2ZSBhcyDJtWF9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZm9ybS5kaXJlY3RpdmVzJzsiXX0=

@@ -0,6 +1,6 @@

import { InjectionToken, Directive, Input, Inject, ChangeDetectorRef, NgModule } from '@angular/core';
import { FormGroupDirective, FormGroup, FormBuilder, FormControl } from '@angular/forms';
import { Store, select } from '@ngrx/store';
import { debounceTime, takeUntil, filter, map, withLatestFrom } from 'rxjs/operators';
import { Subject } from 'rxjs';
import { InjectionToken, Injectable, Directive, Input, Inject, ChangeDetectorRef, NgModule, defineInjectable, inject } from '@angular/core';
import { FormGroup, FormBuilder, FormControl, FormGroupDirective } from '@angular/forms';

@@ -103,89 +103,2 @@ /**

*/
class FormService {
/**
* @param {?} fb
*/
constructor(fb) {
this.fb = fb;
}
/**
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
updateForm(formDatas, formObject) {
Object.keys(formDatas).map((/**
* @param {?} key
* @return {?}
*/
key => {
/** @type {?} */
const values = formDatas[key];
// FormArray
if (values instanceof Array) {
// The array contains FormGroup items so we need
// to create the groups before adding them to the array
if (values[0] instanceof Object) {
/** @type {?} */
const arrayOfControls = values.map((/**
* @param {?} field
* @return {?}
*/
field => this.fb.group(field)));
formObject.setControl(key, this.fb.array(arrayOfControls));
}
else {
formObject.setControl(key, this.fb.array(values));
}
// FormGroup
}
else if (values instanceof Object) {
this.updateForm(values, (/** @type {?} */ (formObject.get(key))));
}
}));
}
/**
* @param {?} formGroup
* @return {?}
*/
getErrors(formGroup) {
return Object.keys(formGroup.controls).reduce((/**
* @param {?} acc
* @param {?} key
* @return {?}
*/
(acc, key) => {
/** @type {?} */
const control = formGroup.get(key);
acc = acc === undefined ? {} : acc;
if (control instanceof FormControl && control.errors) {
return Object.assign({}, acc, { [key]: control.errors });
}
else if (control instanceof FormGroup) {
return Object.assign({}, acc, this.getErrors(control));
}
else {
return acc;
}
}), {});
}
}
FormService.decorators = [
{ type: Injectable, args: [{ providedIn: 'root' },] }
];
/** @nocollapse */
FormService.ctorParameters = () => [
{ type: FormBuilder }
];
/** @nocollapse */ FormService.ngInjectableDef = defineInjectable({ factory: function FormService_Factory() { return new FormService(inject(FormBuilder)); }, token: FormService, providedIn: "root" });
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class NgrxFormDirective {

@@ -197,5 +110,5 @@ /**

* @param {?} cd
* @param {?} formService
* @param {?} fb
*/
constructor(featureName, formGroupDirective, store, cd, formService) {
constructor(featureName, formGroupDirective, store, cd, fb) {
this.featureName = featureName;

@@ -205,3 +118,3 @@ this.formGroupDirective = formGroupDirective;

this.cd = cd;
this.formService = formService;
this.fb = fb;
this.componentDestroy$ = new Subject();

@@ -240,3 +153,3 @@ }

(formObject) => {
this.formService.updateForm(formObject, this.formGroupDirective.form);
this.updateForm(formObject, this.formGroupDirective.form);
this.formGroupDirective.form.patchValue(formObject);

@@ -275,3 +188,3 @@ this.cd.markForCheck();

value: formDatas,
errors: this.formService.getErrors(this.formGroupDirective.form),
errors: this.getErrors(this.formGroupDirective.form),
pristine: this.formGroupDirective.pristine,

@@ -283,4 +196,67 @@ valid: this.formGroupDirective.valid

/**
* @private
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
updateForm(formDatas, formObject) {
Object.keys(formDatas).map((/**
* @param {?} key
* @return {?}
*/
key => {
/** @type {?} */
const values = formDatas[key];
// FormArray
if (values instanceof Array) {
// The array contains FormGroup items so we need
// to create the groups before adding them to the array
if (values[0] instanceof Object) {
/** @type {?} */
const arrayOfControls = values.map((/**
* @param {?} field
* @return {?}
*/
field => this.fb.group(field)));
formObject.setControl(key, this.fb.array(arrayOfControls));
}
else {
formObject.setControl(key, this.fb.array(values));
}
// FormGroup
}
else if (values instanceof Object) {
this.updateForm(values, (/** @type {?} */ (formObject.get(key))));
}
}));
}
/**
* @private
* @param {?} formGroup
* @return {?}
*/
getErrors(formGroup) {
return Object.keys(formGroup.controls).reduce((/**
* @param {?} acc
* @param {?} key
* @return {?}
*/
(acc, key) => {
/** @type {?} */
const control = formGroup.get(key);
acc = acc === undefined ? {} : acc;
if (control instanceof FormControl && control.errors) {
return Object.assign({}, acc, { [key]: control.errors });
}
else if (control instanceof FormGroup) {
return Object.assign({}, acc, this.getErrors(control));
}
else {
return acc;
}
}), {});
}
/**
* @return {?}
*/
ngOnDestroy() {

@@ -302,3 +278,3 @@ this.componentDestroy$.next();

{ type: ChangeDetectorRef },
{ type: FormService }
{ type: FormBuilder }
];

@@ -348,4 +324,4 @@ NgrxFormDirective.propDecorators = {

export { getInitialState, NgrxFormReducer, ngrxForm, Updateform, NGRX_FORMS_FEATURE, FEATURE_REDUCER_TOKEN, NgrxFormModule, NgrxFormDirective as ɵa, FormService as ɵb };
export { getInitialState, NgrxFormReducer, ngrxForm, Updateform, NGRX_FORMS_FEATURE, FEATURE_REDUCER_TOKEN, NgrxFormModule, NgrxFormDirective as ɵa };
//# sourceMappingURL=yoozly-ngrx-form.js.map

@@ -0,7 +1,7 @@

import { __read, __assign } from 'tslib';
import { InjectionToken, Directive, Input, Inject, ChangeDetectorRef, NgModule } from '@angular/core';
import { FormGroupDirective, FormGroup, FormBuilder, FormControl } from '@angular/forms';
import { Store, select } from '@ngrx/store';
import { debounceTime, takeUntil, filter, map, withLatestFrom } from 'rxjs/operators';
import { Subject } from 'rxjs';
import { __read, __assign } from 'tslib';
import { InjectionToken, Injectable, NgModule, Directive, Inject, ChangeDetectorRef, Input, defineInjectable, inject } from '@angular/core';
import { FormGroup, FormBuilder, FormControl, FormGroupDirective } from '@angular/forms';

@@ -108,101 +108,4 @@ /**

*/
var FormService = /** @class */ (function () {
function FormService(fb) {
this.fb = fb;
}
/**
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
FormService.prototype.updateForm = /**
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
function (formDatas, formObject) {
var _this = this;
Object.keys(formDatas).map((/**
* @param {?} key
* @return {?}
*/
function (key) {
/** @type {?} */
var values = formDatas[key];
// FormArray
if (values instanceof Array) {
// The array contains FormGroup items so we need
// to create the groups before adding them to the array
if (values[0] instanceof Object) {
/** @type {?} */
var arrayOfControls = values.map((/**
* @param {?} field
* @return {?}
*/
function (field) { return _this.fb.group(field); }));
formObject.setControl(key, _this.fb.array(arrayOfControls));
}
else {
formObject.setControl(key, _this.fb.array(values));
}
// FormGroup
}
else if (values instanceof Object) {
_this.updateForm(values, (/** @type {?} */ (formObject.get(key))));
}
}));
};
/**
* @param {?} formGroup
* @return {?}
*/
FormService.prototype.getErrors = /**
* @param {?} formGroup
* @return {?}
*/
function (formGroup) {
var _this = this;
return Object.keys(formGroup.controls).reduce((/**
* @param {?} acc
* @param {?} key
* @return {?}
*/
function (acc, key) {
var _a;
/** @type {?} */
var control = formGroup.get(key);
acc = acc === undefined ? {} : acc;
if (control instanceof FormControl && control.errors) {
return __assign({}, acc, (_a = {}, _a[key] = control.errors, _a));
}
else if (control instanceof FormGroup) {
return __assign({}, acc, _this.getErrors(control));
}
else {
return acc;
}
}), {});
};
FormService.decorators = [
{ type: Injectable, args: [{ providedIn: 'root' },] }
];
/** @nocollapse */
FormService.ctorParameters = function () { return [
{ type: FormBuilder }
]; };
/** @nocollapse */ FormService.ngInjectableDef = defineInjectable({ factory: function FormService_Factory() { return new FormService(inject(FormBuilder)); }, token: FormService, providedIn: "root" });
return FormService;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var NgrxFormDirective = /** @class */ (function () {
function NgrxFormDirective(featureName, formGroupDirective, store, cd, formService) {
function NgrxFormDirective(featureName, formGroupDirective, store, cd, fb) {
this.featureName = featureName;

@@ -212,3 +115,3 @@ this.formGroupDirective = formGroupDirective;

this.cd = cd;
this.formService = formService;
this.fb = fb;
this.componentDestroy$ = new Subject();

@@ -260,3 +163,3 @@ }

function (formObject) {
_this.formService.updateForm(formObject, _this.formGroupDirective.form);
_this.updateForm(formObject, _this.formGroupDirective.form);
_this.formGroupDirective.form.patchValue(formObject);

@@ -311,3 +214,3 @@ _this.cd.markForCheck();

value: formDatas,
errors: this.formService.getErrors(this.formGroupDirective.form),
errors: this.getErrors(this.formGroupDirective.form),
pristine: this.formGroupDirective.pristine,

@@ -319,4 +222,81 @@ valid: this.formGroupDirective.valid

/**
* @private
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
NgrxFormDirective.prototype.updateForm = /**
* @private
* @param {?} formDatas
* @param {?} formObject
* @return {?}
*/
function (formDatas, formObject) {
var _this = this;
Object.keys(formDatas).map((/**
* @param {?} key
* @return {?}
*/
function (key) {
/** @type {?} */
var values = formDatas[key];
// FormArray
if (values instanceof Array) {
// The array contains FormGroup items so we need
// to create the groups before adding them to the array
if (values[0] instanceof Object) {
/** @type {?} */
var arrayOfControls = values.map((/**
* @param {?} field
* @return {?}
*/
function (field) { return _this.fb.group(field); }));
formObject.setControl(key, _this.fb.array(arrayOfControls));
}
else {
formObject.setControl(key, _this.fb.array(values));
}
// FormGroup
}
else if (values instanceof Object) {
_this.updateForm(values, (/** @type {?} */ (formObject.get(key))));
}
}));
};
/**
* @private
* @param {?} formGroup
* @return {?}
*/
NgrxFormDirective.prototype.getErrors = /**
* @private
* @param {?} formGroup
* @return {?}
*/
function (formGroup) {
var _this = this;
return Object.keys(formGroup.controls).reduce((/**
* @param {?} acc
* @param {?} key
* @return {?}
*/
function (acc, key) {
var _a;
/** @type {?} */
var control = formGroup.get(key);
acc = acc === undefined ? {} : acc;
if (control instanceof FormControl && control.errors) {
return __assign({}, acc, (_a = {}, _a[key] = control.errors, _a));
}
else if (control instanceof FormGroup) {
return __assign({}, acc, _this.getErrors(control));
}
else {
return acc;
}
}), {});
};
/**
* @return {?}
*/
NgrxFormDirective.prototype.ngOnDestroy = /**

@@ -340,3 +320,3 @@ * @return {?}

{ type: ChangeDetectorRef },
{ type: FormService }
{ type: FormBuilder }
]; };

@@ -395,4 +375,4 @@ NgrxFormDirective.propDecorators = {

export { getInitialState, NgrxFormReducer, ngrxForm, Updateform, NGRX_FORMS_FEATURE, FEATURE_REDUCER_TOKEN, NgrxFormModule, NgrxFormDirective as ɵa, FormService as ɵb };
export { getInitialState, NgrxFormReducer, ngrxForm, Updateform, NGRX_FORMS_FEATURE, FEATURE_REDUCER_TOKEN, NgrxFormModule, NgrxFormDirective as ɵa };
//# sourceMappingURL=yoozly-ngrx-form.js.map
import { ChangeDetectorRef } from '@angular/core';
import { FormGroupDirective } from '@angular/forms';
import { FormGroupDirective, FormBuilder } from '@angular/forms';
import { Store } from '@ngrx/store';
import * as fromService from '../services';
export declare class NgrxFormDirective {

@@ -10,3 +9,3 @@ featureName: string;

private cd;
private formService;
private fb;
path: string;

@@ -16,3 +15,3 @@ private componentDestroy$;

private storeDatas$;
constructor(featureName: string, formGroupDirective: FormGroupDirective, store: Store<any>, cd: ChangeDetectorRef, formService: fromService.FormService);
constructor(featureName: string, formGroupDirective: FormGroupDirective, store: Store<any>, cd: ChangeDetectorRef, fb: FormBuilder);
ngOnInit(): void;

@@ -23,3 +22,5 @@ private subscriptions;

private mapActionPayload;
private updateForm;
private getErrors;
ngOnDestroy(): void;
}
{
"name": "@yoozly/ngrx-form",
"version": "0.0.7",
"version": "0.0.8",
"author": "Guillaume Doutriaux",
"description": "Angular Lib that binds reactive-forms and @ngrx/store together.",
"homepage": "https://github.com/guillaumedoutriaux/ngrx-form-binding",
"keywords": [
"ngrx",
"store",
"reactive-forms",
"angular"
],
"peerDependencies": {

@@ -6,0 +14,0 @@ "@angular/core": "~7.2.0",

@@ -6,2 +6,1 @@ /**

export { NgrxFormDirective as ɵa } from './lib/directives/form.directives';
export { FormService as ɵb } from './lib/services';

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"exports":[{"from":"./lib/form.reducers"},{"from":"./lib/form.actions"}],"metadata":{"NGRX_FORMS_FEATURE":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":3,"character":38},"arguments":["Feature Name"]},"FEATURE_REDUCER_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":41},"arguments":["Feature Reducers"]},"NgrxFormModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"ɵa"}],"imports":[]}]}],"members":{},"statics":{"forFeature":{"__symbolic":"function","parameters":["feature"],"value":{"ngModule":{"__symbolic":"reference","name":"NgrxFormModule"},"providers":[{"provide":{"__symbolic":"reference","name":"NGRX_FORMS_FEATURE"},"useValue":{"__symbolic":"reference","name":"feature"}}]}}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[NgrxFormConnect]"}]}],"members":{"path":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3},"arguments":["NgrxFormConnect"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":29,"character":5},"arguments":[{"__symbolic":"reference","name":"NGRX_FORMS_FEATURE"}]}],null,null,null,null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/forms","name":"FormGroupDirective","line":30,"character":32},{"__symbolic":"reference","name":"Store","module":"@ngrx/store","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":32,"character":16},{"__symbolic":"reference","name":"ɵb"}]}],"ngOnInit":[{"__symbolic":"method"}],"subscriptions":[{"__symbolic":"method"}],"storeToForm":[{"__symbolic":"method"}],"formToStore":[{"__symbolic":"method"}],"mapActionPayload":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}},"origins":{"NGRX_FORMS_FEATURE":"./lib/services/form.tokens","FEATURE_REDUCER_TOKEN":"./lib/services/form.tokens","NgrxFormModule":"./lib/ngrx-form.module","ɵa":"./lib/directives/form.directives","ɵb":"./lib/services"},"importAs":"@yoozly/ngrx-form"}
{"__symbolic":"module","version":4,"exports":[{"from":"./lib/form.reducers"},{"from":"./lib/form.actions"}],"metadata":{"NGRX_FORMS_FEATURE":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":3,"character":38},"arguments":["Feature Name"]},"FEATURE_REDUCER_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":41},"arguments":["Feature Reducers"]},"NgrxFormModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"ɵa"}],"imports":[]}]}],"members":{},"statics":{"forFeature":{"__symbolic":"function","parameters":["feature"],"value":{"ngModule":{"__symbolic":"reference","name":"NgrxFormModule"},"providers":[{"provide":{"__symbolic":"reference","name":"NGRX_FORMS_FEATURE"},"useValue":{"__symbolic":"reference","name":"feature"}}]}}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":22,"character":1},"arguments":[{"selector":"[NgrxFormConnect]"}]}],"members":{"path":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3},"arguments":["NgrxFormConnect"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":33,"character":5},"arguments":[{"__symbolic":"reference","name":"NGRX_FORMS_FEATURE"}]}],null,null,null,null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/forms","name":"FormGroupDirective","line":34,"character":32},{"__symbolic":"reference","name":"Store","module":"@ngrx/store","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":36,"character":16},{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":37,"character":16}]}],"ngOnInit":[{"__symbolic":"method"}],"subscriptions":[{"__symbolic":"method"}],"storeToForm":[{"__symbolic":"method"}],"formToStore":[{"__symbolic":"method"}],"mapActionPayload":[{"__symbolic":"method"}],"updateForm":[{"__symbolic":"method"}],"getErrors":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}},"origins":{"NGRX_FORMS_FEATURE":"./lib/services/form.tokens","FEATURE_REDUCER_TOKEN":"./lib/services/form.tokens","NgrxFormModule":"./lib/ngrx-form.module","ɵa":"./lib/directives/form.directives"},"importAs":"@yoozly/ngrx-form"}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc