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

@ngneat/reactive-forms

Package Overview
Dependencies
Maintainers
3
Versions
53
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ngneat/reactive-forms - npm Package Compare versions

Comparing version 1.2.0 to 1.3.0

38

bundles/ngneat-reactive-forms.umd.js

@@ -326,2 +326,16 @@ (function (global, factory) {

}
function mergeErrors(existing, toAdd) {
if (!existing && !toAdd) {
return null;
}
return Object.assign(Object.assign({}, existing), toAdd);
}
function removeError(errors, key) {
if (!errors) {
return null;
}
var updatedErrors = Object.assign({}, errors);
delete updatedErrors[key];
return Object.keys(updatedErrors).length > 0 ? updatedErrors : null;
}

@@ -523,2 +537,10 @@ function getControlValue(control) {

};
FormArray.prototype.mergeErrors = function (errors, opts) {
if (opts === void 0) { opts = {}; }
this.setErrors(mergeErrors(this.errors, errors), opts);
};
FormArray.prototype.removeError = function (key, opts) {
if (opts === void 0) { opts = {}; }
this.setErrors(removeError(this.errors, key), opts);
};
FormArray.prototype.getError = function (errorCode, path) {

@@ -640,2 +662,10 @@ return _super.prototype.getError.call(this, errorCode, path);

};
FormControl.prototype.mergeErrors = function (errors, opts) {
if (opts === void 0) { opts = {}; }
this.setErrors(mergeErrors(this.errors, errors), opts);
};
FormControl.prototype.removeError = function (key, opts) {
if (opts === void 0) { opts = {}; }
this.setErrors(removeError(this.errors, key), opts);
};
FormControl.prototype.hasErrorAndTouched = function (error) {

@@ -782,2 +812,10 @@ return hasErrorAndTouched(this, error);

};
FormGroup.prototype.mergeErrors = function (errors, opts) {
if (opts === void 0) { opts = {}; }
this.setErrors(mergeErrors(this.errors, errors), opts);
};
FormGroup.prototype.removeError = function (key, opts) {
if (opts === void 0) { opts = {}; }
this.setErrors(removeError(this.errors, key), opts);
};
FormGroup.prototype.getError = function (errorCode, path) {

@@ -784,0 +822,0 @@ return _super.prototype.getError.call(this, errorCode, path);

2

bundles/ngneat-reactive-forms.umd.min.js

@@ -15,3 +15,3 @@ !function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@angular/forms"),require("rxjs"),require("rxjs/operators"),require("@angular/core")):"function"==typeof define&&define.amd?define("@ngneat/reactive-forms",["exports","@angular/forms","rxjs","rxjs/operators","@angular/core"],r):r(((t=t||self).ngneat=t.ngneat||{},t.ngneat["reactive-forms"]={}),t.ng.forms,t.rxjs,t.rxjs.operators,t.ng.core)}(this,(function(t,r,e,o,n){"use strict";

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */var i=function(t,r){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)r.hasOwnProperty(e)&&(t[e]=r[e])})(t,r)};function a(t,r){function e(){this.constructor=t}i(t,r),t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)}Object.create;function s(t,r){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var o,n,i=e.call(t),a=[];try{for(;(void 0===r||r-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(t){n={error:t}}finally{try{o&&!o.done&&(e=i.return)&&e.call(i)}finally{if(n)throw n.error}}return a}function u(){for(var t=[],r=0;r<arguments.length;r++)t=t.concat(s(arguments[r]));return t}Object.create;function p(t){return Array.isArray(t)?t:[t]}function l(t){return null==t}function c(t){return e.isObservable(t)||function(t){return"function"==typeof(null==t?void 0:t.then)}(t)?e.from(t):e.of(t)}function h(t){return t.getRawValue?t.getRawValue():t.value}function y(t){return e.merge(e.defer((function(){return e.of(h(t))})),t.valueChanges.pipe(o.map((function(){return h(t)}))))}function f(t){return e.merge(e.defer((function(){return e.of(t.disabled)})),t.statusChanges.pipe(o.map((function(){return t.disabled})),o.distinctUntilChanged()))}function d(t){return e.merge(e.defer((function(){return e.of(t.enabled)})),t.statusChanges.pipe(o.map((function(){return t.enabled})),o.distinctUntilChanged()))}function g(t){return e.merge(e.defer((function(){return e.of(t.status)})),t.statusChanges.pipe(o.map((function(){return t.status})),o.distinctUntilChanged()))}function v(t){return e.merge(e.defer((function(){return e.of(t.errors)})),t.valueChanges.pipe(o.map((function(){return t.errors})),o.distinctUntilChanged((function(t,r){return function(t,r){return l(t)||l(r)?t===r:JSON.stringify(t)===JSON.stringify(r)}(t,r)}))))}function b(t,r,e){r?t.enable(e):t.disable(e)}function m(t,r,e){b(t,!r,e)}function V(t,r,e){return r.subscribe((function(r){return m(t,r,e)}))}function A(t,r,e){return r.subscribe((function(r){return b(t,r,e)}))}function C(t,r){t.setValidators(u([t.validator],p(r))),t.updateValueAndValidity()}function E(t,r){return r.subscribe((function(r){t.setErrors(r)}))}function O(t,r,e){return t.hasError(r,e&&0!==e.length?e:void 0)&&t.touched}function k(t,r,e){return t.hasError(r,e&&0!==e.length?e:void 0)&&t.dirty}function w(t){t.markAsDirty({onlySelf:!0}),t._forEachChild((function(t){return t.markAllAsDirty()}))}var S=function(t){function r(r,n,i){var a=t.call(this,r,n,i)||this;return a.controls=r,a.touchChanges=new e.Subject,a.dirtyChanges=new e.Subject,a.touch$=a.touchChanges.asObservable().pipe(o.distinctUntilChanged()),a.dirty$=a.dirtyChanges.asObservable().pipe(o.distinctUntilChanged()),a.value$=y(a),a.disabled$=f(a),a.enabled$=d(a),a.status$=g(a),a.errors$=v(a),a}return a(r,t),r.prototype.select=function(t){return this.value$.pipe(o.map(t),o.distinctUntilChanged())},r.prototype.getRawValue=function(){return t.prototype.getRawValue.call(this)},r.prototype.at=function(r){return t.prototype.at.call(this,r)},r.prototype.setValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.setValue.call(n,r,o)}));t.prototype.setValue.call(this,r,o)},r.prototype.patchValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.patchValue.call(n,r,o)}));t.prototype.patchValue.call(this,r,o)},r.prototype.push=function(r){return t.prototype.push.call(this,r)},r.prototype.insert=function(r,e){return t.prototype.insert.call(this,r,e)},r.prototype.setControl=function(r,e){return t.prototype.setControl.call(this,r,e)},r.prototype.disabledWhile=function(t,r){return V(this,t,r)},r.prototype.enabledWhile=function(t,r){return A(this,t,r)},r.prototype.mergeValidators=function(t){C(this,t)},r.prototype.mergeAsyncValidators=function(t){this.setAsyncValidators(u([this.asyncValidator],p(t))),this.updateValueAndValidity()},r.prototype.markAsTouched=function(r){t.prototype.markAsTouched.call(this,r),this.touchChanges.next(!0)},r.prototype.markAsUntouched=function(r){t.prototype.markAsUntouched.call(this,r),this.touchChanges.next(!1)},r.prototype.markAsPristine=function(r){t.prototype.markAsPristine.call(this,r),this.dirtyChanges.next(!1)},r.prototype.markAsDirty=function(r){t.prototype.markAsDirty.call(this,r),this.dirtyChanges.next(!0)},r.prototype.markAllAsDirty=function(){w(this)},r.prototype.reset=function(r,e){t.prototype.reset.call(this,r,e)},r.prototype.setValidators=function(r){t.prototype.setValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.setAsyncValidators=function(r){t.prototype.setAsyncValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.validateOn=function(t){var r=this;return t.subscribe((function(t){r.setErrors(t)}))},r.prototype.hasError=function(r,e){return t.prototype.hasError.call(this,r,e)},r.prototype.setErrors=function(r,e){return void 0===e&&(e={}),t.prototype.setErrors.call(this,r,e)},r.prototype.getError=function(r,e){return t.prototype.getError.call(this,r,e)},r.prototype.hasErrorAndTouched=function(t,r){return O(this,t,r)},r.prototype.hasErrorAndDirty=function(t,r){return k(this,t,r)},r.prototype.setEnable=function(t,r){void 0===t&&(t=!0),b(this,t,r)},r.prototype.setDisable=function(t,r){void 0===t&&(t=!0),m(this,t,r)},r.prototype.remove=function(t){this.removeWhen((function(r){return r.value===t}))},r.prototype.removeWhen=function(t){for(var r=this.length-1;r>=0;--r)t(this.at(r))&&this.removeAt(r)},r}(r.FormArray),$=function(t){function r(r,n,i){var a=t.call(this,r,n,i)||this;return a.touchChanges=new e.Subject,a.dirtyChanges=new e.Subject,a.touch$=a.touchChanges.asObservable().pipe(o.distinctUntilChanged()),a.dirty$=a.dirtyChanges.asObservable().pipe(o.distinctUntilChanged()),a.value$=y(a),a.disabled$=f(a),a.enabled$=d(a),a.status$=g(a),a.errors$=v(a),a}return a(r,t),r.prototype.setValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.setValue.call(n,r,o)}));t.prototype.setValue.call(this,r,o)},r.prototype.patchValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.patchValue.call(n,r,o)}));t.prototype.patchValue.call(this,r,o)},r.prototype.disabledWhile=function(t,r){return V(this,t,r)},r.prototype.enabledWhile=function(t,r){return A(this,t,r)},r.prototype.mergeValidators=function(t){C(this,t)},r.prototype.mergeAsyncValidators=function(t){this.setAsyncValidators(u([this.asyncValidator],p(t))),this.updateValueAndValidity()},r.prototype.markAsTouched=function(r){t.prototype.markAsTouched.call(this,r),this.touchChanges.next(!0)},r.prototype.markAsUntouched=function(r){t.prototype.markAsUntouched.call(this,r),this.touchChanges.next(!1)},r.prototype.markAsPristine=function(r){t.prototype.markAsPristine.call(this,r),this.dirtyChanges.next(!1)},r.prototype.markAsDirty=function(r){t.prototype.markAsDirty.call(this,r),this.dirtyChanges.next(!0)},r.prototype.markAllAsDirty=function(){this.markAsDirty({onlySelf:!0})},r.prototype.reset=function(r,e){t.prototype.reset.call(this,r,e)},r.prototype.setValidators=function(r){t.prototype.setValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.setAsyncValidators=function(r){t.prototype.setAsyncValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.validateOn=function(t){return E(this,t)},r.prototype.getError=function(r){return t.prototype.getError.call(this,r)},r.prototype.hasError=function(r){return t.prototype.hasError.call(this,r)},r.prototype.setErrors=function(r,e){return void 0===e&&(e={}),t.prototype.setErrors.call(this,r,e)},r.prototype.hasErrorAndTouched=function(t){return O(this,t)},r.prototype.hasErrorAndDirty=function(t){return k(this,t)},r.prototype.setEnable=function(t,r){void 0===t&&(t=!0),b(this,t,r)},r.prototype.setDisable=function(t,r){void 0===t&&(t=!0),m(this,t,r)},r}(r.FormControl),j=function(){function t(){}return t.prototype.setValue=function(t,r){return localStorage.setItem(t,JSON.stringify(r)),r},t.prototype.getValue=function(t){return JSON.parse(localStorage.getItem(t)||"{}")},t}(),x=function(t){function n(r,n,i){var a=t.call(this,r,n,i)||this;return a.controls=r,a.touchChanges=new e.Subject,a.dirtyChanges=new e.Subject,a.touch$=a.touchChanges.asObservable().pipe(o.distinctUntilChanged()),a.dirty$=a.dirtyChanges.asObservable().pipe(o.distinctUntilChanged()),a.value$=y(a),a.disabled$=f(a),a.enabled$=d(a),a.status$=g(a),a.errors$=v(a),a}return a(n,t),n.prototype.select=function(t){return function(t,r){return t.value$.pipe(o.map(r),o.distinctUntilChanged())}(this,t)},n.prototype.getRawValue=function(){return t.prototype.getRawValue.call(this)},n.prototype.get=function(r){return t.prototype.get.call(this,r)},n.prototype.getControl=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return this.get(t.join("."))},n.prototype.addControl=function(r,e){t.prototype.addControl.call(this,r,e)},n.prototype.removeControl=function(r){t.prototype.removeControl.call(this,r)},n.prototype.contains=function(r){return t.prototype.contains.call(this,r)},n.prototype.setControl=function(r,e){t.prototype.setControl.call(this,r,e)},n.prototype.setValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.setValue.call(n,r,o)}));t.prototype.setValue.call(this,r,o)},n.prototype.patchValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.patchValue.call(n,r,o)}));t.prototype.patchValue.call(this,r,o)},n.prototype.disabledWhile=function(t,r){return V(this,t,r)},n.prototype.enabledWhile=function(t,r){return A(this,t,r)},n.prototype.mergeValidators=function(t){C(this,t)},n.prototype.mergeAsyncValidators=function(t){this.setAsyncValidators(u([this.asyncValidator],p(t))),this.updateValueAndValidity()},n.prototype.markAsTouched=function(r){t.prototype.markAsTouched.call(this,r),this.touchChanges.next(!0)},n.prototype.markAsUntouched=function(r){t.prototype.markAsUntouched.call(this,r),this.touchChanges.next(!1)},n.prototype.markAsPristine=function(r){t.prototype.markAsPristine.call(this,r),this.dirtyChanges.next(!1)},n.prototype.markAsDirty=function(r){t.prototype.markAsDirty.call(this,r),this.dirtyChanges.next(!0)},n.prototype.markAllAsDirty=function(){w(this)},n.prototype.reset=function(r,e){t.prototype.reset.call(this,r,e)},n.prototype.setValidators=function(r){t.prototype.setValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},n.prototype.setAsyncValidators=function(r){t.prototype.setAsyncValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},n.prototype.validateOn=function(t){return E(this,t)},n.prototype.hasError=function(r,e){return t.prototype.hasError.call(this,r,e)},n.prototype.setErrors=function(r,e){return void 0===e&&(e={}),t.prototype.setErrors.call(this,r,e)},n.prototype.getError=function(r,e){return t.prototype.getError.call(this,r,e)},n.prototype.hasErrorAndTouched=function(t){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return O.apply(void 0,u([this,t],r))},n.prototype.hasErrorAndDirty=function(t){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return k.apply(void 0,u([this,t],r))},n.prototype.setEnable=function(t,r){void 0===t&&(t=!0),b(this,t,r)},n.prototype.setDisable=function(t,r){void 0===t&&(t=!0),m(this,t,r)},n.prototype.persist=function(t,r){var e=this,n=r.debounceTime,i=r.manager,a=r.arrControlFactory,s=i||new j;return this.restore(t,s,a).pipe(o.switchMap((function(){return function(t,r,e){return t.valueChanges.pipe(o.debounceTime(e.debounceTime),o.switchMap((function(t){return c(e.manager.setValue(r,t))})))}(e,t,{debounceTime:n||250,manager:s})})))},n.prototype.restore=function(t,e,n){var i=this;return c(e.getValue(t)).pipe(o.take(1),o.tap((function(t){t&&(!function(t,e,o){Object.keys(e).forEach((function(n){var i=e[n];if(Array.isArray(i)&&t.get(n)instanceof r.FormArray){if(!o||o&&!(n in o))throw new Error("Please provide arrControlFactory for "+n);var a=t.get(n),s=o[n];!function(t){for(;0!==t.length;)t.removeAt(0)}(a),i.forEach((function(t,r){return a.insert(r,s(t))}))}}))}(i,t,n),i.patchValue(t,{emitEvent:!1}))})))},n}(r.FormGroup);var D=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return a(r,t),r.prototype.group=function(t,r){var e,o=this._reduceControls(t),n=null,i=null;return null!=r&&(!function(t){return void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn}(r)?(n=null!=r.validator?r.validator:null,i=null!=r.asyncValidator?r.asyncValidator:null):(n=null!=r.validators?r.validators:null,i=null!=r.asyncValidators?r.asyncValidators:null,e=null!=r.updateOn?r.updateOn:void 0)),new x(o,{asyncValidators:i,updateOn:e,validators:n})},r.prototype.control=function(t,r,e){return new $(t,r,e)},r.prototype.array=function(t,r,e){var o=this,n=t.map((function(t){return o._createControl(t)}));return new S(n,r,e)},r}(r.FormBuilder);D.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new D},token:D,providedIn:"root"}),D.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}];var U=function(){function t(){this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t}(),T=function(){function t(){}return t.prototype.setValue=function(t,r){return sessionStorage.setItem(t,JSON.stringify(r)),r},t.prototype.getValue=function(t){return JSON.parse(sessionStorage.getItem(t)||"{}")},t}();t.ControlValueAccessor=U,t.FormArray=S,t.FormBuilder=D,t.FormControl=$,t.FormGroup=x,t.LocalStorageManager=j,t.SessionStorageManager=T,Object.defineProperty(t,"__esModule",{value:!0})}));
***************************************************************************** */var i=function(t,r){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)r.hasOwnProperty(e)&&(t[e]=r[e])})(t,r)};function s(t,r){function e(){this.constructor=t}i(t,r),t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)}Object.create;function a(t,r){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var o,n,i=e.call(t),s=[];try{for(;(void 0===r||r-- >0)&&!(o=i.next()).done;)s.push(o.value)}catch(t){n={error:t}}finally{try{o&&!o.done&&(e=i.return)&&e.call(i)}finally{if(n)throw n.error}}return s}function u(){for(var t=[],r=0;r<arguments.length;r++)t=t.concat(a(arguments[r]));return t}Object.create;function p(t){return Array.isArray(t)?t:[t]}function c(t){return null==t}function l(t){return e.isObservable(t)||function(t){return"function"==typeof(null==t?void 0:t.then)}(t)?e.from(t):e.of(t)}function h(t,r){return t||r?Object.assign(Object.assign({},t),r):null}function y(t,r){if(!t)return null;var e=Object.assign({},t);return delete e[r],Object.keys(e).length>0?e:null}function f(t){return t.getRawValue?t.getRawValue():t.value}function d(t){return e.merge(e.defer((function(){return e.of(f(t))})),t.valueChanges.pipe(o.map((function(){return f(t)}))))}function g(t){return e.merge(e.defer((function(){return e.of(t.disabled)})),t.statusChanges.pipe(o.map((function(){return t.disabled})),o.distinctUntilChanged()))}function v(t){return e.merge(e.defer((function(){return e.of(t.enabled)})),t.statusChanges.pipe(o.map((function(){return t.enabled})),o.distinctUntilChanged()))}function b(t){return e.merge(e.defer((function(){return e.of(t.status)})),t.statusChanges.pipe(o.map((function(){return t.status})),o.distinctUntilChanged()))}function m(t){return e.merge(e.defer((function(){return e.of(t.errors)})),t.valueChanges.pipe(o.map((function(){return t.errors})),o.distinctUntilChanged((function(t,r){return function(t,r){return c(t)||c(r)?t===r:JSON.stringify(t)===JSON.stringify(r)}(t,r)}))))}function V(t,r,e){r?t.enable(e):t.disable(e)}function A(t,r,e){V(t,!r,e)}function C(t,r,e){return r.subscribe((function(r){return A(t,r,e)}))}function E(t,r,e){return r.subscribe((function(r){return V(t,r,e)}))}function O(t,r){t.setValidators(u([t.validator],p(r))),t.updateValueAndValidity()}function k(t,r){return r.subscribe((function(r){t.setErrors(r)}))}function j(t,r,e){return t.hasError(r,e&&0!==e.length?e:void 0)&&t.touched}function w(t,r,e){return t.hasError(r,e&&0!==e.length?e:void 0)&&t.dirty}function S(t){t.markAsDirty({onlySelf:!0}),t._forEachChild((function(t){return t.markAllAsDirty()}))}var $=function(t){function r(r,n,i){var s=t.call(this,r,n,i)||this;return s.controls=r,s.touchChanges=new e.Subject,s.dirtyChanges=new e.Subject,s.touch$=s.touchChanges.asObservable().pipe(o.distinctUntilChanged()),s.dirty$=s.dirtyChanges.asObservable().pipe(o.distinctUntilChanged()),s.value$=d(s),s.disabled$=g(s),s.enabled$=v(s),s.status$=b(s),s.errors$=m(s),s}return s(r,t),r.prototype.select=function(t){return this.value$.pipe(o.map(t),o.distinctUntilChanged())},r.prototype.getRawValue=function(){return t.prototype.getRawValue.call(this)},r.prototype.at=function(r){return t.prototype.at.call(this,r)},r.prototype.setValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.setValue.call(n,r,o)}));t.prototype.setValue.call(this,r,o)},r.prototype.patchValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.patchValue.call(n,r,o)}));t.prototype.patchValue.call(this,r,o)},r.prototype.push=function(r){return t.prototype.push.call(this,r)},r.prototype.insert=function(r,e){return t.prototype.insert.call(this,r,e)},r.prototype.setControl=function(r,e){return t.prototype.setControl.call(this,r,e)},r.prototype.disabledWhile=function(t,r){return C(this,t,r)},r.prototype.enabledWhile=function(t,r){return E(this,t,r)},r.prototype.mergeValidators=function(t){O(this,t)},r.prototype.mergeAsyncValidators=function(t){this.setAsyncValidators(u([this.asyncValidator],p(t))),this.updateValueAndValidity()},r.prototype.markAsTouched=function(r){t.prototype.markAsTouched.call(this,r),this.touchChanges.next(!0)},r.prototype.markAsUntouched=function(r){t.prototype.markAsUntouched.call(this,r),this.touchChanges.next(!1)},r.prototype.markAsPristine=function(r){t.prototype.markAsPristine.call(this,r),this.dirtyChanges.next(!1)},r.prototype.markAsDirty=function(r){t.prototype.markAsDirty.call(this,r),this.dirtyChanges.next(!0)},r.prototype.markAllAsDirty=function(){S(this)},r.prototype.reset=function(r,e){t.prototype.reset.call(this,r,e)},r.prototype.setValidators=function(r){t.prototype.setValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.setAsyncValidators=function(r){t.prototype.setAsyncValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.validateOn=function(t){var r=this;return t.subscribe((function(t){r.setErrors(t)}))},r.prototype.hasError=function(r,e){return t.prototype.hasError.call(this,r,e)},r.prototype.setErrors=function(r,e){return void 0===e&&(e={}),t.prototype.setErrors.call(this,r,e)},r.prototype.mergeErrors=function(t,r){void 0===r&&(r={}),this.setErrors(h(this.errors,t),r)},r.prototype.removeError=function(t,r){void 0===r&&(r={}),this.setErrors(y(this.errors,t),r)},r.prototype.getError=function(r,e){return t.prototype.getError.call(this,r,e)},r.prototype.hasErrorAndTouched=function(t,r){return j(this,t,r)},r.prototype.hasErrorAndDirty=function(t,r){return w(this,t,r)},r.prototype.setEnable=function(t,r){void 0===t&&(t=!0),V(this,t,r)},r.prototype.setDisable=function(t,r){void 0===t&&(t=!0),A(this,t,r)},r.prototype.remove=function(t){this.removeWhen((function(r){return r.value===t}))},r.prototype.removeWhen=function(t){for(var r=this.length-1;r>=0;--r)t(this.at(r))&&this.removeAt(r)},r}(r.FormArray),x=function(t){function r(r,n,i){var s=t.call(this,r,n,i)||this;return s.touchChanges=new e.Subject,s.dirtyChanges=new e.Subject,s.touch$=s.touchChanges.asObservable().pipe(o.distinctUntilChanged()),s.dirty$=s.dirtyChanges.asObservable().pipe(o.distinctUntilChanged()),s.value$=d(s),s.disabled$=g(s),s.enabled$=v(s),s.status$=b(s),s.errors$=m(s),s}return s(r,t),r.prototype.setValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.setValue.call(n,r,o)}));t.prototype.setValue.call(this,r,o)},r.prototype.patchValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.patchValue.call(n,r,o)}));t.prototype.patchValue.call(this,r,o)},r.prototype.disabledWhile=function(t,r){return C(this,t,r)},r.prototype.enabledWhile=function(t,r){return E(this,t,r)},r.prototype.mergeValidators=function(t){O(this,t)},r.prototype.mergeAsyncValidators=function(t){this.setAsyncValidators(u([this.asyncValidator],p(t))),this.updateValueAndValidity()},r.prototype.markAsTouched=function(r){t.prototype.markAsTouched.call(this,r),this.touchChanges.next(!0)},r.prototype.markAsUntouched=function(r){t.prototype.markAsUntouched.call(this,r),this.touchChanges.next(!1)},r.prototype.markAsPristine=function(r){t.prototype.markAsPristine.call(this,r),this.dirtyChanges.next(!1)},r.prototype.markAsDirty=function(r){t.prototype.markAsDirty.call(this,r),this.dirtyChanges.next(!0)},r.prototype.markAllAsDirty=function(){this.markAsDirty({onlySelf:!0})},r.prototype.reset=function(r,e){t.prototype.reset.call(this,r,e)},r.prototype.setValidators=function(r){t.prototype.setValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.setAsyncValidators=function(r){t.prototype.setAsyncValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},r.prototype.validateOn=function(t){return k(this,t)},r.prototype.getError=function(r){return t.prototype.getError.call(this,r)},r.prototype.hasError=function(r){return t.prototype.hasError.call(this,r)},r.prototype.setErrors=function(r,e){return void 0===e&&(e={}),t.prototype.setErrors.call(this,r,e)},r.prototype.mergeErrors=function(t,r){void 0===r&&(r={}),this.setErrors(h(this.errors,t),r)},r.prototype.removeError=function(t,r){void 0===r&&(r={}),this.setErrors(y(this.errors,t),r)},r.prototype.hasErrorAndTouched=function(t){return j(this,t)},r.prototype.hasErrorAndDirty=function(t){return w(this,t)},r.prototype.setEnable=function(t,r){void 0===t&&(t=!0),V(this,t,r)},r.prototype.setDisable=function(t,r){void 0===t&&(t=!0),A(this,t,r)},r}(r.FormControl),D=function(){function t(){}return t.prototype.setValue=function(t,r){return localStorage.setItem(t,JSON.stringify(r)),r},t.prototype.getValue=function(t){return JSON.parse(localStorage.getItem(t)||"{}")},t}(),U=function(t){function n(r,n,i){var s=t.call(this,r,n,i)||this;return s.controls=r,s.touchChanges=new e.Subject,s.dirtyChanges=new e.Subject,s.touch$=s.touchChanges.asObservable().pipe(o.distinctUntilChanged()),s.dirty$=s.dirtyChanges.asObservable().pipe(o.distinctUntilChanged()),s.value$=d(s),s.disabled$=g(s),s.enabled$=v(s),s.status$=b(s),s.errors$=m(s),s}return s(n,t),n.prototype.select=function(t){return function(t,r){return t.value$.pipe(o.map(r),o.distinctUntilChanged())}(this,t)},n.prototype.getRawValue=function(){return t.prototype.getRawValue.call(this)},n.prototype.get=function(r){return t.prototype.get.call(this,r)},n.prototype.getControl=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return this.get(t.join("."))},n.prototype.addControl=function(r,e){t.prototype.addControl.call(this,r,e)},n.prototype.removeControl=function(r){t.prototype.removeControl.call(this,r)},n.prototype.contains=function(r){return t.prototype.contains.call(this,r)},n.prototype.setControl=function(r,e){t.prototype.setControl.call(this,r,e)},n.prototype.setValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.setValue.call(n,r,o)}));t.prototype.setValue.call(this,r,o)},n.prototype.patchValue=function(r,o){var n=this;if(e.isObservable(r))return r.subscribe((function(r){return t.prototype.patchValue.call(n,r,o)}));t.prototype.patchValue.call(this,r,o)},n.prototype.disabledWhile=function(t,r){return C(this,t,r)},n.prototype.enabledWhile=function(t,r){return E(this,t,r)},n.prototype.mergeValidators=function(t){O(this,t)},n.prototype.mergeAsyncValidators=function(t){this.setAsyncValidators(u([this.asyncValidator],p(t))),this.updateValueAndValidity()},n.prototype.markAsTouched=function(r){t.prototype.markAsTouched.call(this,r),this.touchChanges.next(!0)},n.prototype.markAsUntouched=function(r){t.prototype.markAsUntouched.call(this,r),this.touchChanges.next(!1)},n.prototype.markAsPristine=function(r){t.prototype.markAsPristine.call(this,r),this.dirtyChanges.next(!1)},n.prototype.markAsDirty=function(r){t.prototype.markAsDirty.call(this,r),this.dirtyChanges.next(!0)},n.prototype.markAllAsDirty=function(){S(this)},n.prototype.reset=function(r,e){t.prototype.reset.call(this,r,e)},n.prototype.setValidators=function(r){t.prototype.setValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},n.prototype.setAsyncValidators=function(r){t.prototype.setAsyncValidators.call(this,r),t.prototype.updateValueAndValidity.call(this)},n.prototype.validateOn=function(t){return k(this,t)},n.prototype.hasError=function(r,e){return t.prototype.hasError.call(this,r,e)},n.prototype.setErrors=function(r,e){return void 0===e&&(e={}),t.prototype.setErrors.call(this,r,e)},n.prototype.mergeErrors=function(t,r){void 0===r&&(r={}),this.setErrors(h(this.errors,t),r)},n.prototype.removeError=function(t,r){void 0===r&&(r={}),this.setErrors(y(this.errors,t),r)},n.prototype.getError=function(r,e){return t.prototype.getError.call(this,r,e)},n.prototype.hasErrorAndTouched=function(t){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return j.apply(void 0,u([this,t],r))},n.prototype.hasErrorAndDirty=function(t){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return w.apply(void 0,u([this,t],r))},n.prototype.setEnable=function(t,r){void 0===t&&(t=!0),V(this,t,r)},n.prototype.setDisable=function(t,r){void 0===t&&(t=!0),A(this,t,r)},n.prototype.persist=function(t,r){var e=this,n=r.debounceTime,i=r.manager,s=r.arrControlFactory,a=i||new D;return this.restore(t,a,s).pipe(o.switchMap((function(){return function(t,r,e){return t.valueChanges.pipe(o.debounceTime(e.debounceTime),o.switchMap((function(t){return l(e.manager.setValue(r,t))})))}(e,t,{debounceTime:n||250,manager:a})})))},n.prototype.restore=function(t,e,n){var i=this;return l(e.getValue(t)).pipe(o.take(1),o.tap((function(t){t&&(!function(t,e,o){Object.keys(e).forEach((function(n){var i=e[n];if(Array.isArray(i)&&t.get(n)instanceof r.FormArray){if(!o||o&&!(n in o))throw new Error("Please provide arrControlFactory for "+n);var s=t.get(n),a=o[n];!function(t){for(;0!==t.length;)t.removeAt(0)}(s),i.forEach((function(t,r){return s.insert(r,a(t))}))}}))}(i,t,n),i.patchValue(t,{emitEvent:!1}))})))},n}(r.FormGroup);var T=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return s(r,t),r.prototype.group=function(t,r){var e,o=this._reduceControls(t),n=null,i=null;return null!=r&&(!function(t){return void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn}(r)?(n=null!=r.validator?r.validator:null,i=null!=r.asyncValidator?r.asyncValidator:null):(n=null!=r.validators?r.validators:null,i=null!=r.asyncValidators?r.asyncValidators:null,e=null!=r.updateOn?r.updateOn:void 0)),new U(o,{asyncValidators:i,updateOn:e,validators:n})},r.prototype.control=function(t,r,e){return new x(t,r,e)},r.prototype.array=function(t,r,e){var o=this,n=t.map((function(t){return o._createControl(t)}));return new $(n,r,e)},r}(r.FormBuilder);T.ɵprov=n.ɵɵdefineInjectable({factory:function(){return new T},token:T,providedIn:"root"}),T.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}];var _=function(){function t(){this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t}(),F=function(){function t(){}return t.prototype.setValue=function(t,r){return sessionStorage.setItem(t,JSON.stringify(r)),r},t.prototype.getValue=function(t){return JSON.parse(sessionStorage.getItem(t)||"{}")},t}();t.ControlValueAccessor=_,t.FormArray=$,t.FormBuilder=T,t.FormControl=x,t.FormGroup=U,t.LocalStorageManager=D,t.SessionStorageManager=F,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=ngneat-reactive-forms.umd.min.js.map

@@ -5,3 +5,3 @@ import { FormArray as NgFormArray } from '@angular/forms';

import { controlDisabled$, controlDisabledWhile, controlEnabled$, controlEnabledWhile, controlErrorChanges$, controlStatusChanges$, controlValueChanges$, disableControl, enableControl, hasErrorAndDirty, hasErrorAndTouched, markAllDirty, mergeControlValidators } from './control-actions';
import { coerceArray } from './utils';
import { coerceArray, mergeErrors, removeError } from './utils';
export class FormArray extends NgFormArray {

@@ -105,2 +105,8 @@ constructor(controls, validatorOrOpts, asyncValidator) {

}
mergeErrors(errors, opts = {}) {
this.setErrors(mergeErrors(this.errors, errors), opts);
}
removeError(key, opts = {}) {
this.setErrors(removeError(this.errors, key), opts);
}
getError(errorCode, path) {

@@ -133,2 +139,2 @@ return super.getError(errorCode, path);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmduZWF0L3JlYWN0aXZlLWZvcm1zL3NyYy9saWIvZm9ybUFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLElBQUksV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osc0JBQXNCLEVBQ3ZCLE1BQU0sbUJBQW1CLENBQUM7QUFjM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV0QyxNQUFNLE9BQU8sU0FBMkMsU0FBUSxXQUFXO0lBbUJ6RSxZQUNTLFFBQW1DLEVBQzFDLGVBQWlDLEVBQ2pDLGNBQStCO1FBRS9CLEtBQUssQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBSjFDLGFBQVEsR0FBUixRQUFRLENBQTJCO1FBYnBDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN0QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFckMsV0FBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUN2RSxXQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUs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QUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ3pDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQjtTQUNGO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUFycmF5IGFzIE5nRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBjb250cm9sRGlzYWJsZWQkLFxuICBjb250cm9sRGlzYWJsZWRXaGlsZSxcbiAgY29udHJvbEVuYWJsZWQkLFxuICBjb250cm9sRW5hYmxlZFdoaWxlLFxuICBjb250cm9sRXJyb3JDaGFuZ2VzJCxcbiAgY29udHJvbFN0YXR1c0NoYW5nZXMkLFxuICBjb250cm9sVmFsdWVDaGFuZ2VzJCxcbiAgZGlzYWJsZUNvbnRyb2wsXG4gIGVuYWJsZUNvbnRyb2wsXG4gIGhhc0Vycm9yQW5kRGlydHksXG4gIGhhc0Vycm9yQW5kVG91Y2hlZCxcbiAgbWFya0FsbERpcnR5LFxuICBtZXJnZUNvbnRyb2xWYWxpZGF0b3JzXG59IGZyb20gJy4vY29udHJvbC1hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQXN5bmNWYWxpZGF0b3IsXG4gIENvbnRyb2xFdmVudE9wdGlvbnMsXG4gIENvbnRyb2xPcHRpb25zLFxuICBDb250cm9sUGF0aCxcbiAgQ29udHJvbFN0YXRlLFxuICBFbWl0RXZlbnQsXG4gIEV4dHJhY3RTdHJpbmdzLFxuICBPbmx5U2VsZixcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JPck9wdHNcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgRm9ybUFycmF5PFQgPSBhbnksIEUgZXh0ZW5kcyBvYmplY3QgPSBhbnk+IGV4dGVuZHMgTmdGb3JtQXJyYXkge1xuICByZWFkb25seSB2YWx1ZTogVFtdO1xuICByZWFkb25seSB2YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8VFtdPjtcbiAgcmVhZG9ubHkgc3RhdHVzOiBDb250cm9sU3RhdGU7XG4gIHJlYWRvbmx5IHN0YXR1c0NoYW5nZXM6IE9ic2VydmFibGU8Q29udHJvbFN0YXRlPjtcbiAgcmVhZG9ubHkgZXJyb3JzOiBFIHwgbnVsbDtcblxuICBwcml2YXRlIHRvdWNoQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgZGlydHlDaGFuZ2VzID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSB0b3VjaCQgPSB0aGlzLnRvdWNoQ2hhbmdlcy5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICByZWFkb25seSBkaXJ0eSQgPSB0aGlzLmRpcnR5Q2hhbmdlcy5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gIHJlYWRvbmx5IHZhbHVlJCA9IGNvbnRyb2xWYWx1ZUNoYW5nZXMkPFRbXT4odGhpcyk7XG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IGNvbnRyb2xEaXNhYmxlZCQodGhpcyk7XG4gIHJlYWRvbmx5IGVuYWJsZWQkID0gY29udHJvbEVuYWJsZWQkKHRoaXMpO1xuICByZWFkb25seSBzdGF0dXMkID0gY29udHJvbFN0YXR1c0NoYW5nZXMkKHRoaXMpO1xuICByZWFkb25seSBlcnJvcnMkID0gY29udHJvbEVycm9yQ2hhbmdlcyQ8RT4odGhpcyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbnRyb2xzOiBBcnJheTxBYnN0cmFjdENvbnRyb2w8VD4+LFxuICAgIHZhbGlkYXRvck9yT3B0cz86IFZhbGlkYXRvck9yT3B0cyxcbiAgICBhc3luY1ZhbGlkYXRvcj86IEFzeW5jVmFsaWRhdG9yXG4gICkge1xuICAgIHN1cGVyKGNvbnRyb2xzLCB2YWxpZGF0b3JPck9wdHMsIGFzeW5jVmFsaWRhdG9yKTtcbiAgfVxuXG4gIHNlbGVjdDxSPihtYXBGbjogKHN0YXRlOiBUW10pID0+IFIpOiBPYnNlcnZhYmxlPFI+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSQucGlwZShtYXAobWFwRm4pLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIGdldFJhd1ZhbHVlKCk6IFRbXSB7XG4gICAgcmV0dXJuIHN1cGVyLmdldFJhd1ZhbHVlKCk7XG4gIH1cblxuICBhdChpbmRleDogbnVtYmVyKTogQWJzdHJhY3RDb250cm9sPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIuYXQoaW5kZXgpIGFzIEFic3RyYWN0Q29udHJvbDxUPjtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFRbXT4sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogU3Vic2NyaXB0aW9uO1xuICBzZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogVFtdLCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IHZvaWQ7XG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBUW10gfCBPYnNlcnZhYmxlPFRbXT4sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogU3Vic2NyaXB0aW9uIHwgdm9pZCB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZSh2YWx1ZU9yT2JzZXJ2YWJsZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZU9yT2JzZXJ2YWJsZS5zdWJzY3JpYmUodmFsdWUgPT4gc3VwZXIuc2V0VmFsdWUodmFsdWUsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBwYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFRbXT4sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogU3Vic2NyaXB0aW9uO1xuICBwYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBUW10sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogdm9pZDtcbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogYW55LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IFN1YnNjcmlwdGlvbiB8IHZvaWQge1xuICAgIGlmIChpc09ic2VydmFibGUodmFsdWVPck9ic2VydmFibGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWVPck9ic2VydmFibGUuc3Vic2NyaWJlKCh2YWx1ZTogVFtdKSA9PiBzdXBlci5wYXRjaFZhbHVlKHZhbHVlLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgc3VwZXIucGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZSBhcyBUW10sIG9wdGlvbnMpO1xuICB9XG5cbiAgcHVzaChjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4pOiB2b2lkIHtcbiAgICByZXR1cm4gc3VwZXIucHVzaChjb250cm9sKTtcbiAgfVxuXG4gIGluc2VydChpbmRleDogbnVtYmVyLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VD4pOiB2b2lkIHtcbiAgICByZXR1cm4gc3VwZXIuaW5zZXJ0KGluZGV4LCBjb250cm9sKTtcbiAgfVxuXG4gIHNldENvbnRyb2woaW5kZXg6IG51bWJlciwgY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+KTogdm9pZCB7XG4gICAgcmV0dXJuIHN1cGVyLnNldENvbnRyb2woaW5kZXgsIGNvbnRyb2wpO1xuICB9XG5cbiAgZGlzYWJsZWRXaGlsZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gY29udHJvbERpc2FibGVkV2hpbGUodGhpcywgb2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBlbmFibGVkV2hpbGUob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKSB7XG4gICAgcmV0dXJuIGNvbnRyb2xFbmFibGVkV2hpbGUodGhpcywgb2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBtZXJnZVZhbGlkYXRvcnModmFsaWRhdG9yczogVmFsaWRhdG9yKSB7XG4gICAgbWVyZ2VDb250cm9sVmFsaWRhdG9ycyh0aGlzLCB2YWxpZGF0b3JzKTtcbiAgfVxuXG4gIG1lcmdlQXN5bmNWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yKSB7XG4gICAgdGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoW3RoaXMuYXN5bmNWYWxpZGF0b3IsIC4uLmNvZXJjZUFycmF5KHZhbGlkYXRvcnMpXSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBtYXJrQXNUb3VjaGVkKG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc1RvdWNoZWQob3B0cyk7XG4gICAgdGhpcy50b3VjaENoYW5nZXMubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG1hcmtBc1VudG91Y2hlZChvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNVbnRvdWNoZWQob3B0cyk7XG4gICAgdGhpcy50b3VjaENoYW5nZXMubmV4dChmYWxzZSk7XG4gIH1cblxuICBtYXJrQXNQcmlzdGluZShvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNQcmlzdGluZShvcHRzKTtcbiAgICB0aGlzLmRpcnR5Q2hhbmdlcy5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIG1hcmtBc0RpcnR5KG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc0RpcnR5KG9wdHMpO1xuICAgIHRoaXMuZGlydHlDaGFuZ2VzLm5leHQodHJ1ZSk7XG4gIH1cblxuICBtYXJrQWxsQXNEaXJ0eSgpOiB2b2lkIHtcbiAgICBtYXJrQWxsRGlydHkodGhpcyk7XG4gIH1cblxuICByZXNldCh2YWx1ZT86IFRbXSwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdXBlci5yZXNldCh2YWx1ZSwgb3B0aW9ucyk7XG4gIH1cblxuICBzZXRWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcjogVmFsaWRhdG9yKTogdm9pZCB7XG4gICAgc3VwZXIuc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3IpO1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHNldEFzeW5jVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3I6IEFzeW5jVmFsaWRhdG9yKTogdm9pZCB7XG4gICAgc3VwZXIuc2V0QXN5bmNWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcik7XG4gICAgc3VwZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgdmFsaWRhdGVPbihvYnNlcnZhYmxlVmFsaWRhdGlvbjogT2JzZXJ2YWJsZTxudWxsIHwgb2JqZWN0Pikge1xuICAgIHJldHVybiBvYnNlcnZhYmxlVmFsaWRhdGlvbi5zdWJzY3JpYmUobWF5YmVFcnJvciA9PiB7XG4gICAgICB0aGlzLnNldEVycm9ycyhtYXliZUVycm9yKTtcbiAgICB9KTtcbiAgfVxuXG4gIGhhc0Vycm9yKGVycm9yQ29kZTogRXh0cmFjdFN0cmluZ3M8RT4sIHBhdGg/OiBDb250cm9sUGF0aCkge1xuICAgIHJldHVybiBzdXBlci5oYXNFcnJvcihlcnJvckNvZGUsIHBhdGgpO1xuICB9XG5cbiAgc2V0RXJyb3JzKGVycm9yczogUGFydGlhbDxFPiB8IG51bGwsIG9wdHM6IEVtaXRFdmVudCA9IHt9KSB7XG4gICAgcmV0dXJuIHN1cGVyLnNldEVycm9ycyhlcnJvcnMsIG9wdHMpO1xuICB9XG5cbiAgZ2V0RXJyb3I8SyBleHRlbmRzIEV4dHJhY3RTdHJpbmdzPEU+PihlcnJvckNvZGU6IEssIHBhdGg/OiBDb250cm9sUGF0aCkge1xuICAgIHJldHVybiBzdXBlci5nZXRFcnJvcihlcnJvckNvZGUsIHBhdGgpIGFzIEVbS10gfCBudWxsO1xuICB9XG5cbiAgaGFzRXJyb3JBbmRUb3VjaGVkKGVycm9yQ29kZTogRXh0cmFjdFN0cmluZ3M8RT4sIHBhdGg/OiBDb250cm9sUGF0aCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNFcnJvckFuZFRvdWNoZWQodGhpcywgZXJyb3JDb2RlLCBwYXRoKTtcbiAgfVxuXG4gIGhhc0Vycm9yQW5kRGlydHkoZXJyb3JDb2RlOiBFeHRyYWN0U3RyaW5nczxFPiwgcGF0aD86IENvbnRyb2xQYXRoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGhhc0Vycm9yQW5kRGlydHkodGhpcywgZXJyb3JDb2RlLCBwYXRoKTtcbiAgfVxuXG4gIHNldEVuYWJsZShlbmFibGUgPSB0cnVlLCBvcHRzPzogQ29udHJvbEV2ZW50T3B0aW9ucykge1xuICAgIGVuYWJsZUNvbnRyb2wodGhpcywgZW5hYmxlLCBvcHRzKTtcbiAgfVxuXG4gIHNldERpc2FibGUoZGlzYWJsZSA9IHRydWUsIG9wdHM/OiBDb250cm9sRXZlbnRPcHRpb25zKSB7XG4gICAgZGlzYWJsZUNvbnRyb2wodGhpcywgZGlzYWJsZSwgb3B0cyk7XG4gIH1cblxuICByZW1vdmUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVdoZW4odiA9PiB2LnZhbHVlID09PSB2YWx1ZSk7XG4gIH1cblxuICByZW1vdmVXaGVuKHByZWRpY2F0ZTogKGVsZW1lbnQ6IEFic3RyYWN0Q29udHJvbDxUPikgPT4gYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHRvUmVtb3ZlOiBudW1iZXJbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICBpZiAocHJlZGljYXRlKHRoaXMuYXQoaSkpKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXQoaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmduZWF0L3JlYWN0aXZlLWZvcm1zL3NyYy9saWIvZm9ybUFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLElBQUksV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osc0JBQXNCLEVBQ3ZCLE1BQU0sbUJBQW1CLENBQUM7QUFjM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhFLE1BQU0sT0FBTyxTQUEyQyxTQUFRLFdBQVc7SUFtQnpFLFlBQ1MsUUFBbUMsRUFDMUMsZUFBaUMsRUFDakMsY0FBK0I7UUFFL0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFKMUMsYUFBUSxHQUFSLFFBQVEsQ0FBMkI7UUFicEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3RDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUVyQyxXQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLFdBQU0sR0FBRyxJQUFJLENBQUMs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Q3BDLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxJQUEwQjtRQUNuRCxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsVUFBVSxDQUFDLFNBQW1EO1FBQzVELE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM5QixLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDekMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2xCO1NBQ0Y7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQXJyYXkgYXMgTmdGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGNvbnRyb2xEaXNhYmxlZCQsXG4gIGNvbnRyb2xEaXNhYmxlZFdoaWxlLFxuICBjb250cm9sRW5hYmxlZCQsXG4gIGNvbnRyb2xFbmFibGVkV2hpbGUsXG4gIGNvbnRyb2xFcnJvckNoYW5nZXMkLFxuICBjb250cm9sU3RhdHVzQ2hhbmdlcyQsXG4gIGNvbnRyb2xWYWx1ZUNoYW5nZXMkLFxuICBkaXNhYmxlQ29udHJvbCxcbiAgZW5hYmxlQ29udHJvbCxcbiAgaGFzRXJyb3JBbmREaXJ0eSxcbiAgaGFzRXJyb3JBbmRUb3VjaGVkLFxuICBtYXJrQWxsRGlydHksXG4gIG1lcmdlQ29udHJvbFZhbGlkYXRvcnNcbn0gZnJvbSAnLi9jb250cm9sLWFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBBc3luY1ZhbGlkYXRvcixcbiAgQ29udHJvbEV2ZW50T3B0aW9ucyxcbiAgQ29udHJvbE9wdGlvbnMsXG4gIENvbnRyb2xQYXRoLFxuICBDb250cm9sU3RhdGUsXG4gIEVtaXRFdmVudCxcbiAgRXh0cmFjdFN0cmluZ3MsXG4gIE9ubHlTZWxmLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvck9yT3B0c1xufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNvZXJjZUFycmF5LCBtZXJnZUVycm9ycywgcmVtb3ZlRXJyb3IgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEZvcm1BcnJheTxUID0gYW55LCBFIGV4dGVuZHMgb2JqZWN0ID0gYW55PiBleHRlbmRzIE5nRm9ybUFycmF5IHtcbiAgcmVhZG9ubHkgdmFsdWU6IFRbXTtcbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPFRbXT47XG4gIHJlYWRvbmx5IHN0YXR1czogQ29udHJvbFN0YXRlO1xuICByZWFkb25seSBzdGF0dXNDaGFuZ2VzOiBPYnNlcnZhYmxlPENvbnRyb2xTdGF0ZT47XG4gIHJlYWRvbmx5IGVycm9yczogRSB8IG51bGw7XG5cbiAgcHJpdmF0ZSB0b3VjaENoYW5nZXMgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIGRpcnR5Q2hhbmdlcyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgcmVhZG9ubHkgdG91Y2gkID0gdGhpcy50b3VjaENoYW5nZXMuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgcmVhZG9ubHkgZGlydHkkID0gdGhpcy5kaXJ0eUNoYW5nZXMuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICByZWFkb25seSB2YWx1ZSQgPSBjb250cm9sVmFsdWVDaGFuZ2VzJDxUW10+KHRoaXMpO1xuICByZWFkb25seSBkaXNhYmxlZCQgPSBjb250cm9sRGlzYWJsZWQkKHRoaXMpO1xuICByZWFkb25seSBlbmFibGVkJCA9IGNvbnRyb2xFbmFibGVkJCh0aGlzKTtcbiAgcmVhZG9ubHkgc3RhdHVzJCA9IGNvbnRyb2xTdGF0dXNDaGFuZ2VzJCh0aGlzKTtcbiAgcmVhZG9ubHkgZXJyb3JzJCA9IGNvbnRyb2xFcnJvckNoYW5nZXMkPEU+KHRoaXMpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjb250cm9sczogQXJyYXk8QWJzdHJhY3RDb250cm9sPFQ+PixcbiAgICB2YWxpZGF0b3JPck9wdHM/OiBWYWxpZGF0b3JPck9wdHMsXG4gICAgYXN5bmNWYWxpZGF0b3I/OiBBc3luY1ZhbGlkYXRvclxuICApIHtcbiAgICBzdXBlcihjb250cm9scywgdmFsaWRhdG9yT3JPcHRzLCBhc3luY1ZhbGlkYXRvcik7XG4gIH1cblxuICBzZWxlY3Q8Uj4obWFwRm46IChzdGF0ZTogVFtdKSA9PiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUkLnBpcGUobWFwKG1hcEZuKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICBnZXRSYXdWYWx1ZSgpOiBUW10ge1xuICAgIHJldHVybiBzdXBlci5nZXRSYXdWYWx1ZSgpO1xuICB9XG5cbiAgYXQoaW5kZXg6IG51bWJlcik6IEFic3RyYWN0Q29udHJvbDxUPiB7XG4gICAgcmV0dXJuIHN1cGVyLmF0KGluZGV4KSBhcyBBYnN0cmFjdENvbnRyb2w8VD47XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUW10+LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IFN1YnNjcmlwdGlvbjtcbiAgc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGU6IFRbXSwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiB2b2lkO1xuICBzZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogVFtdIHwgT2JzZXJ2YWJsZTxUW10+LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IFN1YnNjcmlwdGlvbiB8IHZvaWQge1xuICAgIGlmIChpc09ic2VydmFibGUodmFsdWVPck9ic2VydmFibGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWVPck9ic2VydmFibGUuc3Vic2NyaWJlKHZhbHVlID0+IHN1cGVyLnNldFZhbHVlKHZhbHVlLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgc3VwZXIuc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUW10+LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IFN1YnNjcmlwdGlvbjtcbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogVFtdLCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IHZvaWQ7XG4gIHBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGU6IGFueSwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiBTdWJzY3JpcHRpb24gfCB2b2lkIHtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlT3JPYnNlcnZhYmxlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlT3JPYnNlcnZhYmxlLnN1YnNjcmliZSgodmFsdWU6IFRbXSkgPT4gc3VwZXIucGF0Y2hWYWx1ZSh2YWx1ZSwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHN1cGVyLnBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGUgYXMgVFtdLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1c2goY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+KTogdm9pZCB7XG4gICAgcmV0dXJuIHN1cGVyLnB1c2goY29udHJvbCk7XG4gIH1cblxuICBpbnNlcnQoaW5kZXg6IG51bWJlciwgY29udHJvbDogQWJzdHJhY3RDb250cm9sPFQ+KTogdm9pZCB7XG4gICAgcmV0dXJuIHN1cGVyLmluc2VydChpbmRleCwgY29udHJvbCk7XG4gIH1cblxuICBzZXRDb250cm9sKGluZGV4OiBudW1iZXIsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUPik6IHZvaWQge1xuICAgIHJldHVybiBzdXBlci5zZXRDb250cm9sKGluZGV4LCBjb250cm9sKTtcbiAgfVxuXG4gIGRpc2FibGVkV2hpbGUob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKSB7XG4gICAgcmV0dXJuIGNvbnRyb2xEaXNhYmxlZFdoaWxlKHRoaXMsIG9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgZW5hYmxlZFdoaWxlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucykge1xuICAgIHJldHVybiBjb250cm9sRW5hYmxlZFdoaWxlKHRoaXMsIG9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgbWVyZ2VWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IFZhbGlkYXRvcikge1xuICAgIG1lcmdlQ29udHJvbFZhbGlkYXRvcnModGhpcywgdmFsaWRhdG9ycyk7XG4gIH1cblxuICBtZXJnZUFzeW5jVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvcikge1xuICAgIHRoaXMuc2V0QXN5bmNWYWxpZGF0b3JzKFt0aGlzLmFzeW5jVmFsaWRhdG9yLCAuLi5jb2VyY2VBcnJheSh2YWxpZGF0b3JzKV0pO1xuICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgbWFya0FzVG91Y2hlZChvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNUb3VjaGVkKG9wdHMpO1xuICAgIHRoaXMudG91Y2hDaGFuZ2VzLm5leHQodHJ1ZSk7XG4gIH1cblxuICBtYXJrQXNVbnRvdWNoZWQob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzVW50b3VjaGVkKG9wdHMpO1xuICAgIHRoaXMudG91Y2hDaGFuZ2VzLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbWFya0FzUHJpc3RpbmUob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzUHJpc3RpbmUob3B0cyk7XG4gICAgdGhpcy5kaXJ0eUNoYW5nZXMubmV4dChmYWxzZSk7XG4gIH1cblxuICBtYXJrQXNEaXJ0eShvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNEaXJ0eShvcHRzKTtcbiAgICB0aGlzLmRpcnR5Q2hhbmdlcy5uZXh0KHRydWUpO1xuICB9XG5cbiAgbWFya0FsbEFzRGlydHkoKTogdm9pZCB7XG4gICAgbWFya0FsbERpcnR5KHRoaXMpO1xuICB9XG5cbiAgcmVzZXQodmFsdWU/OiBUW10sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogdm9pZCB7XG4gICAgc3VwZXIucmVzZXQodmFsdWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3I6IFZhbGlkYXRvcik6IHZvaWQge1xuICAgIHN1cGVyLnNldFZhbGlkYXRvcnMobmV3VmFsaWRhdG9yKTtcbiAgICBzdXBlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBzZXRBc3luY1ZhbGlkYXRvcnMobmV3VmFsaWRhdG9yOiBBc3luY1ZhbGlkYXRvcik6IHZvaWQge1xuICAgIHN1cGVyLnNldEFzeW5jVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3IpO1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHZhbGlkYXRlT24ob2JzZXJ2YWJsZVZhbGlkYXRpb246IE9ic2VydmFibGU8bnVsbCB8IG9iamVjdD4pIHtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZVZhbGlkYXRpb24uc3Vic2NyaWJlKG1heWJlRXJyb3IgPT4ge1xuICAgICAgdGhpcy5zZXRFcnJvcnMobWF5YmVFcnJvcik7XG4gICAgfSk7XG4gIH1cblxuICBoYXNFcnJvcihlcnJvckNvZGU6IEV4dHJhY3RTdHJpbmdzPEU+LCBwYXRoPzogQ29udHJvbFBhdGgpIHtcbiAgICByZXR1cm4gc3VwZXIuaGFzRXJyb3IoZXJyb3JDb2RlLCBwYXRoKTtcbiAgfVxuXG4gIHNldEVycm9ycyhlcnJvcnM6IFBhcnRpYWw8RT4gfCBudWxsLCBvcHRzOiBFbWl0RXZlbnQgPSB7fSkge1xuICAgIHJldHVybiBzdXBlci5zZXRFcnJvcnMoZXJyb3JzLCBvcHRzKTtcbiAgfVxuXG4gIG1lcmdlRXJyb3JzKGVycm9yczogUGFydGlhbDxFPiwgb3B0czogRW1pdEV2ZW50ID0ge30pOiB2b2lkIHtcbiAgICB0aGlzLnNldEVycm9ycyhtZXJnZUVycm9yczxFPih0aGlzLmVycm9ycywgZXJyb3JzKSwgb3B0cyk7XG4gIH1cblxuICByZW1vdmVFcnJvcihrZXk6IGtleW9mIEUsIG9wdHM6IEVtaXRFdmVudCA9IHt9KTogdm9pZCB7XG4gICAgdGhpcy5zZXRFcnJvcnMocmVtb3ZlRXJyb3I8RT4odGhpcy5lcnJvcnMsIGtleSksIG9wdHMpO1xuICB9XG5cbiAgZ2V0RXJyb3I8SyBleHRlbmRzIEV4dHJhY3RTdHJpbmdzPEU+PihlcnJvckNvZGU6IEssIHBhdGg/OiBDb250cm9sUGF0aCkge1xuICAgIHJldHVybiBzdXBlci5nZXRFcnJvcihlcnJvckNvZGUsIHBhdGgpIGFzIEVbS10gfCBudWxsO1xuICB9XG5cbiAgaGFzRXJyb3JBbmRUb3VjaGVkKGVycm9yQ29kZTogRXh0cmFjdFN0cmluZ3M8RT4sIHBhdGg/OiBDb250cm9sUGF0aCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNFcnJvckFuZFRvdWNoZWQodGhpcywgZXJyb3JDb2RlLCBwYXRoKTtcbiAgfVxuXG4gIGhhc0Vycm9yQW5kRGlydHkoZXJyb3JDb2RlOiBFeHRyYWN0U3RyaW5nczxFPiwgcGF0aD86IENvbnRyb2xQYXRoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGhhc0Vycm9yQW5kRGlydHkodGhpcywgZXJyb3JDb2RlLCBwYXRoKTtcbiAgfVxuXG4gIHNldEVuYWJsZShlbmFibGUgPSB0cnVlLCBvcHRzPzogQ29udHJvbEV2ZW50T3B0aW9ucykge1xuICAgIGVuYWJsZUNvbnRyb2wodGhpcywgZW5hYmxlLCBvcHRzKTtcbiAgfVxuXG4gIHNldERpc2FibGUoZGlzYWJsZSA9IHRydWUsIG9wdHM/OiBDb250cm9sRXZlbnRPcHRpb25zKSB7XG4gICAgZGlzYWJsZUNvbnRyb2wodGhpcywgZGlzYWJsZSwgb3B0cyk7XG4gIH1cblxuICByZW1vdmUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVdoZW4odiA9PiB2LnZhbHVlID09PSB2YWx1ZSk7XG4gIH1cblxuICByZW1vdmVXaGVuKHByZWRpY2F0ZTogKGVsZW1lbnQ6IEFic3RyYWN0Q29udHJvbDxUPikgPT4gYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHRvUmVtb3ZlOiBudW1iZXJbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICBpZiAocHJlZGljYXRlKHRoaXMuYXQoaSkpKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXQoaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=

@@ -5,3 +5,3 @@ import { FormControl as NgFormControl } from '@angular/forms';

import { controlDisabled$, controlDisabledWhile, controlEnabled$, controlEnabledWhile, controlErrorChanges$, controlStatusChanges$, controlValueChanges$, disableControl, enableControl, hasErrorAndDirty, hasErrorAndTouched, mergeControlValidators, validateControlOn } from './control-actions';
import { coerceArray } from './utils';
import { coerceArray, mergeErrors, removeError } from './utils';
export class FormControl extends NgFormControl {

@@ -87,2 +87,8 @@ constructor(formState, validatorOrOpts, asyncValidator) {

}
mergeErrors(errors, opts = {}) {
this.setErrors(mergeErrors(this.errors, errors), opts);
}
removeError(key, opts = {}) {
this.setErrors(removeError(this.errors, key), opts);
}
hasErrorAndTouched(error) {

@@ -101,2 +107,2 @@ return hasErrorAndTouched(this, error);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvcmVhY3RpdmUtZm9ybXMvc3JjL2xpYi9mb3JtQ29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2xCLE1BQU0sbUJBQW1CLENBQUM7QUFjM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV0QyxNQUFNLE9BQU8sV0FBNkMsU0FBUSxhQUFhO0lBb0I3RSxZQUFZLFNBQTJCLEVBQUUsZUFBaUMsRUFBRSxjQUErQjtRQUN6RyxLQUFLLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQWI1QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDdEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRXJDLFdBQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDdkUsV0FBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMs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QUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCBhcyBOZ0Zvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgY29udHJvbERpc2FibGVkJCxcbiAgY29udHJvbERpc2FibGVkV2hpbGUsXG4gIGNvbnRyb2xFbmFibGVkJCxcbiAgY29udHJvbEVuYWJsZWRXaGlsZSxcbiAgY29udHJvbEVycm9yQ2hhbmdlcyQsXG4gIGNvbnRyb2xTdGF0dXNDaGFuZ2VzJCxcbiAgY29udHJvbFZhbHVlQ2hhbmdlcyQsXG4gIGRpc2FibGVDb250cm9sLFxuICBlbmFibGVDb250cm9sLFxuICBoYXNFcnJvckFuZERpcnR5LFxuICBoYXNFcnJvckFuZFRvdWNoZWQsXG4gIG1lcmdlQ29udHJvbFZhbGlkYXRvcnMsXG4gIHZhbGlkYXRlQ29udHJvbE9uXG59IGZyb20gJy4vY29udHJvbC1hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFzeW5jVmFsaWRhdG9yLFxuICBBc3luY1ZhbGlkYXRvckZuLFxuICBDb250cm9sRXZlbnRPcHRpb25zLFxuICBDb250cm9sT3B0aW9ucyxcbiAgQ29udHJvbFN0YXRlLFxuICBFbWl0RXZlbnQsXG4gIEV4dHJhY3RTdHJpbmdzLFxuICBPbmx5U2VsZixcbiAgT3JCb3hlZFZhbHVlLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvck9yT3B0c1xufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNvZXJjZUFycmF5IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBGb3JtQ29udHJvbDxUID0gYW55LCBFIGV4dGVuZHMgb2JqZWN0ID0gYW55PiBleHRlbmRzIE5nRm9ybUNvbnRyb2wge1xuICByZWFkb25seSB2YWx1ZTogVDtcbiAgcmVhZG9ubHkgZXJyb3JzOiBFIHwgbnVsbDtcbiAgcmVhZG9ubHkgYXN5bmNWYWxpZGF0b3I6IEFzeW5jVmFsaWRhdG9yRm48VD47XG4gIHJlYWRvbmx5IHZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxUPjtcbiAgcmVhZG9ubHkgc3RhdHVzOiBDb250cm9sU3RhdGU7XG4gIHJlYWRvbmx5IHN0YXR1c0NoYW5nZXM6IE9ic2VydmFibGU8Q29udHJvbFN0YXRlPjtcblxuICBwcml2YXRlIHRvdWNoQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgZGlydHlDaGFuZ2VzID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSB0b3VjaCQgPSB0aGlzLnRvdWNoQ2hhbmdlcy5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICByZWFkb25seSBkaXJ0eSQgPSB0aGlzLmRpcnR5Q2hhbmdlcy5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gIHJlYWRvbmx5IHZhbHVlJCA9IGNvbnRyb2xWYWx1ZUNoYW5nZXMkPFQ+KHRoaXMpO1xuICByZWFkb25seSBkaXNhYmxlZCQgPSBjb250cm9sRGlzYWJsZWQkPFQ+KHRoaXMpO1xuICByZWFkb25seSBlbmFibGVkJCA9IGNvbnRyb2xFbmFibGVkJDxUPih0aGlzKTtcbiAgcmVhZG9ubHkgc3RhdHVzJCA9IGNvbnRyb2xTdGF0dXNDaGFuZ2VzJDxUPih0aGlzKTtcbiAgcmVhZG9ubHkgZXJyb3JzJCA9IGNvbnRyb2xFcnJvckNoYW5nZXMkPEU+KHRoaXMpO1xuXG4gIGNvbnN0cnVjdG9yKGZvcm1TdGF0ZT86IE9yQm94ZWRWYWx1ZTxUPiwgdmFsaWRhdG9yT3JPcHRzPzogVmFsaWRhdG9yT3JPcHRzLCBhc3luY1ZhbGlkYXRvcj86IEFzeW5jVmFsaWRhdG9yKSB7XG4gICAgc3VwZXIoZm9ybVN0YXRlLCB2YWxpZGF0b3JPck9wdHMsIGFzeW5jVmFsaWRhdG9yKTtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFQ+LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpOiBTdWJzY3JpcHRpb247XG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBULCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpOiB2b2lkO1xuICBzZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogYW55LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpOiBTdWJzY3JpcHRpb24gfCB2b2lkIHtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlT3JPYnNlcnZhYmxlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlT3JPYnNlcnZhYmxlLnN1YnNjcmliZSh2YWx1ZSA9PiBzdXBlci5zZXRWYWx1ZSh2YWx1ZSwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHN1cGVyLnNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIHBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGU6IE9ic2VydmFibGU8VD4sIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucyk6IFN1YnNjcmlwdGlvbjtcbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogVCwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKTogdm9pZDtcbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogYW55LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpOiBTdWJzY3JpcHRpb24gfCB2b2lkIHtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlT3JPYnNlcnZhYmxlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlT3JPYnNlcnZhYmxlLnN1YnNjcmliZSh2YWx1ZSA9PiBzdXBlci5wYXRjaFZhbHVlKHZhbHVlLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgc3VwZXIucGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBkaXNhYmxlZFdoaWxlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucykge1xuICAgIHJldHVybiBjb250cm9sRGlzYWJsZWRXaGlsZSh0aGlzLCBvYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGVuYWJsZWRXaGlsZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gY29udHJvbEVuYWJsZWRXaGlsZSh0aGlzLCBvYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIG1lcmdlVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBWYWxpZGF0b3IpIHtcbiAgICBtZXJnZUNvbnRyb2xWYWxpZGF0b3JzKHRoaXMsIHZhbGlkYXRvcnMpO1xuICB9XG5cbiAgbWVyZ2VBc3luY1ZhbGlkYXRvcnModmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3IpIHtcbiAgICB0aGlzLnNldEFzeW5jVmFsaWRhdG9ycyhbdGhpcy5hc3luY1ZhbGlkYXRvciwgLi4uY29lcmNlQXJyYXkodmFsaWRhdG9ycyldKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIG1hcmtBc1RvdWNoZWQob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzVG91Y2hlZChvcHRzKTtcbiAgICB0aGlzLnRvdWNoQ2hhbmdlcy5uZXh0KHRydWUpO1xuICB9XG5cbiAgbWFya0FzVW50b3VjaGVkKG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc1VudG91Y2hlZChvcHRzKTtcbiAgICB0aGlzLnRvdWNoQ2hhbmdlcy5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIG1hcmtBc1ByaXN0aW5lKG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc1ByaXN0aW5lKG9wdHMpO1xuICAgIHRoaXMuZGlydHlDaGFuZ2VzLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbWFya0FzRGlydHkob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzRGlydHkob3B0cyk7XG4gICAgdGhpcy5kaXJ0eUNoYW5nZXMubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG1hcmtBbGxBc0RpcnR5KCk6IHZvaWQge1xuICAgIHRoaXMubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgfVxuXG4gIHJlc2V0KGZvcm1TdGF0ZT86IE9yQm94ZWRWYWx1ZTxUPiwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdXBlci5yZXNldChmb3JtU3RhdGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3I6IFZhbGlkYXRvcik6IHZvaWQge1xuICAgIHN1cGVyLnNldFZhbGlkYXRvcnMobmV3VmFsaWRhdG9yKTtcbiAgICBzdXBlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBzZXRBc3luY1ZhbGlkYXRvcnMobmV3VmFsaWRhdG9yOiBBc3luY1ZhbGlkYXRvcik6IHZvaWQge1xuICAgIHN1cGVyLnNldEFzeW5jVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3IpO1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHZhbGlkYXRlT24ob2JzZXJ2YWJsZVZhbGlkYXRpb246IE9ic2VydmFibGU8bnVsbCB8IG9iamVjdD4pIHtcbiAgICByZXR1cm4gdmFsaWRhdGVDb250cm9sT24odGhpcywgb2JzZXJ2YWJsZVZhbGlkYXRpb24pO1xuICB9XG5cbiAgZ2V0RXJyb3I8SyBleHRlbmRzIEV4dHJhY3RTdHJpbmdzPEU+PihlcnJvckNvZGU6IEspOiBFW0tdIHwgbnVsbCB7XG4gICAgcmV0dXJuIHN1cGVyLmdldEVycm9yKGVycm9yQ29kZSkgYXMgRVtLXSB8IG51bGw7XG4gIH1cblxuICBoYXNFcnJvcjxLIGV4dGVuZHMgRXh0cmFjdFN0cmluZ3M8RT4+KGVycm9yQ29kZTogSykge1xuICAgIHJldHVybiBzdXBlci5oYXNFcnJvcihlcnJvckNvZGUpO1xuICB9XG5cbiAgc2V0RXJyb3JzKGVycm9yczogUGFydGlhbDxFPiB8IG51bGwsIG9wdHM6IEVtaXRFdmVudCA9IHt9KSB7XG4gICAgcmV0dXJuIHN1cGVyLnNldEVycm9ycyhlcnJvcnMsIG9wdHMpO1xuICB9XG5cbiAgaGFzRXJyb3JBbmRUb3VjaGVkKGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNFcnJvckFuZFRvdWNoZWQodGhpcywgZXJyb3IpO1xuICB9XG5cbiAgaGFzRXJyb3JBbmREaXJ0eShlcnJvcjogRXh0cmFjdFN0cmluZ3M8RT4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzRXJyb3JBbmREaXJ0eSh0aGlzLCBlcnJvcik7XG4gIH1cblxuICBzZXRFbmFibGUoZW5hYmxlID0gdHJ1ZSwgb3B0cz86IENvbnRyb2xFdmVudE9wdGlvbnMpIHtcbiAgICBlbmFibGVDb250cm9sKHRoaXMsIGVuYWJsZSwgb3B0cyk7XG4gIH1cblxuICBzZXREaXNhYmxlKGRpc2FibGUgPSB0cnVlLCBvcHRzPzogQ29udHJvbEV2ZW50T3B0aW9ucykge1xuICAgIGRpc2FibGVDb250cm9sKHRoaXMsIGRpc2FibGUsIG9wdHMpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvcmVhY3RpdmUtZm9ybXMvc3JjL2xpYi9mb3JtQ29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2xCLE1BQU0sbUJBQW1CLENBQUM7QUFjM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhFLE1BQU0sT0FBTyxXQUE2QyxTQUFRLGFBQWE7SUFvQjdFLFlBQVksU0FBMkIsRUFBRSxlQUFpQyxFQUFFLGNBQStCO1FBQ3pHLEtBQUssQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBYjVDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN0QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFckMsV0FBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUN2RSxXQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENB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a0JBQWtCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUF3QjtRQUN2QyxPQUFPLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsSUFBMEI7UUFDakQsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLElBQTBCO1FBQ25ELGNBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sIGFzIE5nRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBjb250cm9sRGlzYWJsZWQkLFxuICBjb250cm9sRGlzYWJsZWRXaGlsZSxcbiAgY29udHJvbEVuYWJsZWQkLFxuICBjb250cm9sRW5hYmxlZFdoaWxlLFxuICBjb250cm9sRXJyb3JDaGFuZ2VzJCxcbiAgY29udHJvbFN0YXR1c0NoYW5nZXMkLFxuICBjb250cm9sVmFsdWVDaGFuZ2VzJCxcbiAgZGlzYWJsZUNvbnRyb2wsXG4gIGVuYWJsZUNvbnRyb2wsXG4gIGhhc0Vycm9yQW5kRGlydHksXG4gIGhhc0Vycm9yQW5kVG91Y2hlZCxcbiAgbWVyZ2VDb250cm9sVmFsaWRhdG9ycyxcbiAgdmFsaWRhdGVDb250cm9sT25cbn0gZnJvbSAnLi9jb250cm9sLWFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgQXN5bmNWYWxpZGF0b3IsXG4gIEFzeW5jVmFsaWRhdG9yRm4sXG4gIENvbnRyb2xFdmVudE9wdGlvbnMsXG4gIENvbnRyb2xPcHRpb25zLFxuICBDb250cm9sU3RhdGUsXG4gIEVtaXRFdmVudCxcbiAgRXh0cmFjdFN0cmluZ3MsXG4gIE9ubHlTZWxmLFxuICBPckJveGVkVmFsdWUsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9yT3JPcHRzXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXksIG1lcmdlRXJyb3JzLCByZW1vdmVFcnJvciB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2w8VCA9IGFueSwgRSBleHRlbmRzIG9iamVjdCA9IGFueT4gZXh0ZW5kcyBOZ0Zvcm1Db250cm9sIHtcbiAgcmVhZG9ubHkgdmFsdWU6IFQ7XG4gIHJlYWRvbmx5IGVycm9yczogRSB8IG51bGw7XG4gIHJlYWRvbmx5IGFzeW5jVmFsaWRhdG9yOiBBc3luY1ZhbGlkYXRvckZuPFQ+O1xuICByZWFkb25seSB2YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8VD47XG4gIHJlYWRvbmx5IHN0YXR1czogQ29udHJvbFN0YXRlO1xuICByZWFkb25seSBzdGF0dXNDaGFuZ2VzOiBPYnNlcnZhYmxlPENvbnRyb2xTdGF0ZT47XG5cbiAgcHJpdmF0ZSB0b3VjaENoYW5nZXMgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIGRpcnR5Q2hhbmdlcyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgcmVhZG9ubHkgdG91Y2gkID0gdGhpcy50b3VjaENoYW5nZXMuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgcmVhZG9ubHkgZGlydHkkID0gdGhpcy5kaXJ0eUNoYW5nZXMuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICByZWFkb25seSB2YWx1ZSQgPSBjb250cm9sVmFsdWVDaGFuZ2VzJDxUPih0aGlzKTtcbiAgcmVhZG9ubHkgZGlzYWJsZWQkID0gY29udHJvbERpc2FibGVkJDxUPih0aGlzKTtcbiAgcmVhZG9ubHkgZW5hYmxlZCQgPSBjb250cm9sRW5hYmxlZCQ8VD4odGhpcyk7XG4gIHJlYWRvbmx5IHN0YXR1cyQgPSBjb250cm9sU3RhdHVzQ2hhbmdlcyQ8VD4odGhpcyk7XG4gIHJlYWRvbmx5IGVycm9ycyQgPSBjb250cm9sRXJyb3JDaGFuZ2VzJDxFPih0aGlzKTtcblxuICBjb25zdHJ1Y3Rvcihmb3JtU3RhdGU/OiBPckJveGVkVmFsdWU8VD4sIHZhbGlkYXRvck9yT3B0cz86IFZhbGlkYXRvck9yT3B0cywgYXN5bmNWYWxpZGF0b3I/OiBBc3luY1ZhbGlkYXRvcikge1xuICAgIHN1cGVyKGZvcm1TdGF0ZSwgdmFsaWRhdG9yT3JPcHRzLCBhc3luY1ZhbGlkYXRvcik7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPiwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKTogU3Vic2NyaXB0aW9uO1xuICBzZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogVCwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKTogdm9pZDtcbiAgc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGU6IGFueSwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKTogU3Vic2NyaXB0aW9uIHwgdm9pZCB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZSh2YWx1ZU9yT2JzZXJ2YWJsZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZU9yT2JzZXJ2YWJsZS5zdWJzY3JpYmUodmFsdWUgPT4gc3VwZXIuc2V0VmFsdWUodmFsdWUsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBwYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFQ+LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpOiBTdWJzY3JpcHRpb247XG4gIHBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGU6IFQsIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucyk6IHZvaWQ7XG4gIHBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGU6IGFueSwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKTogU3Vic2NyaXB0aW9uIHwgdm9pZCB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZSh2YWx1ZU9yT2JzZXJ2YWJsZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZU9yT2JzZXJ2YWJsZS5zdWJzY3JpYmUodmFsdWUgPT4gc3VwZXIucGF0Y2hWYWx1ZSh2YWx1ZSwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHN1cGVyLnBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgZGlzYWJsZWRXaGlsZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gY29udHJvbERpc2FibGVkV2hpbGUodGhpcywgb2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBlbmFibGVkV2hpbGUob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKSB7XG4gICAgcmV0dXJuIGNvbnRyb2xFbmFibGVkV2hpbGUodGhpcywgb2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBtZXJnZVZhbGlkYXRvcnModmFsaWRhdG9yczogVmFsaWRhdG9yKSB7XG4gICAgbWVyZ2VDb250cm9sVmFsaWRhdG9ycyh0aGlzLCB2YWxpZGF0b3JzKTtcbiAgfVxuXG4gIG1lcmdlQXN5bmNWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yKSB7XG4gICAgdGhpcy5zZXRBc3luY1ZhbGlkYXRvcnMoW3RoaXMuYXN5bmNWYWxpZGF0b3IsIC4uLmNvZXJjZUFycmF5KHZhbGlkYXRvcnMpXSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBtYXJrQXNUb3VjaGVkKG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc1RvdWNoZWQob3B0cyk7XG4gICAgdGhpcy50b3VjaENoYW5nZXMubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG1hcmtBc1VudG91Y2hlZChvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNVbnRvdWNoZWQob3B0cyk7XG4gICAgdGhpcy50b3VjaENoYW5nZXMubmV4dChmYWxzZSk7XG4gIH1cblxuICBtYXJrQXNQcmlzdGluZShvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNQcmlzdGluZShvcHRzKTtcbiAgICB0aGlzLmRpcnR5Q2hhbmdlcy5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIG1hcmtBc0RpcnR5KG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc0RpcnR5KG9wdHMpO1xuICAgIHRoaXMuZGlydHlDaGFuZ2VzLm5leHQodHJ1ZSk7XG4gIH1cblxuICBtYXJrQWxsQXNEaXJ0eSgpOiB2b2lkIHtcbiAgICB0aGlzLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gIH1cblxuICByZXNldChmb3JtU3RhdGU/OiBPckJveGVkVmFsdWU8VD4sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogdm9pZCB7XG4gICAgc3VwZXIucmVzZXQoZm9ybVN0YXRlLCBvcHRpb25zKTtcbiAgfVxuXG4gIHNldFZhbGlkYXRvcnMobmV3VmFsaWRhdG9yOiBWYWxpZGF0b3IpOiB2b2lkIHtcbiAgICBzdXBlci5zZXRWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcik7XG4gICAgc3VwZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgc2V0QXN5bmNWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcjogQXN5bmNWYWxpZGF0b3IpOiB2b2lkIHtcbiAgICBzdXBlci5zZXRBc3luY1ZhbGlkYXRvcnMobmV3VmFsaWRhdG9yKTtcbiAgICBzdXBlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICB2YWxpZGF0ZU9uKG9ic2VydmFibGVWYWxpZGF0aW9uOiBPYnNlcnZhYmxlPG51bGwgfCBvYmplY3Q+KSB7XG4gICAgcmV0dXJuIHZhbGlkYXRlQ29udHJvbE9uKHRoaXMsIG9ic2VydmFibGVWYWxpZGF0aW9uKTtcbiAgfVxuXG4gIGdldEVycm9yPEsgZXh0ZW5kcyBFeHRyYWN0U3RyaW5nczxFPj4oZXJyb3JDb2RlOiBLKTogRVtLXSB8IG51bGwge1xuICAgIHJldHVybiBzdXBlci5nZXRFcnJvcihlcnJvckNvZGUpIGFzIEVbS10gfCBudWxsO1xuICB9XG5cbiAgaGFzRXJyb3I8SyBleHRlbmRzIEV4dHJhY3RTdHJpbmdzPEU+PihlcnJvckNvZGU6IEspIHtcbiAgICByZXR1cm4gc3VwZXIuaGFzRXJyb3IoZXJyb3JDb2RlKTtcbiAgfVxuXG4gIHNldEVycm9ycyhlcnJvcnM6IFBhcnRpYWw8RT4gfCBudWxsLCBvcHRzOiBFbWl0RXZlbnQgPSB7fSkge1xuICAgIHJldHVybiBzdXBlci5zZXRFcnJvcnMoZXJyb3JzLCBvcHRzKTtcbiAgfVxuXG4gIG1lcmdlRXJyb3JzKGVycm9yczogUGFydGlhbDxFPiwgb3B0czogRW1pdEV2ZW50ID0ge30pOiB2b2lkIHtcbiAgICB0aGlzLnNldEVycm9ycyhtZXJnZUVycm9yczxFPih0aGlzLmVycm9ycywgZXJyb3JzKSwgb3B0cyk7XG4gIH1cblxuICByZW1vdmVFcnJvcihrZXk6IGtleW9mIEUsIG9wdHM6IEVtaXRFdmVudCA9IHt9KTogdm9pZCB7XG4gICAgdGhpcy5zZXRFcnJvcnMocmVtb3ZlRXJyb3I8RT4odGhpcy5lcnJvcnMsIGtleSksIG9wdHMpO1xuICB9XG5cbiAgaGFzRXJyb3JBbmRUb3VjaGVkKGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNFcnJvckFuZFRvdWNoZWQodGhpcywgZXJyb3IpO1xuICB9XG5cbiAgaGFzRXJyb3JBbmREaXJ0eShlcnJvcjogRXh0cmFjdFN0cmluZ3M8RT4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzRXJyb3JBbmREaXJ0eSh0aGlzLCBlcnJvcik7XG4gIH1cblxuICBzZXRFbmFibGUoZW5hYmxlID0gdHJ1ZSwgb3B0cz86IENvbnRyb2xFdmVudE9wdGlvbnMpIHtcbiAgICBlbmFibGVDb250cm9sKHRoaXMsIGVuYWJsZSwgb3B0cyk7XG4gIH1cblxuICBzZXREaXNhYmxlKGRpc2FibGUgPSB0cnVlLCBvcHRzPzogQ29udHJvbEV2ZW50T3B0aW9ucykge1xuICAgIGRpc2FibGVDb250cm9sKHRoaXMsIGRpc2FibGUsIG9wdHMpO1xuICB9XG59XG4iXX0=

@@ -5,3 +5,3 @@ import { FormGroup as NgFormGroup } from '@angular/forms';

import { controlDisabled$, controlDisabledWhile, controlEnabled$, controlEnabledWhile, controlErrorChanges$, controlStatusChanges$, controlValueChanges$, disableControl, enableControl, hasErrorAndDirty, hasErrorAndTouched, markAllDirty, mergeControlValidators, selectControlValue$, validateControlOn, persistValue$, handleFormArrays } from './control-actions';
import { coerceArray, wrapIntoObservable } from './utils';
import { coerceArray, wrapIntoObservable, mergeErrors, removeError } from './utils';
import { LocalStorageManager } from './localStorageManager';

@@ -110,2 +110,8 @@ export class FormGroup extends NgFormGroup {

}
mergeErrors(errors, opts = {}) {
this.setErrors(mergeErrors(this.errors, errors), opts);
}
removeError(key, opts = {}) {
this.setErrors(removeError(this.errors, key), opts);
}
getError(errorCode, path) {

@@ -142,2 +148,2 @@ return super.getError(errorCode, path);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmduZWF0L3JlYWN0aXZlLWZvcm1zL3NyYy9saWIvZm9ybUdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLElBQUksV0FBVyxFQUE0QixNQUFNLGdCQUFnQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLGdCQUFnQixFQUNqQixNQUFNLG1CQUFtQixDQUFDO0FBa0IzQixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzVELE1BQU0sT0FBTyxTQUF1RCxTQUFRLFdBQVc7SUFtQnJGLFlBQ1MsUUFBd0QsRUFDL0QsZUFBaUMsRUFDakMsY0FBK0I7UUFFL0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFKMUMsYUFBUSxHQUFSLFFBQVEsQ0FBZ0Q7UUFiekQsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3RDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztR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RSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFXLEVBQUUsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFxQjtRQUNsRixNQUFNLGNBQWMsR0FBRyxPQUFPLElBQUksSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUM5RCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ2IsYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7WUFDdkIsWUFBWSxFQUFFLFlBQVksSUFBSSxHQUFHO1lBQ2pDLE9BQU8sRUFBRSxjQUFjO1NBQ3hCLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sT0FBTyxDQUFDLEdBQVcsRUFBRSxPQUEwQixFQUFFLGlCQUF1QztRQUM5RixPQUFPLGtCQUFrQixDQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3RELElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPO1lBQ25CLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgYXMgTmdGb3JtR3JvdXAsIEZvcm1BcnJheSBhcyBOZ0Zvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwLCB0YWtlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBjb250cm9sRGlzYWJsZWQkLFxuICBjb250cm9sRGlzYWJsZWRXaGlsZSxcbiAgY29udHJvbEVuYWJsZWQkLFxuICBjb250cm9sRW5hYmxlZFdoaWxlLFxuICBjb250cm9sRXJyb3JDaGFuZ2VzJCxcbiAgY29udHJvbFN0YXR1c0NoYW5nZXMkLFxuICBjb250cm9sVmFsdWVDaGFuZ2VzJCxcbiAgZGlzYWJsZUNvbnRyb2wsXG4gIGVuYWJsZUNvbnRyb2wsXG4gIGhhc0Vycm9yQW5kRGlydHksXG4gIGhhc0Vycm9yQW5kVG91Y2hlZCxcbiAgbWFya0FsbERpcnR5LFxuICBtZXJnZUNvbnRyb2xWYWxpZGF0b3JzLFxuICBzZWxlY3RDb250cm9sVmFsdWUkLFxuICB2YWxpZGF0ZUNvbnRyb2xPbixcbiAgcGVyc2lzdFZhbHVlJCxcbiAgaGFuZGxlRm9ybUFycmF5c1xufSBmcm9tICcuL2NvbnRyb2wtYWN0aW9ucyc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEFzeW5jVmFsaWRhdG9yLFxuICBDb250cm9sRXZlbnRPcHRpb25zLFxuICBDb250cm9sT3B0aW9ucyxcbiAgQ29udHJvbFN0YXRlLFxuICBFbWl0RXZlbnQsXG4gIEV4dHJhY3RBYnN0cmFjdENvbnRyb2wsXG4gIEV4dHJhY3RTdHJpbmdzLFxuICBLZXlWYWx1ZUNvbnRyb2xzLFxuICBPYmosXG4gIE9ubHlTZWxmLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvck9yT3B0cyxcbiAgUGVyc2lzdE9wdGlvbnMsXG4gIENvbnRyb2xGYWN0b3J5TWFwXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXksIHdyYXBJbnRvT2JzZXJ2YWJsZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgUGVyc2lzdE1hbmFnZXIgfSBmcm9tICcuL3BlcnNpc3RNYW5hZ2VyJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZU1hbmFnZXIgfSBmcm9tICcuL2xvY2FsU3RvcmFnZU1hbmFnZXInO1xuaW1wb3J0IHsgRm9ybUFycmF5IH0gZnJvbSAnLi9mb3JtQXJyYXknO1xuXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwPFQgZXh0ZW5kcyBPYmogPSBhbnksIEUgZXh0ZW5kcyBvYmplY3QgPSBhbnk+IGV4dGVuZHMgTmdGb3JtR3JvdXAge1xuICByZWFkb25seSB2YWx1ZTogVDtcbiAgcmVhZG9ubHkgZXJyb3JzOiBFIHwgbnVsbDtcbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPFQ+O1xuICByZWFkb25seSBzdGF0dXM6IENvbnRyb2xTdGF0ZTtcbiAgcmVhZG9ubHkgc3RhdHVzQ2hhbmdlczogT2JzZXJ2YWJsZTxDb250cm9sU3RhdGU+O1xuXG4gIHByaXZhdGUgdG91Y2hDaGFuZ2VzID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBkaXJ0eUNoYW5nZXMgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIHRvdWNoJCA9IHRoaXMudG91Y2hDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIGRpcnR5JCA9IHRoaXMuZGlydHlDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgcmVhZG9ubHkgdmFsdWUkID0gY29udHJvbFZhbHVlQ2hhbmdlcyQ8VD4odGhpcyk7XG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IGNvbnRyb2xEaXNhYmxlZCQ8VD4odGhpcyk7XG4gIHJlYWRvbmx5IGVuYWJsZWQkID0gY29udHJvbEVuYWJsZWQkPFQ+KHRoaXMpO1xuICByZWFkb25seSBzdGF0dXMkID0gY29udHJvbFN0YXR1c0NoYW5nZXMkPFQ+KHRoaXMpO1xuICByZWFkb25seSBlcnJvcnMkID0gY29udHJvbEVycm9yQ2hhbmdlcyQ8RT4odGhpcyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbnRyb2xzOiBFeHRyYWN0QWJzdHJhY3RDb250cm9sPEtleVZhbHVlQ29udHJvbHM8VD4sIFQ+LFxuICAgIHZhbGlkYXRvck9yT3B0cz86IFZhbGlkYXRvck9yT3B0cyxcbiAgICBhc3luY1ZhbGlkYXRvcj86IEFzeW5jVmFsaWRhdG9yXG4gICkge1xuICAgIHN1cGVyKGNvbnRyb2xzLCB2YWxpZGF0b3JPck9wdHMsIGFzeW5jVmFsaWRhdG9yKTtcbiAgfVxuXG4gIHNlbGVjdDxSPihtYXBGbjogKHN0YXRlOiBUKSA9PiBSKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgcmV0dXJuIHNlbGVjdENvbnRyb2xWYWx1ZSQodGhpcywgbWFwRm4pO1xuICB9XG5cbiAgZ2V0UmF3VmFsdWUoKTogVCB7XG4gICAgcmV0dXJuIHN1cGVyLmdldFJhd1ZhbHVlKCk7XG4gIH1cblxuICBnZXQ8SzEgZXh0ZW5kcyBrZXlvZiBUPihwYXRoPzogW0sxXSk6IEFic3RyYWN0Q29udHJvbDxUW0sxXT47XG4gIGdldDxLMSBleHRlbmRzIGtleW9mIFQsIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0+KHBhdGg/OiBbSzEsIEsyXSk6IEFic3RyYWN0Q29udHJvbDxUW0sxXVtLMl0+O1xuICBnZXQ8SzEgZXh0ZW5kcyBrZXlvZiBULCBLMiBleHRlbmRzIGtleW9mIFRbSzFdLCBLMyBleHRlbmRzIGtleW9mIFRbSzFdW0syXT4oXG4gICAgcGF0aD86IFtLMSwgSzIsIEszXVxuICApOiBBYnN0cmFjdENvbnRyb2w8VFtLMV1bSzJdW0szXT47XG4gIGdldChwYXRoPzogc3RyaW5nKTogQWJzdHJhY3RDb250cm9sO1xuICBnZXQocGF0aDogYW55KSB7XG4gICAgcmV0dXJuIHN1cGVyLmdldChwYXRoKTtcbiAgfVxuXG4gIGdldENvbnRyb2w8UDEgZXh0ZW5kcyBrZXlvZiBUPihwcm9wMTogUDEpOiBBYnN0cmFjdENvbnRyb2w8VFtQMV0+O1xuICBnZXRDb250cm9sPFAxIGV4dGVuZHMga2V5b2YgVCwgUDIgZXh0ZW5kcyBrZXlvZiBUW1AxXT4ocHJvcDE6IFAxLCBwcm9wMjogUDIpOiBBYnN0cmFjdENvbnRyb2w8VFtQMV1bUDJdPjtcbiAgZ2V0Q29udHJvbDxQMSBleHRlbmRzIGtleW9mIFQsIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0sIFAzIGV4dGVuZHMga2V5b2YgVFtQMV1bUDJdPihcbiAgICBwcm9wMTogUDEsXG4gICAgcHJvcDI6IFAyLFxuICAgIHByb3AzOiBQM1xuICApOiBBYnN0cmFjdENvbnRyb2w8VFtQMV1bUDJdW1AzXT47XG4gIGdldENvbnRyb2w8UDEgZXh0ZW5kcyBrZXlvZiBULCBQMiBleHRlbmRzIGtleW9mIFRbUDFdLCBQMyBleHRlbmRzIGtleW9mIFRbUDFdW1AyXSwgUDQgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl1bUDNdPihcbiAgICBwcm9wMTogUDEsXG4gICAgcHJvcDI6IFAyLFxuICAgIHByb3AzOiBQMyxcbiAgICBwcm9wNDogUDRcbiAgKTogQWJzdHJhY3RDb250cm9sPFRbUDFdW1AyXVtQM11bUDRdPjtcbiAgZ2V0Q29udHJvbCguLi5uYW1lczogYW55KTogQWJzdHJhY3RDb250cm9sPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmdldChuYW1lcy5qb2luKCcuJykpO1xuICB9XG5cbiAgYWRkQ29udHJvbDxLIGV4dGVuZHMgRXh0cmFjdFN0cmluZ3M8VD4+KG5hbWU6IEssIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUW0tdPik6IHZvaWQge1xuICAgIHN1cGVyLmFkZENvbnRyb2wobmFtZSwgY29udHJvbCk7XG4gIH1cblxuICByZW1vdmVDb250cm9sKG5hbWU6IEV4dHJhY3RTdHJpbmdzPFQ+KTogdm9pZCB7XG4gICAgc3VwZXIucmVtb3ZlQ29udHJvbChuYW1lKTtcbiAgfVxuXG4gIGNvbnRhaW5zKGNvbnRyb2xOYW1lOiBFeHRyYWN0U3RyaW5nczxUPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5jb250YWlucyhjb250cm9sTmFtZSk7XG4gIH1cblxuICBzZXRDb250cm9sPEsgZXh0ZW5kcyBFeHRyYWN0U3RyaW5nczxUPj4obmFtZTogSywgY29udHJvbDogQWJzdHJhY3RDb250cm9sPFRbS10+KTogdm9pZCB7XG4gICAgc3VwZXIuc2V0Q29udHJvbChuYW1lLCBjb250cm9sKTtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFQ+LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IFN1YnNjcmlwdGlvbjtcbiAgc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGU6IFQsIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogdm9pZDtcbiAgc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGU6IGFueSwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiBhbnkge1xuICAgIGlmIChpc09ic2VydmFibGUodmFsdWVPck9ic2VydmFibGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWVPck9ic2VydmFibGUuc3Vic2NyaWJlKHZhbHVlID0+IHN1cGVyLnNldFZhbHVlKHZhbHVlLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgc3VwZXIuc2V0VmFsdWUodmFsdWVPck9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxQYXJ0aWFsPFQ+Piwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiBTdWJzY3JpcHRpb247XG4gIHBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGU6IFBhcnRpYWw8VD4sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogdm9pZDtcbiAgcGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogYW55LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IFN1YnNjcmlwdGlvbiB8IHZvaWQge1xuICAgIGlmIChpc09ic2VydmFibGUodmFsdWVPck9ic2VydmFibGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWVPck9ic2VydmFibGUuc3Vic2NyaWJlKHZhbHVlID0+IHN1cGVyLnBhdGNoVmFsdWUodmFsdWUsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBzdXBlci5wYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGRpc2FibGVkV2hpbGUob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgb3B0aW9ucz86IENvbnRyb2xPcHRpb25zKSB7XG4gICAgcmV0dXJuIGNvbnRyb2xEaXNhYmxlZFdoaWxlKHRoaXMsIG9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgZW5hYmxlZFdoaWxlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucykge1xuICAgIHJldHVybiBjb250cm9sRW5hYmxlZFdoaWxlKHRoaXMsIG9ic2VydmFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgbWVyZ2VWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IFZhbGlkYXRvcikge1xuICAgIG1lcmdlQ29udHJvbFZhbGlkYXRvcnModGhpcywgdmFsaWRhdG9ycyk7XG4gIH1cblxuICBtZXJnZUFzeW5jVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvcikge1xuICAgIHRoaXMuc2V0QXN5bmNWYWxpZGF0b3JzKFt0aGlzLmFzeW5jVmFsaWRhdG9yLCAuLi5jb2VyY2VBcnJheSh2YWxpZGF0b3JzKV0pO1xuICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgbWFya0FzVG91Y2hlZChvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNUb3VjaGVkKG9wdHMpO1xuICAgIHRoaXMudG91Y2hDaGFuZ2VzLm5leHQodHJ1ZSk7XG4gIH1cblxuICBtYXJrQXNVbnRvdWNoZWQob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzVW50b3VjaGVkKG9wdHMpO1xuICAgIHRoaXMudG91Y2hDaGFuZ2VzLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbWFya0FzUHJpc3RpbmUob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzUHJpc3RpbmUob3B0cyk7XG4gICAgdGhpcy5kaXJ0eUNoYW5nZXMubmV4dChmYWxzZSk7XG4gIH1cblxuICBtYXJrQXNEaXJ0eShvcHRzPzogT25seVNlbGYpOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNEaXJ0eShvcHRzKTtcbiAgICB0aGlzLmRpcnR5Q2hhbmdlcy5uZXh0KHRydWUpO1xuICB9XG5cbiAgbWFya0FsbEFzRGlydHkoKTogdm9pZCB7XG4gICAgbWFya0FsbERpcnR5KHRoaXMpO1xuICB9XG5cbiAgcmVzZXQoZm9ybVN0YXRlPzogUGFydGlhbDxUPiwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiB2b2lkIHtcbiAgICBzdXBlci5yZXNldChmb3JtU3RhdGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3I6IFZhbGlkYXRvcik6IHZvaWQge1xuICAgIHN1cGVyLnNldFZhbGlkYXRvcnMobmV3VmFsaWRhdG9yKTtcbiAgICBzdXBlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBzZXRBc3luY1ZhbGlkYXRvcnMobmV3VmFsaWRhdG9yOiBBc3luY1ZhbGlkYXRvcik6IHZvaWQge1xuICAgIHN1cGVyLnNldEFzeW5jVmFsaWRhdG9ycyhuZXdWYWxpZGF0b3IpO1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHZhbGlkYXRlT24ob2JzZXJ2YWJsZVZhbGlkYXRpb246IE9ic2VydmFibGU8bnVsbCB8IG9iamVjdD4pIHtcbiAgICByZXR1cm4gdmFsaWRhdGVDb250cm9sT24odGhpcywgb2JzZXJ2YWJsZVZhbGlkYXRpb24pO1xuICB9XG5cbiAgaGFzRXJyb3I8SzEgZXh0ZW5kcyBrZXlvZiBUPihlcnJvckNvZGU6IEV4dHJhY3RTdHJpbmdzPEU+LCBwYXRoPzogW0sxXSk6IGJvb2xlYW47XG4gIGhhc0Vycm9yPEsxIGV4dGVuZHMga2V5b2YgVCwgSzIgZXh0ZW5kcyBrZXlvZiBUW0sxXT4oZXJyb3JDb2RlOiBFeHRyYWN0U3RyaW5nczxFPiwgcGF0aD86IFtLMSwgSzJdKTogYm9vbGVhbjtcbiAgaGFzRXJyb3I8SzEgZXh0ZW5kcyBrZXlvZiBULCBLMiBleHRlbmRzIGtleW9mIFRbSzFdLCBLMyBleHRlbmRzIGtleW9mIFRbSzFdW0syXT4oXG4gICAgZXJyb3JDb2RlOiBFeHRyYWN0U3RyaW5nczxFPixcbiAgICBwYXRoPzogW0sxLCBLMiwgSzNdXG4gICk6IGJvb2xlYW47XG4gIGhhc0Vycm9yKGVycm9yQ29kZTogRXh0cmFjdFN0cmluZ3M8RT4sIHBhdGg/OiBzdHJpbmcpOiBib29sZWFuO1xuICBoYXNFcnJvcihlcnJvckNvZGU6IEV4dHJhY3RTdHJpbmdzPEU+LCBwYXRoPzogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmhhc0Vycm9yKGVycm9yQ29kZSwgcGF0aCk7XG4gIH1cblxuICBzZXRFcnJvcnMoZXJyb3JzOiBQYXJ0aWFsPEU+IHwgbnVsbCwgb3B0czogRW1pdEV2ZW50ID0ge30pIHtcbiAgICByZXR1cm4gc3VwZXIuc2V0RXJyb3JzKGVycm9ycywgb3B0cyk7XG4gIH1cblxuICBnZXRFcnJvcjxLIGV4dGVuZHMga2V5b2YgRSwgSzEgZXh0ZW5kcyBrZXlvZiBUPihlcnJvckNvZGU6IEssIHBhdGg/OiBbSzFdKTogRVtLXSB8IG51bGw7XG4gIGdldEVycm9yPEsgZXh0ZW5kcyBrZXlvZiBFLCBLMSBleHRlbmRzIGtleW9mIFQsIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0+KGVycm9yQ29kZTogSywgcGF0aD86IFtLMSwgSzJdKTogRVtLXSB8IG51bGw7XG4gIGdldEVycm9yPEsgZXh0ZW5kcyBrZXlvZiBFLCBLMSBleHRlbmRzIGtleW9mIFQsIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0sIEszIGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdPihcbiAgICBlcnJvckNvZGU6IEssXG4gICAgcGF0aD86IFtLMSwgSzIsIEszXVxuICApOiBFW0tdIHwgbnVsbDtcbiAgZ2V0RXJyb3I8SyBleHRlbmRzIGtleW9mIEU+KGVycm9yQ29kZTogSywgcGF0aD86IHN0cmluZyk6IEVbS10gfCBudWxsO1xuICBnZXRFcnJvcjxLIGV4dGVuZHMga2V5b2YgRT4oZXJyb3JDb2RlOiBLLCBwYXRoPzogYW55KTogRVtLXSB8IG51bGwge1xuICAgIHJldHVybiBzdXBlci5nZXRFcnJvcihlcnJvckNvZGUgYXMgYW55LCBwYXRoKSBhcyBFW0tdIHwgbnVsbDtcbiAgfVxuXG4gIGhhc0Vycm9yQW5kVG91Y2hlZDxQMSBleHRlbmRzIGtleW9mIFQ+KGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPiwgcHJvcDE/OiBQMSk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kVG91Y2hlZDxQMSBleHRlbmRzIGtleW9mIFQsIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0+KFxuICAgIGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPixcbiAgICBwcm9wMT86IFAxLFxuICAgIHByb3AyPzogUDJcbiAgKTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmRUb3VjaGVkPFAxIGV4dGVuZHMga2V5b2YgVCwgUDIgZXh0ZW5kcyBrZXlvZiBUW1AxXSwgUDMgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl0+KFxuICAgIGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPixcbiAgICBwcm9wMT86IFAxLFxuICAgIHByb3AyPzogUDIsXG4gICAgcHJvcDM/OiBQM1xuICApOiBib29sZWFuO1xuICBoYXNFcnJvckFuZFRvdWNoZWQ8XG4gICAgUDEgZXh0ZW5kcyBrZXlvZiBULFxuICAgIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0sXG4gICAgUDMgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl0sXG4gICAgUDQgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl1bUDNdXG4gID4oZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LCBwcm9wMT86IFAxLCBwcm9wMj86IFAyLCBwcm9wMz86IFAzLCBwcm9wND86IFA0KTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmRUb3VjaGVkKGVycm9yOiBhbnksIC4uLnBhdGg6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNFcnJvckFuZFRvdWNoZWQodGhpcywgZXJyb3IsIC4uLnBhdGgpO1xuICB9XG5cbiAgaGFzRXJyb3JBbmREaXJ0eTxQMSBleHRlbmRzIGtleW9mIFQ+KGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPiwgcHJvcDE/OiBQMSk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kRGlydHk8UDEgZXh0ZW5kcyBrZXlvZiBULCBQMiBleHRlbmRzIGtleW9mIFRbUDFdPihcbiAgICBlcnJvcjogRXh0cmFjdFN0cmluZ3M8RT4sXG4gICAgcHJvcDE/OiBQMSxcbiAgICBwcm9wMj86IFAyXG4gICk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kRGlydHk8UDEgZXh0ZW5kcyBrZXlvZiBULCBQMiBleHRlbmRzIGtleW9mIFRbUDFdLCBQMyBleHRlbmRzIGtleW9mIFRbUDFdW1AyXT4oXG4gICAgZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LFxuICAgIHByb3AxPzogUDEsXG4gICAgcHJvcDI/OiBQMixcbiAgICBwcm9wMz86IFAzXG4gICk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kRGlydHk8XG4gICAgUDEgZXh0ZW5kcyBrZXlvZiBULFxuICAgIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0sXG4gICAgUDMgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl0sXG4gICAgUDQgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl1bUDNdXG4gID4oZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LCBwcm9wMT86IFAxLCBwcm9wMj86IFAyLCBwcm9wMz86IFAzLCBwcm9wND86IFA0KTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmREaXJ0eShlcnJvcjogYW55LCAuLi5wYXRoOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzRXJyb3JBbmREaXJ0eSh0aGlzLCBlcnJvciwgLi4ucGF0aCk7XG4gIH1cblxuICBzZXRFbmFibGUoZW5hYmxlID0gdHJ1ZSwgb3B0cz86IENvbnRyb2xFdmVudE9wdGlvbnMpIHtcbiAgICBlbmFibGVDb250cm9sKHRoaXMsIGVuYWJsZSwgb3B0cyk7XG4gIH1cblxuICBzZXREaXNhYmxlKGRpc2FibGUgPSB0cnVlLCBvcHRzPzogQ29udHJvbEV2ZW50T3B0aW9ucykge1xuICAgIGRpc2FibGVDb250cm9sKHRoaXMsIGRpc2FibGUsIG9wdHMpO1xuICB9XG5cbiAgcGVyc2lzdChrZXk6IHN0cmluZywgeyBkZWJvdW5jZVRpbWUsIG1hbmFnZXIsIGFyckNvbnRyb2xGYWN0b3J5IH06IFBlcnNpc3RPcHRpb25zPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgcGVyc2lzdE1hbmFnZXIgPSBtYW5hZ2VyIHx8IG5ldyBMb2NhbFN0b3JhZ2VNYW5hZ2VyKCk7XG4gICAgcmV0dXJuIHRoaXMucmVzdG9yZShrZXksIHBlcnNpc3RNYW5hZ2VyLCBhcnJDb250cm9sRmFjdG9yeSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICBwZXJzaXN0VmFsdWUkKHRoaXMsIGtleSwge1xuICAgICAgICAgIGRlYm91bmNlVGltZTogZGVib3VuY2VUaW1lIHx8IDI1MCxcbiAgICAgICAgICBtYW5hZ2VyOiBwZXJzaXN0TWFuYWdlclxuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmUoa2V5OiBzdHJpbmcsIG1hbmFnZXI6IFBlcnNpc3RNYW5hZ2VyPFQ+LCBhcnJDb250cm9sRmFjdG9yeTogQ29udHJvbEZhY3RvcnlNYXA8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gd3JhcEludG9PYnNlcnZhYmxlPFQ+KG1hbmFnZXIuZ2V0VmFsdWUoa2V5KSkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICB0YXAodmFsdWUgPT4ge1xuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgICAgIGhhbmRsZUZvcm1BcnJheXModGhpcywgdmFsdWUsIGFyckNvbnRyb2xGYWN0b3J5KTtcbiAgICAgICAgdGhpcy5wYXRjaFZhbHVlKHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmduZWF0L3JlYWN0aXZlLWZvcm1zL3NyYy9saWIvZm9ybUdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLElBQUksV0FBVyxFQUE0QixNQUFNLGdCQUFnQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLGdCQUFnQixFQUNqQixNQUFNLG1CQUFtQixDQUFDO0FBa0IzQixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHNUQsTUFBTSxPQUFPLFNBQXVELFNBQVEsV0FBVztJQW1CckYsWUFDUyxRQUF3RCxFQUMvRCxlQUFpQyxFQUNqQyxjQUErQjtRQUUvQixLQUFLLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUoxQyxhQUFRLEdBQVIsUUFBUSxDQUFnRDtRQWJ6RCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDdEMsaUJBQVksR0FBRyxJ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QkFBaUIsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCBhcyBOZ0Zvcm1Hcm91cCwgRm9ybUFycmF5IGFzIE5nRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YXAsIHRha2UsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGNvbnRyb2xEaXNhYmxlZCQsXG4gIGNvbnRyb2xEaXNhYmxlZFdoaWxlLFxuICBjb250cm9sRW5hYmxlZCQsXG4gIGNvbnRyb2xFbmFibGVkV2hpbGUsXG4gIGNvbnRyb2xFcnJvckNoYW5nZXMkLFxuICBjb250cm9sU3RhdHVzQ2hhbmdlcyQsXG4gIGNvbnRyb2xWYWx1ZUNoYW5nZXMkLFxuICBkaXNhYmxlQ29udHJvbCxcbiAgZW5hYmxlQ29udHJvbCxcbiAgaGFzRXJyb3JBbmREaXJ0eSxcbiAgaGFzRXJyb3JBbmRUb3VjaGVkLFxuICBtYXJrQWxsRGlydHksXG4gIG1lcmdlQ29udHJvbFZhbGlkYXRvcnMsXG4gIHNlbGVjdENvbnRyb2xWYWx1ZSQsXG4gIHZhbGlkYXRlQ29udHJvbE9uLFxuICBwZXJzaXN0VmFsdWUkLFxuICBoYW5kbGVGb3JtQXJyYXlzXG59IGZyb20gJy4vY29udHJvbC1hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQXN5bmNWYWxpZGF0b3IsXG4gIENvbnRyb2xFdmVudE9wdGlvbnMsXG4gIENvbnRyb2xPcHRpb25zLFxuICBDb250cm9sU3RhdGUsXG4gIEVtaXRFdmVudCxcbiAgRXh0cmFjdEFic3RyYWN0Q29udHJvbCxcbiAgRXh0cmFjdFN0cmluZ3MsXG4gIEtleVZhbHVlQ29udHJvbHMsXG4gIE9iaixcbiAgT25seVNlbGYsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9yT3JPcHRzLFxuICBQZXJzaXN0T3B0aW9ucyxcbiAgQ29udHJvbEZhY3RvcnlNYXBcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSwgd3JhcEludG9PYnNlcnZhYmxlLCBtZXJnZUVycm9ycywgcmVtb3ZlRXJyb3IgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFBlcnNpc3RNYW5hZ2VyIH0gZnJvbSAnLi9wZXJzaXN0TWFuYWdlcic7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VNYW5hZ2VyIH0gZnJvbSAnLi9sb2NhbFN0b3JhZ2VNYW5hZ2VyJztcbmltcG9ydCB7IEZvcm1BcnJheSB9IGZyb20gJy4vZm9ybUFycmF5JztcblxuZXhwb3J0IGNsYXNzIEZvcm1Hcm91cDxUIGV4dGVuZHMgT2JqID0gYW55LCBFIGV4dGVuZHMgb2JqZWN0ID0gYW55PiBleHRlbmRzIE5nRm9ybUdyb3VwIHtcbiAgcmVhZG9ubHkgdmFsdWU6IFQ7XG4gIHJlYWRvbmx5IGVycm9yczogRSB8IG51bGw7XG4gIHJlYWRvbmx5IHZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxUPjtcbiAgcmVhZG9ubHkgc3RhdHVzOiBDb250cm9sU3RhdGU7XG4gIHJlYWRvbmx5IHN0YXR1c0NoYW5nZXM6IE9ic2VydmFibGU8Q29udHJvbFN0YXRlPjtcblxuICBwcml2YXRlIHRvdWNoQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgZGlydHlDaGFuZ2VzID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICB0b3VjaCQgPSB0aGlzLnRvdWNoQ2hhbmdlcy5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICBkaXJ0eSQgPSB0aGlzLmRpcnR5Q2hhbmdlcy5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gIHJlYWRvbmx5IHZhbHVlJCA9IGNvbnRyb2xWYWx1ZUNoYW5nZXMkPFQ+KHRoaXMpO1xuICByZWFkb25seSBkaXNhYmxlZCQgPSBjb250cm9sRGlzYWJsZWQkPFQ+KHRoaXMpO1xuICByZWFkb25seSBlbmFibGVkJCA9IGNvbnRyb2xFbmFibGVkJDxUPih0aGlzKTtcbiAgcmVhZG9ubHkgc3RhdHVzJCA9IGNvbnRyb2xTdGF0dXNDaGFuZ2VzJDxUPih0aGlzKTtcbiAgcmVhZG9ubHkgZXJyb3JzJCA9IGNvbnRyb2xFcnJvckNoYW5nZXMkPEU+KHRoaXMpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjb250cm9sczogRXh0cmFjdEFic3RyYWN0Q29udHJvbDxLZXlWYWx1ZUNvbnRyb2xzPFQ+LCBUPixcbiAgICB2YWxpZGF0b3JPck9wdHM/OiBWYWxpZGF0b3JPck9wdHMsXG4gICAgYXN5bmNWYWxpZGF0b3I/OiBBc3luY1ZhbGlkYXRvclxuICApIHtcbiAgICBzdXBlcihjb250cm9scywgdmFsaWRhdG9yT3JPcHRzLCBhc3luY1ZhbGlkYXRvcik7XG4gIH1cblxuICBzZWxlY3Q8Uj4obWFwRm46IChzdGF0ZTogVCkgPT4gUik6IE9ic2VydmFibGU8Uj4ge1xuICAgIHJldHVybiBzZWxlY3RDb250cm9sVmFsdWUkKHRoaXMsIG1hcEZuKTtcbiAgfVxuXG4gIGdldFJhd1ZhbHVlKCk6IFQge1xuICAgIHJldHVybiBzdXBlci5nZXRSYXdWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0PEsxIGV4dGVuZHMga2V5b2YgVD4ocGF0aD86IFtLMV0pOiBBYnN0cmFjdENvbnRyb2w8VFtLMV0+O1xuICBnZXQ8SzEgZXh0ZW5kcyBrZXlvZiBULCBLMiBleHRlbmRzIGtleW9mIFRbSzFdPihwYXRoPzogW0sxLCBLMl0pOiBBYnN0cmFjdENvbnRyb2w8VFtLMV1bSzJdPjtcbiAgZ2V0PEsxIGV4dGVuZHMga2V5b2YgVCwgSzIgZXh0ZW5kcyBrZXlvZiBUW0sxXSwgSzMgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl0+KFxuICAgIHBhdGg/OiBbSzEsIEsyLCBLM11cbiAgKTogQWJzdHJhY3RDb250cm9sPFRbSzFdW0syXVtLM10+O1xuICBnZXQocGF0aD86IHN0cmluZyk6IEFic3RyYWN0Q29udHJvbDtcbiAgZ2V0KHBhdGg6IGFueSkge1xuICAgIHJldHVybiBzdXBlci5nZXQocGF0aCk7XG4gIH1cblxuICBnZXRDb250cm9sPFAxIGV4dGVuZHMga2V5b2YgVD4ocHJvcDE6IFAxKTogQWJzdHJhY3RDb250cm9sPFRbUDFdPjtcbiAgZ2V0Q29udHJvbDxQMSBleHRlbmRzIGtleW9mIFQsIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0+KHByb3AxOiBQMSwgcHJvcDI6IFAyKTogQWJzdHJhY3RDb250cm9sPFRbUDFdW1AyXT47XG4gIGdldENvbnRyb2w8UDEgZXh0ZW5kcyBrZXlvZiBULCBQMiBleHRlbmRzIGtleW9mIFRbUDFdLCBQMyBleHRlbmRzIGtleW9mIFRbUDFdW1AyXT4oXG4gICAgcHJvcDE6IFAxLFxuICAgIHByb3AyOiBQMixcbiAgICBwcm9wMzogUDNcbiAgKTogQWJzdHJhY3RDb250cm9sPFRbUDFdW1AyXVtQM10+O1xuICBnZXRDb250cm9sPFAxIGV4dGVuZHMga2V5b2YgVCwgUDIgZXh0ZW5kcyBrZXlvZiBUW1AxXSwgUDMgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl0sIFA0IGV4dGVuZHMga2V5b2YgVFtQMV1bUDJdW1AzXT4oXG4gICAgcHJvcDE6IFAxLFxuICAgIHByb3AyOiBQMixcbiAgICBwcm9wMzogUDMsXG4gICAgcHJvcDQ6IFA0XG4gICk6IEFic3RyYWN0Q29udHJvbDxUW1AxXVtQMl1bUDNdW1A0XT47XG4gIGdldENvbnRyb2woLi4ubmFtZXM6IGFueSk6IEFic3RyYWN0Q29udHJvbDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQobmFtZXMuam9pbignLicpKTtcbiAgfVxuXG4gIGFkZENvbnRyb2w8SyBleHRlbmRzIEV4dHJhY3RTdHJpbmdzPFQ+PihuYW1lOiBLLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VFtLXT4pOiB2b2lkIHtcbiAgICBzdXBlci5hZGRDb250cm9sKG5hbWUsIGNvbnRyb2wpO1xuICB9XG5cbiAgcmVtb3ZlQ29udHJvbChuYW1lOiBFeHRyYWN0U3RyaW5nczxUPik6IHZvaWQge1xuICAgIHN1cGVyLnJlbW92ZUNvbnRyb2wobmFtZSk7XG4gIH1cblxuICBjb250YWlucyhjb250cm9sTmFtZTogRXh0cmFjdFN0cmluZ3M8VD4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuY29udGFpbnMoY29udHJvbE5hbWUpO1xuICB9XG5cbiAgc2V0Q29udHJvbDxLIGV4dGVuZHMgRXh0cmFjdFN0cmluZ3M8VD4+KG5hbWU6IEssIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxUW0tdPik6IHZvaWQge1xuICAgIHN1cGVyLnNldENvbnRyb2wobmFtZSwgY29udHJvbCk7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPiwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiBTdWJzY3JpcHRpb247XG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBULCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IHZvaWQ7XG4gIHNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBhbnksIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogYW55IHtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlT3JPYnNlcnZhYmxlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlT3JPYnNlcnZhYmxlLnN1YnNjcmliZSh2YWx1ZSA9PiBzdXBlci5zZXRWYWx1ZSh2YWx1ZSwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHN1cGVyLnNldFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIHBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGU6IE9ic2VydmFibGU8UGFydGlhbDxUPj4sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogU3Vic2NyaXB0aW9uO1xuICBwYXRjaFZhbHVlKHZhbHVlT3JPYnNlcnZhYmxlOiBQYXJ0aWFsPFQ+LCBvcHRpb25zPzogQ29udHJvbEV2ZW50T3B0aW9ucyk6IHZvaWQ7XG4gIHBhdGNoVmFsdWUodmFsdWVPck9ic2VydmFibGU6IGFueSwgb3B0aW9ucz86IENvbnRyb2xFdmVudE9wdGlvbnMpOiBTdWJzY3JpcHRpb24gfCB2b2lkIHtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlT3JPYnNlcnZhYmxlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlT3JPYnNlcnZhYmxlLnN1YnNjcmliZSh2YWx1ZSA9PiBzdXBlci5wYXRjaFZhbHVlKHZhbHVlLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgc3VwZXIucGF0Y2hWYWx1ZSh2YWx1ZU9yT2JzZXJ2YWJsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBkaXNhYmxlZFdoaWxlKG9ic2VydmFibGU6IE9ic2VydmFibGU8Ym9vbGVhbj4sIG9wdGlvbnM/OiBDb250cm9sT3B0aW9ucykge1xuICAgIHJldHVybiBjb250cm9sRGlzYWJsZWRXaGlsZSh0aGlzLCBvYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGVuYWJsZWRXaGlsZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+LCBvcHRpb25zPzogQ29udHJvbE9wdGlvbnMpIHtcbiAgICByZXR1cm4gY29udHJvbEVuYWJsZWRXaGlsZSh0aGlzLCBvYnNlcnZhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIG1lcmdlVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBWYWxpZGF0b3IpIHtcbiAgICBtZXJnZUNvbnRyb2xWYWxpZGF0b3JzKHRoaXMsIHZhbGlkYXRvcnMpO1xuICB9XG5cbiAgbWVyZ2VBc3luY1ZhbGlkYXRvcnModmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3IpIHtcbiAgICB0aGlzLnNldEFzeW5jVmFsaWRhdG9ycyhbdGhpcy5hc3luY1ZhbGlkYXRvciwgLi4uY29lcmNlQXJyYXkodmFsaWRhdG9ycyldKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIG1hcmtBc1RvdWNoZWQob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzVG91Y2hlZChvcHRzKTtcbiAgICB0aGlzLnRvdWNoQ2hhbmdlcy5uZXh0KHRydWUpO1xuICB9XG5cbiAgbWFya0FzVW50b3VjaGVkKG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc1VudG91Y2hlZChvcHRzKTtcbiAgICB0aGlzLnRvdWNoQ2hhbmdlcy5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIG1hcmtBc1ByaXN0aW5lKG9wdHM/OiBPbmx5U2VsZik6IHZvaWQge1xuICAgIHN1cGVyLm1hcmtBc1ByaXN0aW5lKG9wdHMpO1xuICAgIHRoaXMuZGlydHlDaGFuZ2VzLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbWFya0FzRGlydHkob3B0cz86IE9ubHlTZWxmKTogdm9pZCB7XG4gICAgc3VwZXIubWFya0FzRGlydHkob3B0cyk7XG4gICAgdGhpcy5kaXJ0eUNoYW5nZXMubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG1hcmtBbGxBc0RpcnR5KCk6IHZvaWQge1xuICAgIG1hcmtBbGxEaXJ0eSh0aGlzKTtcbiAgfVxuXG4gIHJlc2V0KGZvcm1TdGF0ZT86IFBhcnRpYWw8VD4sIG9wdGlvbnM/OiBDb250cm9sRXZlbnRPcHRpb25zKTogdm9pZCB7XG4gICAgc3VwZXIucmVzZXQoZm9ybVN0YXRlLCBvcHRpb25zKTtcbiAgfVxuXG4gIHNldFZhbGlkYXRvcnMobmV3VmFsaWRhdG9yOiBWYWxpZGF0b3IpOiB2b2lkIHtcbiAgICBzdXBlci5zZXRWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcik7XG4gICAgc3VwZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgc2V0QXN5bmNWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcjogQXN5bmNWYWxpZGF0b3IpOiB2b2lkIHtcbiAgICBzdXBlci5zZXRBc3luY1ZhbGlkYXRvcnMobmV3VmFsaWRhdG9yKTtcbiAgICBzdXBlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICB2YWxpZGF0ZU9uKG9ic2VydmFibGVWYWxpZGF0aW9uOiBPYnNlcnZhYmxlPG51bGwgfCBvYmplY3Q+KSB7XG4gICAgcmV0dXJuIHZhbGlkYXRlQ29udHJvbE9uKHRoaXMsIG9ic2VydmFibGVWYWxpZGF0aW9uKTtcbiAgfVxuXG4gIGhhc0Vycm9yPEsxIGV4dGVuZHMga2V5b2YgVD4oZXJyb3JDb2RlOiBFeHRyYWN0U3RyaW5nczxFPiwgcGF0aD86IFtLMV0pOiBib29sZWFuO1xuICBoYXNFcnJvcjxLMSBleHRlbmRzIGtleW9mIFQsIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0+KGVycm9yQ29kZTogRXh0cmFjdFN0cmluZ3M8RT4sIHBhdGg/OiBbSzEsIEsyXSk6IGJvb2xlYW47XG4gIGhhc0Vycm9yPEsxIGV4dGVuZHMga2V5b2YgVCwgSzIgZXh0ZW5kcyBrZXlvZiBUW0sxXSwgSzMgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl0+KFxuICAgIGVycm9yQ29kZTogRXh0cmFjdFN0cmluZ3M8RT4sXG4gICAgcGF0aD86IFtLMSwgSzIsIEszXVxuICApOiBib29sZWFuO1xuICBoYXNFcnJvcihlcnJvckNvZGU6IEV4dHJhY3RTdHJpbmdzPEU+LCBwYXRoPzogc3RyaW5nKTogYm9vbGVhbjtcbiAgaGFzRXJyb3IoZXJyb3JDb2RlOiBFeHRyYWN0U3RyaW5nczxFPiwgcGF0aD86IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5oYXNFcnJvcihlcnJvckNvZGUsIHBhdGgpO1xuICB9XG5cbiAgc2V0RXJyb3JzKGVycm9yczogUGFydGlhbDxFPiB8IG51bGwsIG9wdHM6IEVtaXRFdmVudCA9IHt9KSB7XG4gICAgcmV0dXJuIHN1cGVyLnNldEVycm9ycyhlcnJvcnMsIG9wdHMpO1xuICB9XG5cbiAgbWVyZ2VFcnJvcnMoZXJyb3JzOiBQYXJ0aWFsPEU+LCBvcHRzOiBFbWl0RXZlbnQgPSB7fSk6IHZvaWQge1xuICAgIHRoaXMuc2V0RXJyb3JzKG1lcmdlRXJyb3JzPEU+KHRoaXMuZXJyb3JzLCBlcnJvcnMpLCBvcHRzKTtcbiAgfVxuXG4gIHJlbW92ZUVycm9yKGtleToga2V5b2YgRSwgb3B0czogRW1pdEV2ZW50ID0ge30pOiB2b2lkIHtcbiAgICB0aGlzLnNldEVycm9ycyhyZW1vdmVFcnJvcjxFPih0aGlzLmVycm9ycywga2V5KSwgb3B0cyk7XG4gIH1cblxuICBnZXRFcnJvcjxLIGV4dGVuZHMga2V5b2YgRSwgSzEgZXh0ZW5kcyBrZXlvZiBUPihlcnJvckNvZGU6IEssIHBhdGg/OiBbSzFdKTogRVtLXSB8IG51bGw7XG4gIGdldEVycm9yPEsgZXh0ZW5kcyBrZXlvZiBFLCBLMSBleHRlbmRzIGtleW9mIFQsIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0+KGVycm9yQ29kZTogSywgcGF0aD86IFtLMSwgSzJdKTogRVtLXSB8IG51bGw7XG4gIGdldEVycm9yPEsgZXh0ZW5kcyBrZXlvZiBFLCBLMSBleHRlbmRzIGtleW9mIFQsIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0sIEszIGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdPihcbiAgICBlcnJvckNvZGU6IEssXG4gICAgcGF0aD86IFtLMSwgSzIsIEszXVxuICApOiBFW0tdIHwgbnVsbDtcbiAgZ2V0RXJyb3I8SyBleHRlbmRzIGtleW9mIEU+KGVycm9yQ29kZTogSywgcGF0aD86IHN0cmluZyk6IEVbS10gfCBudWxsO1xuICBnZXRFcnJvcjxLIGV4dGVuZHMga2V5b2YgRT4oZXJyb3JDb2RlOiBLLCBwYXRoPzogYW55KTogRVtLXSB8IG51bGwge1xuICAgIHJldHVybiBzdXBlci5nZXRFcnJvcihlcnJvckNvZGUgYXMgYW55LCBwYXRoKSBhcyBFW0tdIHwgbnVsbDtcbiAgfVxuXG4gIGhhc0Vycm9yQW5kVG91Y2hlZDxQMSBleHRlbmRzIGtleW9mIFQ+KGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPiwgcHJvcDE/OiBQMSk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kVG91Y2hlZDxQMSBleHRlbmRzIGtleW9mIFQsIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0+KFxuICAgIGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPixcbiAgICBwcm9wMT86IFAxLFxuICAgIHByb3AyPzogUDJcbiAgKTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmRUb3VjaGVkPFAxIGV4dGVuZHMga2V5b2YgVCwgUDIgZXh0ZW5kcyBrZXlvZiBUW1AxXSwgUDMgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl0+KFxuICAgIGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPixcbiAgICBwcm9wMT86IFAxLFxuICAgIHByb3AyPzogUDIsXG4gICAgcHJvcDM/OiBQM1xuICApOiBib29sZWFuO1xuICBoYXNFcnJvckFuZFRvdWNoZWQ8XG4gICAgUDEgZXh0ZW5kcyBrZXlvZiBULFxuICAgIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0sXG4gICAgUDMgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl0sXG4gICAgUDQgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl1bUDNdXG4gID4oZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LCBwcm9wMT86IFAxLCBwcm9wMj86IFAyLCBwcm9wMz86IFAzLCBwcm9wND86IFA0KTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmRUb3VjaGVkKGVycm9yOiBhbnksIC4uLnBhdGg6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNFcnJvckFuZFRvdWNoZWQodGhpcywgZXJyb3IsIC4uLnBhdGgpO1xuICB9XG5cbiAgaGFzRXJyb3JBbmREaXJ0eTxQMSBleHRlbmRzIGtleW9mIFQ+KGVycm9yOiBFeHRyYWN0U3RyaW5nczxFPiwgcHJvcDE/OiBQMSk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kRGlydHk8UDEgZXh0ZW5kcyBrZXlvZiBULCBQMiBleHRlbmRzIGtleW9mIFRbUDFdPihcbiAgICBlcnJvcjogRXh0cmFjdFN0cmluZ3M8RT4sXG4gICAgcHJvcDE/OiBQMSxcbiAgICBwcm9wMj86IFAyXG4gICk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kRGlydHk8UDEgZXh0ZW5kcyBrZXlvZiBULCBQMiBleHRlbmRzIGtleW9mIFRbUDFdLCBQMyBleHRlbmRzIGtleW9mIFRbUDFdW1AyXT4oXG4gICAgZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LFxuICAgIHByb3AxPzogUDEsXG4gICAgcHJvcDI/OiBQMixcbiAgICBwcm9wMz86IFAzXG4gICk6IGJvb2xlYW47XG4gIGhhc0Vycm9yQW5kRGlydHk8XG4gICAgUDEgZXh0ZW5kcyBrZXlvZiBULFxuICAgIFAyIGV4dGVuZHMga2V5b2YgVFtQMV0sXG4gICAgUDMgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl0sXG4gICAgUDQgZXh0ZW5kcyBrZXlvZiBUW1AxXVtQMl1bUDNdXG4gID4oZXJyb3I6IEV4dHJhY3RTdHJpbmdzPEU+LCBwcm9wMT86IFAxLCBwcm9wMj86IFAyLCBwcm9wMz86IFAzLCBwcm9wND86IFA0KTogYm9vbGVhbjtcbiAgaGFzRXJyb3JBbmREaXJ0eShlcnJvcjogYW55LCAuLi5wYXRoOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzRXJyb3JBbmREaXJ0eSh0aGlzLCBlcnJvciwgLi4ucGF0aCk7XG4gIH1cblxuICBzZXRFbmFibGUoZW5hYmxlID0gdHJ1ZSwgb3B0cz86IENvbnRyb2xFdmVudE9wdGlvbnMpIHtcbiAgICBlbmFibGVDb250cm9sKHRoaXMsIGVuYWJsZSwgb3B0cyk7XG4gIH1cblxuICBzZXREaXNhYmxlKGRpc2FibGUgPSB0cnVlLCBvcHRzPzogQ29udHJvbEV2ZW50T3B0aW9ucykge1xuICAgIGRpc2FibGVDb250cm9sKHRoaXMsIGRpc2FibGUsIG9wdHMpO1xuICB9XG5cbiAgcGVyc2lzdChrZXk6IHN0cmluZywgeyBkZWJvdW5jZVRpbWUsIG1hbmFnZXIsIGFyckNvbnRyb2xGYWN0b3J5IH06IFBlcnNpc3RPcHRpb25zPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgcGVyc2lzdE1hbmFnZXIgPSBtYW5hZ2VyIHx8IG5ldyBMb2NhbFN0b3JhZ2VNYW5hZ2VyKCk7XG4gICAgcmV0dXJuIHRoaXMucmVzdG9yZShrZXksIHBlcnNpc3RNYW5hZ2VyLCBhcnJDb250cm9sRmFjdG9yeSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICBwZXJzaXN0VmFsdWUkKHRoaXMsIGtleSwge1xuICAgICAgICAgIGRlYm91bmNlVGltZTogZGVib3VuY2VUaW1lIHx8IDI1MCxcbiAgICAgICAgICBtYW5hZ2VyOiBwZXJzaXN0TWFuYWdlclxuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmUoa2V5OiBzdHJpbmcsIG1hbmFnZXI6IFBlcnNpc3RNYW5hZ2VyPFQ+LCBhcnJDb250cm9sRmFjdG9yeTogQ29udHJvbEZhY3RvcnlNYXA8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gd3JhcEludG9PYnNlcnZhYmxlPFQ+KG1hbmFnZXIuZ2V0VmFsdWUoa2V5KSkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICB0YXAodmFsdWUgPT4ge1xuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgICAgIGhhbmRsZUZvcm1BcnJheXModGhpcywgdmFsdWUsIGFyckNvbnRyb2xGYWN0b3J5KTtcbiAgICAgICAgdGhpcy5wYXRjaFZhbHVlKHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==

@@ -20,2 +20,16 @@ import { from, isObservable, of } from 'rxjs';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvcmVhY3RpdmUtZm9ybXMvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUQsTUFBTSxVQUFVLFdBQVcsQ0FBSSxLQUFjO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLENBQU07SUFDL0IsT0FBTyxPQUFPLENBQUMsS0FBSyxVQUFVLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsQ0FBTTtJQUMxQixPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFVO0lBQ2xDLE9BQU8sUUFBTyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxDQUFBLEtBQUssVUFBVSxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUksS0FBcUM7SUFDekUsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BCO0lBRUQsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb20sIGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUFycmF5PFQ+KHZhbHVlOiBUIHwgVFtdKTogVFtdIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbih4OiBhbnkpOiB4IGlzIEZ1bmN0aW9uIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOaWwodjogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgUHJvbWlzZTx1bmtub3duPiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWU/LnRoZW4gPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwSW50b09ic2VydmFibGU8VD4odmFsdWU6IFQgfCBQcm9taXNlPFQ+IHwgT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlKSB8fCBpc1Byb21pc2UodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZyb20odmFsdWUpO1xuICB9XG5cbiAgcmV0dXJuIG9mKHZhbHVlKTtcbn1cbiJdfQ==
export function mergeErrors(existing, toAdd) {
if (!existing && !toAdd) {
return null;
}
return Object.assign(Object.assign({}, existing), toAdd);
}
export function removeError(errors, key) {
if (!errors) {
return null;
}
const updatedErrors = Object.assign({}, errors);
delete updatedErrors[key];
return Object.keys(updatedErrors).length > 0 ? updatedErrors : null;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvcmVhY3RpdmUtZm9ybXMvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUQsTUFBTSxVQUFVLFdBQVcsQ0FBSSxLQUFjO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLENBQU07SUFDL0IsT0FBTyxPQUFPLENBQUMsS0FBSyxVQUFVLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsQ0FBTTtJQUMxQixPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFVO0lBQ2xDLE9BQU8sUUFBTyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxDQUFBLEtBQUssVUFBVSxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUksS0FBcUM7SUFDekUsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BCO0lBRUQsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUksUUFBb0IsRUFBRSxLQUFpQjtJQUNwRSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCx1Q0FDSyxRQUFRLEdBQ1IsS0FBSyxFQUNSO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUksTUFBUyxFQUFFLEdBQVk7SUFDcEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxNQUFNLGFBQWEscUJBQ2QsTUFBTSxDQUNWLENBQUM7SUFDRixPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDdEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb20sIGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUFycmF5PFQ+KHZhbHVlOiBUIHwgVFtdKTogVFtdIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbih4OiBhbnkpOiB4IGlzIEZ1bmN0aW9uIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOaWwodjogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgUHJvbWlzZTx1bmtub3duPiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWU/LnRoZW4gPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwSW50b09ic2VydmFibGU8VD4odmFsdWU6IFQgfCBQcm9taXNlPFQ+IHwgT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlKSB8fCBpc1Byb21pc2UodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZyb20odmFsdWUpO1xuICB9XG5cbiAgcmV0dXJuIG9mKHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRXJyb3JzPEU+KGV4aXN0aW5nOiBQYXJ0aWFsPEU+LCB0b0FkZDogUGFydGlhbDxFPikge1xuICBpZiAoIWV4aXN0aW5nICYmICF0b0FkZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4uZXhpc3RpbmcsXG4gICAgLi4udG9BZGRcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVycm9yPEU+KGVycm9yczogRSwga2V5OiBrZXlvZiBFKSB7XG4gIGlmICghZXJyb3JzKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgdXBkYXRlZEVycm9ycyA9IHtcbiAgICAuLi5lcnJvcnNcbiAgfTtcbiAgZGVsZXRlIHVwZGF0ZWRFcnJvcnNba2V5XTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHVwZGF0ZWRFcnJvcnMpLmxlbmd0aCA+IDAgPyB1cGRhdGVkRXJyb3JzIDogbnVsbDtcbn1cbiJdfQ==

@@ -24,2 +24,16 @@ import { FormArray as FormArray$1, FormControl as FormControl$1, FormGroup as FormGroup$1, FormBuilder as FormBuilder$1 } from '@angular/forms';

}
function mergeErrors(existing, toAdd) {
if (!existing && !toAdd) {
return null;
}
return Object.assign(Object.assign({}, existing), toAdd);
}
function removeError(errors, key) {
if (!errors) {
return null;
}
const updatedErrors = Object.assign({}, errors);
delete updatedErrors[key];
return Object.keys(updatedErrors).length > 0 ? updatedErrors : null;
}

@@ -215,2 +229,8 @@ function getControlValue(control) {

}
mergeErrors(errors, opts = {}) {
this.setErrors(mergeErrors(this.errors, errors), opts);
}
removeError(key, opts = {}) {
this.setErrors(removeError(this.errors, key), opts);
}
getError(errorCode, path) {

@@ -324,2 +344,8 @@ return super.getError(errorCode, path);

}
mergeErrors(errors, opts = {}) {
this.setErrors(mergeErrors(this.errors, errors), opts);
}
removeError(key, opts = {}) {
this.setErrors(removeError(this.errors, key), opts);
}
hasErrorAndTouched(error) {

@@ -451,2 +477,8 @@ return hasErrorAndTouched(this, error);

}
mergeErrors(errors, opts = {}) {
this.setErrors(mergeErrors(this.errors, errors), opts);
}
removeError(key, opts = {}) {
this.setErrors(removeError(this.errors, key), opts);
}
getError(errorCode, path) {

@@ -453,0 +485,0 @@ return super.getError(errorCode, path);

@@ -46,2 +46,4 @@ import { FormArray as NgFormArray } from '@angular/forms';

setErrors(errors: Partial<E> | null, opts?: EmitEvent): void;
mergeErrors(errors: Partial<E>, opts?: EmitEvent): void;
removeError(key: keyof E, opts?: EmitEvent): void;
getError<K extends ExtractStrings<E>>(errorCode: K, path?: ControlPath): E[K];

@@ -48,0 +50,0 @@ hasErrorAndTouched(errorCode: ExtractStrings<E>, path?: ControlPath): boolean;

@@ -41,2 +41,4 @@ import { FormControl as NgFormControl } from '@angular/forms';

setErrors(errors: Partial<E> | null, opts?: EmitEvent): void;
mergeErrors(errors: Partial<E>, opts?: EmitEvent): void;
removeError(key: keyof E, opts?: EmitEvent): void;
hasErrorAndTouched(error: ExtractStrings<E>): boolean;

@@ -43,0 +45,0 @@ hasErrorAndDirty(error: ExtractStrings<E>): boolean;

@@ -57,2 +57,4 @@ import { FormGroup as NgFormGroup } from '@angular/forms';

setErrors(errors: Partial<E> | null, opts?: EmitEvent): void;
mergeErrors(errors: Partial<E>, opts?: EmitEvent): void;
removeError(key: keyof E, opts?: EmitEvent): void;
getError<K extends keyof E, K1 extends keyof T>(errorCode: K, path?: [K1]): E[K] | null;

@@ -59,0 +61,0 @@ getError<K extends keyof E, K1 extends keyof T, K2 extends keyof T[K1]>(errorCode: K, path?: [K1, K2]): E[K] | null;

@@ -7,1 +7,3 @@ import { Observable } from 'rxjs';

export declare function wrapIntoObservable<T>(value: T | Promise<T> | Observable<T>): Observable<T>;
export declare function mergeErrors<E>(existing: Partial<E>, toAdd: Partial<E>): Partial<E>;
export declare function removeError<E>(errors: E, key: keyof E): E;

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

{"__symbolic":"module","version":4,"metadata":{"FormArray":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormArray","line":33,"character":64},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AbstractControl"}]},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"select":[{"__symbolic":"method"}],"getRawValue":[{"__symbolic":"method"}],"at":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"patchValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"push":[{"__symbolic":"method"}],"insert":[{"__symbolic":"method"}],"setControl":[{"__symbolic":"method"}],"disabledWhile":[{"__symbolic":"method"}],"enabledWhile":[{"__symbolic":"method"}],"mergeValidators":[{"__symbolic":"method"}],"mergeAsyncValidators":[{"__symbolic":"method"}],"markAsTouched":[{"__symbolic":"method"}],"markAsUntouched":[{"__symbolic":"method"}],"markAsPristine":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}],"markAllAsDirty":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"setAsyncValidators":[{"__symbolic":"method"}],"validateOn":[{"__symbolic":"method"}],"hasError":[{"__symbolic":"method"}],"setErrors":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"hasErrorAndTouched":[{"__symbolic":"method"}],"hasErrorAndDirty":[{"__symbolic":"method"}],"setEnable":[{"__symbolic":"method"}],"setDisable":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"removeWhen":[{"__symbolic":"method"}]}},"FormControl":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormControl","line":33,"character":66},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"setValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"patchValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"disabledWhile":[{"__symbolic":"method"}],"enabledWhile":[{"__symbolic":"method"}],"mergeValidators":[{"__symbolic":"method"}],"mergeAsyncValidators":[{"__symbolic":"method"}],"markAsTouched":[{"__symbolic":"method"}],"markAsUntouched":[{"__symbolic":"method"}],"markAsPristine":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}],"markAllAsDirty":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"setAsyncValidators":[{"__symbolic":"method"}],"validateOn":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"hasError":[{"__symbolic":"method"}],"setErrors":[{"__symbolic":"method"}],"hasErrorAndTouched":[{"__symbolic":"method"}],"hasErrorAndDirty":[{"__symbolic":"method"}],"setEnable":[{"__symbolic":"method"}],"setDisable":[{"__symbolic":"method"}]}},"FormGroup":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormGroup","line":44,"character":76},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"select":[{"__symbolic":"method"}],"getRawValue":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"getControl":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"addControl":[{"__symbolic":"method"}],"removeControl":[{"__symbolic":"method"}],"contains":[{"__symbolic":"method"}],"setControl":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"patchValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"disabledWhile":[{"__symbolic":"method"}],"enabledWhile":[{"__symbolic":"method"}],"mergeValidators":[{"__symbolic":"method"}],"mergeAsyncValidators":[{"__symbolic":"method"}],"markAsTouched":[{"__symbolic":"method"}],"markAsUntouched":[{"__symbolic":"method"}],"markAsPristine":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}],"markAllAsDirty":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"setAsyncValidators":[{"__symbolic":"method"}],"validateOn":[{"__symbolic":"method"}],"hasError":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"setErrors":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"hasErrorAndTouched":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"hasErrorAndDirty":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"setEnable":[{"__symbolic":"method"}],"setDisable":[{"__symbolic":"method"}],"persist":[{"__symbolic":"method"}],"restore":[{"__symbolic":"method"}]}},"FormBuilder":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":28,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":27,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"group":[{"__symbolic":"method"}],"control":[{"__symbolic":"method"}],"array":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ɵa":{"__symbolic":"interface"},"ɵb":{"__symbolic":"interface"},"ɵc":{"__symbolic":"interface"},"ɵd":{"__symbolic":"interface"},"AbstractControl":{"__symbolic":"interface"},"ValidatorFn":{"__symbolic":"interface"},"AsyncValidatorFn":{"__symbolic":"interface"},"NgValidatorsErrors":{"__symbolic":"interface"},"ControlFactory":{"__symbolic":"interface"},"ControlFactoryMap":{"__symbolic":"interface"},"PersistOptions":{"__symbolic":"interface"},"ControlValueAccessor":{"__symbolic":"class","arity":1,"members":{"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}]}},"PersistManager":{"__symbolic":"interface"},"LocalStorageManager":{"__symbolic":"class","arity":1,"members":{"setValue":[{"__symbolic":"method"}],"getValue":[{"__symbolic":"method"}]}},"SessionStorageManager":{"__symbolic":"class","arity":1,"members":{"setValue":[{"__symbolic":"method"}],"getValue":[{"__symbolic":"method"}]}}},"origins":{"FormArray":"./lib/formArray","FormControl":"./lib/formControl","FormGroup":"./lib/formGroup","FormBuilder":"./lib/formBuilder","ɵa":"./lib/types","ɵb":"./lib/types","ɵc":"./lib/types","ɵd":"./lib/types","AbstractControl":"./lib/types","ValidatorFn":"./lib/types","AsyncValidatorFn":"./lib/types","NgValidatorsErrors":"./lib/types","ControlFactory":"./lib/types","ControlFactoryMap":"./lib/types","PersistOptions":"./lib/types","ControlValueAccessor":"./lib/controlValueAccessor","PersistManager":"./lib/persistManager","LocalStorageManager":"./lib/localStorageManager","SessionStorageManager":"./lib/sessionStorageManager"},"importAs":"@ngneat/reactive-forms"}
{"__symbolic":"module","version":4,"metadata":{"FormArray":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormArray","line":33,"character":64},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AbstractControl"}]},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"select":[{"__symbolic":"method"}],"getRawValue":[{"__symbolic":"method"}],"at":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"patchValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"push":[{"__symbolic":"method"}],"insert":[{"__symbolic":"method"}],"setControl":[{"__symbolic":"method"}],"disabledWhile":[{"__symbolic":"method"}],"enabledWhile":[{"__symbolic":"method"}],"mergeValidators":[{"__symbolic":"method"}],"mergeAsyncValidators":[{"__symbolic":"method"}],"markAsTouched":[{"__symbolic":"method"}],"markAsUntouched":[{"__symbolic":"method"}],"markAsPristine":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}],"markAllAsDirty":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"setAsyncValidators":[{"__symbolic":"method"}],"validateOn":[{"__symbolic":"method"}],"hasError":[{"__symbolic":"method"}],"setErrors":[{"__symbolic":"method"}],"mergeErrors":[{"__symbolic":"method"}],"removeError":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"hasErrorAndTouched":[{"__symbolic":"method"}],"hasErrorAndDirty":[{"__symbolic":"method"}],"setEnable":[{"__symbolic":"method"}],"setDisable":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"removeWhen":[{"__symbolic":"method"}]}},"FormControl":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormControl","line":33,"character":66},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"setValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"patchValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"disabledWhile":[{"__symbolic":"method"}],"enabledWhile":[{"__symbolic":"method"}],"mergeValidators":[{"__symbolic":"method"}],"mergeAsyncValidators":[{"__symbolic":"method"}],"markAsTouched":[{"__symbolic":"method"}],"markAsUntouched":[{"__symbolic":"method"}],"markAsPristine":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}],"markAllAsDirty":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"setAsyncValidators":[{"__symbolic":"method"}],"validateOn":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}],"hasError":[{"__symbolic":"method"}],"setErrors":[{"__symbolic":"method"}],"mergeErrors":[{"__symbolic":"method"}],"removeError":[{"__symbolic":"method"}],"hasErrorAndTouched":[{"__symbolic":"method"}],"hasErrorAndDirty":[{"__symbolic":"method"}],"setEnable":[{"__symbolic":"method"}],"setDisable":[{"__symbolic":"method"}]}},"FormGroup":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormGroup","line":44,"character":76},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"select":[{"__symbolic":"method"}],"getRawValue":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"getControl":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"addControl":[{"__symbolic":"method"}],"removeControl":[{"__symbolic":"method"}],"contains":[{"__symbolic":"method"}],"setControl":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"patchValue":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"disabledWhile":[{"__symbolic":"method"}],"enabledWhile":[{"__symbolic":"method"}],"mergeValidators":[{"__symbolic":"method"}],"mergeAsyncValidators":[{"__symbolic":"method"}],"markAsTouched":[{"__symbolic":"method"}],"markAsUntouched":[{"__symbolic":"method"}],"markAsPristine":[{"__symbolic":"method"}],"markAsDirty":[{"__symbolic":"method"}],"markAllAsDirty":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setValidators":[{"__symbolic":"method"}],"setAsyncValidators":[{"__symbolic":"method"}],"validateOn":[{"__symbolic":"method"}],"hasError":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"setErrors":[{"__symbolic":"method"}],"mergeErrors":[{"__symbolic":"method"}],"removeError":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"hasErrorAndTouched":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"hasErrorAndDirty":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"setEnable":[{"__symbolic":"method"}],"setDisable":[{"__symbolic":"method"}],"persist":[{"__symbolic":"method"}],"restore":[{"__symbolic":"method"}]}},"FormBuilder":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":28,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":27,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"group":[{"__symbolic":"method"}],"control":[{"__symbolic":"method"}],"array":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ɵa":{"__symbolic":"interface"},"ɵb":{"__symbolic":"interface"},"ɵc":{"__symbolic":"interface"},"ɵd":{"__symbolic":"interface"},"AbstractControl":{"__symbolic":"interface"},"ValidatorFn":{"__symbolic":"interface"},"AsyncValidatorFn":{"__symbolic":"interface"},"NgValidatorsErrors":{"__symbolic":"interface"},"ControlFactory":{"__symbolic":"interface"},"ControlFactoryMap":{"__symbolic":"interface"},"PersistOptions":{"__symbolic":"interface"},"ControlValueAccessor":{"__symbolic":"class","arity":1,"members":{"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}]}},"PersistManager":{"__symbolic":"interface"},"LocalStorageManager":{"__symbolic":"class","arity":1,"members":{"setValue":[{"__symbolic":"method"}],"getValue":[{"__symbolic":"method"}]}},"SessionStorageManager":{"__symbolic":"class","arity":1,"members":{"setValue":[{"__symbolic":"method"}],"getValue":[{"__symbolic":"method"}]}}},"origins":{"FormArray":"./lib/formArray","FormControl":"./lib/formControl","FormGroup":"./lib/formGroup","FormBuilder":"./lib/formBuilder","ɵa":"./lib/types","ɵb":"./lib/types","ɵc":"./lib/types","ɵd":"./lib/types","AbstractControl":"./lib/types","ValidatorFn":"./lib/types","AsyncValidatorFn":"./lib/types","NgValidatorsErrors":"./lib/types","ControlFactory":"./lib/types","ControlFactoryMap":"./lib/types","PersistOptions":"./lib/types","ControlValueAccessor":"./lib/controlValueAccessor","PersistManager":"./lib/persistManager","LocalStorageManager":"./lib/localStorageManager","SessionStorageManager":"./lib/sessionStorageManager"},"importAs":"@ngneat/reactive-forms"}
{
"name": "@ngneat/reactive-forms",
"description": "(Angular Reactive) Forms with Benefits",
"version": "1.2.0",
"version": "1.3.0",
"schematics": "./schematics/collection.json",

@@ -6,0 +6,0 @@ "keywords": [

@@ -359,2 +359,24 @@ <p align="center">

### `mergeErrors()`
Merge validation errors. Unlike `setErrors()`, this will not overwrite errors already held by the control.
```ts
import { FormGroup } from '@ngneat/reactive-forms';
const group = new FormGroup<Profile>(...);
group.mergeErrors({ customError: true });
```
### `removeError()`
Remove an error by key from the control.
```ts
import { FormGroup } from '@ngneat/reactive-forms';
const group = new FormGroup<Profile>(...);
group.removeError('customError');
```
### FormArray methods

@@ -361,0 +383,0 @@

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