myrta-ui 1.1.44 → 1.1.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -130,6 +130,11 @@ export class MrxFormValidator {
130
130
  this.fields = cloneDeep(fields);
131
131
  this._validations = validations;
132
132
  this._modelClone = cloneDeep(fields);
133
+ for (let key in this._errors) {
134
+ if (!fields.hasOwnProperty(key)) {
135
+ delete this._errors[key];
136
+ }
137
+ }
133
138
  for (let key in validations) {
134
139
  this._validations[key] = getSortingValidationsHelper(validations[key]);
135
140
  this.errors[key] = null;
@@ -140,11 +145,6 @@ export class MrxFormValidator {
140
145
  if (this._isInit) {
141
146
  this._isValid = true;
142
147
  this._modelClone = cloneDeep(fields);
143
- for (let key in this._errors) {
144
- if (!fields.hasOwnProperty(key)) {
145
- delete this._errors[key];
146
- }
147
- }
148
148
  this.getNamesUpdatedProperties(this._fields, fields).forEach((name) => {
149
149
  this._errors[name] = null;
150
150
  if (this._method === ValidationMethodsEnum.Input) {
@@ -194,4 +194,4 @@ export class MrxFormValidator {
194
194
  return this._isValid;
195
195
  }
196
196
  }
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXJ4LWZvcm0tdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9zZXJ2aWNlcy9tcngtZm9ybS12YWxpZGF0b3IvbXJ4LWZvcm0tdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHdEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV2RixNQUFNLE9BQU8sZ0JBQWdCO0lBVzNCLFlBQVksT0FBOEI7UUFWbEMsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUNsQixpQkFBWSxHQUFpQixFQUFFLENBQUM7UUFDaEMsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixZQUFPLEdBQUcsS0FB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UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVELDBCQUEwQjtJQUNuQixhQUFhO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXJCLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2hGO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcbmltcG9ydCB7IElGaWVsZHMsIElGaWVsZHNFcnJvciwgSU1lc3NhZ2VzLCBJVmFsaWRhdGlvbnMsIFZhbGlkYXRpb25zVHlwZSB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgRm9ybVZhbGlkYXRvck9wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25NZXRob2RzRW51bSwgVmFsaWRhdGlvblR5cGVzRW51bSB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgcmVxdWlyZWRWYWxpZGF0aW9uIH0gZnJvbSAnLi92YWxpZGF0aW9ucy9yZXF1aXJlZC52YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgZW1haWxWYWxpZGF0aW9uIH0gZnJvbSAnLi92YWxpZGF0aW9ucy9lbWFpbC52YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgcGF0dGVyblZhbGlkYXRpb24gfSBmcm9tICcuL3ZhbGlkYXRpb25zL3BhdHRlcm4udmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IG1heExlbmd0aFZhbGlkYXRpb24gfSBmcm9tICcuL3ZhbGlkYXRpb25zL21heC1sZW5ndGgudmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IG1pbkxlbmd0aFZhbGlkYXRpb24gfSBmcm9tICcuL3ZhbGlkYXRpb25zL21pbi1sZW5ndGgudmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IG1pblZhbHVlVmFsaWRhdGlvbiB9IGZyb20gJy4vdmFsaWRhdGlvbnMvbWluLXZhbHVlLnZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBtYXhWYWx1ZVZhbGlkYXRpb24gfSBmcm9tICcuL3ZhbGlkYXRpb25zL21heC12YWx1ZS52YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgY2FsbGJhY2tWYWxpZGF0aW9uIH0gZnJvbSAnLi92YWxpZGF0aW9ucy9jYWxsYmFjay52YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgSU5WQUxJRF9NRVNTQUdFUyB9IGZyb20gJy4vY29uc3RhbnRzL2ludmFsaWQtbWVzc2FnZXMnO1xyXG5pbXBvcnQgeyBnZXRTb3J0aW5nVmFsaWRhdGlvbnNIZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LXNvcnRpbmctdmFsaWRhdGlvbnMuaGVscGVyJztcclxuXHJcbmV4cG9ydCBjbGFzcyBNcnhGb3JtVmFsaWRhdG9yIHtcclxuICBwcml2YXRlIF9maWVsZHM6IGFueSA9IFtdO1xyXG4gIHByaXZhdGUgX3ZhbGlkYXRpb25zOiBJVmFsaWRhdGlvbnMgPSB7fTtcclxuICBwcml2YXRlIF9lcnJvcnM6IElGaWVsZHNFcnJvciA9IHt9O1xyXG4gIHByaXZhdGUgX2lzVmFsaWQgPSB0cnVlO1xyXG4gIHByaXZhdGUgX2lzSW5pdCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX21vZGVsQ2xvbmU6IElGaWVsZHMgPSB7fTtcclxuXHJcbiAgcHJpdmF0ZSBfbWV0aG9kID0gJ3N1Ym1pdCc7XHJcbiAgcHJpdmF0ZSBfaW52YWxpZE1lc3NhZ2VzOiBJTWVzc2FnZXMgPSBJTlZBTElEX01FU1NBR0VTO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzogRm9ybVZhbGlkYXRvck9wdGlvbnMpIHtcclxuICAgIGlmIChvcHRpb25zPy5tZXRob2QpIHtcclxuICAgICAgdGhpcy5fbWV0aG9kID0gb3B0aW9ucy5tZXRob2Q7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnM/Lm1lc3NhZ2VzKSB7XHJcbiAgICAgIHRoaXMuX2ludmFsaWRNZXNzYWdlcyA9IHsuLi50aGlzLl9pbnZhbGlkTWVzc2FnZXMsIC4uLm9wdGlvbnMubWVzc2FnZXN9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBlcnJvcnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXQgZmllbGRzKGZpZWxkczogYW55KSB7XHJcbiAgICB0aGlzLl9maWVsZHMgPSBPYmplY3QuYXNzaWduKHt9LCBmaWVsZHMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXROYW1lc1VwZGF0ZWRQcm9wZXJ0aWVzKG9sZE1vZGVsOiBhbnksIG5ld01vZGVsOiBhbnkpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBuYW1lc1VwZGF0ZWRQcm9wZXJ0aWVzID0gW107XHJcblxyXG4gICAgZm9yIChsZXQga2V5IGluIG5ld01vZGVsKSB7XHJcbiAgICAgIHN3aXRjaCAodHJ1ZSkge1xyXG4gICAgICAgIGNhc2UgQXJyYXkuaXNBcnJheShuZXdNb2RlbFtrZXldKTpcclxuICAgICAgICAgIGlmIChKU09OLnN0cmluZ2lmeShuZXdNb2RlbFtrZXldKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkTW9kZWxba2V5XSkpIHtcclxuICAgICAgICAgICAgbmFtZXNVcGRhdGVkUHJvcGVydGllcy5wdXNoKGtleSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgaWYgKG5ld01vZGVsW2tleV0gIT09IG9sZE1vZGVsW2tleV0pIHtcclxuICAgICAgICAgICAgbmFtZXNVcGRhdGVkUHJvcGVydGllcy5wdXNoKGtleSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuYW1lc1VwZGF0ZWRQcm9wZXJ0aWVzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZUZpZWxkKFxyXG4gICAgdmFsdWU6IHN0cmluZyxcclxuICAgIG5hbWU6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb25zOiBWYWxpZGF0aW9uc1R5cGUsXHJcbiAgICB2YWxpZGF0ZUVtcHR5VmFsdWU6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIHNpbGVudDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAoIXZhbGlkYXRlRW1wdHlWYWx1ZSAmJiAodmFsdWUubGVuZ3RoID09PSAwKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQga2V5IGluIHZhbGlkYXRpb25zKSB7XHJcbiAgICAgIHN3aXRjaCAoa2V5KSB7XHJcbiAgICAgICAgY2FzZSBWYWxpZGF0aW9uVHlwZXNFbnVtLlJlcXVpcmVkOlxyXG4gICAgICAgICAgY29uc3QgcmVxdWlyZWRSZXMgPSByZXF1aXJlZFZhbGlkYXRpb24oXHJcbiAgICAgICAgICAgIHZhbHVlLCB2YWxpZGF0aW9ucywga2V5LCB0aGlzLl9pbnZhbGlkTWVzc2FnZXNcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgdGhpcy5faXNWYWxpZCA9IHJlcXVpcmVkUmVzLmlzVmFsaWQ7XHJcblxyXG4gICAgICAgICAgaWYgKCFzaWxlbnQgJiYgIXRoaXMuX2Vycm9yc1tuYW1lXSkge1xyXG4gICAgICAgICAgICB0aGlzLl9lcnJvcnNbbmFtZV0gPSByZXF1aXJlZFJlcy5tZXNzYWdlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgVmFsaWRhdGlvblR5cGVzRW51bS5FbWFpbDpcclxuICAgICAgICAgIGNvbnN0IGVtYWlsUmVzID0gZW1haWxWYWxpZGF0aW9uKFxyXG4gICAgICAgICAgICB2YWx1ZSwgdmFsaWRhdGlvbnMsIGtleSwgdGhpcy5faW52YWxpZE1lc3NhZ2VzXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIHRoaXMuX2lzVmFsaWQgPSBlbWFpbFJlcy5pc1ZhbGlkO1xyXG5cclxuICAgICAgICAgIGlmICghc2lsZW50ICYmICF0aGlzLl9lcnJvcnNbbmFtZV0pIHtcclxuICAgICAgICAgICAgdGhpcy5fZXJyb3JzW25hbWVdID0gZW1haWxSZXMubWVzc2FnZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFZhbGlkYXRpb25UeXBlc0VudW0uUGF0dGVybjpcclxuICAgICAgICAgIGNvbnN0IHBhdHRlcm5SZXMgPSBwYXR0ZXJuVmFsaWRhdGlvbihcclxuICAgICAgICAgICAgdmFsdWUsIHZhbGlkYXRpb25zLCBrZXksIHRoaXMuX2ludmFsaWRNZXNzYWdlc1xyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gcGF0dGVyblJlcy5pc1ZhbGlkO1xyXG5cclxuICAgICAgICAgIGlmICghc2lsZW50ICYmICF0aGlzLl9lcnJvcnNbbmFtZV0pIHtcclxuICAgICAgICAgICAgdGhpcy5fZXJyb3JzW25hbWVdID0gcGF0dGVyblJlcy5tZXNzYWdlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgVmFsaWRhdGlvblR5cGVzRW51bS5NaW5MZW5ndGg6XHJcbiAgICAgICAgICBjb25zdCBtaW5MZW5ndGhSZXMgPSBtaW5MZW5ndGhWYWxpZGF0aW9uKFxyXG4gICAgICAgICAgICB2YWx1ZSwgdmFsaWRhdGlvbnMsIGtleSwgdGhpcy5faW52YWxpZE1lc3NhZ2VzXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIHRoaXMuX2lzVmFsaWQgPSBtaW5MZW5ndGhSZXMuaXNWYWxpZDtcclxuXHJcbiAgICAgICAgICBpZiAoIXNpbGVudCAmJiAhdGhpcy5fZXJyb3JzW25hbWVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yc1tuYW1lXSA9IG1pbkxlbmd0aFJlcy5tZXNzYWdlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgVmFsaWRhdGlvblR5cGVzRW51bS5NYXhMZW5ndGg6XHJcbiAgICAgICAgICBjb25zdCBtYXhMZW5ndGhSZXMgPSBtYXhMZW5ndGhWYWxpZGF0aW9uKFxyXG4gICAgICAgICAgICB2YWx1ZSwgdmFsaWRhdGlvbnMsIGtleSwgdGhpcy5faW52YWxpZE1lc3NhZ2VzXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIHRoaXMuX2lzVmFsaWQgPSBtYXhMZW5ndGhSZXMuaXNWYWxpZDtcclxuXHJcbiAgICAgICAgICBpZiAoIXNpbGVudCAmJiAhdGhpcy5fZXJyb3JzW25hbWVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yc1tuYW1lXSA9IG1heExlbmd0aFJlcy5tZXNzYWdlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgVmFsaWRhdGlvblR5cGVzRW51bS5NaW5WYWx1ZTpcclxuICAgICAgICAgIGNvbnN0IG1pblZhbHVlUmVzID0gbWluVmFsdWVWYWxpZGF0aW9uKFxyXG4gICAgICAgICAgICB2YWx1ZSwgdmFsaWRhdGlvbnMsIGtleSwgdGhpcy5faW52YWxpZE1lc3NhZ2VzXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIHRoaXMuX2lzVmFsaWQgPSBtaW5WYWx1ZVJlcy5pc1ZhbGlkO1xyXG5cclxuICAgICAgICAgIGlmICghc2lsZW50ICYmICF0aGlzLl9lcnJvcnNbbmFtZV0pIHtcclxuICAgICAgICAgICAgdGhpcy5fZXJyb3JzW25hbWVdID0gbWluVmFsdWVSZXMubWVzc2FnZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFZhbGlkYXRpb25UeXBlc0VudW0uTWF4VmFsdWU6XHJcbiAgICAgICAgICBjb25zdCBtYXhWYWx1ZVJlcyA9IG1heFZhbHVlVmFsaWRhdGlvbihcclxuICAgICAgICAgICAgdmFsdWUsIHZhbGlkYXRpb25zLCBrZXksIHRoaXMuX2ludmFsaWRNZXNzYWdlc1xyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gbWF4VmFsdWVSZXMuaXNWYWxpZDtcclxuXHJcbiAgICAgICAgICBpZiAoIXNpbGVudCAmJiAhdGhpcy5fZXJyb3JzW25hbWVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yc1tuYW1lXSA9IG1heFZhbHVlUmVzLm1lc3NhZ2U7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBWYWxpZGF0aW9uVHlwZXNFbnVtLkNhbGxiYWNrOlxyXG4gICAgICAgICAgY29uc3QgY2FsbGJhY2tSZXMgPSBjYWxsYmFja1ZhbGlkYXRpb24oXHJcbiAgICAgICAgICAgIHZhbHVlLCB2YWxpZGF0aW9ucywga2V5LCB0aGlzLl9pbnZhbGlkTWVzc2FnZXNcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgdGhpcy5faXNWYWxpZCA9IGNhbGxiYWNrUmVzLmlzVmFsaWQ7XHJcblxyXG4gICAgICAgICAgaWYgKCFzaWxlbnQgJiYgIXRoaXMuX2Vycm9yc1tuYW1lXSkge1xyXG4gICAgICAgICAgICB0aGlzLl9lcnJvcnNbbmFtZV0gPSBjYWxsYmFja1Jlcy5tZXNzYWdlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGVja0Vycm9ycyhlcnJvcnM6IElGaWVsZHNFcnJvcik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzVmFsaWQgPSB0cnVlO1xyXG5cclxuICAgIGZvciAobGV0IGVycm9yIGluIGVycm9ycykge1xyXG4gICAgICBpZiAoISFlcnJvcnNbZXJyb3JdKSB7XHJcbiAgICAgICAgaXNWYWxpZCA9ICFlcnJvcnNbZXJyb3JdO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGlzVmFsaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5pdEZpZWxkcyhmaWVsZHM6IElGaWVsZHMsIHZhbGlkYXRpb25zOiBJVmFsaWRhdGlvbnMpOiB2b2lkIHtcclxuICAgIHRoaXMuZmllbGRzID0gY2xvbmVEZWVwKGZpZWxkcyk7XHJcbiAgICB0aGlzLl92YWxpZGF0aW9ucyA9IHZhbGlkYXRpb25zO1xyXG4gICAgdGhpcy5fbW9kZWxDbG9uZSA9IGNsb25lRGVlcChmaWVsZHMpO1xyXG5cclxuICAgIGZvciAobGV0IGtleSBpbiB2YWxpZGF0aW9ucykge1xyXG4gICAgICB0aGlzLl92YWxpZGF0aW9uc1trZXldID0gZ2V0U29ydGluZ1ZhbGlkYXRpb25zSGVscGVyKHZhbGlkYXRpb25zW2tleV0pO1xyXG4gICAgICB0aGlzLmVycm9yc1trZXldID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9pc0luaXQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRNb2RlbENoYW5nZWQoZmllbGRzOiBJRmllbGRzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNJbml0KSB7XHJcbiAgICAgIHRoaXMuX2lzVmFsaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9tb2RlbENsb25lID0gY2xvbmVEZWVwKGZpZWxkcyk7XHJcblxyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fZXJyb3JzKSB7XHJcbiAgICAgICAgaWYgKCFmaWVsZHMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgICAgZGVsZXRlIHRoaXMuX2Vycm9yc1trZXldXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmdldE5hbWVzVXBkYXRlZFByb3BlcnRpZXModGhpcy5fZmllbGRzLCBmaWVsZHMpLmZvckVhY2goKG5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHRoaXMuX2Vycm9yc1tuYW1lXSA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tZXRob2QgPT09IFZhbGlkYXRpb25NZXRob2RzRW51bS5JbnB1dCkge1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkKGZpZWxkc1tuYW1lXSwgbmFtZSwgdGhpcy5fdmFsaWRhdGlvbnNbbmFtZV0sIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWVsZHMgPSBjbG9uZURlZXAoZmllbGRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0RmllbGRDaGFuZ2VkKGZpZWxkczogSUZpZWxkcywgZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9pc0luaXQpIHtcclxuICAgICAgdGhpcy5faXNWYWxpZCA9IHRydWU7XHJcblxyXG4gICAgICBpZiAoZmllbGRzLmhhc093blByb3BlcnR5KGZpZWxkTmFtZSkpIHtcclxuICAgICAgICB0aGlzLl9tb2RlbENsb25lW2ZpZWxkTmFtZV0gPSBmaWVsZHNbZmllbGROYW1lXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5fZXJyb3JzW2ZpZWxkTmFtZV0gPSBudWxsO1xyXG4gICAgICB0aGlzLnZhbGlkYXRlRmllbGQodGhpcy5fbW9kZWxDbG9uZVtmaWVsZE5hbWVdLCBmaWVsZE5hbWUsIHRoaXMuX3ZhbGlkYXRpb25zW2ZpZWxkTmFtZV0sIGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuX3ZhbGlkYXRpb25zKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JzW2tleV0gPSBudWxsO1xyXG4gICAgICB0aGlzLnZhbGlkYXRlRmllbGQodGhpcy5fZmllbGRzW2tleV0sIGtleSwgdGhpcy5fdmFsaWRhdGlvbnNba2V5XSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrRXJyb3JzKHRoaXMuZXJyb3JzKTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE8g0JLRi9GA0LXQt9Cw0YLRjCDQsiDQsdGD0LTRg9GJ0LXQvFxyXG4gIHB1YmxpYyBpbml0TW9kZWxDaGFuZ2VkRnJvbUZpZWxkKGZpZWxkOiBhbnksIGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNJbml0KSB7XHJcbiAgICAgIHRoaXMuX2lzVmFsaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9tb2RlbENsb25lW2ZpZWxkTmFtZV0gPSBmaWVsZDtcclxuXHJcbiAgICAgIHRoaXMuZ2V0TmFtZXNVcGRhdGVkUHJvcGVydGllcyh0aGlzLl9maWVsZHMsIHRoaXMuX21vZGVsQ2xvbmUpLmZvckVhY2goKG5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHRoaXMuX2Vycm9yc1tuYW1lXSA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tZXRob2QgPT09IFZhbGlkYXRpb25NZXRob2RzRW51bS5JbnB1dCkge1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkKHRoaXMuX21vZGVsQ2xvbmVbbmFtZV0sIG5hbWUsIHRoaXMuX3ZhbGlkYXRpb25zW25hbWVdLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5fbW9kZWxDbG9uZTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE8g0JLRi9GA0LXQt9Cw0YLRjCDQsiDQsdGD0LTRg9GJ0LXQvFxyXG4gIHB1YmxpYyBpc0hpZGRlblZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy5faXNWYWxpZCA9IHRydWU7XHJcblxyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuX3ZhbGlkYXRpb25zKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGVGaWVsZCh0aGlzLl9maWVsZHNba2V5XSwga2V5LCB0aGlzLl92YWxpZGF0aW9uc1trZXldLCB0cnVlLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5faXNWYWxpZDtcclxuICB9XHJcbn1cclxuIl19
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXJ4LWZvcm0tdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9zZXJ2aWNlcy9tcngtZm9ybS12YWxpZGF0b3IvbXJ4LWZvcm0tdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHdEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV2RixNQUFNLE9BQU8sZ0JBQWdCO0lBVzNCLFlBQVksT0FBOEI7UUFWbEMsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUNsQixpQkFBWSxHQUFpQixFQUFFLENBQUM7UUFDaEMsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixZQUFPLEdBQUcsS0FB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RUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCwwQkFBMEI7SUFDbkIsYUFBYTtRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUVyQixLQUFLLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNoRjtRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBJRmllbGRzLCBJRmllbGRzRXJyb3IsIElNZXNzYWdlcywgSVZhbGlkYXRpb25zLCBWYWxpZGF0aW9uc1R5cGUgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IEZvcm1WYWxpZGF0b3JPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTWV0aG9kc0VudW0sIFZhbGlkYXRpb25UeXBlc0VudW0gfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IHJlcXVpcmVkVmFsaWRhdGlvbiB9IGZyb20gJy4vdmFsaWRhdGlvbnMvcmVxdWlyZWQudmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IGVtYWlsVmFsaWRhdGlvbiB9IGZyb20gJy4vdmFsaWRhdGlvbnMvZW1haWwudmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IHBhdHRlcm5WYWxpZGF0aW9uIH0gZnJvbSAnLi92YWxpZGF0aW9ucy9wYXR0ZXJuLnZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBtYXhMZW5ndGhWYWxpZGF0aW9uIH0gZnJvbSAnLi92YWxpZGF0aW9ucy9tYXgtbGVuZ3RoLnZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBtaW5MZW5ndGhWYWxpZGF0aW9uIH0gZnJvbSAnLi92YWxpZGF0aW9ucy9taW4tbGVuZ3RoLnZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBtaW5WYWx1ZVZhbGlkYXRpb24gfSBmcm9tICcuL3ZhbGlkYXRpb25zL21pbi12YWx1ZS52YWxpZGF0aW9uJztcclxuaW1wb3J0IHsgbWF4VmFsdWVWYWxpZGF0aW9uIH0gZnJvbSAnLi92YWxpZGF0aW9ucy9tYXgtdmFsdWUudmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IGNhbGxiYWNrVmFsaWRhdGlvbiB9IGZyb20gJy4vdmFsaWRhdGlvbnMvY2FsbGJhY2sudmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IElOVkFMSURfTUVTU0FHRVMgfSBmcm9tICcuL2NvbnN0YW50cy9pbnZhbGlkLW1lc3NhZ2VzJztcclxuaW1wb3J0IHsgZ2V0U29ydGluZ1ZhbGlkYXRpb25zSGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzL2dldC1zb3J0aW5nLXZhbGlkYXRpb25zLmhlbHBlcic7XHJcblxyXG5leHBvcnQgY2xhc3MgTXJ4Rm9ybVZhbGlkYXRvciB7XHJcbiAgcHJpdmF0ZSBfZmllbGRzOiBhbnkgPSBbXTtcclxuICBwcml2YXRlIF92YWxpZGF0aW9uczogSVZhbGlkYXRpb25zID0ge307XHJcbiAgcHJpdmF0ZSBfZXJyb3JzOiBJRmllbGRzRXJyb3IgPSB7fTtcclxuICBwcml2YXRlIF9pc1ZhbGlkID0gdHJ1ZTtcclxuICBwcml2YXRlIF9pc0luaXQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9tb2RlbENsb25lOiBJRmllbGRzID0ge307XHJcblxyXG4gIHByaXZhdGUgX21ldGhvZCA9ICdzdWJtaXQnO1xyXG4gIHByaXZhdGUgX2ludmFsaWRNZXNzYWdlczogSU1lc3NhZ2VzID0gSU5WQUxJRF9NRVNTQUdFUztcclxuXHJcbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IEZvcm1WYWxpZGF0b3JPcHRpb25zKSB7XHJcbiAgICBpZiAob3B0aW9ucz8ubWV0aG9kKSB7XHJcbiAgICAgIHRoaXMuX21ldGhvZCA9IG9wdGlvbnMubWV0aG9kO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcHRpb25zPy5tZXNzYWdlcykge1xyXG4gICAgICB0aGlzLl9pbnZhbGlkTWVzc2FnZXMgPSB7Li4udGhpcy5faW52YWxpZE1lc3NhZ2VzLCAuLi5vcHRpb25zLm1lc3NhZ2VzfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZXJyb3JzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Vycm9ycztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0IGZpZWxkcyhmaWVsZHM6IGFueSkge1xyXG4gICAgdGhpcy5fZmllbGRzID0gT2JqZWN0LmFzc2lnbih7fSwgZmllbGRzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TmFtZXNVcGRhdGVkUHJvcGVydGllcyhvbGRNb2RlbDogYW55LCBuZXdNb2RlbDogYW55KTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgbmFtZXNVcGRhdGVkUHJvcGVydGllcyA9IFtdO1xyXG5cclxuICAgIGZvciAobGV0IGtleSBpbiBuZXdNb2RlbCkge1xyXG4gICAgICBzd2l0Y2ggKHRydWUpIHtcclxuICAgICAgICBjYXNlIEFycmF5LmlzQXJyYXkobmV3TW9kZWxba2V5XSk6XHJcbiAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkobmV3TW9kZWxba2V5XSkgIT09IEpTT04uc3RyaW5naWZ5KG9sZE1vZGVsW2tleV0pKSB7XHJcbiAgICAgICAgICAgIG5hbWVzVXBkYXRlZFByb3BlcnRpZXMucHVzaChrZXkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGlmIChuZXdNb2RlbFtrZXldICE9PSBvbGRNb2RlbFtrZXldKSB7XHJcbiAgICAgICAgICAgIG5hbWVzVXBkYXRlZFByb3BlcnRpZXMucHVzaChrZXkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmFtZXNVcGRhdGVkUHJvcGVydGllcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVGaWVsZChcclxuICAgIHZhbHVlOiBzdHJpbmcsXHJcbiAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uczogVmFsaWRhdGlvbnNUeXBlLFxyXG4gICAgdmFsaWRhdGVFbXB0eVZhbHVlOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBzaWxlbnQ6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKCF2YWxpZGF0ZUVtcHR5VmFsdWUgJiYgKHZhbHVlLmxlbmd0aCA9PT0gMCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGtleSBpbiB2YWxpZGF0aW9ucykge1xyXG4gICAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICAgIGNhc2UgVmFsaWRhdGlvblR5cGVzRW51bS5SZXF1aXJlZDpcclxuICAgICAgICAgIGNvbnN0IHJlcXVpcmVkUmVzID0gcmVxdWlyZWRWYWxpZGF0aW9uKFxyXG4gICAgICAgICAgICB2YWx1ZSwgdmFsaWRhdGlvbnMsIGtleSwgdGhpcy5faW52YWxpZE1lc3NhZ2VzXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIHRoaXMuX2lzVmFsaWQgPSByZXF1aXJlZFJlcy5pc1ZhbGlkO1xyXG5cclxuICAgICAgICAgIGlmICghc2lsZW50ICYmICF0aGlzLl9lcnJvcnNbbmFtZV0pIHtcclxuICAgICAgICAgICAgdGhpcy5fZXJyb3JzW25hbWVdID0gcmVxdWlyZWRSZXMubWVzc2FnZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFZhbGlkYXRpb25UeXBlc0VudW0uRW1haWw6XHJcbiAgICAgICAgICBjb25zdCBlbWFpbFJlcyA9IGVtYWlsVmFsaWRhdGlvbihcclxuICAgICAgICAgICAgdmFsdWUsIHZhbGlkYXRpb25zLCBrZXksIHRoaXMuX2ludmFsaWRNZXNzYWdlc1xyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gZW1haWxSZXMuaXNWYWxpZDtcclxuXHJcbiAgICAgICAgICBpZiAoIXNpbGVudCAmJiAhdGhpcy5fZXJyb3JzW25hbWVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yc1tuYW1lXSA9IGVtYWlsUmVzLm1lc3NhZ2U7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBWYWxpZGF0aW9uVHlwZXNFbnVtLlBhdHRlcm46XHJcbiAgICAgICAgICBjb25zdCBwYXR0ZXJuUmVzID0gcGF0dGVyblZhbGlkYXRpb24oXHJcbiAgICAgICAgICAgIHZhbHVlLCB2YWxpZGF0aW9ucywga2V5LCB0aGlzLl9pbnZhbGlkTWVzc2FnZXNcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgdGhpcy5faXNWYWxpZCA9IHBhdHRlcm5SZXMuaXNWYWxpZDtcclxuXHJcbiAgICAgICAgICBpZiAoIXNpbGVudCAmJiAhdGhpcy5fZXJyb3JzW25hbWVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yc1tuYW1lXSA9IHBhdHRlcm5SZXMubWVzc2FnZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFZhbGlkYXRpb25UeXBlc0VudW0uTWluTGVuZ3RoOlxyXG4gICAgICAgICAgY29uc3QgbWluTGVuZ3RoUmVzID0gbWluTGVuZ3RoVmFsaWRhdGlvbihcclxuICAgICAgICAgICAgdmFsdWUsIHZhbGlkYXRpb25zLCBrZXksIHRoaXMuX2ludmFsaWRNZXNzYWdlc1xyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gbWluTGVuZ3RoUmVzLmlzVmFsaWQ7XHJcblxyXG4gICAgICAgICAgaWYgKCFzaWxlbnQgJiYgIXRoaXMuX2Vycm9yc1tuYW1lXSkge1xyXG4gICAgICAgICAgICB0aGlzLl9lcnJvcnNbbmFtZV0gPSBtaW5MZW5ndGhSZXMubWVzc2FnZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFZhbGlkYXRpb25UeXBlc0VudW0uTWF4TGVuZ3RoOlxyXG4gICAgICAgICAgY29uc3QgbWF4TGVuZ3RoUmVzID0gbWF4TGVuZ3RoVmFsaWRhdGlvbihcclxuICAgICAgICAgICAgdmFsdWUsIHZhbGlkYXRpb25zLCBrZXksIHRoaXMuX2ludmFsaWRNZXNzYWdlc1xyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gbWF4TGVuZ3RoUmVzLmlzVmFsaWQ7XHJcblxyXG4gICAgICAgICAgaWYgKCFzaWxlbnQgJiYgIXRoaXMuX2Vycm9yc1tuYW1lXSkge1xyXG4gICAgICAgICAgICB0aGlzLl9lcnJvcnNbbmFtZV0gPSBtYXhMZW5ndGhSZXMubWVzc2FnZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFZhbGlkYXRpb25UeXBlc0VudW0uTWluVmFsdWU6XHJcbiAgICAgICAgICBjb25zdCBtaW5WYWx1ZVJlcyA9IG1pblZhbHVlVmFsaWRhdGlvbihcclxuICAgICAgICAgICAgdmFsdWUsIHZhbGlkYXRpb25zLCBrZXksIHRoaXMuX2ludmFsaWRNZXNzYWdlc1xyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gbWluVmFsdWVSZXMuaXNWYWxpZDtcclxuXHJcbiAgICAgICAgICBpZiAoIXNpbGVudCAmJiAhdGhpcy5fZXJyb3JzW25hbWVdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yc1tuYW1lXSA9IG1pblZhbHVlUmVzLm1lc3NhZ2U7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBWYWxpZGF0aW9uVHlwZXNFbnVtLk1heFZhbHVlOlxyXG4gICAgICAgICAgY29uc3QgbWF4VmFsdWVSZXMgPSBtYXhWYWx1ZVZhbGlkYXRpb24oXHJcbiAgICAgICAgICAgIHZhbHVlLCB2YWxpZGF0aW9ucywga2V5LCB0aGlzLl9pbnZhbGlkTWVzc2FnZXNcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgdGhpcy5faXNWYWxpZCA9IG1heFZhbHVlUmVzLmlzVmFsaWQ7XHJcblxyXG4gICAgICAgICAgaWYgKCFzaWxlbnQgJiYgIXRoaXMuX2Vycm9yc1tuYW1lXSkge1xyXG4gICAgICAgICAgICB0aGlzLl9lcnJvcnNbbmFtZV0gPSBtYXhWYWx1ZVJlcy5tZXNzYWdlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgVmFsaWRhdGlvblR5cGVzRW51bS5DYWxsYmFjazpcclxuICAgICAgICAgIGNvbnN0IGNhbGxiYWNrUmVzID0gY2FsbGJhY2tWYWxpZGF0aW9uKFxyXG4gICAgICAgICAgICB2YWx1ZSwgdmFsaWRhdGlvbnMsIGtleSwgdGhpcy5faW52YWxpZE1lc3NhZ2VzXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIHRoaXMuX2lzVmFsaWQgPSBjYWxsYmFja1Jlcy5pc1ZhbGlkO1xyXG5cclxuICAgICAgICAgIGlmICghc2lsZW50ICYmICF0aGlzLl9lcnJvcnNbbmFtZV0pIHtcclxuICAgICAgICAgICAgdGhpcy5fZXJyb3JzW25hbWVdID0gY2FsbGJhY2tSZXMubWVzc2FnZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tFcnJvcnMoZXJyb3JzOiBJRmllbGRzRXJyb3IpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1ZhbGlkID0gdHJ1ZTtcclxuXHJcbiAgICBmb3IgKGxldCBlcnJvciBpbiBlcnJvcnMpIHtcclxuICAgICAgaWYgKCEhZXJyb3JzW2Vycm9yXSkge1xyXG4gICAgICAgIGlzVmFsaWQgPSAhZXJyb3JzW2Vycm9yXTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpc1ZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRGaWVsZHMoZmllbGRzOiBJRmllbGRzLCB2YWxpZGF0aW9uczogSVZhbGlkYXRpb25zKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpZWxkcyA9IGNsb25lRGVlcChmaWVsZHMpO1xyXG4gICAgdGhpcy5fdmFsaWRhdGlvbnMgPSB2YWxpZGF0aW9ucztcclxuICAgIHRoaXMuX21vZGVsQ2xvbmUgPSBjbG9uZURlZXAoZmllbGRzKTtcclxuXHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fZXJyb3JzKSB7XHJcbiAgICAgIGlmICghZmllbGRzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICBkZWxldGUgdGhpcy5fZXJyb3JzW2tleV1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGtleSBpbiB2YWxpZGF0aW9ucykge1xyXG4gICAgICB0aGlzLl92YWxpZGF0aW9uc1trZXldID0gZ2V0U29ydGluZ1ZhbGlkYXRpb25zSGVscGVyKHZhbGlkYXRpb25zW2tleV0pO1xyXG4gICAgICB0aGlzLmVycm9yc1trZXldID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9pc0luaXQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRNb2RlbENoYW5nZWQoZmllbGRzOiBJRmllbGRzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNJbml0KSB7XHJcbiAgICAgIHRoaXMuX2lzVmFsaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9tb2RlbENsb25lID0gY2xvbmVEZWVwKGZpZWxkcyk7XHJcblxyXG4gICAgICB0aGlzLmdldE5hbWVzVXBkYXRlZFByb3BlcnRpZXModGhpcy5fZmllbGRzLCBmaWVsZHMpLmZvckVhY2goKG5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHRoaXMuX2Vycm9yc1tuYW1lXSA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tZXRob2QgPT09IFZhbGlkYXRpb25NZXRob2RzRW51bS5JbnB1dCkge1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkKGZpZWxkc1tuYW1lXSwgbmFtZSwgdGhpcy5fdmFsaWRhdGlvbnNbbmFtZV0sIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWVsZHMgPSBjbG9uZURlZXAoZmllbGRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0RmllbGRDaGFuZ2VkKGZpZWxkczogSUZpZWxkcywgZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9pc0luaXQpIHtcclxuICAgICAgdGhpcy5faXNWYWxpZCA9IHRydWU7XHJcblxyXG4gICAgICBpZiAoZmllbGRzLmhhc093blByb3BlcnR5KGZpZWxkTmFtZSkpIHtcclxuICAgICAgICB0aGlzLl9tb2RlbENsb25lW2ZpZWxkTmFtZV0gPSBmaWVsZHNbZmllbGROYW1lXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5fZXJyb3JzW2ZpZWxkTmFtZV0gPSBudWxsO1xyXG4gICAgICB0aGlzLnZhbGlkYXRlRmllbGQodGhpcy5fbW9kZWxDbG9uZVtmaWVsZE5hbWVdLCBmaWVsZE5hbWUsIHRoaXMuX3ZhbGlkYXRpb25zW2ZpZWxkTmFtZV0sIGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuX3ZhbGlkYXRpb25zKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JzW2tleV0gPSBudWxsO1xyXG4gICAgICB0aGlzLnZhbGlkYXRlRmllbGQodGhpcy5fZmllbGRzW2tleV0sIGtleSwgdGhpcy5fdmFsaWRhdGlvbnNba2V5XSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrRXJyb3JzKHRoaXMuZXJyb3JzKTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE8g0JLRi9GA0LXQt9Cw0YLRjCDQsiDQsdGD0LTRg9GJ0LXQvFxyXG4gIHB1YmxpYyBpbml0TW9kZWxDaGFuZ2VkRnJvbUZpZWxkKGZpZWxkOiBhbnksIGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNJbml0KSB7XHJcbiAgICAgIHRoaXMuX2lzVmFsaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLl9tb2RlbENsb25lW2ZpZWxkTmFtZV0gPSBmaWVsZDtcclxuXHJcbiAgICAgIHRoaXMuZ2V0TmFtZXNVcGRhdGVkUHJvcGVydGllcyh0aGlzLl9maWVsZHMsIHRoaXMuX21vZGVsQ2xvbmUpLmZvckVhY2goKG5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHRoaXMuX2Vycm9yc1tuYW1lXSA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tZXRob2QgPT09IFZhbGlkYXRpb25NZXRob2RzRW51bS5JbnB1dCkge1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUZpZWxkKHRoaXMuX21vZGVsQ2xvbmVbbmFtZV0sIG5hbWUsIHRoaXMuX3ZhbGlkYXRpb25zW25hbWVdLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5fbW9kZWxDbG9uZTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE8g0JLRi9GA0LXQt9Cw0YLRjCDQsiDQsdGD0LTRg9GJ0LXQvFxyXG4gIHB1YmxpYyBpc0hpZGRlblZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy5faXNWYWxpZCA9IHRydWU7XHJcblxyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuX3ZhbGlkYXRpb25zKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGVGaWVsZCh0aGlzLl9maWVsZHNba2V5XSwga2V5LCB0aGlzLl92YWxpZGF0aW9uc1trZXldLCB0cnVlLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5faXNWYWxpZDtcclxuICB9XHJcbn1cclxuIl19
@@ -4707,6 +4707,11 @@ class MrxFormValidator {
4707
4707
  this.fields = cloneDeep(fields);
4708
4708
  this._validations = validations;
4709
4709
  this._modelClone = cloneDeep(fields);
4710
+ for (let key in this._errors) {
4711
+ if (!fields.hasOwnProperty(key)) {
4712
+ delete this._errors[key];
4713
+ }
4714
+ }
4710
4715
  for (let key in validations) {
4711
4716
  this._validations[key] = getSortingValidationsHelper(validations[key]);
4712
4717
  this.errors[key] = null;
@@ -4717,11 +4722,6 @@ class MrxFormValidator {
4717
4722
  if (this._isInit) {
4718
4723
  this._isValid = true;
4719
4724
  this._modelClone = cloneDeep(fields);
4720
- for (let key in this._errors) {
4721
- if (!fields.hasOwnProperty(key)) {
4722
- delete this._errors[key];
4723
- }
4724
- }
4725
4725
  this.getNamesUpdatedProperties(this._fields, fields).forEach((name) => {
4726
4726
  this._errors[name] = null;
4727
4727
  if (this._method === ValidationMethodsEnum.Input) {