@koalarx/ui 13.0.3 → 13.0.4

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.
@@ -28,13 +28,12 @@ export class KoalaDynamicFormService {
28
28
  const formArray = formGroup.get('formData');
29
29
  const control = formArray.controls.find(control => control.get('name').value === name);
30
30
  if (control) {
31
- const currentRequired = control.get('required').value;
32
31
  const currentMin = control.get('min').value;
33
32
  const currentMax = control.get('max').value;
34
33
  const validators = [];
35
34
  control.get('value').clearValidators();
36
35
  control.get('value').setErrors(null);
37
- if ((type === "required" && value) || currentRequired) {
36
+ if (type === "required" && value) {
38
37
  validators.push(Validators.required);
39
38
  control.get('value').setErrors({ required: true });
40
39
  }
@@ -196,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
196
195
  type: Injectable,
197
196
  args: [{ providedIn: "any" }]
198
197
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.DeviceDetectorService }]; } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEuZHluYW1pYy1mb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2tvYWxhLmR5bmFtaWMtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEYsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUluRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBSzdELE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsWUFDWSxFQUFlLEVBQ2YsYUFBb0M7UUFEcEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtJQUNoRCxDQUFDO0lBRU0sS0FBSztRQUNWLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sZUFBZSxDQUFDLFNBQW9CLEVBQUUsSUFBWSxFQUFFLElBQW1DLEVBQUUsS0FBZ0M7UUFDOUgsSUFBSSxJQUFJLEtBQUssVUFBVSxJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMs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QUNmLE9BQThELEVBQzlELEtBQWUsRUFDZixJQUFhLEVBQ2IsaUJBQWlCLEdBQUcsS0FBSztRQUV6QixNQUFNLE1BQU0sR0FBeUMsRUFBRSxDQUFDO1FBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDVixJQUFJO2dCQUNKLElBQUk7Z0JBQ0osaUJBQWlCO2FBQ2xCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRU8sb0JBQW9CLENBQUMsZ0JBQXdCLEVBQUUsSUFBUztRQUM5RCxJQUFJLEtBQUssQ0FBQztRQUNWLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsR0FBRztZQUNELElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUNyQztpQkFBTTtnQkFDTCxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2FBQ3RDO1lBQ0QsU0FBUyxFQUFFLENBQUM7U0FDYixRQUFRLFNBQVMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFO1FBRXhDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7b0hBM01VLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRFgsS0FBSzsyRkFDakIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IER5bmFtaWNGb3JtVHlwZUZpZWxkRW51bSB9IGZyb20gJy4vZW51bXMvZHluYW1pYy1mb3JtLXR5cGUtZmllbGQuZW51bSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLb2FsYUR5bmFtaWNTZXRWYWx1ZUludGVyZmFjZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9rb2FsYS5keW5hbWljLXNldC12YWx1ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLb2FsYUR5bmFtaWNBdXRvY29tcGxldGVPcHRpb25zSW50ZXJmYWNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2tvYWxhLmR5bmFtaWMtYXV0b2NvbXBsZXRlLW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEtvYWxhRHluYW1pY0Zvcm1TaG93RmllbGRJbnRlcmZhY2UgfSBmcm9tICcuL2ludGVyZmFjZXMva29hbGEuZHluYW1pYy1mb3JtLXNob3ctZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEtvYWxhRHluYW1pY0Zvcm1Db25maWdJbnRlcmZhY2UgfSBmcm9tICcuL2ludGVyZmFjZXMva29hbGEuZHluYW1pYy1mb3JtLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1CdWlsZGVyIH0gZnJvbSBcIi4vYnVpbGRlci9keW5hbWljLWZvcm0uYnVpbGRlclwiO1xuaW1wb3J0IHsga29hbGEgfSBmcm9tIFwiQGtvYWxhcngvdXRpbHNcIjtcbmltcG9ydCB7IERhdGVNaW5WYWxpZGF0b3IgfSBmcm9tIFwiLi92YWxpZGF0b3JzL2RhdGUtbWluLnZhbGlkYXRvclwiO1xuaW1wb3J0IHsgRGF0ZU1heFZhbGlkYXRvciB9IGZyb20gXCIuL3ZhbGlkYXRvcnMvZGF0ZS1tYXgudmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBEZXZpY2VEZXRlY3RvclNlcnZpY2UgfSBmcm9tIFwibmd4LWRldmljZS1kZXRlY3RvclwiO1xuaW1wb3J0IHsgdW5tYXNrQ29pbiB9IGZyb20gXCJAa29hbGFyeC91dGlscy9vcGVyYXRvcnMvc3RyaW5nXCI7XG5cbmV4cG9ydCB0eXBlIEtvYWxhRHluYW1pY0Zvcm1WYWxpZGF0b3JUeXBlID0gJ3JlcXVpcmVkJyB8ICdtaW4nIHwgJ21heCc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiBcImFueVwifSlcbmV4cG9ydCBjbGFzcyBLb2FsYUR5bmFtaWNGb3JtU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcm90ZWN0ZWQgZGV2aWNlU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlKSB7XG4gIH1cblxuICBwdWJsaWMgYnVpbGQoKSB7XG4gICAgcmV0dXJuIG5ldyBEeW5hbWljRm9ybUJ1aWxkZXIodGhpcy5mYiwgdGhpcy5kZXZpY2VTZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVWYWxpZGF0b3IoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIG5hbWU6IHN0cmluZywgdHlwZTogS29hbGFEeW5hbWljRm9ybVZhbGlkYXRvclR5cGUsIHZhbHVlOiBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGUgPT09ICdyZXF1aXJlZCcgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVHlwZSByZXF1aXJlZCBjYW5ub3QgYmUgYSAke3R5cGVvZiB2YWx1ZX1gKTtcbiAgICB9IGVsc2UgaWYgKCh0eXBlID09PSAnbWluJyB8fCB0eXBlID09PSAnbWF4JykgJiYgdHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUeXBlICR7dHlwZX0gY2Fubm90IGJlIGEgYm9vbGVhbmApO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1BcnJheSA9IGZvcm1Hcm91cC5nZXQoJ2Zvcm1EYXRhJykgYXMgRm9ybUFycmF5O1xuICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtQXJyYXkuY29udHJvbHMuZmluZChjb250cm9sID0+IGNvbnRyb2wuZ2V0KCduYW1lJykudmFsdWUgPT09IG5hbWUpO1xuXG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRSZXF1aXJlZCA9IGNvbnRyb2wuZ2V0KCdyZXF1aXJlZCcpLnZhbHVlO1xuICAgICAgY29uc3QgY3VycmVudE1pbiA9IGNvbnRyb2wuZ2V0KCdtaW4nKS52YWx1ZTtcbiAgICAgIGNvbnN0IGN1cnJlbnRNYXggPSBjb250cm9sLmdldCgnbWF4JykudmFsdWU7XG4gICAgICBjb25zdCB2YWxpZGF0b3JzID0gW107XG5cbiAgICAgIGNvbnRyb2wuZ2V0KCd2YWx1ZScpLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgY29udHJvbC5nZXQoJ3ZhbHVlJykuc2V0RXJyb3JzKG51bGwpO1xuXG4gICAgICBpZiAoKHR5cGUgPT09IFwicmVxdWlyZWRcIiAmJiB2YWx1ZSkgfHwgY3VycmVudFJlcXVpcmVkKSB7XG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgY29udHJvbC5nZXQoJ3ZhbHVlJykuc2V0RXJyb3JzKHtyZXF1aXJlZDogdHJ1ZX0pO1xuICAgICAgfVxuICAgICAgaWYgKCh0eXBlID09PSBcIm1pblwiIHx8IGN1cnJlbnRNaW4pKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oKHR5cGUgPT09IFwibWluXCIgPyB2YWx1ZSA6IGN1cnJlbnRNaW4pKSk7XG4gICAgICAgICAgY29udHJvbC5nZXQoJ3ZhbHVlJykuc2V0RXJyb3JzKHttaW46IHRydWV9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goRGF0ZU1pblZhbGlkYXRvcigodHlwZSA9PT0gXCJtaW5cIiA/IHZhbHVlIDogY3VycmVudE1pbikpKTtcbiAgICAgICAgICBjb250cm9sLmdldCgndmFsdWUnKS5zZXRFcnJvcnMoe2RhdGVNaW46IHRydWV9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCh0eXBlID09PSBcIm1heFwiIHx8IGN1cnJlbnRNYXgpKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgoKHR5cGUgPT09IFwibWF4XCIgPyB2YWx1ZSA6IGN1cnJlbnRNYXgpKSk7XG4gICAgICAgICAgY29udHJvbC5nZXQoJ3ZhbHVlJykuc2V0RXJyb3JzKHttYXg6IHRydWV9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goRGF0ZU1heFZhbGlkYXRvcigodHlwZSA9PT0gXCJtYXhcIiA/IHZhbHVlIDogY3VycmVudE1heCkpKTtcbiAgICAgICAgICBjb250cm9sLmdldCgndmFsdWUnKS5zZXRFcnJvcnMoe2RhdGVNYXg6IHRydWV9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZSA9PT0gXCJyZXF1aXJlZFwiKSB7XG4gICAgICAgIGNvbnRyb2wuZ2V0KCdyZXF1aXJlZCcpLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJtaW5cIikge1xuICAgICAgICBjb250cm9sLmdldCgnbWluJykuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcIm1heFwiKSB7XG4gICAgICAgIGNvbnRyb2wuZ2V0KCdtYXgnKS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb250cm9sLmdldCgndmFsdWUnKS5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgICAgY29udHJvbC5nZXQoJ3ZhbHVlJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbWl0RGF0YShmb3JtOiBGb3JtR3JvdXApIHtcbiAgICBjb25zdCBkYXRhID0ge307XG4gICAgY29uc3QgZm9ybUFycmF5ID0gZm9ybS5nZXQoJ2Zvcm1EYXRhJykgYXMgRm9ybUFycmF5O1xuICAgIGZvcm1BcnJheT8uY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGlmIChjb250cm9sLmdldCgnc2hvdycpLnZhbHVlLmdldFZhbHVlKCkgIT09IGZhbHNlKSB7XG4gICAgICAgIGxldCB2YWx1ZTogYW55ID0gY29udHJvbC5nZXQoJ3ZhbHVlJykudmFsdWU7XG4gICAgICAgIGlmIChjb250cm9sLmdldCgndHlwZScpLnZhbHVlID09PSBEeW5hbWljRm9ybVR5cGVGaWVsZEVudW0udmFsdWVMaXN0KSB7XG4gICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHZhbHVlID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhbHVlID0ga29hbGEodmFsdWUpLnN0cmluZygpLnNwbGl0KCkuZ2V0VmFsdWUoKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb250cm9sLmdldCgndHlwZScpLnZhbHVlID09PSBEeW5hbWljRm9ybVR5cGVGaWVsZEVudW0ubW9yZUl0ZW1zKSB7XG4gICAgICAgICAgY29uc3QgbW9yZUl0ZW1zID0gY29udHJvbC5nZXQoJ21vcmVJdGVtc0NvbmZpZycpLnZhbHVlIGFzIHsgZm9ybTogRm9ybUdyb3VwIH1bXTtcbiAgICAgICAgICB2YWx1ZSA9IFtdO1xuICAgICAgICAgIG1vcmVJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgdmFsdWUucHVzaCh0aGlzLmVtaXREYXRhKGl0ZW0uZm9ybSkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wuZ2V0KCd0eXBlJykudmFsdWUgPT09IER5bmFtaWNGb3JtVHlwZUZpZWxkRW51bS5hdXRvY29tcGxldGUpIHtcbiAgICAgICAgICBpZiAoY29udHJvbC5nZXQoJ211bHRpcGxlJykudmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb250cm9sLmdldCgnYXV0b2NvbXBsZXRlU2VsZWN0ZWRWYWx1ZScpLnZhbHVlIGFzIEtvYWxhRHluYW1pY0F1dG9jb21wbGV0ZU9wdGlvbnNJbnRlcmZhY2VbXTtcbiAgICAgICAgICAgIHZhbHVlID0gb3B0aW9ucz8ubWFwKGl0ZW0gPT4gaXRlbT8udmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZSA9IChjb250cm9sLmdldCgnYXV0b2NvbXBsZXRlU2VsZWN0ZWRWYWx1ZScpLnZhbHVlPy52YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgICBjb250cm9sLmdldCgnYXV0b2NvbXBsZXRlU2VsZWN0ZWRWYWx1ZScpLnZhbHVlLnZhbHVlIDpcbiAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuZ2V0KCdhdXRvY29tcGxldGVTZWxlY3RlZFZhbHVlJykudmFsdWVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wuZ2V0KCd0eXBlJykudmFsdWUgPT09IER5bmFtaWNGb3JtVHlwZUZpZWxkRW51bS5keW5hbWljRm9ybSkge1xuICAgICAgICAgIGNvbnN0IGR5bmFtaWNGb3JtQ29uZmlnID0gY29udHJvbC5nZXQoJ2R5bmFtaWNGb3JtQ29uZmlnJykudmFsdWUgYXMgQmVoYXZpb3JTdWJqZWN0PEtvYWxhRHluYW1pY0Zvcm1Db25maWdJbnRlcmZhY2U+O1xuICAgICAgICAgIHZhbHVlID0gdGhpcy5lbWl0RGF0YShkeW5hbWljRm9ybUNvbmZpZy5nZXRWYWx1ZSgpLmZvcm0pO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wuZ2V0KCd0eXBlJykudmFsdWUgPT09IER5bmFtaWNGb3JtVHlwZUZpZWxkRW51bS5udW1iZXIpIHtcbiAgICAgICAgICB2YWx1ZSA9IHBhcnNlSW50KHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICgoXG4gICAgICAgICAgY29udHJvbC5nZXQoJ3R5cGUnKS52YWx1ZSA9PT0gRHluYW1pY0Zvcm1UeXBlRmllbGRFbnVtLmZsb2F0IHx8XG4gICAgICAgICAgY29udHJvbC5nZXQoJ3R5cGUnKS52YWx1ZSA9PT0gRHluYW1pY0Zvcm1UeXBlRmllbGRFbnVtLnBlcmNlbnRcbiAgICAgICAgKSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUucmVwbGFjZSgvLC9nLCAnLicpKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBjb250cm9sLmdldCgndHlwZScpLnZhbHVlID09PSBEeW5hbWljRm9ybVR5cGVGaWVsZEVudW0uY29pbiAmJlxuICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICApIHtcbiAgICAgICAgICB2YWx1ZSA9IHVubWFza0NvaW4odmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGFbY29udHJvbC5nZXQoJ25hbWUnKS52YWx1ZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHVibGljIHJlc2V0Rm9ybShmb3JtOiBGb3JtR3JvdXApIHtcbiAgICBjb25zdCBmb3JtQXJyYXkgPSBmb3JtLmdldCgnZm9ybURhdGEnKSBhcyBGb3JtQXJyYXk7XG4gICAgZm9ybUFycmF5LmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBpZiAoY29udHJvbC5nZXQoJ3R5cGUnKS52YWx1ZSA9PT0gRHluYW1pY0Zvcm1UeXBlRmllbGRFbnVtLm1vcmVJdGVtcykge1xuICAgICAgICBjb250cm9sLmdldCgnbW9yZUl0ZW1zQ29uZmlnJykuc2V0VmFsdWUoW10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udHJvbC5nZXQoJ3ZhbHVlJykucmVzZXQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRWYWx1ZXNJbk1vcmVJdGVtc0Zvcm0oXG4gICAgc3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PEJlaGF2aW9yU3ViamVjdDxLb2FsYUR5bmFtaWNTZXRWYWx1ZUludGVyZmFjZVtdPltdPixcbiAgICB2YWx1ZXM6IEtvYWxhRHluYW1pY1NldFZhbHVlSW50ZXJmYWNlW11bXVxuICApIHtcbiAgICBjb25zdCB2YWx1ZXNNb3JlSXRlbXMgPSBbXTtcbiAgICB2YWx1ZXMuZm9yRWFjaChpdGVtVmFsdWUgPT4ge1xuICAgICAgdmFsdWVzTW9yZUl0ZW1zLnB1c2gobmV3IEJlaGF2aW9yU3ViamVjdDxLb2FsYUR5bmFtaWNTZXRWYWx1ZUludGVyZmFjZVtdPihpdGVtVmFsdWUpKTtcbiAgICB9KTtcbiAgICBzdWJqZWN0Lm5leHQodmFsdWVzTW9yZUl0ZW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBhdXRvY29tcGxldGVGaWx0ZXJPblNlcnZlcihcbiAgICByZXF1ZXN0OiAoKSA9PiBQcm9taXNlPGFueVtdPixcbiAgICBuYW1lQ29uZmlnOiB7XG4gICAgICBwcm9wc0J5TmFtZTogc3RyaW5nW107XG4gICAgICBkZWxpbWl0ZXI6IHN0cmluZztcbiAgICB9LFxuICAgIGluZGV4TmFtZUJ5VmFsdWU/OiBzdHJpbmdcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPEtvYWxhRHluYW1pY0F1dG9jb21wbGV0ZU9wdGlvbnNJbnRlcmZhY2VbXT4ob2JzZXJ2ZSA9PiB7XG4gICAgICByZXF1ZXN0KCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IEtvYWxhRHluYW1pY0F1dG9jb21wbGV0ZU9wdGlvbnNJbnRlcmZhY2VbXSA9IFtdO1xuICAgICAgICByZXNwb25zZS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIGxldCB2YWx1ZSA9ICcnO1xuICAgICAgICAgIGlmIChpbmRleE5hbWVCeVZhbHVlPy5pbmRleE9mKCcgPiAnKSA+PSAwKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWVCeVN0cmluZ1BhdGgoaW5kZXhOYW1lQnlWYWx1ZSwgaXRlbSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpbmRleE5hbWVCeVZhbHVlKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGl0ZW1baW5kZXhOYW1lQnlWYWx1ZV07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlID0gaXRlbTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IGtvYWxhKGl0ZW0pLm9iamVjdCgpLnRvU3RyaW5nKFxuICAgICAgICAgICAgICBuYW1lQ29uZmlnLnByb3BzQnlOYW1lLFxuICAgICAgICAgICAgICAobmFtZUNvbmZpZy5kZWxpbWl0ZXIgPz8gJyAnKVxuICAgICAgICAgICAgKS5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIG9ic2VydmUubmV4dChvcHRpb25zKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNob3dGaWVsZHMoXG4gICAgc3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PEtvYWxhRHluYW1pY0Zvcm1TaG93RmllbGRJbnRlcmZhY2VbXT4sXG4gICAgbmFtZXM6IHN0cmluZ1tdLFxuICAgIHNob3c6IGJvb2xlYW4sXG4gICAgY2xlYXJDdXJyZW50VmFsdWUgPSBmYWxzZVxuICApIHtcbiAgICBjb25zdCBmaWVsZHM6IEtvYWxhRHluYW1pY0Zvcm1TaG93RmllbGRJbnRlcmZhY2VbXSA9IFtdO1xuICAgIG5hbWVzLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICBmaWVsZHMucHVzaCh7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIHNob3csXG4gICAgICAgIGNsZWFyQ3VycmVudFZhbHVlXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBzdWJqZWN0Lm5leHQoZmllbGRzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWVCeVN0cmluZ1BhdGgoaW5kZXhOYW1lQnlWYWx1ZTogc3RyaW5nLCBpdGVtOiBhbnkpIHtcbiAgICBsZXQgdmFsdWU7XG4gICAgY29uc3QgcGFydHNJbmRleCA9IGluZGV4TmFtZUJ5VmFsdWUuc3BsaXQoJyA+ICcpO1xuICAgIGxldCBwYXJ0SW5kZXggPSAwO1xuICAgIGRvIHtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBpdGVtW3BhcnRzSW5kZXhbcGFydEluZGV4XV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlW3BhcnRzSW5kZXhbcGFydEluZGV4XV07XG4gICAgICB9XG4gICAgICBwYXJ0SW5kZXgrKztcbiAgICB9IHdoaWxlIChwYXJ0SW5kZXggPCBwYXJ0c0luZGV4Lmxlbmd0aCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEuZHluYW1pYy1mb3JtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2tvYWxhLmR5bmFtaWMtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEYsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUluRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBSzdELE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsWUFDWSxFQUFlLEVBQ2YsYUFBb0M7UUFEcEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtJQUNoRCxDQUFDO0lBRU0sS0FBSztRQUNWLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sZUFBZSxDQUFDLFNBQW9CLEVBQUUsSUFBWSxFQUFFLElBQW1DLEVBQUUsS0FBZ0M7UUFDOUgsSUFBSSxJQUFJLEtBQUssVUFBVSxJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMs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QUN4RCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsSUFBSTtnQkFDSixJQUFJO2dCQUNKLGlCQUFpQjthQUNsQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLGdCQUF3QixFQUFFLElBQVM7UUFDOUQsSUFBSSxLQUFLLENBQUM7UUFDVixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLEdBQUc7WUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7YUFDckM7aUJBQU07Z0JBQ0wsS0FBSyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUN0QztZQUNELFNBQVMsRUFBRSxDQUFDO1NBQ2IsUUFBUSxTQUFTLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O29IQTFNVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQURYLEtBQUs7MkZBQ2pCLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVR5cGVGaWVsZEVudW0gfSBmcm9tICcuL2VudW1zL2R5bmFtaWMtZm9ybS10eXBlLWZpZWxkLmVudW0nO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgS29hbGFEeW5hbWljU2V0VmFsdWVJbnRlcmZhY2UgfSBmcm9tICcuL2ludGVyZmFjZXMva29hbGEuZHluYW1pYy1zZXQtdmFsdWUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgS29hbGFEeW5hbWljQXV0b2NvbXBsZXRlT3B0aW9uc0ludGVyZmFjZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9rb2FsYS5keW5hbWljLWF1dG9jb21wbGV0ZS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLb2FsYUR5bmFtaWNGb3JtU2hvd0ZpZWxkSW50ZXJmYWNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2tvYWxhLmR5bmFtaWMtZm9ybS1zaG93LWZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLb2FsYUR5bmFtaWNGb3JtQ29uZmlnSW50ZXJmYWNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2tvYWxhLmR5bmFtaWMtZm9ybS1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IER5bmFtaWNGb3JtQnVpbGRlciB9IGZyb20gXCIuL2J1aWxkZXIvZHluYW1pYy1mb3JtLmJ1aWxkZXJcIjtcbmltcG9ydCB7IGtvYWxhIH0gZnJvbSBcIkBrb2FsYXJ4L3V0aWxzXCI7XG5pbXBvcnQgeyBEYXRlTWluVmFsaWRhdG9yIH0gZnJvbSBcIi4vdmFsaWRhdG9ycy9kYXRlLW1pbi52YWxpZGF0b3JcIjtcbmltcG9ydCB7IERhdGVNYXhWYWxpZGF0b3IgfSBmcm9tIFwiLi92YWxpZGF0b3JzL2RhdGUtbWF4LnZhbGlkYXRvclwiO1xuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSBcIm5neC1kZXZpY2UtZGV0ZWN0b3JcIjtcbmltcG9ydCB7IHVubWFza0NvaW4gfSBmcm9tIFwiQGtvYWxhcngvdXRpbHMvb3BlcmF0b3JzL3N0cmluZ1wiO1xuXG5leHBvcnQgdHlwZSBLb2FsYUR5bmFtaWNGb3JtVmFsaWRhdG9yVHlwZSA9ICdyZXF1aXJlZCcgfCAnbWluJyB8ICdtYXgnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogXCJhbnlcIn0pXG5leHBvcnQgY2xhc3MgS29hbGFEeW5hbWljRm9ybVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJvdGVjdGVkIGRldmljZVNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZSkge1xuICB9XG5cbiAgcHVibGljIGJ1aWxkKCkge1xuICAgIHJldHVybiBuZXcgRHluYW1pY0Zvcm1CdWlsZGVyKHRoaXMuZmIsIHRoaXMuZGV2aWNlU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmFsaWRhdG9yKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBuYW1lOiBzdHJpbmcsIHR5cGU6IEtvYWxhRHluYW1pY0Zvcm1WYWxpZGF0b3JUeXBlLCB2YWx1ZTogYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZykge1xuICAgIGlmICh0eXBlID09PSAncmVxdWlyZWQnICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFR5cGUgcmVxdWlyZWQgY2Fubm90IGJlIGEgJHt0eXBlb2YgdmFsdWV9YCk7XG4gICAgfSBlbHNlIGlmICgodHlwZSA9PT0gJ21pbicgfHwgdHlwZSA9PT0gJ21heCcpICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVHlwZSAke3R5cGV9IGNhbm5vdCBiZSBhIGJvb2xlYW5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtQXJyYXkgPSBmb3JtR3JvdXAuZ2V0KCdmb3JtRGF0YScpIGFzIEZvcm1BcnJheTtcbiAgICBjb25zdCBjb250cm9sID0gZm9ybUFycmF5LmNvbnRyb2xzLmZpbmQoY29udHJvbCA9PiBjb250cm9sLmdldCgnbmFtZScpLnZhbHVlID09PSBuYW1lKTtcblxuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBjb25zdCBjdXJyZW50TWluID0gY29udHJvbC5nZXQoJ21pbicpLnZhbHVlO1xuICAgICAgY29uc3QgY3VycmVudE1heCA9IGNvbnRyb2wuZ2V0KCdtYXgnKS52YWx1ZTtcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcblxuICAgICAgY29udHJvbC5nZXQoJ3ZhbHVlJykuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICBjb250cm9sLmdldCgndmFsdWUnKS5zZXRFcnJvcnMobnVsbCk7XG5cbiAgICAgIGlmICh0eXBlID09PSBcInJlcXVpcmVkXCIgJiYgdmFsdWUpIHtcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICBjb250cm9sLmdldCgndmFsdWUnKS5zZXRFcnJvcnMoe3JlcXVpcmVkOiB0cnVlfSk7XG4gICAgICB9XG4gICAgICBpZiAoKHR5cGUgPT09IFwibWluXCIgfHwgY3VycmVudE1pbikpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbigodHlwZSA9PT0gXCJtaW5cIiA/IHZhbHVlIDogY3VycmVudE1pbikpKTtcbiAgICAgICAgICBjb250cm9sLmdldCgndmFsdWUnKS5zZXRFcnJvcnMoe21pbjogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChEYXRlTWluVmFsaWRhdG9yKCh0eXBlID09PSBcIm1pblwiID8gdmFsdWUgOiBjdXJyZW50TWluKSkpO1xuICAgICAgICAgIGNvbnRyb2wuZ2V0KCd2YWx1ZScpLnNldEVycm9ycyh7ZGF0ZU1pbjogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoKHR5cGUgPT09IFwibWF4XCIgfHwgY3VycmVudE1heCkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heCgodHlwZSA9PT0gXCJtYXhcIiA/IHZhbHVlIDogY3VycmVudE1heCkpKTtcbiAgICAgICAgICBjb250cm9sLmdldCgndmFsdWUnKS5zZXRFcnJvcnMoe21heDogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChEYXRlTWF4VmFsaWRhdG9yKCh0eXBlID09PSBcIm1heFwiID8gdmFsdWUgOiBjdXJyZW50TWF4KSkpO1xuICAgICAgICAgIGNvbnRyb2wuZ2V0KCd2YWx1ZScpLnNldEVycm9ycyh7ZGF0ZU1heDogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlID09PSBcInJlcXVpcmVkXCIpIHtcbiAgICAgICAgY29udHJvbC5nZXQoJ3JlcXVpcmVkJykuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcIm1pblwiKSB7XG4gICAgICAgIGNvbnRyb2wuZ2V0KCdtaW4nKS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwibWF4XCIpIHtcbiAgICAgICAgY29udHJvbC5nZXQoJ21heCcpLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGNvbnRyb2wuZ2V0KCd2YWx1ZScpLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgICBjb250cm9sLmdldCgndmFsdWUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVtaXREYXRhKGZvcm06IEZvcm1Hcm91cCkge1xuICAgIGNvbnN0IGRhdGEgPSB7fTtcbiAgICBjb25zdCBmb3JtQXJyYXkgPSBmb3JtLmdldCgnZm9ybURhdGEnKSBhcyBGb3JtQXJyYXk7XG4gICAgZm9ybUFycmF5Py5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgaWYgKGNvbnRyb2wuZ2V0KCdzaG93JykudmFsdWUuZ2V0VmFsdWUoKSAhPT0gZmFsc2UpIHtcbiAgICAgICAgbGV0IHZhbHVlOiBhbnkgPSBjb250cm9sLmdldCgndmFsdWUnKS52YWx1ZTtcbiAgICAgICAgaWYgKGNvbnRyb2wuZ2V0KCd0eXBlJykudmFsdWUgPT09IER5bmFtaWNGb3JtVHlwZUZpZWxkRW51bS52YWx1ZUxpc3QpIHtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFsdWUgPSBrb2FsYSh2YWx1ZSkuc3RyaW5nKCkuc3BsaXQoKS5nZXRWYWx1ZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wuZ2V0KCd0eXBlJykudmFsdWUgPT09IER5bmFtaWNGb3JtVHlwZUZpZWxkRW51bS5tb3JlSXRlbXMpIHtcbiAgICAgICAgICBjb25zdCBtb3JlSXRlbXMgPSBjb250cm9sLmdldCgnbW9yZUl0ZW1zQ29uZmlnJykudmFsdWUgYXMgeyBmb3JtOiBGb3JtR3JvdXAgfVtdO1xuICAgICAgICAgIHZhbHVlID0gW107XG4gICAgICAgICAgbW9yZUl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICB2YWx1ZS5wdXNoKHRoaXMuZW1pdERhdGEoaXRlbS5mb3JtKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY29udHJvbC5nZXQoJ3R5cGUnKS52YWx1ZSA9PT0gRHluYW1pY0Zvcm1UeXBlRmllbGRFbnVtLmF1dG9jb21wbGV0ZSkge1xuICAgICAgICAgIGlmIChjb250cm9sLmdldCgnbXVsdGlwbGUnKS52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRyb2wuZ2V0KCdhdXRvY29tcGxldGVTZWxlY3RlZFZhbHVlJykudmFsdWUgYXMgS29hbGFEeW5hbWljQXV0b2NvbXBsZXRlT3B0aW9uc0ludGVyZmFjZVtdO1xuICAgICAgICAgICAgdmFsdWUgPSBvcHRpb25zPy5tYXAoaXRlbSA9PiBpdGVtPy52YWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlID0gKGNvbnRyb2wuZ2V0KCdhdXRvY29tcGxldGVTZWxlY3RlZFZhbHVlJykudmFsdWU/LnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuZ2V0KCdhdXRvY29tcGxldGVTZWxlY3RlZFZhbHVlJykudmFsdWUudmFsdWUgOlxuICAgICAgICAgICAgICAgICAgICAgY29udHJvbC5nZXQoJ2F1dG9jb21wbGV0ZVNlbGVjdGVkVmFsdWUnKS52YWx1ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoY29udHJvbC5nZXQoJ3R5cGUnKS52YWx1ZSA9PT0gRHluYW1pY0Zvcm1UeXBlRmllbGRFbnVtLmR5bmFtaWNGb3JtKSB7XG4gICAgICAgICAgY29uc3QgZHluYW1pY0Zvcm1Db25maWcgPSBjb250cm9sLmdldCgnZHluYW1pY0Zvcm1Db25maWcnKS52YWx1ZSBhcyBCZWhhdmlvclN1YmplY3Q8S29hbGFEeW5hbWljRm9ybUNvbmZpZ0ludGVyZmFjZT47XG4gICAgICAgICAgdmFsdWUgPSB0aGlzLmVtaXREYXRhKGR5bmFtaWNGb3JtQ29uZmlnLmdldFZhbHVlKCkuZm9ybSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY29udHJvbC5nZXQoJ3R5cGUnKS52YWx1ZSA9PT0gRHluYW1pY0Zvcm1UeXBlRmllbGRFbnVtLm51bWJlcikge1xuICAgICAgICAgIHZhbHVlID0gcGFyc2VJbnQodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKChcbiAgICAgICAgICBjb250cm9sLmdldCgndHlwZScpLnZhbHVlID09PSBEeW5hbWljRm9ybVR5cGVGaWVsZEVudW0uZmxvYXQgfHxcbiAgICAgICAgICBjb250cm9sLmdldCgndHlwZScpLnZhbHVlID09PSBEeW5hbWljRm9ybVR5cGVGaWVsZEVudW0ucGVyY2VudFxuICAgICAgICApICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZS5yZXBsYWNlKC8sL2csICcuJykpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGNvbnRyb2wuZ2V0KCd0eXBlJykudmFsdWUgPT09IER5bmFtaWNGb3JtVHlwZUZpZWxkRW51bS5jb2luICYmXG4gICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiXG4gICAgICAgICkge1xuICAgICAgICAgIHZhbHVlID0gdW5tYXNrQ29pbih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZGF0YVtjb250cm9sLmdldCgnbmFtZScpLnZhbHVlXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRGb3JtKGZvcm06IEZvcm1Hcm91cCkge1xuICAgIGNvbnN0IGZvcm1BcnJheSA9IGZvcm0uZ2V0KCdmb3JtRGF0YScpIGFzIEZvcm1BcnJheTtcbiAgICBmb3JtQXJyYXkuY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGlmIChjb250cm9sLmdldCgndHlwZScpLnZhbHVlID09PSBEeW5hbWljRm9ybVR5cGVGaWVsZEVudW0ubW9yZUl0ZW1zKSB7XG4gICAgICAgIGNvbnRyb2wuZ2V0KCdtb3JlSXRlbXNDb25maWcnKS5zZXRWYWx1ZShbXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250cm9sLmdldCgndmFsdWUnKS5yZXNldCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldFZhbHVlc0luTW9yZUl0ZW1zRm9ybShcbiAgICBzdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8QmVoYXZpb3JTdWJqZWN0PEtvYWxhRHluYW1pY1NldFZhbHVlSW50ZXJmYWNlW10+W10+LFxuICAgIHZhbHVlczogS29hbGFEeW5hbWljU2V0VmFsdWVJbnRlcmZhY2VbXVtdXG4gICkge1xuICAgIGNvbnN0IHZhbHVlc01vcmVJdGVtcyA9IFtdO1xuICAgIHZhbHVlcy5mb3JFYWNoKGl0ZW1WYWx1ZSA9PiB7XG4gICAgICB2YWx1ZXNNb3JlSXRlbXMucHVzaChuZXcgQmVoYXZpb3JTdWJqZWN0PEtvYWxhRHluYW1pY1NldFZhbHVlSW50ZXJmYWNlW10+KGl0ZW1WYWx1ZSkpO1xuICAgIH0pO1xuICAgIHN1YmplY3QubmV4dCh2YWx1ZXNNb3JlSXRlbXMpO1xuICB9XG5cbiAgcHVibGljIGF1dG9jb21wbGV0ZUZpbHRlck9uU2VydmVyKFxuICAgIHJlcXVlc3Q6ICgpID0+IFByb21pc2U8YW55W10+LFxuICAgIG5hbWVDb25maWc6IHtcbiAgICAgIHByb3BzQnlOYW1lOiBzdHJpbmdbXTtcbiAgICAgIGRlbGltaXRlcjogc3RyaW5nO1xuICAgIH0sXG4gICAgaW5kZXhOYW1lQnlWYWx1ZT86IHN0cmluZ1xuICApIHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8S29hbGFEeW5hbWljQXV0b2NvbXBsZXRlT3B0aW9uc0ludGVyZmFjZVtdPihvYnNlcnZlID0+IHtcbiAgICAgIHJlcXVlc3QoKS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogS29hbGFEeW5hbWljQXV0b2NvbXBsZXRlT3B0aW9uc0ludGVyZmFjZVtdID0gW107XG4gICAgICAgIHJlc3BvbnNlLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgbGV0IHZhbHVlID0gJyc7XG4gICAgICAgICAgaWYgKGluZGV4TmFtZUJ5VmFsdWU/LmluZGV4T2YoJyA+ICcpID49IDApIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXRWYWx1ZUJ5U3RyaW5nUGF0aChpbmRleE5hbWVCeVZhbHVlLCBpdGVtKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4TmFtZUJ5VmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gaXRlbVtpbmRleE5hbWVCeVZhbHVlXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSBpdGVtO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgbmFtZToga29hbGEoaXRlbSkub2JqZWN0KCkudG9TdHJpbmcoXG4gICAgICAgICAgICAgIG5hbWVDb25maWcucHJvcHNCeU5hbWUsXG4gICAgICAgICAgICAgIChuYW1lQ29uZmlnLmRlbGltaXRlciA/PyAnICcpXG4gICAgICAgICAgICApLmdldFZhbHVlKCksXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgb2JzZXJ2ZS5uZXh0KG9wdGlvbnMpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0ZpZWxkcyhcbiAgICBzdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8S29hbGFEeW5hbWljRm9ybVNob3dGaWVsZEludGVyZmFjZVtdPixcbiAgICBuYW1lczogc3RyaW5nW10sXG4gICAgc2hvdzogYm9vbGVhbixcbiAgICBjbGVhckN1cnJlbnRWYWx1ZSA9IGZhbHNlXG4gICkge1xuICAgIGNvbnN0IGZpZWxkczogS29hbGFEeW5hbWljRm9ybVNob3dGaWVsZEludGVyZmFjZVtdID0gW107XG4gICAgbmFtZXMuZm9yRWFjaChuYW1lID0+IHtcbiAgICAgIGZpZWxkcy5wdXNoKHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgc2hvdyxcbiAgICAgICAgY2xlYXJDdXJyZW50VmFsdWVcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHN1YmplY3QubmV4dChmaWVsZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYWx1ZUJ5U3RyaW5nUGF0aChpbmRleE5hbWVCeVZhbHVlOiBzdHJpbmcsIGl0ZW06IGFueSkge1xuICAgIGxldCB2YWx1ZTtcbiAgICBjb25zdCBwYXJ0c0luZGV4ID0gaW5kZXhOYW1lQnlWYWx1ZS5zcGxpdCgnID4gJyk7XG4gICAgbGV0IHBhcnRJbmRleCA9IDA7XG4gICAgZG8ge1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGl0ZW1bcGFydHNJbmRleFtwYXJ0SW5kZXhdXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWVbcGFydHNJbmRleFtwYXJ0SW5kZXhdXTtcbiAgICAgIH1cbiAgICAgIHBhcnRJbmRleCsrO1xuICAgIH0gd2hpbGUgKHBhcnRJbmRleCA8IHBhcnRzSW5kZXgubGVuZ3RoKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuIl19
@@ -535,13 +535,12 @@ class KoalaDynamicFormService {
535
535
  const formArray = formGroup.get('formData');
536
536
  const control = formArray.controls.find(control => control.get('name').value === name);
537
537
  if (control) {
538
- const currentRequired = control.get('required').value;
539
538
  const currentMin = control.get('min').value;
540
539
  const currentMax = control.get('max').value;
541
540
  const validators = [];
542
541
  control.get('value').clearValidators();
543
542
  control.get('value').setErrors(null);
544
- if ((type === "required" && value) || currentRequired) {
543
+ if (type === "required" && value) {
545
544
  validators.push(Validators.required);
546
545
  control.get('value').setErrors({ required: true });
547
546
  }