@esfaenza/forms-and-validations 11.2.89 → 11.2.92

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.
Files changed (23) hide show
  1. package/bundles/esfaenza-forms-and-validations.umd.js +60 -21
  2. package/bundles/esfaenza-forms-and-validations.umd.js.map +1 -1
  3. package/esfaenza-forms-and-validations.metadata.json +1 -1
  4. package/esm2015/lib/forms/base-form-control.js +8 -5
  5. package/esm2015/lib/forms/form-adaptive/form-adaptive.component.js +15 -6
  6. package/esm2015/lib/forms/form-autocomplete/form-autocomplete.component.js +4 -2
  7. package/esm2015/lib/forms/form-checkbox/form-checkbox.component.js +6 -2
  8. package/esm2015/lib/forms/form-date/form-date.component.js +6 -2
  9. package/esm2015/lib/forms/form-datetime/form-datetime.component.js +6 -2
  10. package/esm2015/lib/forms/form-file/form-file.component.js +4 -3
  11. package/esm2015/lib/forms/form-input/form-input.component.js +2 -2
  12. package/esm2015/lib/forms/form-multiselect/form-multiselect.component.js +4 -3
  13. package/esm2015/lib/forms/form-select/form-select.component.js +7 -2
  14. package/esm2015/lib/forms/form-textarea/form-textarea.component.js +2 -2
  15. package/esm2015/lib/forms/form-time/form-time.component.js +5 -2
  16. package/fesm2015/esfaenza-forms-and-validations.js +57 -21
  17. package/fesm2015/esfaenza-forms-and-validations.js.map +1 -1
  18. package/lib/forms/base-form-control.d.ts +1 -1
  19. package/lib/forms/form-checkbox/form-checkbox.component.d.ts +1 -0
  20. package/lib/forms/form-date/form-date.component.d.ts +1 -0
  21. package/lib/forms/form-datetime/form-datetime.component.d.ts +1 -0
  22. package/lib/forms/form-select/form-select.component.d.ts +1 -0
  23. package/package.json +1 -1
@@ -157,6 +157,8 @@ export class FormAutocompleteComponent extends BaseFormControl {
157
157
  this.ignoreNextWriteValue = true;
158
158
  if (forcedValue == "" && this.Multi)
159
159
  this.Model = "";
160
+ var selecteds = this.Model ? this.Model.split(',') : [];
161
+ this.EvaluatedModel = selecteds.map(t => { var _a; return this.BoundSource && this.BoundSource.length > 0 ? (_a = this.BoundSource.find(t => t.id == this.Model)) === null || _a === void 0 ? void 0 : _a.description : ""; }).join(', ');
160
162
  super.changed(forcedValue, markForCheck);
161
163
  }
162
164
  /** @ignore */
@@ -173,7 +175,7 @@ export class FormAutocompleteComponent extends BaseFormControl {
173
175
  FormAutocompleteComponent.decorators = [
174
176
  { type: Component, args: [{
175
177
  selector: "form-autocomplete",
176
- template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-top-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : LabelColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <val-autocomplete *ngIf=\"!Multi\" [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [readonly]=\"Readonly\"\r\n [label]=\"SelectLabel\"\r\n type=\"text\"\r\n [ngModel]=\"Model\"\r\n (ngModelChange)=\"Model = $event; evaluateIdResearch()\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"filterSource($event);\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n (optionChange)=\"changed($event);\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [FilteredSource]=\"FilteredBoundSource\">\r\n </val-autocomplete>\r\n\r\n <val-autocomplete-multi *ngIf=\"Multi\" [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [readonly]=\"Readonly\"\r\n [label]=\"SelectLabel\"\r\n [ChipThreshold]=\"MultiElementsThreshold\"\r\n type=\"text\"\r\n [ngModel]=\"Model\"\r\n (ngModelChange)=\"Model = $event; evaluateIdResearch()\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"filterSource($event);\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n (optionChange)=\"changed($event);\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [FilteredSource]=\"FilteredBoundSource\">\r\n\r\n </val-autocomplete-multi>\r\n</ng-template>",
178
+ template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-bottom-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : InputColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <val-autocomplete *ngIf=\"!Multi\" [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [readonly]=\"Readonly\"\r\n [label]=\"SelectLabel\"\r\n type=\"text\"\r\n [ngModel]=\"Model\"\r\n (ngModelChange)=\"Model = $event; evaluateIdResearch()\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"filterSource($event);\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n (optionChange)=\"changed($event);\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [FilteredSource]=\"FilteredBoundSource\">\r\n </val-autocomplete>\r\n\r\n <val-autocomplete-multi *ngIf=\"Multi\" [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [readonly]=\"Readonly\"\r\n [label]=\"SelectLabel\"\r\n [ChipThreshold]=\"MultiElementsThreshold\"\r\n type=\"text\"\r\n [ngModel]=\"Model\"\r\n (ngModelChange)=\"Model = $event; evaluateIdResearch()\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"filterSource($event);\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n (optionChange)=\"changed($event);\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [FilteredSource]=\"FilteredBoundSource\">\r\n\r\n </val-autocomplete-multi>\r\n</ng-template>",
177
179
  providers: [{ provide: LocalizationService, useClass: FormAutocompleteComponentLoc }],
178
180
  changeDetection: ChangeDetectionStrategy.OnPush
179
181
  },] }
@@ -197,4 +199,4 @@ FormAutocompleteComponent.propDecorators = {
197
199
  Multi: [{ type: Input }],
198
200
  MultiElementsThreshold: [{ type: Input }]
199
201
  };
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvZm9ybXMvZm9ybS1hdXRvY29tcGxldGUvZm9ybS1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxFQUF3QixhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEYsZUFBZTtBQUNmLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJN0QsZ0JBQWdCO0FBQ2hCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWpGLHlFQUF5RTtBQU96RSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsZUFBZTtJQWdDMUQsMkJBQTJCO0lBQzNCLFlBQVksR0FBc0IsRUFBUyxFQUF1QixFQUFzQixTQUFvQixFQUFxQyxXQUF1QixFQUFjLEVBQXdCLEVBQWMsVUFBNEIsRUFBcUMsYUFBcUIsRUFBc0MsY0FBd0I7UUFDNVcsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRDNDLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBL0JsRSw0RUFBNEU7UUFDbkUsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFbEMsNERBQTREO1FBQ25ELG1CQUFjLEdBQXlGLElBQUksQ0FBQztRQUVySCxpREFBaUQ7UUFDeEMsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUU5QixtREFBbUQ7UUFDMUMsd0JBQW1CLEdBQVcsSUFBSSxDQUFDO1FBRTVDLGtJQUFrSTtRQUN6SCxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUV4QyxzREFBc0Q7UUFDN0MsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUVoQyxzREFBc0Q7UUFDN0MsMkJBQXNCLEdBQVcsRUFBRSxDQUFDO1FBRTdDOzs7V0FHRztRQUNLLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUU5Qyw0RUFBNEU7UUFDckUsd0JBQW1CLEdBQTBDLEVBQUUsQ0FBQztRQWlKdkUsdUdBQXVHO1FBQ3ZHLCtEQUErRDtRQUMvRCxjQUFjO1FBQ04sb0JBQWUsR0FBNkIsRUFBRSxDQUFDO0lBL0l2RCxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUVuQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPO1NBQ1Y7UUFFRCxJQUFHLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDVixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssYUFBYSxDQUFDLEtBQVU7UUFDNUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzNDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCO1FBQ3JCLElBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUNWLE9BQU87UUFFWCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztvQkFDWCxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7b0JBRXRELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDL0I7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDM0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUNsQyxPQUFPO1NBQ1Y7UUFFRCw2SEFBNkg7UUFDN0gsSUFBRyxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN0RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUM1QyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN4QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1lBQzlCLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztZQUNqRSxNQUFNLGtJQUFrSSxDQUFDO1FBRTdJLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7b0JBQ2hCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO29CQUM1QixxREFBcUQ7b0JBQ3JELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO29CQUM1QyxJQUFJLENBQUMsMENBQTBDLEVBQUUsQ0FBQztvQkFDbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDWDthQUNJO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO2dCQUMvQiw2Q0FBNkM7Z0JBQzdDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDck0sSUFBSSxDQUFDLDBDQUEwQyxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNOLDBDQUEwQztRQUM5QyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1lBQ3RELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNQLFdBQVcsQ0FBQyxPQUFzQjs7UUFDckMsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksU0FBUyxFQUFFO1lBQ1gsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFFNUIsOEZBQThGO1lBQzlGLElBQUksQ0FBQyxPQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLE1BQU0sS0FBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7Z0JBQ2xFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDOztnQkFFNUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztZQUVsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVELHNGQUFzRjtJQUN0RixPQUFPLENBQUMsY0FBbUIsSUFBSSxFQUFFLGVBQXdCLEtBQUs7UUFDMUQsSUFBRyxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQ1YsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUVyQyxJQUFJLFdBQVcsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUs7WUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFcEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGNBQWM7SUFDZCxpQkFBaUIsS0FBVyxDQUFDO0lBTTdCLGNBQWM7SUFDTixRQUFRLENBQUMsRUFBVSxFQUFFLElBQWMsRUFBRSxZQUFvQjtRQUM3RCw2REFBNkQ7UUFDN0QsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTNDLCtFQUErRTtRQUMvRSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzVHLENBQUM7OztZQWpNSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsKzBJQUErQztnQkFDL0MsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixFQUFFLENBQUM7Z0JBQ3JGLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2xEOzs7WUF0QnFFLGlCQUFpQjtZQVE5RSxtQkFBbUI7WUFQa0IsU0FBUyx1QkF1RGtCLFFBQVEsWUFBSSxJQUFJO1lBQXlFLEtBQUssdUJBQXBELFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYTtZQWpEMUksb0JBQW9CLHVCQWlEa0osUUFBUTtZQWpEeEosZ0JBQWdCLHVCQWlEc0ssUUFBUTt5Q0FBa0MsUUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhOzBDQUEwQixRQUFRLFlBQUksTUFBTSxTQUFDLGNBQWM7OzswQkE5QnJWLEtBQUs7NkJBR0wsS0FBSzt1QkFHTCxLQUFLO2tDQUdMLEtBQUs7NEJBR0wsS0FBSztvQkFHTCxLQUFLO3FDQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsLCBDaGFuZ2VEZXRlY3RvclJlZiwgU2VsZiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBCYXNlRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vYmFzZS1mb3JtLWNvbnRyb2xcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBDb21wb25lbnRDb250ZXh0IH0gZnJvbSAnQGVzZmFlbnphL2FjY2Vzcy1jb250cm9sJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBBQ09fQ1VTVE9NS0VZLCBGQVZfREVCVUdfTU9ERSB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbi8vTG9jYWxpenphemlvbmVcclxuaW1wb3J0IHsgRm9ybUF1dG9jb21wbGV0ZUNvbXBvbmVudExvYyB9IGZyb20gXCIuL2Zvcm0tYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5sb2NcIjtcclxuXHJcbi8qKiBDb21wb25lbnRlIGRpIGlucHV0IGNoZSBzaSBhdXRvLWNvbXBsZXRhIGluIGJhc2UgYWwgdmFsb3JlIGF0dHVhbGUgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJmb3JtLWF1dG9jb21wbGV0ZVwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiZm9ybS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEZvcm1BdXRvY29tcGxldGVDb21wb25lbnRMb2MgfV0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUF1dG9jb21wbGV0ZUNvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ29udHJvbCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICAvKiogUGVybWV0dGUgZGkgc3BlY2lmaWNhcmUgaWwgdGVzdG8gZGVsbGEgTGFiZWwgZmxvdHRhbnRlIG1hdGVyaWFsLXN0eWxlICovXHJcbiAgICBASW5wdXQoKSBTZWxlY3RMYWJlbDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKiogRnVuemlvbmUgZGkgcmljZXJjYSBjaGUgdmVycsOgIGNoaWFtYXRhIGRhbCBjb21wb25lbnRlICovXHJcbiAgICBASW5wdXQoKSBTZWFyY2hGdW5jdGlvbjogKHNlYXJjaDogc3RyaW5nLCBieWlkOiBib29sZWFuKSA9PiBPYnNlcnZhYmxlPHsgaWQ6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZyB9W10+ID0gbnVsbDtcclxuXHJcbiAgICAvKiogTnVtZXJvIG1pbmltbyBkaSBjYXJhdHRlcmkgY29uIGN1aSBjZXJjYXJlICovXHJcbiAgICBASW5wdXQoKSBNaW5DaGFyczogbnVtYmVyID0gMztcclxuXHJcbiAgICAvKiogT3ZlcnJpZGUgZGVsIHBsYWNlaG9sZGVyIHBlciBzZWxlY3QgcmVxdXJpZWQgKi9cclxuICAgIEBJbnB1dCgpIFJlcXVpcmVkUGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBpIGNvbnRyb2xsaSBkZXZvbm8gZXNzZXJlIGVmZmV0dHVhdGkgdGVuZW5kbyBjb250byBkZWwgQ2FzZSBvIG1lbm8uIFZhbGUgc29sbyBxdWFsb3JhIGxhICoqU291cmNlKiogZm9zc2UgZm9ybml0YSAqL1xyXG4gICAgQElucHV0KCkgQ2FzZVNlbnNpdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgdXNhcmUgbGEgbW9kYWxpdMOgIG11bHRpc2VsZXppb25lIG8gbm8gKi9cclxuICAgIEBJbnB1dCgpIE11bHRpOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSB1c2FyZSBsYSBtb2RhbGl0w6AgbXVsdGlzZWxlemlvbmUgbyBubyAqL1xyXG4gICAgQElucHV0KCkgTXVsdGlFbGVtZW50c1RocmVzaG9sZDogbnVtYmVyID0gMTA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgaWdub3JhcmUgaWwgcHJvc3NpbW8gZXZlbnRvIHdyaXRlVmFsdWUgY2hlIG5vcm1hbG1lbnRlIGRvdnJlYmJlIHJpY2hpZWRlcmUgbGEgbnVvdmEgc291cmNlLiBTZXJ2ZSBwZXIgcXVhbmRvIGwndXRlbnRlIHNlbGV6aW9uYSB1biBlbGVtZW50bzpcclxuICAgICAqIFN1Yml0byBkb3BvIHBhcnRpcmViYmUgdW4gYWx0cm8gZXZlbnRvIG1vZGVsQ2hhbmdlIGNoZSByaWNhcmljaGVyZWJiZSBudW92YW1lbnRlIGxhIHNvdXJjZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGlnbm9yZU5leHRXcml0ZVZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIFNvcmdlbnRlIEJpbmRhdGEgRmlsdHJhdGEgaW4gYmFzZSBhbCBjb250ZW51dG8gZGVsbGEgY2FzZWxsYSBkaSB0ZXN0byAqL1xyXG4gICAgcHVibGljIEZpbHRlcmVkQm91bmRTb3VyY2U6IHsgaWQ6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZyB9W10gPSBbXTtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSwgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgQE9wdGlvbmFsKCkgQEluamVjdChOR19WQUxJREFUT1JTKSBfdmFsaWRhdG9yczogQXJyYXk8YW55PiwgQE9wdGlvbmFsKCkgYWM6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBAT3B0aW9uYWwoKSBBcHBDb250ZXh0OiBDb21wb25lbnRDb250ZXh0LCBAT3B0aW9uYWwoKSBASW5qZWN0KEFDT19DVVNUT01LRVkpIEFDT19DVVNUT01LRVk6IHN0cmluZywgQE9wdGlvbmFsKCkgQEluamVjdChGQVZfREVCVUdfTU9ERSkgRkFWX0RFQlVHX01PREUgOiBib29sZWFuKSB7XHJcbiAgICAgICAgc3VwZXIoY2RyLCBuZ0NvbnRyb2wsIF92YWxpZGF0b3JzLCBhYywgQXBwQ29udGV4dCwgQUNPX0NVU1RPTUtFWSwgRkFWX0RFQlVHX01PREUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICh0aGlzLlNlYXJjaEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuU2VhcmNoRnVuY3Rpb24odmFsdWUsIHRydWUpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuU291cmNlID0gdDtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJ5QmluZFNvdXJjZURpc3BsYXkoKTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLmZpbmFsaXplVmFsdWUodmFsdWUpOyB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLk11bHRpKVxyXG4gICAgICAgICAgICB0aGlzLmZpbmFsaXplVmFsdWUodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGF0byB1biB2YWxvcmUgdmVyaWZpY2Egc2UgcHXDsiByZXN0aXR1aXJlIGxlIGluZm9ybWF6aW9uaSB0cm92YXRlIGluICoqU291cmNlKiogY29uIGlkIHVndWFsZSBhICoqdmFsdWUqKiBvIHNlIGRldmUgcmVzdGl0dWlyZSBpbCB2YWxvcmUgaW4gc2VcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IHZhbHVlIFZhbG9yZSBzY3JpdHRvIG5lbGwnaW5wdXQgZGkgdGVzdG9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBmaW5hbGl6ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB2YXIgdmFsID0gdGhpcy5Tb3VyY2UuZmluZCh0ID0+IHQuaWQgPT0gdmFsdWUpO1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHZhbCA/IHZhbC5pZCA6IHZhbHVlKTtcclxuICAgICAgICB0aGlzLk1vZGVsID0gdmFsID8gdmFsLmRlc2NyaXB0aW9uIDogdmFsdWU7XHJcbiAgICAgICAgdGhpcy5FdmFsdWF0ZWRNb2RlbCA9IHRoaXMuTW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBRdWFuZG8gdmllbmUgc2NyaXR0byB1biBudW92byB2YWxvcmUgYmlzb2duYSBjb250cm9sbGFyZSBzZSBwZXIgYm90dGEgZGkgY3VsbyBmb3NzZSB1biBpZCwgaW4gdGFsIGNhc28gZGV2J2Vzc2VyZSByaWVmZmV0dHVhdG8gaWwgYmluZFxyXG4gICAgICogcGVyIG1vc3RyYXJlIHNvbG8gbGEgZGVzY3JpemlvbmUgbmVsbCdhdXRvY29tcGxldGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGV2YWx1YXRlSWRSZXNlYXJjaCgpIHtcclxuICAgICAgICBpZighdGhpcy5Nb2RlbClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLlNlYXJjaEZ1bmN0aW9uKHRoaXMuTW9kZWwsIHRydWUpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICAgICAgaWYgKHQgJiYgdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlNvdXJjZSA9IHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyeUJpbmRTb3VyY2VEaXNwbGF5KCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuTXVsdGkpXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRoaXMuZmluYWxpemVWYWx1ZSh0aGlzLk1vZGVsKTsgfSk7XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50byBkaSBmaWx0cm8gZGVsbGEgc29yZ2VudGUgZGF0aSBpbiBiYXNlIGFsbCdpbnB1dCB1dGVudGVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50IElucHV0IHV0ZW50ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmlsdGVyU291cmNlKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodGhpcy5pZ25vcmVOZXh0V3JpdGVWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmlnbm9yZU5leHRXcml0ZVZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFF1YW5kbyBmaWx0cm8gbGEgc291cmNlLCBzZSBub24gZGV2byBpZ25vcmFyZSBsJ2V2ZW50byBkZXZvIGNvbXVucXVlIGFzc2ljdXJhcm1pIGRpIGltcG9zdGFyZSBpbCB2YWxvcmUgc2VsZXppb25hdG8gYSBudWxsXHJcbiAgICAgICAgaWYoIXRoaXMuTXVsdGkpXHJcbiAgICAgICAgICAgIHN1cGVyLmNoYW5nZWQobnVsbCk7XHJcblxyXG4gICAgICAgIGlmICghZXZlbnQgJiYgdGhpcy5NaW5DaGFycyA9PSAwICYmICF0aGlzLlNlYXJjaEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRmlsdGVyZWRCb3VuZFNvdXJjZSA9IHRoaXMuQm91bmRTb3VyY2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKCFldmVudCB8fCBldmVudC5sZW5ndGggPCB0aGlzLk1pbkNoYXJzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRmlsdGVyZWRCb3VuZFNvdXJjZSA9IFtdO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuU2VhcmNoRnVuY3Rpb24gJiYgKCF0aGlzLlNvdXJjZSB8fCB0aGlzLlNvdXJjZS5sZW5ndGggPT0gMCkpXHJcbiAgICAgICAgICAgIHRocm93IFwiSW1wb3NzaWJpbGUgZmlsdHJhcmUgZ2xpIGVsZW1lbnRpIHNlbnphIHVuYSBmdW56aW9uZSBkaSByaWNlcmNhIGNoZSByZXN0aXR1aXNjYSB1bmEgbGlzdGEgZGkgeyBpZDogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nIH1cIjtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuU2VhcmNoRnVuY3Rpb24pIHtcclxuICAgICAgICAgICAgdGhpcy50aHJvdHRsYShcImZpbHRlcnNvdXJjZVwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlNlYXJjaEZ1bmN0aW9uKGV2ZW50LCBmYWxzZSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuU291cmNlID0gdDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyeUJpbmRTb3VyY2VEaXNwbGF5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSW4gcXVlc3RvIGNhc28gw6ggZ2nDoCBmaWx0cmF0YSBkYWxsYSBTZWFyY2hGdW5jdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuRmlsdGVyZWRCb3VuZFNvdXJjZSA9IHRoaXMuQm91bmRTb3VyY2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWx0ZXJlZFNvdXJjZU9uRGVzY3JpcHRpb25TZWxlY3Rpb24oKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCA0MDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50aHJvdHRsYShcImZpbHRlcnNvdXJjZVwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBJbiBxdWVzdG8gY2FzbyBkZXZvIGZpbHRyYXJlIGlvIGluIG1lbW9yaWFcclxuICAgICAgICAgICAgICAgIHRoaXMuRmlsdGVyZWRCb3VuZFNvdXJjZSA9IHRoaXMuQm91bmRTb3VyY2UuZmlsdGVyKHQgPT4gKHRoaXMuQ2FzZVNlbnNpdGl2ZSAmJiB0LmRlc2NyaXB0aW9uLmluY2x1ZGVzKGV2ZW50KSkgfHwgKCF0aGlzLkNhc2VTZW5zaXRpdmUgJiYgdC5kZXNjcmlwdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGV2ZW50LnRvTG93ZXJDYXNlKCkpKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUZpbHRlcmVkU291cmNlT25EZXNjcmlwdGlvblNlbGVjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBwcml2YXRlIHJlbW92ZUZpbHRlcmVkU291cmNlT25EZXNjcmlwdGlvblNlbGVjdGlvbigpIHtcclxuICAgICAgICBpZiAodGhpcy5GaWx0ZXJlZEJvdW5kU291cmNlLmxlbmd0aCA9PSAxICYmICh0aGlzLkZpbHRlcmVkQm91bmRTb3VyY2VbMF0uZGVzY3JpcHRpb24gPT09IHRoaXMuTW9kZWwpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuTW9kZWwgPSB0aGlzLkJvdW5kU291cmNlWzBdLmlkO1xyXG4gICAgICAgICAgICB0aGlzLkV2YWx1YXRlZE1vZGVsID0gdGhpcy5Cb3VuZFNvdXJjZVswXS5kZXNjcmlwdGlvbjtcclxuICAgICAgICAgICAgdGhpcy5GaWx0ZXJlZEJvdW5kU291cmNlID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGxldCBuZXdTb3VyY2UgPSBjaGFuZ2VzW1wiU291cmNlXCJdO1xyXG4gICAgICAgIGlmIChuZXdTb3VyY2UpIHtcclxuICAgICAgICAgICAgdGhpcy50cnlCaW5kU291cmNlRGlzcGxheSgpO1xyXG5cclxuICAgICAgICAgICAgLy8gUHJpbWEgYXNzZWduYXppb25lIHNlIGNhbWJpYSBsYSBzb3VyY2Ugc290dG8gKHF1aW5kaSBzZSB2aWVuZSBiaW5kYXRhIGRpcmV0dGFtZW50ZSBkYSBIVE1MKVxyXG4gICAgICAgICAgICBpZiAoKHRoaXMuTW9kZWw/Lmxlbmd0aCB8fCAwKSA+PSB0aGlzLk1pbkNoYXJzICYmICF0aGlzLlNlYXJjaEZ1bmN0aW9uKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5GaWx0ZXJlZEJvdW5kU291cmNlID0gdGhpcy5Cb3VuZFNvdXJjZTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5GaWx0ZXJlZEJvdW5kU291cmNlID0gW107XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgT3ZlcnJpZGUgY2hlIG1hcmNhIGFuY2hlIGlsIHByb3NzaW1vIGV2ZW50byBkaSBmaWx0ZXJTb3VyY2UgZGEgaWdub3JhcmUgKi9cclxuICAgIGNoYW5nZWQoZm9yY2VkVmFsdWU6IGFueSA9IG51bGwsIG1hcmtGb3JDaGVjazogYm9vbGVhbiA9IGZhbHNlKXtcclxuICAgICAgICBpZighdGhpcy5NdWx0aSlcclxuICAgICAgICAgICAgdGhpcy5pZ25vcmVOZXh0V3JpdGVWYWx1ZSA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChmb3JjZWRWYWx1ZSA9PSBcIlwiICYmIHRoaXMuTXVsdGkpXHJcbiAgICAgICAgICAgIHRoaXMuTW9kZWwgPSBcIlwiO1xyXG5cclxuICAgICAgICBzdXBlci5jaGFuZ2VkKGZvcmNlZFZhbHVlLCBtYXJrRm9yQ2hlY2spO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBvbk5vdE51bGxWYWx1ZVNldCgpOiB2b2lkIHsgfVxyXG5cclxuICAgIC8vKioqKioqKioqKioqKioqKioqKiogRnVuemlvbmUgZGkgdGhyb3R0bGluZyBwZXIgbm9uIHNwYW1tYXJlIHJpY2hpZXN0ZSBpbiBjYXNvIGRpIGFuaW1hemlvbmkgYXR0aXZhdGVcclxuICAgIC8vVE9ETzogc3Bvc3RhcmxhIGluIHVuIG1ldG9kbyBkaSB1dGlsaXTDoCAoZXNmYWVuemEvZXh0ZW5zaW9ucylcclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBwcml2YXRlIGV4ZWN1dGlvblRpbWVyczogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgcHJpdmF0ZSB0aHJvdHRsYShpZDogc3RyaW5nLCBmdW5jOiBGdW5jdGlvbiwgdGhyb3R0bGVUaW1lOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICAvL1NlIGhvIGxhIGZ1bnppb25lIGNoZSB2dW9sZSBlc2VndWlyZSByaXB1bGlzY28gcXVlbCB0aW1lb3V0XHJcbiAgICAgICAgaWYgKHRoaXMuZXhlY3V0aW9uVGltZXJzW2lkXSlcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZXhlY3V0aW9uVGltZXJzW2lkXSk7XHJcblxyXG4gICAgICAgIC8vUmljcmVvIGlsIHRpbWVvdXQgcGVyIGVzZWd1aXJlIHF1ZWxsYSBmdW56aW9uZSBkb3BvIHRocm90dGxlVGltZSBtaWxsaXNlY29uZGlcclxuICAgICAgICB0aGlzLmV4ZWN1dGlvblRpbWVyc1tpZF0gPSBzZXRUaW1lb3V0KCgpID0+IHsgZnVuYygpOyB0aGlzLmV4ZWN1dGlvblRpbWVyc1tpZF0gPSBudWxsOyB9LCB0aHJvdHRsZVRpbWUpO1xyXG4gICAgfVxyXG4gICAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqXHJcbn0iXX0=
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvZm9ybXMvZm9ybS1hdXRvY29tcGxldGUvZm9ybS1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxFQUF3QixhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEYsZUFBZTtBQUNmLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJN0QsZ0JBQWdCO0FBQ2hCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWpGLHlFQUF5RTtBQU96RSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsZUFBZTtJQWdDMUQsMkJBQTJCO0lBQzNCLFlBQVksR0FBc0IsRUFBUyxFQUF1QixFQUFzQixTQUFvQixFQUFxQyxXQUF1QixFQUFjLEVBQXdCLEVBQWMsVUFBNEIsRUFBcUMsYUFBcUIsRUFBc0MsY0FBd0I7UUFDNVcsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNB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UUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhOzBDQUEwQixRQUFRLFlBQUksTUFBTSxTQUFDLGNBQWM7OzswQkE5QnJWLEtBQUs7NkJBR0wsS0FBSzt1QkFHTCxLQUFLO2tDQUdMLEtBQUs7NEJBR0wsS0FBSztvQkFHTCxLQUFLO3FDQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsLCBDaGFuZ2VEZXRlY3RvclJlZiwgU2VsZiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBCYXNlRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vYmFzZS1mb3JtLWNvbnRyb2xcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBDb21wb25lbnRDb250ZXh0IH0gZnJvbSAnQGVzZmFlbnphL2FjY2Vzcy1jb250cm9sJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBBQ09fQ1VTVE9NS0VZLCBGQVZfREVCVUdfTU9ERSB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbi8vTG9jYWxpenphemlvbmVcclxuaW1wb3J0IHsgRm9ybUF1dG9jb21wbGV0ZUNvbXBvbmVudExvYyB9IGZyb20gXCIuL2Zvcm0tYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5sb2NcIjtcclxuXHJcbi8qKiBDb21wb25lbnRlIGRpIGlucHV0IGNoZSBzaSBhdXRvLWNvbXBsZXRhIGluIGJhc2UgYWwgdmFsb3JlIGF0dHVhbGUgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJmb3JtLWF1dG9jb21wbGV0ZVwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiZm9ybS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEZvcm1BdXRvY29tcGxldGVDb21wb25lbnRMb2MgfV0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUF1dG9jb21wbGV0ZUNvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ29udHJvbCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICAvKiogUGVybWV0dGUgZGkgc3BlY2lmaWNhcmUgaWwgdGVzdG8gZGVsbGEgTGFiZWwgZmxvdHRhbnRlIG1hdGVyaWFsLXN0eWxlICovXHJcbiAgICBASW5wdXQoKSBTZWxlY3RMYWJlbDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKiogRnVuemlvbmUgZGkgcmljZXJjYSBjaGUgdmVycsOgIGNoaWFtYXRhIGRhbCBjb21wb25lbnRlICovXHJcbiAgICBASW5wdXQoKSBTZWFyY2hGdW5jdGlvbjogKHNlYXJjaDogc3RyaW5nLCBieWlkOiBib29sZWFuKSA9PiBPYnNlcnZhYmxlPHsgaWQ6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZyB9W10+ID0gbnVsbDtcclxuXHJcbiAgICAvKiogTnVtZXJvIG1pbmltbyBkaSBjYXJhdHRlcmkgY29uIGN1aSBjZXJjYXJlICovXHJcbiAgICBASW5wdXQoKSBNaW5DaGFyczogbnVtYmVyID0gMztcclxuXHJcbiAgICAvKiogT3ZlcnJpZGUgZGVsIHBsYWNlaG9sZGVyIHBlciBzZWxlY3QgcmVxdXJpZWQgKi9cclxuICAgIEBJbnB1dCgpIFJlcXVpcmVkUGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSBpIGNvbnRyb2xsaSBkZXZvbm8gZXNzZXJlIGVmZmV0dHVhdGkgdGVuZW5kbyBjb250byBkZWwgQ2FzZSBvIG1lbm8uIFZhbGUgc29sbyBxdWFsb3JhIGxhICoqU291cmNlKiogZm9zc2UgZm9ybml0YSAqL1xyXG4gICAgQElucHV0KCkgQ2FzZVNlbnNpdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgdXNhcmUgbGEgbW9kYWxpdMOgIG11bHRpc2VsZXppb25lIG8gbm8gKi9cclxuICAgIEBJbnB1dCgpIE11bHRpOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSB1c2FyZSBsYSBtb2RhbGl0w6AgbXVsdGlzZWxlemlvbmUgbyBubyAqL1xyXG4gICAgQElucHV0KCkgTXVsdGlFbGVtZW50c1RocmVzaG9sZDogbnVtYmVyID0gMTA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgaWdub3JhcmUgaWwgcHJvc3NpbW8gZXZlbnRvIHdyaXRlVmFsdWUgY2hlIG5vcm1hbG1lbnRlIGRvdnJlYmJlIHJpY2hpZWRlcmUgbGEgbnVvdmEgc291cmNlLiBTZXJ2ZSBwZXIgcXVhbmRvIGwndXRlbnRlIHNlbGV6aW9uYSB1biBlbGVtZW50bzpcclxuICAgICAqIFN1Yml0byBkb3BvIHBhcnRpcmViYmUgdW4gYWx0cm8gZXZlbnRvIG1vZGVsQ2hhbmdlIGNoZSByaWNhcmljaGVyZWJiZSBudW92YW1lbnRlIGxhIHNvdXJjZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGlnbm9yZU5leHRXcml0ZVZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIFNvcmdlbnRlIEJpbmRhdGEgRmlsdHJhdGEgaW4gYmFzZSBhbCBjb250ZW51dG8gZGVsbGEgY2FzZWxsYSBkaSB0ZXN0byAqL1xyXG4gICAgcHVibGljIEZpbHRlcmVkQm91bmRTb3VyY2U6IHsgaWQ6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZyB9W10gPSBbXTtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSwgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgQE9wdGlvbmFsKCkgQEluamVjdChOR19WQUxJREFUT1JTKSBfdmFsaWRhdG9yczogQXJyYXk8YW55PiwgQE9wdGlvbmFsKCkgYWM6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBAT3B0aW9uYWwoKSBBcHBDb250ZXh0OiBDb21wb25lbnRDb250ZXh0LCBAT3B0aW9uYWwoKSBASW5qZWN0KEFDT19DVVNUT01LRVkpIEFDT19DVVNUT01LRVk6IHN0cmluZywgQE9wdGlvbmFsKCkgQEluamVjdChGQVZfREVCVUdfTU9ERSkgRkFWX0RFQlVHX01PREUgOiBib29sZWFuKSB7XHJcbiAgICAgICAgc3VwZXIoY2RyLCBuZ0NvbnRyb2wsIF92YWxpZGF0b3JzLCBhYywgQXBwQ29udGV4dCwgQUNPX0NVU1RPTUtFWSwgRkFWX0RFQlVHX01PREUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICh0aGlzLlNlYXJjaEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuU2VhcmNoRnVuY3Rpb24odmFsdWUsIHRydWUpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuU291cmNlID0gdDtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJ5QmluZFNvdXJjZURpc3BsYXkoKTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLmZpbmFsaXplVmFsdWUodmFsdWUpOyB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLk11bHRpKVxyXG4gICAgICAgICAgICB0aGlzLmZpbmFsaXplVmFsdWUodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGF0byB1biB2YWxvcmUgdmVyaWZpY2Egc2UgcHXDsiByZXN0aXR1aXJlIGxlIGluZm9ybWF6aW9uaSB0cm92YXRlIGluICoqU291cmNlKiogY29uIGlkIHVndWFsZSBhICoqdmFsdWUqKiBvIHNlIGRldmUgcmVzdGl0dWlyZSBpbCB2YWxvcmUgaW4gc2VcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IHZhbHVlIFZhbG9yZSBzY3JpdHRvIG5lbGwnaW5wdXQgZGkgdGVzdG9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBmaW5hbGl6ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB2YXIgdmFsID0gdGhpcy5Tb3VyY2UuZmluZCh0ID0+IHQuaWQgPT0gdmFsdWUpO1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHZhbCA/IHZhbC5pZCA6IHZhbHVlKTtcclxuICAgICAgICB0aGlzLk1vZGVsID0gdmFsID8gdmFsLmRlc2NyaXB0aW9uIDogdmFsdWU7XHJcbiAgICAgICAgdGhpcy5FdmFsdWF0ZWRNb2RlbCA9IHRoaXMuTW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBRdWFuZG8gdmllbmUgc2NyaXR0byB1biBudW92byB2YWxvcmUgYmlzb2duYSBjb250cm9sbGFyZSBzZSBwZXIgYm90dGEgZGkgY3VsbyBmb3NzZSB1biBpZCwgaW4gdGFsIGNhc28gZGV2J2Vzc2VyZSByaWVmZmV0dHVhdG8gaWwgYmluZFxyXG4gICAgICogcGVyIG1vc3RyYXJlIHNvbG8gbGEgZGVzY3JpemlvbmUgbmVsbCdhdXRvY29tcGxldGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGV2YWx1YXRlSWRSZXNlYXJjaCgpIHtcclxuICAgICAgICBpZighdGhpcy5Nb2RlbClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLlNlYXJjaEZ1bmN0aW9uKHRoaXMuTW9kZWwsIHRydWUpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICAgICAgaWYgKHQgJiYgdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlNvdXJjZSA9IHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyeUJpbmRTb3VyY2VEaXNwbGF5KCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuTXVsdGkpXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHRoaXMuZmluYWxpemVWYWx1ZSh0aGlzLk1vZGVsKTsgfSk7XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50byBkaSBmaWx0cm8gZGVsbGEgc29yZ2VudGUgZGF0aSBpbiBiYXNlIGFsbCdpbnB1dCB1dGVudGVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50IElucHV0IHV0ZW50ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmlsdGVyU291cmNlKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodGhpcy5pZ25vcmVOZXh0V3JpdGVWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmlnbm9yZU5leHRXcml0ZVZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFF1YW5kbyBmaWx0cm8gbGEgc291cmNlLCBzZSBub24gZGV2byBpZ25vcmFyZSBsJ2V2ZW50byBkZXZvIGNvbXVucXVlIGFzc2ljdXJhcm1pIGRpIGltcG9zdGFyZSBpbCB2YWxvcmUgc2VsZXppb25hdG8gYSBudWxsXHJcbiAgICAgICAgaWYoIXRoaXMuTXVsdGkpXHJcbiAgICAgICAgICAgIHN1cGVyLmNoYW5nZWQobnVsbCk7XHJcblxyXG4gICAgICAgIGlmICghZXZlbnQgJiYgdGhpcy5NaW5DaGFycyA9PSAwICYmICF0aGlzLlNlYXJjaEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRmlsdGVyZWRCb3VuZFNvdXJjZSA9IHRoaXMuQm91bmRTb3VyY2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKCFldmVudCB8fCBldmVudC5sZW5ndGggPCB0aGlzLk1pbkNoYXJzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRmlsdGVyZWRCb3VuZFNvdXJjZSA9IFtdO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuU2VhcmNoRnVuY3Rpb24gJiYgKCF0aGlzLlNvdXJjZSB8fCB0aGlzLlNvdXJjZS5sZW5ndGggPT0gMCkpXHJcbiAgICAgICAgICAgIHRocm93IFwiSW1wb3NzaWJpbGUgZmlsdHJhcmUgZ2xpIGVsZW1lbnRpIHNlbnphIHVuYSBmdW56aW9uZSBkaSByaWNlcmNhIGNoZSByZXN0aXR1aXNjYSB1bmEgbGlzdGEgZGkgeyBpZDogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nIH1cIjtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuU2VhcmNoRnVuY3Rpb24pIHtcclxuICAgICAgICAgICAgdGhpcy50aHJvdHRsYShcImZpbHRlcnNvdXJjZVwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlNlYXJjaEZ1bmN0aW9uKGV2ZW50LCBmYWxzZSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuU291cmNlID0gdDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyeUJpbmRTb3VyY2VEaXNwbGF5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gSW4gcXVlc3RvIGNhc28gw6ggZ2nDoCBmaWx0cmF0YSBkYWxsYSBTZWFyY2hGdW5jdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuRmlsdGVyZWRCb3VuZFNvdXJjZSA9IHRoaXMuQm91bmRTb3VyY2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWx0ZXJlZFNvdXJjZU9uRGVzY3JpcHRpb25TZWxlY3Rpb24oKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCA0MDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50aHJvdHRsYShcImZpbHRlcnNvdXJjZVwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBJbiBxdWVzdG8gY2FzbyBkZXZvIGZpbHRyYXJlIGlvIGluIG1lbW9yaWFcclxuICAgICAgICAgICAgICAgIHRoaXMuRmlsdGVyZWRCb3VuZFNvdXJjZSA9IHRoaXMuQm91bmRTb3VyY2UuZmlsdGVyKHQgPT4gKHRoaXMuQ2FzZVNlbnNpdGl2ZSAmJiB0LmRlc2NyaXB0aW9uLmluY2x1ZGVzKGV2ZW50KSkgfHwgKCF0aGlzLkNhc2VTZW5zaXRpdmUgJiYgdC5kZXNjcmlwdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGV2ZW50LnRvTG93ZXJDYXNlKCkpKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUZpbHRlcmVkU291cmNlT25EZXNjcmlwdGlvblNlbGVjdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBwcml2YXRlIHJlbW92ZUZpbHRlcmVkU291cmNlT25EZXNjcmlwdGlvblNlbGVjdGlvbigpIHtcclxuICAgICAgICBpZiAodGhpcy5GaWx0ZXJlZEJvdW5kU291cmNlLmxlbmd0aCA9PSAxICYmICh0aGlzLkZpbHRlcmVkQm91bmRTb3VyY2VbMF0uZGVzY3JpcHRpb24gPT09IHRoaXMuTW9kZWwpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuTW9kZWwgPSB0aGlzLkJvdW5kU291cmNlWzBdLmlkO1xyXG4gICAgICAgICAgICB0aGlzLkV2YWx1YXRlZE1vZGVsID0gdGhpcy5Cb3VuZFNvdXJjZVswXS5kZXNjcmlwdGlvbjtcclxuICAgICAgICAgICAgdGhpcy5GaWx0ZXJlZEJvdW5kU291cmNlID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGxldCBuZXdTb3VyY2UgPSBjaGFuZ2VzW1wiU291cmNlXCJdO1xyXG4gICAgICAgIGlmIChuZXdTb3VyY2UpIHtcclxuICAgICAgICAgICAgdGhpcy50cnlCaW5kU291cmNlRGlzcGxheSgpO1xyXG5cclxuICAgICAgICAgICAgLy8gUHJpbWEgYXNzZWduYXppb25lIHNlIGNhbWJpYSBsYSBzb3VyY2Ugc290dG8gKHF1aW5kaSBzZSB2aWVuZSBiaW5kYXRhIGRpcmV0dGFtZW50ZSBkYSBIVE1MKVxyXG4gICAgICAgICAgICBpZiAoKHRoaXMuTW9kZWw/Lmxlbmd0aCB8fCAwKSA+PSB0aGlzLk1pbkNoYXJzICYmICF0aGlzLlNlYXJjaEZ1bmN0aW9uKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5GaWx0ZXJlZEJvdW5kU291cmNlID0gdGhpcy5Cb3VuZFNvdXJjZTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5GaWx0ZXJlZEJvdW5kU291cmNlID0gW107XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgT3ZlcnJpZGUgY2hlIG1hcmNhIGFuY2hlIGlsIHByb3NzaW1vIGV2ZW50byBkaSBmaWx0ZXJTb3VyY2UgZGEgaWdub3JhcmUgKi9cclxuICAgIGNoYW5nZWQoZm9yY2VkVmFsdWU6IGFueSA9IG51bGwsIG1hcmtGb3JDaGVjazogYm9vbGVhbiA9IGZhbHNlKXtcclxuICAgICAgICBpZighdGhpcy5NdWx0aSlcclxuICAgICAgICAgICAgdGhpcy5pZ25vcmVOZXh0V3JpdGVWYWx1ZSA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChmb3JjZWRWYWx1ZSA9PSBcIlwiICYmIHRoaXMuTXVsdGkpXHJcbiAgICAgICAgICAgIHRoaXMuTW9kZWwgPSBcIlwiO1xyXG5cclxuICAgICAgICB2YXIgc2VsZWN0ZWRzOiBzdHJpbmdbXSA9IHRoaXMuTW9kZWwgPyB0aGlzLk1vZGVsLnNwbGl0KCcsJykgOiBbXTtcclxuICAgICAgICB0aGlzLkV2YWx1YXRlZE1vZGVsID0gc2VsZWN0ZWRzLm1hcCh0ID0+IHRoaXMuQm91bmRTb3VyY2UgJiYgdGhpcy5Cb3VuZFNvdXJjZS5sZW5ndGggPiAwID8gdGhpcy5Cb3VuZFNvdXJjZS5maW5kKHQgPT4gdC5pZCA9PSB0aGlzLk1vZGVsKT8uZGVzY3JpcHRpb24gOiBcIlwiKS5qb2luKCcsICcpO1xyXG5cclxuICAgICAgICBzdXBlci5jaGFuZ2VkKGZvcmNlZFZhbHVlLCBtYXJrRm9yQ2hlY2spO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBvbk5vdE51bGxWYWx1ZVNldCgpOiB2b2lkIHsgfVxyXG5cclxuICAgIC8vKioqKioqKioqKioqKioqKioqKiogRnVuemlvbmUgZGkgdGhyb3R0bGluZyBwZXIgbm9uIHNwYW1tYXJlIHJpY2hpZXN0ZSBpbiBjYXNvIGRpIGFuaW1hemlvbmkgYXR0aXZhdGVcclxuICAgIC8vVE9ETzogc3Bvc3RhcmxhIGluIHVuIG1ldG9kbyBkaSB1dGlsaXTDoCAoZXNmYWVuemEvZXh0ZW5zaW9ucylcclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBwcml2YXRlIGV4ZWN1dGlvblRpbWVyczogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgcHJpdmF0ZSB0aHJvdHRsYShpZDogc3RyaW5nLCBmdW5jOiBGdW5jdGlvbiwgdGhyb3R0bGVUaW1lOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICAvL1NlIGhvIGxhIGZ1bnppb25lIGNoZSB2dW9sZSBlc2VndWlyZSByaXB1bGlzY28gcXVlbCB0aW1lb3V0XHJcbiAgICAgICAgaWYgKHRoaXMuZXhlY3V0aW9uVGltZXJzW2lkXSlcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZXhlY3V0aW9uVGltZXJzW2lkXSk7XHJcblxyXG4gICAgICAgIC8vUmljcmVvIGlsIHRpbWVvdXQgcGVyIGVzZWd1aXJlIHF1ZWxsYSBmdW56aW9uZSBkb3BvIHRocm90dGxlVGltZSBtaWxsaXNlY29uZGlcclxuICAgICAgICB0aGlzLmV4ZWN1dGlvblRpbWVyc1tpZF0gPSBzZXRUaW1lb3V0KCgpID0+IHsgZnVuYygpOyB0aGlzLmV4ZWN1dGlvblRpbWVyc1tpZF0gPSBudWxsOyB9LCB0aHJvdHRsZVRpbWUpO1xyXG4gICAgfVxyXG4gICAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqXHJcbn0iXX0=
@@ -20,13 +20,17 @@ export class FormCheckboxComponent extends BaseFormControl {
20
20
  this.EvaluatedModel = this.lc.loc(obj ? 'Yes' : 'No');
21
21
  super.writeValue(obj);
22
22
  }
23
+ changed() {
24
+ this.EvaluatedModel = this.lc.loc(this.Model ? 'Yes' : 'No');
25
+ super.changed(null, false, true);
26
+ }
23
27
  /** @ignore */
24
28
  onNotNullValueSet() { }
25
29
  }
26
30
  FormCheckboxComponent.decorators = [
27
31
  { type: Component, args: [{
28
32
  selector: "form-checkbox",
29
- template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-top-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : LabelColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <input class=\"app-pointer\" [disabled]=\"Readonly ? true : null\" type=\"checkbox\" [(ngModel)]=\"Model\" id=\"{{GeneratedName}}\" name=\"{{GeneratedName}}\" #validationControl=\"ngModel\" (ngModelChange)=\"changed(); finalized()\" (click)=\"focused($event)\" />\r\n</ng-template>",
33
+ template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-bottom-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : InputColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <input class=\"app-pointer\" [disabled]=\"Readonly ? true : null\" type=\"checkbox\" [(ngModel)]=\"Model\" id=\"{{GeneratedName}}\" name=\"{{GeneratedName}}\" #validationControl=\"ngModel\" (ngModelChange)=\"changed(); finalized()\" (click)=\"focused($event)\" />\r\n</ng-template>",
30
34
  changeDetection: ChangeDetectionStrategy.OnPush
31
35
  },] }
32
36
  ];
@@ -39,4 +43,4 @@ FormCheckboxComponent.ctorParameters = () => [
39
43
  { type: ComponentContext, decorators: [{ type: Optional }] },
40
44
  { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ACO_CUSTOMKEY,] }] }
41
45
  ];
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi9mb3Jtcy9mb3JtLWNoZWNrYm94L2Zvcm0tY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQXdCLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRixlQUFlO0FBQ2YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELDZDQUE2QztBQU03QyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBZTtJQUV0RCwyQkFBMkI7SUFDM0IsWUFBb0IsRUFBdUIsRUFBRSxHQUFzQixFQUFzQixTQUFvQixFQUE2QyxXQUF1QixFQUFFLEVBQXdCLEVBQWMsVUFBNEIsRUFBcUMsYUFBc0I7UUFDNVMsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRHZELE9BQUUsR0FBRixFQUFFLENBQXFCO0lBRTNDLENBQUM7SUFFRCxjQUFjO0lBQ2QsVUFBVSxDQUFDLEdBQVE7UUFDZixHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDbEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYztJQUNkLGlCQUFpQixLQUFXLENBQUM7OztZQXJCaEMsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxlQUFlO2dCQUN6Qix3MEVBQTJDO2dCQUMzQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNsRDs7O1lBUFEsbUJBQW1CO1lBRG5CLGlCQUFpQjtZQVJvQixTQUFTLHVCQW9CbUIsUUFBUSxZQUFJLElBQUk7WUFBaUYsS0FBSyx1QkFBNUQsUUFBUSxZQUFJLElBQUksWUFBSSxNQUFNLFNBQUMsYUFBYTtZQWpCbkosb0JBQW9CO1lBQUUsZ0JBQWdCLHVCQWlCbUssUUFBUTt5Q0FBa0MsUUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPcHRpb25hbCwgU2VsZiwgSG9zdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbFNlcnZpY2UsIENvbXBvbmVudENvbnRleHQgfSBmcm9tICdAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2wnO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEJhc2VGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9iYXNlLWZvcm0tY29udHJvbFwiO1xyXG5pbXBvcnQgeyBBQ09fQ1VTVE9NS0VZIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcblxyXG4vKiogQ29tcG9uZW50ZSByYXBwcmVzZW50YW50ZSB1bmEgY2hlY2tib3ggKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJmb3JtLWNoZWNrYm94XCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCJmb3JtLWNoZWNrYm94LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1Db250cm9sIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICAgIC8qKiBAaWdub3JlIENvc3RydXR0b3JlICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBsYzogTG9jYWxpemF0aW9uU2VydmljZSwgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgQE9wdGlvbmFsKCkgQEhvc3QoKSBASW5qZWN0KE5HX1ZBTElEQVRPUlMpIF92YWxpZGF0b3JzOiBBcnJheTxhbnk+LCBhYzogQWNjZXNzQ29udHJvbFNlcnZpY2UsIEBPcHRpb25hbCgpIEFwcENvbnRleHQ6IENvbXBvbmVudENvbnRleHQsIEBPcHRpb25hbCgpIEBJbmplY3QoQUNPX0NVU1RPTUtFWSkgQUNPX0NVU1RPTUtFWSA6IHN0cmluZykge1xyXG4gICAgICAgIHN1cGVyKGNkciwgbmdDb250cm9sLCBfdmFsaWRhdG9ycywgYWMsIEFwcENvbnRleHQsQUNPX0NVU1RPTUtFWSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBvYmogPSBvYmogPyAob2JqID09PSB0cnVlIHx8IG9iai50b0xvd2VyQ2FzZSgpID09IFwidHJ1ZVwiKSA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuRXZhbHVhdGVkTW9kZWwgPSB0aGlzLmxjLmxvYyhvYmogPyAnWWVzJyA6ICdObycpO1xyXG5cclxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG9uTm90TnVsbFZhbHVlU2V0KCk6IHZvaWQgeyB9XHJcbn0iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi9mb3Jtcy9mb3JtLWNoZWNrYm94L2Zvcm0tY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQXdCLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRixlQUFlO0FBQ2YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELDZDQUE2QztBQU03QyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBZTtJQUV0RCwyQkFBMkI7SUFDM0IsWUFBb0IsRUFBdUIsRUFBRSxHQUFzQixFQUFzQixTQUFvQixFQUE2QyxXQUF1QixFQUFFLEVBQXdCLEVBQWMsVUFBNEIsRUFBcUMsYUFBc0I7UUFDNVMsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRHZELE9BQUUsR0FBRixFQUFFLENBQXFCO0lBRTNDLENBQUM7SUFFRCxjQUFjO0lBQ2QsVUFBVSxDQUFDLEdBQVE7UUFDZixHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDbEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWM7SUFDZCxpQkFBaUIsS0FBVyxDQUFDOzs7WUExQmhDLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsMjBFQUEyQztnQkFDM0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDbEQ7OztZQVBRLG1CQUFtQjtZQURuQixpQkFBaUI7WUFSb0IsU0FBUyx1QkFvQm1CLFFBQVEsWUFBSSxJQUFJO1lBQWlGLEtBQUssdUJBQTVELFFBQVEsWUFBSSxJQUFJLFlBQUksTUFBTSxTQUFDLGFBQWE7WUFqQm5KLG9CQUFvQjtZQUFFLGdCQUFnQix1QkFpQm1LLFFBQVE7eUNBQWtDLFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT3B0aW9uYWwsIFNlbGYsIEhvc3QsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBDb21wb25lbnRDb250ZXh0IH0gZnJvbSAnQGVzZmFlbnphL2FjY2Vzcy1jb250cm9sJztcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBCYXNlRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vYmFzZS1mb3JtLWNvbnRyb2xcIjtcclxuaW1wb3J0IHsgQUNPX0NVU1RPTUtFWSB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5cclxuLyoqIENvbXBvbmVudGUgcmFwcHJlc2VudGFudGUgdW5hIGNoZWNrYm94ICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZm9ybS1jaGVja2JveFwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiZm9ybS1jaGVja2JveC5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1DaGVja2JveENvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ29udHJvbCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsIEBPcHRpb25hbCgpIEBIb3N0KCkgQEluamVjdChOR19WQUxJREFUT1JTKSBfdmFsaWRhdG9yczogQXJyYXk8YW55PiwgYWM6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBAT3B0aW9uYWwoKSBBcHBDb250ZXh0OiBDb21wb25lbnRDb250ZXh0LCBAT3B0aW9uYWwoKSBASW5qZWN0KEFDT19DVVNUT01LRVkpIEFDT19DVVNUT01LRVkgOiBzdHJpbmcpIHtcclxuICAgICAgICBzdXBlcihjZHIsIG5nQ29udHJvbCwgX3ZhbGlkYXRvcnMsIGFjLCBBcHBDb250ZXh0LEFDT19DVVNUT01LRVksIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICAgICAgb2JqID0gb2JqID8gKG9iaiA9PT0gdHJ1ZSB8fCBvYmoudG9Mb3dlckNhc2UoKSA9PSBcInRydWVcIikgOiBmYWxzZTtcclxuICAgICAgICB0aGlzLkV2YWx1YXRlZE1vZGVsID0gdGhpcy5sYy5sb2Mob2JqID8gJ1llcycgOiAnTm8nKTtcclxuXHJcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZShvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5FdmFsdWF0ZWRNb2RlbCA9IHRoaXMubGMubG9jKHRoaXMuTW9kZWwgPyAnWWVzJyA6ICdObycpO1xyXG4gICAgICAgIHN1cGVyLmNoYW5nZWQobnVsbCwgZmFsc2UsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBvbk5vdE51bGxWYWx1ZVNldCgpOiB2b2lkIHsgfVxyXG59Il19
@@ -22,13 +22,17 @@ export class FormDateComponent extends BaseFormControl {
22
22
  this.EvaluatedModel = this.datesExts.getFormatted(obj, true, false);
23
23
  super.writeValue(obj);
24
24
  }
25
+ changed() {
26
+ this.EvaluatedModel = this.Model ? this.datesExts.getFormatted(this.Model, true, false) : '';
27
+ super.changed(null, false, true);
28
+ }
25
29
  /** @ignore */
26
30
  onNotNullValueSet() { }
27
31
  }
28
32
  FormDateComponent.decorators = [
29
33
  { type: Component, args: [{
30
34
  selector: "form-date",
31
- template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-top-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : LabelColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <val-date [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [id]=\"GeneratedName\"\r\n [readonly]=\"Readonly\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey' : ''\"\r\n [useJsDates]=\"JsDates\"\r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\">\r\n </val-date>\r\n</ng-template>",
35
+ template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-bottom-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : InputColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <val-date [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [id]=\"GeneratedName\"\r\n [readonly]=\"Readonly\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey' : ''\"\r\n [useJsDates]=\"JsDates\"\r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\">\r\n </val-date>\r\n</ng-template>",
32
36
  changeDetection: ChangeDetectionStrategy.OnPush
33
37
  },] }
34
38
  ];
@@ -45,4 +49,4 @@ FormDateComponent.ctorParameters = () => [
45
49
  FormDateComponent.propDecorators = {
46
50
  JsDates: [{ type: Input }]
47
51
  };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm1zLWFuZC12YWxpZGF0aW9ucy9zcmMvbGliL2Zvcm1zL2Zvcm0tZGF0ZS9mb3JtLWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQXdCLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRyxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdELGVBQWU7QUFDZixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELDBFQUEwRTtBQU0xRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQUtsRCwyQkFBMkI7SUFDM0IsWUFBb0IsU0FBc0IsRUFBRSxHQUFzQixFQUFzQixTQUFvQixFQUFxQyxXQUF1QixFQUFjLEVBQXdCLEVBQWMsVUFBNEIsRUFBcUMsYUFBc0IsRUFBc0MsY0FBd0I7UUFDN1csS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRGxFLGNBQVMsR0FBVCxTQUFTLENBQWE7UUFKMUMsd0hBQXdIO1FBQy9HLFlBQU8sR0FBWSxLQUFLLENBQUM7SUFLbEMsQ0FBQztJQUVELGNBQWM7SUFDZCxVQUFVLENBQUMsR0FBUTtRQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO0lBQ2QsaUJBQWlCLEtBQVcsQ0FBQzs7O1lBdEJoQyxTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLGsyRkFBdUM7Z0JBQ3ZDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2xEOzs7WUFaUSxXQUFXO1lBS1gsaUJBQWlCO1lBVm9CLFNBQVMsdUJBd0JrQixRQUFRLFlBQUksSUFBSTtZQUF5RSxLQUFLLHVCQUFwRCxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWE7WUFwQjFJLG9CQUFvQix1QkFvQmtKLFFBQVE7WUFwQnhKLGdCQUFnQix1QkFvQnNLLFFBQVE7eUNBQWtDLFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYTswQ0FBMkIsUUFBUSxZQUFJLE1BQU0sU0FBQyxjQUFjOzs7c0JBSHRWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFNlbGYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbFNlcnZpY2UsIENvbXBvbmVudENvbnRleHQgfSBmcm9tICdAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBEYXRlU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBBQ09fQ1VTVE9NS0VZLCBGQVZfREVCVUdfTU9ERSB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgQmFzZUZvcm1Db250cm9sIH0gZnJvbSBcIi4uL2Jhc2UtZm9ybS1jb250cm9sXCI7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKiBDb21wb25lbnRlIGNoZSBkw6AgYWxsJ3V0ZW50ZSBsYSBwb3NzaWJpbGl0w6AgZGkgc2VsZXppb25hcmUgdW5hIGRhdGEgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJmb3JtLWRhdGVcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcImZvcm0tZGF0ZS5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1EYXRlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1Db250cm9sIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICAgIC8qKiBVdGlsaXp6YSBpbCBEYXRlIGRpIEphdmFzY3JpcHQgY29tZSBtb2RlbGxvIGluIHVzY2l0YS4gSWwgbW9kZWxsbyBpbiBlbnRyYXRhIHZlcnLDoCBjb211bnF1ZSByaWNvbmRvdHRvIGEgdW4gRGF5SnMgKi9cclxuICAgIEBJbnB1dCgpIEpzRGF0ZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZXNFeHRzOiBEYXRlU2VydmljZSwgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgQE9wdGlvbmFsKCkgQEluamVjdChOR19WQUxJREFUT1JTKSBfdmFsaWRhdG9yczogQXJyYXk8YW55PiwgQE9wdGlvbmFsKCkgYWM6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBAT3B0aW9uYWwoKSBBcHBDb250ZXh0OiBDb21wb25lbnRDb250ZXh0LCBAT3B0aW9uYWwoKSBASW5qZWN0KEFDT19DVVNUT01LRVkpIEFDT19DVVNUT01LRVkgOiBzdHJpbmcsIEBPcHRpb25hbCgpIEBJbmplY3QoRkFWX0RFQlVHX01PREUpIEZBVl9ERUJVR19NT0RFIDogYm9vbGVhbikge1xyXG4gICAgICAgIHN1cGVyKGNkciwgbmdDb250cm9sLCBfdmFsaWRhdG9ycywgYWMsIEFwcENvbnRleHQsIEFDT19DVVNUT01LRVksIEZBVl9ERUJVR19NT0RFKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuRXZhbHVhdGVkTW9kZWwgPSB0aGlzLmRhdGVzRXh0cy5nZXRGb3JtYXR0ZWQob2JqLCB0cnVlLCBmYWxzZSk7XHJcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZShvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBvbk5vdE51bGxWYWx1ZVNldCgpOiB2b2lkIHsgfVxyXG59Il19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm1zLWFuZC12YWxpZGF0aW9ucy9zcmMvbGliL2Zvcm1zL2Zvcm0tZGF0ZS9mb3JtLWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQXdCLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRyxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdELGVBQWU7QUFDZixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELDBFQUEwRTtBQU0xRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQUtsRCwyQkFBMkI7SUFDM0IsWUFBb0IsU0FBc0IsRUFBRSxHQUFzQixFQUFzQixTQUFvQixFQUFxQyxXQUF1QixFQUFjLEVBQXdCLEVBQWMsVUFBNEIsRUFBcUMsYUFBc0IsRUFBc0MsY0FBd0I7UUFDN1csS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRGxFLGNBQVMsR0FBVCxTQUFTLENBQWE7UUFKMUMsd0hBQXdIO1FBQy9HLFlBQU8sR0FBWSxLQUFLLENBQUM7SUFLbEMsQ0FBQztJQUVELGNBQWM7SUFDZCxVQUFVLENBQUMsR0FBUTtRQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdGLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYztJQUNkLGlCQUFpQixLQUFXLENBQUM7OztZQTNCaEMsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxXQUFXO2dCQUNyQixxMkZBQXVDO2dCQUN2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNsRDs7O1lBWlEsV0FBVztZQUtYLGlCQUFpQjtZQVZvQixTQUFTLHVCQXdCa0IsUUFBUSxZQUFJLElBQUk7WUFBeUUsS0FBSyx1QkFBcEQsUUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhO1lBcEIxSSxvQkFBb0IsdUJBb0JrSixRQUFRO1lBcEJ4SixnQkFBZ0IsdUJBb0JzSyxRQUFRO3lDQUFrQyxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWE7MENBQTJCLFFBQVEsWUFBSSxNQUFNLFNBQUMsY0FBYzs7O3NCQUh0VixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBDb21wb25lbnRDb250ZXh0IH0gZnJvbSAnQGVzZmFlbnphL2FjY2Vzcy1jb250cm9sJztcclxuaW1wb3J0IHsgRGF0ZVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgQUNPX0NVU1RPTUtFWSwgRkFWX0RFQlVHX01PREUgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEJhc2VGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9iYXNlLWZvcm0tY29udHJvbFwiO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKiogQ29tcG9uZW50ZSBjaGUgZMOgIGFsbCd1dGVudGUgbGEgcG9zc2liaWxpdMOgIGRpIHNlbGV6aW9uYXJlIHVuYSBkYXRhICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZm9ybS1kYXRlXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCJmb3JtLWRhdGUuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtRGF0ZUNvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ29udHJvbCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICAvKiogVXRpbGl6emEgaWwgRGF0ZSBkaSBKYXZhc2NyaXB0IGNvbWUgbW9kZWxsbyBpbiB1c2NpdGEuIElsIG1vZGVsbG8gaW4gZW50cmF0YSB2ZXJyw6AgY29tdW5xdWUgcmljb25kb3R0byBhIHVuIERheUpzICovXHJcbiAgICBASW5wdXQoKSBKc0RhdGVzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGVzRXh0czogRGF0ZVNlcnZpY2UsIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsIEBPcHRpb25hbCgpIEBJbmplY3QoTkdfVkFMSURBVE9SUykgX3ZhbGlkYXRvcnM6IEFycmF5PGFueT4sIEBPcHRpb25hbCgpIGFjOiBBY2Nlc3NDb250cm9sU2VydmljZSwgQE9wdGlvbmFsKCkgQXBwQ29udGV4dDogQ29tcG9uZW50Q29udGV4dCwgQE9wdGlvbmFsKCkgQEluamVjdChBQ09fQ1VTVE9NS0VZKSBBQ09fQ1VTVE9NS0VZIDogc3RyaW5nLCBAT3B0aW9uYWwoKSBASW5qZWN0KEZBVl9ERUJVR19NT0RFKSBGQVZfREVCVUdfTU9ERSA6IGJvb2xlYW4pIHtcclxuICAgICAgICBzdXBlcihjZHIsIG5nQ29udHJvbCwgX3ZhbGlkYXRvcnMsIGFjLCBBcHBDb250ZXh0LCBBQ09fQ1VTVE9NS0VZLCBGQVZfREVCVUdfTU9ERSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLkV2YWx1YXRlZE1vZGVsID0gdGhpcy5kYXRlc0V4dHMuZ2V0Rm9ybWF0dGVkKG9iaiwgdHJ1ZSwgZmFsc2UpO1xyXG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuRXZhbHVhdGVkTW9kZWwgPSB0aGlzLk1vZGVsID8gdGhpcy5kYXRlc0V4dHMuZ2V0Rm9ybWF0dGVkKHRoaXMuTW9kZWwsIHRydWUsIGZhbHNlKSA6ICcnO1xyXG4gICAgICAgIHN1cGVyLmNoYW5nZWQobnVsbCwgZmFsc2UsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBvbk5vdE51bGxWYWx1ZVNldCgpOiB2b2lkIHsgfVxyXG59Il19
@@ -24,13 +24,17 @@ export class FormDateTimeComponent extends BaseFormControl {
24
24
  this.EvaluatedModel = this.datesExts.getFormatted(obj, false, true);
25
25
  super.writeValue(obj);
26
26
  }
27
+ changed() {
28
+ this.EvaluatedModel = this.Model ? this.datesExts.getFormatted(this.Model, false, true) : '';
29
+ super.changed(null, false, true);
30
+ }
27
31
  /** @ignore */
28
32
  onNotNullValueSet() { }
29
33
  }
30
34
  FormDateTimeComponent.decorators = [
31
35
  { type: Component, args: [{
32
36
  selector: "form-datetime",
33
- template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-top-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : LabelColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <val-datetime [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [readonly]=\"Readonly\"\r\n [id]=\"GeneratedName\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey' : ''\"\r\n [useJsDates]=\"JsDates\"\r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\">\r\n </val-datetime>\r\n</ng-template>",
37
+ template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-bottom-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : InputColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <val-datetime [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [readonly]=\"Readonly\"\r\n [id]=\"GeneratedName\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey' : ''\"\r\n [useJsDates]=\"JsDates\"\r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\">\r\n </val-datetime>\r\n</ng-template>",
34
38
  changeDetection: ChangeDetectionStrategy.OnPush
35
39
  },] }
36
40
  ];
@@ -47,4 +51,4 @@ FormDateTimeComponent.ctorParameters = () => [
47
51
  FormDateTimeComponent.propDecorators = {
48
52
  JsDates: [{ type: Input }]
49
53
  };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRldGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi9mb3Jtcy9mb3JtLWRhdGV0aW1lL2Zvcm0tZGF0ZXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQXdCLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRyxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdELGVBQWU7QUFDZixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxEOztHQUVHO0FBTUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGVBQWU7SUFLdEQsMkJBQTJCO0lBQzNCLFlBQW9CLFNBQXNCLEVBQUUsR0FBc0IsRUFBc0IsU0FBb0IsRUFBcUMsV0FBdUIsRUFBYyxFQUF3QixFQUFjLFVBQTRCLEVBQXFDLGFBQXNCLEVBQXNDLGNBQXdCO1FBQzdXLEtBQUssQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQURsRSxjQUFTLEdBQVQsU0FBUyxDQUFhO1FBSjFDLHdIQUF3SDtRQUMvRyxZQUFPLEdBQVksS0FBSyxDQUFDO0lBS2xDLENBQUM7SUFFRCxjQUFjO0lBQ2QsVUFBVSxDQUFDLEdBQVE7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYztJQUNkLGlCQUFpQixLQUFXLENBQUM7OztZQXRCaEMsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxlQUFlO2dCQUN6QixpN0ZBQTJDO2dCQUMzQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNsRDs7O1lBZFEsV0FBVztZQUtYLGlCQUFpQjtZQVZvQixTQUFTLHVCQTBCa0IsUUFBUSxZQUFJLElBQUk7WUFBeUUsS0FBSyx1QkFBcEQsUUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhO1lBdEIxSSxvQkFBb0IsdUJBc0JrSixRQUFRO1lBdEJ4SixnQkFBZ0IsdUJBc0JzSyxRQUFRO3lDQUFrQyxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWE7MENBQTJCLFFBQVEsWUFBSSxNQUFNLFNBQUMsY0FBYzs7O3NCQUh0VixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBDb21wb25lbnRDb250ZXh0IH0gZnJvbSAnQGVzZmFlbnphL2FjY2Vzcy1jb250cm9sJztcclxuaW1wb3J0IHsgRGF0ZVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgQUNPX0NVU1RPTUtFWSwgRkFWX0RFQlVHX01PREUgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEJhc2VGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9iYXNlLWZvcm0tY29udHJvbFwiO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBjaGUgZMOgIGFsbCd1dGVudGUgbGEgcG9zc2liaWxpdMOgIGRpIHNlbGV6aW9uYXJlIHVuYSBkYXRhIGluc2llbWUgYWQgdW4gb3JhcmlvXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImZvcm0tZGF0ZXRpbWVcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcImZvcm0tZGF0ZXRpbWUuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtRGF0ZVRpbWVDb21wb25lbnQgZXh0ZW5kcyBCYXNlRm9ybUNvbnRyb2wgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgICBcclxuICAgIC8qKiBVdGlsaXp6YSBpbCBEYXRlIGRpIEphdmFzY3JpcHQgY29tZSBtb2RlbGxvIGluIHVzY2l0YS4gSWwgbW9kZWxsbyBpbiBlbnRyYXRhIHZlcnLDoCBjb211bnF1ZSByaWNvbmRvdHRvIGEgdW4gRGF5SnMgKi9cclxuICAgIEBJbnB1dCgpIEpzRGF0ZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZXNFeHRzOiBEYXRlU2VydmljZSwgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgQE9wdGlvbmFsKCkgQEluamVjdChOR19WQUxJREFUT1JTKSBfdmFsaWRhdG9yczogQXJyYXk8YW55PiwgQE9wdGlvbmFsKCkgYWM6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBAT3B0aW9uYWwoKSBBcHBDb250ZXh0OiBDb21wb25lbnRDb250ZXh0LCBAT3B0aW9uYWwoKSBASW5qZWN0KEFDT19DVVNUT01LRVkpIEFDT19DVVNUT01LRVkgOiBzdHJpbmcsIEBPcHRpb25hbCgpIEBJbmplY3QoRkFWX0RFQlVHX01PREUpIEZBVl9ERUJVR19NT0RFIDogYm9vbGVhbikge1xyXG4gICAgICAgIHN1cGVyKGNkciwgbmdDb250cm9sLCBfdmFsaWRhdG9ycywgYWMsIEFwcENvbnRleHQsIEFDT19DVVNUT01LRVksIEZBVl9ERUJVR19NT0RFKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuRXZhbHVhdGVkTW9kZWwgPSB0aGlzLmRhdGVzRXh0cy5nZXRGb3JtYXR0ZWQob2JqLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZShvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBvbk5vdE51bGxWYWx1ZVNldCgpOiB2b2lkIHsgfVxyXG59Il19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRldGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi9mb3Jtcy9mb3JtLWRhdGV0aW1lL2Zvcm0tZGF0ZXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQXdCLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRyxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdELGVBQWU7QUFDZixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxEOztHQUVHO0FBTUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGVBQWU7SUFLdEQsMkJBQTJCO0lBQzNCLFlBQW9CLFNBQXNCLEVBQUUsR0FBc0IsRUFBc0IsU0FBb0IsRUFBcUMsV0FBdUIsRUFBYyxFQUF3QixFQUFjLFVBQTRCLEVBQXFDLGFBQXNCLEVBQXNDLGNBQXdCO1FBQzdXLEtBQUssQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQURsRSxjQUFTLEdBQVQsU0FBUyxDQUFhO1FBSjFDLHdIQUF3SDtRQUMvRyxZQUFPLEdBQVksS0FBSyxDQUFDO0lBS2xDLENBQUM7SUFFRCxjQUFjO0lBQ2QsVUFBVSxDQUFDLEdBQVE7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3RixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWM7SUFDZCxpQkFBaUIsS0FBVyxDQUFDOzs7WUEzQmhDLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsbzdGQUEyQztnQkFDM0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDbEQ7OztZQWRRLFdBQVc7WUFLWCxpQkFBaUI7WUFWb0IsU0FBUyx1QkEwQmtCLFFBQVEsWUFBSSxJQUFJO1lBQXlFLEtBQUssdUJBQXBELFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYTtZQXRCMUksb0JBQW9CLHVCQXNCa0osUUFBUTtZQXRCeEosZ0JBQWdCLHVCQXNCc0ssUUFBUTt5Q0FBa0MsUUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhOzBDQUEyQixRQUFRLFlBQUksTUFBTSxTQUFDLGNBQWM7OztzQkFIdFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgU2VsZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sU2VydmljZSwgQ29tcG9uZW50Q29udGV4dCB9IGZyb20gJ0Blc2ZhZW56YS9hY2Nlc3MtY29udHJvbCc7XHJcbmltcG9ydCB7IERhdGVTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcbmltcG9ydCB7IEFDT19DVVNUT01LRVksIEZBVl9ERUJVR19NT0RFIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBCYXNlRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vYmFzZS1mb3JtLWNvbnRyb2xcIjtcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgY2hlIGTDoCBhbGwndXRlbnRlIGxhIHBvc3NpYmlsaXTDoCBkaSBzZWxlemlvbmFyZSB1bmEgZGF0YSBpbnNpZW1lIGFkIHVuIG9yYXJpb1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJmb3JtLWRhdGV0aW1lXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCJmb3JtLWRhdGV0aW1lLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybURhdGVUaW1lQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1Db250cm9sIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gICAgXHJcbiAgICAvKiogVXRpbGl6emEgaWwgRGF0ZSBkaSBKYXZhc2NyaXB0IGNvbWUgbW9kZWxsbyBpbiB1c2NpdGEuIElsIG1vZGVsbG8gaW4gZW50cmF0YSB2ZXJyw6AgY29tdW5xdWUgcmljb25kb3R0byBhIHVuIERheUpzICovXHJcbiAgICBASW5wdXQoKSBKc0RhdGVzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGVzRXh0czogRGF0ZVNlcnZpY2UsIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsIEBPcHRpb25hbCgpIEBJbmplY3QoTkdfVkFMSURBVE9SUykgX3ZhbGlkYXRvcnM6IEFycmF5PGFueT4sIEBPcHRpb25hbCgpIGFjOiBBY2Nlc3NDb250cm9sU2VydmljZSwgQE9wdGlvbmFsKCkgQXBwQ29udGV4dDogQ29tcG9uZW50Q29udGV4dCwgQE9wdGlvbmFsKCkgQEluamVjdChBQ09fQ1VTVE9NS0VZKSBBQ09fQ1VTVE9NS0VZIDogc3RyaW5nLCBAT3B0aW9uYWwoKSBASW5qZWN0KEZBVl9ERUJVR19NT0RFKSBGQVZfREVCVUdfTU9ERSA6IGJvb2xlYW4pIHtcclxuICAgICAgICBzdXBlcihjZHIsIG5nQ29udHJvbCwgX3ZhbGlkYXRvcnMsIGFjLCBBcHBDb250ZXh0LCBBQ09fQ1VTVE9NS0VZLCBGQVZfREVCVUdfTU9ERSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLkV2YWx1YXRlZE1vZGVsID0gdGhpcy5kYXRlc0V4dHMuZ2V0Rm9ybWF0dGVkKG9iaiwgZmFsc2UsIHRydWUpO1xyXG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuRXZhbHVhdGVkTW9kZWwgPSB0aGlzLk1vZGVsID8gdGhpcy5kYXRlc0V4dHMuZ2V0Rm9ybWF0dGVkKHRoaXMuTW9kZWwsIGZhbHNlLCB0cnVlKSA6ICcnO1xyXG4gICAgICAgIHN1cGVyLmNoYW5nZWQobnVsbCwgZmFsc2UsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBvbk5vdE51bGxWYWx1ZVNldCgpOiB2b2lkIHsgfVxyXG59Il19
@@ -59,7 +59,8 @@ export class FormFileComponent extends BaseFormControl {
59
59
  model.nativefiles = files;
60
60
  model.fileb64 = null;
61
61
  }
62
- this.changed(null, true);
62
+ this.EvaluatedModel = model.filename;
63
+ this.changed(null, true, true);
63
64
  }
64
65
  /** Permette di scaricare l'eventuale file selezionato */
65
66
  downloadAttachment() {
@@ -73,7 +74,7 @@ FormFileComponent.decorators = [
73
74
  { type: Component, args: [{
74
75
  selector: "form-file",
75
76
  providers: [{ provide: LocalizationService, useClass: FormFileComponentLoc }],
76
- template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-top-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : LabelColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <div class=\"input-group file-upload\">\r\n <input type=\"file\" (change)=\"fileChange()\" id=\"{{GeneratedName}}\" #fileInput class=\"file-upload-btn app-pointer\" [multiple]=\"Multiple ? true : null\" />\r\n <input type=\"text\" [class.frm-padding-left-22]=\"AllowDownload && Model.filename && Model.fileb64\" class=\"form-control checking-field\" placeholder=\"{{'Select a file' | localize : lc}}...\" [(ngModel)]=\"Model.filename\" name=\"dsfile\" #validationControl=\"ngModel\" [required]=\"Required ? true : null\" />\r\n\r\n <a class=\"fa fa-download app-pointer app-input-icon\" *ngIf=\"AllowDownload && Model.filename && Model.fileb64\" (click)=\"downloadAttachment()\"></a>\r\n <i class=\"fa fa-times delete-file\" (click)=\"fileChange(true)\" *ngIf=\"Model.filename\"></i>\r\n <span class=\"input-group-btn\">\r\n <button class=\"btn btn-primary btn-file-upload\" type=\"button\"><i class=\"fa fa-upload\"></i></button>\r\n </span>\r\n </div>\r\n</ng-template>",
77
+ template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-bottom-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : InputColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <div class=\"input-group file-upload\">\r\n <input type=\"file\" (change)=\"fileChange()\" id=\"{{GeneratedName}}\" #fileInput class=\"file-upload-btn app-pointer\" [multiple]=\"Multiple ? true : null\" />\r\n <input type=\"text\" [class.frm-padding-left-22]=\"AllowDownload && Model.filename && Model.fileb64\" class=\"form-control checking-field\" placeholder=\"{{'Select a file' | localize : lc}}...\" [(ngModel)]=\"Model.filename\" name=\"dsfile\" #validationControl=\"ngModel\" [required]=\"Required ? true : null\" />\r\n\r\n <a class=\"fa fa-download app-pointer app-input-icon\" *ngIf=\"AllowDownload && Model.filename && Model.fileb64\" (click)=\"downloadAttachment()\"></a>\r\n <i class=\"fa fa-times delete-file\" (click)=\"fileChange(true)\" *ngIf=\"Model.filename\"></i>\r\n <span class=\"input-group-btn\">\r\n <button class=\"btn btn-primary btn-file-upload\" type=\"button\"><i class=\"fa fa-upload\"></i></button>\r\n </span>\r\n </div>\r\n</ng-template>",
77
78
  changeDetection: ChangeDetectionStrategy.OnPush,
78
79
  styles: [".frm-padding-left-22{padding-left:22px}"]
79
80
  },] }
@@ -94,4 +95,4 @@ FormFileComponent.propDecorators = {
94
95
  AllowDownload: [{ type: Input }],
95
96
  inputEl: [{ type: ViewChild, args: ["fileInput", { static: false },] }]
96
97
  };
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm1zLWFuZC12YWxpZGF0aW9ucy9zcmMvbGliL2Zvcm1zL2Zvcm0tZmlsZS9mb3JtLWZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUF3QixhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEYsV0FBVztBQUNYLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxlQUFlO0FBQ2YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELFVBQVU7QUFDVixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpFLHFHQUFxRztBQVFyRyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQVdsRCwyQkFBMkI7SUFDM0IsWUFBWSxHQUFzQixFQUFVLE9BQXVCLEVBQXNCLFNBQW9CLEVBQXFDLFdBQXVCLEVBQWMsRUFBd0IsRUFBYyxVQUE0QixFQUFxQyxhQUFxQixFQUFTLEVBQXVCLEVBQXNDLGNBQXdCO1FBQzdZLEtBQUssQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUQxQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUF5UCxPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQVZuVix5Q0FBeUM7UUFDaEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVuQyx5REFBeUQ7UUFDaEQsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFTbkMsc0VBQXNFO1FBQ3RFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVUsQ0FBQyxHQUFZO1FBQ25CLElBQUksS0FBSyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM5QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDckMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFHLEdBQUcsSUFBSSxJQUFJO1lBQ1YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLFFBQWlCLEtBQUs7UUFDN0IsSUFBSSxLQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksS0FBSyxHQUFhLElBQUksQ0FBQyxLQUFNLENBQUM7UUFDbEMsSUFBSSxFQUFFLEdBQXFCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBRXRELElBQUksS0FBSyxFQUFFO1lBQ1AsS0FBSyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDcEIsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDZCxLQUFLLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNuQixLQUFLLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztTQUMxQjthQUNJO1lBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtnQkFDcEMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWpDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztnQkFDcEIsS0FBSyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN0QyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQ25CLEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDM0UsS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDMUIsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDeEI7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQseURBQXlEO0lBQ3pELGtCQUFrQjtRQUNkLElBQUksS0FBSyxHQUFhLElBQUksQ0FBQyxLQUFNLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGNBQWM7SUFDZCxpQkFBaUIsS0FBVyxDQUFDOzs7WUExRWhDLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsV0FBVztnQkFDckIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLENBQUM7Z0JBRTdFLGtqR0FBdUM7Z0JBQ3ZDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O1lBekI0QyxpQkFBaUI7WUFNckQsY0FBYztZQUx1QixTQUFTLHVCQXFDbUIsUUFBUSxZQUFJLElBQUk7WUFBeUUsS0FBSyx1QkFBcEQsUUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhO1lBbEMzSSxvQkFBb0IsdUJBa0NtSixRQUFRO1lBbEN6SixnQkFBZ0IsdUJBa0N1SyxRQUFRO3lDQUFrQyxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWE7WUFqQ3ZSLG1CQUFtQjswQ0FpQzhULFFBQVEsWUFBSSxNQUFNLFNBQUMsY0FBYzs7O3VCQVR0WCxLQUFLOzRCQUdMLEtBQUs7c0JBR0wsU0FBUyxTQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgU2VsZiwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuLy8gRXNmYWVuemFcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbFNlcnZpY2UsIENvbXBvbmVudENvbnRleHQgfSBmcm9tICdAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgQmFzZUZvcm1Db250cm9sIH0gZnJvbSBcIi4uL2Jhc2UtZm9ybS1jb250cm9sXCI7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IEFwcEZpbGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL0FwcEZpbGVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEFDT19DVVNUT01LRVksIEZBVl9ERUJVR19NT0RFIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcclxuaW1wb3J0IHsgRm9ybUZpbGVDb21wb25lbnRMb2MgfSBmcm9tIFwiLi9mb3JtLWZpbGUuY29tcG9uZW50LmxvY1wiO1xyXG5cclxuLyoqIENvbXBvbmVudGUgY2hlIHBlcm1ldHRlIGFsbCd1dGVudGUgZGkgY2FyaWNhcmUvc2NhcmljYXJlIHVuIGZpbGUgYWxsJ2ludGVybm8gZGkgdW4gY2FtcG8gSW5wdXQgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJmb3JtLWZpbGVcIixcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEZvcm1GaWxlQ29tcG9uZW50TG9jIH1dLFxyXG4gICAgc3R5bGVVcmxzOiBbXCJmb3JtLWZpbGUuY29tcG9uZW50LmNzc1wiXSxcclxuICAgIHRlbXBsYXRlVXJsOiBcImZvcm0tZmlsZS5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1GaWxlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1Db250cm9sIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICAgIC8qKiBQZXJtZXR0ZSBkaSBjYXJpY2FyZSBmaWxlIG11bHRpcGxpICovXHJcbiAgICBASW5wdXQoKSBNdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBQZXJtZXR0ZSBkaSBzY2FyaWNhcmUgbCdldmVudHVhbGUgZmlsZSBzZWxlemlvbmF0byAqL1xyXG4gICAgQElucHV0KCkgQWxsb3dEb3dubG9hZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqIFJpZmVyaW1lbnRvIGFsbCdlbGVtZW50byBpbnB1dCBkaSB0aXBvIGZpbGUgKi9cclxuICAgIEBWaWV3Q2hpbGQoXCJmaWxlSW5wdXRcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGlucHV0RWw6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgICovXHJcbiAgICBjb25zdHJ1Y3RvcihjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHV0aUV4dHM6IFV0aWxpdHlTZXJ2aWNlLCBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLCBAT3B0aW9uYWwoKSBASW5qZWN0KE5HX1ZBTElEQVRPUlMpIF92YWxpZGF0b3JzOiBBcnJheTxhbnk+LCBAT3B0aW9uYWwoKSBhYzogQWNjZXNzQ29udHJvbFNlcnZpY2UsIEBPcHRpb25hbCgpIEFwcENvbnRleHQ6IENvbXBvbmVudENvbnRleHQsIEBPcHRpb25hbCgpIEBJbmplY3QoQUNPX0NVU1RPTUtFWSkgQUNPX0NVU1RPTUtFWTogc3RyaW5nLCBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsIEBPcHRpb25hbCgpIEBJbmplY3QoRkFWX0RFQlVHX01PREUpIEZBVl9ERUJVR19NT0RFIDogYm9vbGVhbikge1xyXG4gICAgICAgIHN1cGVyKGNkciwgbmdDb250cm9sLCBfdmFsaWRhdG9ycywgYWMsIEFwcENvbnRleHQsIEFDT19DVVNUT01LRVksIEZBVl9ERUJVR19NT0RFKTtcclxuXHJcbiAgICAgICAgLy9QZXIgcXVlc3RvIGNvbXBvbmVudGUgbm9uIHBvc3NvIHBlcm1ldHRlcm1pIGNoZSBpbCBtb2RlbGxvIHNpYSBudWxsb1xyXG4gICAgICAgIHRoaXMuTW9kZWwgPSBuZXcgQXBwRmlsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICB3cml0ZVZhbHVlKG9iajogQXBwRmlsZSk6IHZvaWQge1xyXG4gICAgICAgIHZhciBtb2RlbCA9IG9iaiA9PSBudWxsID8gbmV3IEFwcEZpbGUoKSA6IG9iajtcclxuICAgICAgICB0aGlzLkV2YWx1YXRlZE1vZGVsID0gbW9kZWwuZmlsZW5hbWU7XHJcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZShtb2RlbCk7XHJcblxyXG4gICAgICAgIGlmKG9iaiA9PSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBwZXIgZ2VzdGlyZSBsYSBtb2RpZmljYSBkZWwgZmlsZSBhdHR1YWxtZW50ZSBiaW5kYXRvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gY2xlYXIgSW5kaWNhIHNlIGJpc29nbmEgc3Z1b3RhcmUgbCdpbnB1dCBvIG1lbm8gXHJcbiAgICAgKi9cclxuICAgIGZpbGVDaGFuZ2UoY2xlYXI6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGxldCBmaWxlczogRmlsZVtdID0gW107XHJcbiAgICAgICAgbGV0IG1vZGVsID0gKDxBcHBGaWxlPnRoaXMuTW9kZWwpO1xyXG4gICAgICAgIGxldCBuZTogSFRNTElucHV0RWxlbWVudCA9IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgICBpZiAoY2xlYXIpIHtcclxuICAgICAgICAgICAgbW9kZWwuZmlsZW5hbWUgPSBcIlwiO1xyXG4gICAgICAgICAgICBuZS52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgICAgIG1vZGVsLmZpbGViNjQgPSBcIlwiO1xyXG4gICAgICAgICAgICBtb2RlbC5uYXRpdmVmaWxlcyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuZS5maWxlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgICAgIGZpbGVzLnB1c2gobmUuZmlsZXMuaXRlbShpKSk7XHJcblxyXG4gICAgICAgICAgICBpZiAobmUuZmlsZXMubGVuZ3RoID09IDEpXHJcbiAgICAgICAgICAgICAgICBtb2RlbC5maWxlbmFtZSA9IG5lLmZpbGVzWzBdLm5hbWU7XHJcbiAgICAgICAgICAgIGlmIChuZS5maWxlcy5sZW5ndGggPiAxKVxyXG4gICAgICAgICAgICAgICAgbW9kZWwuZmlsZW5hbWUgPSBuZS5maWxlcy5sZW5ndGggKyBcIiBcIiArIHRoaXMubGMubG9jKFwiRmlsZXMgU2VsZWN0ZWRcIik7XHJcbiAgICAgICAgICAgIG1vZGVsLm5hdGl2ZWZpbGVzID0gZmlsZXM7XHJcbiAgICAgICAgICAgIG1vZGVsLmZpbGViNjQgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmNoYW5nZWQobnVsbCwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFBlcm1ldHRlIGRpIHNjYXJpY2FyZSBsJ2V2ZW50dWFsZSBmaWxlIHNlbGV6aW9uYXRvICovXHJcbiAgICBkb3dubG9hZEF0dGFjaG1lbnQoKSB7XHJcbiAgICAgICAgbGV0IG1vZGVsID0gKDxBcHBGaWxlPnRoaXMuTW9kZWwpO1xyXG4gICAgICAgIHRoaXMudXRpRXh0cy5zYXZlRmlsZShtb2RlbC5maWxlYjY0LCBtb2RlbC5maWxlbmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG9uTm90TnVsbFZhbHVlU2V0KCk6IHZvaWQgeyB9XHJcbn0iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm1zLWFuZC12YWxpZGF0aW9ucy9zcmMvbGliL2Zvcm1zL2Zvcm0tZmlsZS9mb3JtLWZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUF3QixhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEYsV0FBVztBQUNYLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxlQUFlO0FBQ2YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELFVBQVU7QUFDVixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpFLHFHQUFxRztBQVFyRyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQVdsRCwyQkFBMkI7SUFDM0IsWUFBWSxHQUFzQixFQUFVLE9BQXVCLEVBQXNCLFNBQW9CLEVBQXFDLFdBQXVCLEVBQWMsRUFBd0IsRUFBYyxVQUE0QixFQUFxQyxhQUFxQixFQUFTLEVBQXVCLEVB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QyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztnQkFFN0UscWpHQUF1QztnQkFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUF6QjRDLGlCQUFpQjtZQU1yRCxjQUFjO1lBTHVCLFNBQVMsdUJBcUNtQixRQUFRLFlBQUksSUFBSTtZQUF5RSxLQUFLLHVCQUFwRCxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWE7WUFsQzNJLG9CQUFvQix1QkFrQ21KLFFBQVE7WUFsQ3pKLGdCQUFnQix1QkFrQ3VLLFFBQVE7eUNBQWtDLFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYTtZQWpDdlIsbUJBQW1COzBDQWlDOFQsUUFBUSxZQUFJLE1BQU0sU0FBQyxjQUFjOzs7dUJBVHRYLEtBQUs7NEJBR0wsS0FBSztzQkFHTCxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsLCBTZWxmLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vLyBFc2ZhZW56YVxyXG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sU2VydmljZSwgQ29tcG9uZW50Q29udGV4dCB9IGZyb20gJ0Blc2ZhZW56YS9hY2Nlc3MtY29udHJvbCc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBCYXNlRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vYmFzZS1mb3JtLWNvbnRyb2xcIjtcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgQXBwRmlsZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvQXBwRmlsZVwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQUNPX0NVU1RPTUtFWSwgRkFWX0RFQlVHX01PREUgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBGb3JtRmlsZUNvbXBvbmVudExvYyB9IGZyb20gXCIuL2Zvcm0tZmlsZS5jb21wb25lbnQubG9jXCI7XHJcblxyXG4vKiogQ29tcG9uZW50ZSBjaGUgcGVybWV0dGUgYWxsJ3V0ZW50ZSBkaSBjYXJpY2FyZS9zY2FyaWNhcmUgdW4gZmlsZSBhbGwnaW50ZXJubyBkaSB1biBjYW1wbyBJbnB1dCAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImZvcm0tZmlsZVwiLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogRm9ybUZpbGVDb21wb25lbnRMb2MgfV0sXHJcbiAgICBzdHlsZVVybHM6IFtcImZvcm0tZmlsZS5jb21wb25lbnQuY3NzXCJdLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiZm9ybS1maWxlLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUZpbGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlRm9ybUNvbnRyb2wgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgLyoqIFBlcm1ldHRlIGRpIGNhcmljYXJlIGZpbGUgbXVsdGlwbGkgKi9cclxuICAgIEBJbnB1dCgpIE11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIFBlcm1ldHRlIGRpIHNjYXJpY2FyZSBsJ2V2ZW50dWFsZSBmaWxlIHNlbGV6aW9uYXRvICovXHJcbiAgICBASW5wdXQoKSBBbGxvd0Rvd25sb2FkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogUmlmZXJpbWVudG8gYWxsJ2VsZW1lbnRvIGlucHV0IGRpIHRpcG8gZmlsZSAqL1xyXG4gICAgQFZpZXdDaGlsZChcImZpbGVJbnB1dFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgaW5wdXRFbDogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdXRpRXh0czogVXRpbGl0eVNlcnZpY2UsIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsIEBPcHRpb25hbCgpIEBJbmplY3QoTkdfVkFMSURBVE9SUykgX3ZhbGlkYXRvcnM6IEFycmF5PGFueT4sIEBPcHRpb25hbCgpIGFjOiBBY2Nlc3NDb250cm9sU2VydmljZSwgQE9wdGlvbmFsKCkgQXBwQ29udGV4dDogQ29tcG9uZW50Q29udGV4dCwgQE9wdGlvbmFsKCkgQEluamVjdChBQ09fQ1VTVE9NS0VZKSBBQ09fQ1VTVE9NS0VZOiBzdHJpbmcsIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSwgQE9wdGlvbmFsKCkgQEluamVjdChGQVZfREVCVUdfTU9ERSkgRkFWX0RFQlVHX01PREUgOiBib29sZWFuKSB7XHJcbiAgICAgICAgc3VwZXIoY2RyLCBuZ0NvbnRyb2wsIF92YWxpZGF0b3JzLCBhYywgQXBwQ29udGV4dCwgQUNPX0NVU1RPTUtFWSwgRkFWX0RFQlVHX01PREUpO1xyXG5cclxuICAgICAgICAvL1BlciBxdWVzdG8gY29tcG9uZW50ZSBub24gcG9zc28gcGVybWV0dGVybWkgY2hlIGlsIG1vZGVsbG8gc2lhIG51bGxvXHJcbiAgICAgICAgdGhpcy5Nb2RlbCA9IG5ldyBBcHBGaWxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIHdyaXRlVmFsdWUob2JqOiBBcHBGaWxlKTogdm9pZCB7XHJcbiAgICAgICAgdmFyIG1vZGVsID0gb2JqID09IG51bGwgPyBuZXcgQXBwRmlsZSgpIDogb2JqO1xyXG4gICAgICAgIHRoaXMuRXZhbHVhdGVkTW9kZWwgPSBtb2RlbC5maWxlbmFtZTtcclxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKG1vZGVsKTtcclxuXHJcbiAgICAgICAgaWYob2JqID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIHBlciBnZXN0aXJlIGxhIG1vZGlmaWNhIGRlbCBmaWxlIGF0dHVhbG1lbnRlIGJpbmRhdG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBjbGVhciBJbmRpY2Egc2UgYmlzb2duYSBzdnVvdGFyZSBsJ2lucHV0IG8gbWVubyBcclxuICAgICAqL1xyXG4gICAgZmlsZUNoYW5nZShjbGVhcjogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICAgICAgbGV0IGZpbGVzOiBGaWxlW10gPSBbXTtcclxuICAgICAgICBsZXQgbW9kZWwgPSAoPEFwcEZpbGU+dGhpcy5Nb2RlbCk7XHJcbiAgICAgICAgbGV0IG5lOiBIVE1MSW5wdXRFbGVtZW50ID0gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmIChjbGVhcikge1xyXG4gICAgICAgICAgICBtb2RlbC5maWxlbmFtZSA9IFwiXCI7XHJcbiAgICAgICAgICAgIG5lLnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgICAgbW9kZWwuZmlsZWI2NCA9IFwiXCI7XHJcbiAgICAgICAgICAgIG1vZGVsLm5hdGl2ZWZpbGVzID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5lLmZpbGVzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICAgICAgZmlsZXMucHVzaChuZS5maWxlcy5pdGVtKGkpKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChuZS5maWxlcy5sZW5ndGggPT0gMSlcclxuICAgICAgICAgICAgICAgIG1vZGVsLmZpbGVuYW1lID0gbmUuZmlsZXNbMF0ubmFtZTtcclxuICAgICAgICAgICAgaWYgKG5lLmZpbGVzLmxlbmd0aCA+IDEpXHJcbiAgICAgICAgICAgICAgICBtb2RlbC5maWxlbmFtZSA9IG5lLmZpbGVzLmxlbmd0aCArIFwiIFwiICsgdGhpcy5sYy5sb2MoXCJGaWxlcyBTZWxlY3RlZFwiKTtcclxuICAgICAgICAgICAgbW9kZWwubmF0aXZlZmlsZXMgPSBmaWxlcztcclxuICAgICAgICAgICAgbW9kZWwuZmlsZWI2NCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuRXZhbHVhdGVkTW9kZWwgPSBtb2RlbC5maWxlbmFtZTtcclxuICAgICAgICB0aGlzLmNoYW5nZWQobnVsbCwgdHJ1ZSwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFBlcm1ldHRlIGRpIHNjYXJpY2FyZSBsJ2V2ZW50dWFsZSBmaWxlIHNlbGV6aW9uYXRvICovXHJcbiAgICBkb3dubG9hZEF0dGFjaG1lbnQoKSB7XHJcbiAgICAgICAgbGV0IG1vZGVsID0gKDxBcHBGaWxlPnRoaXMuTW9kZWwpO1xyXG4gICAgICAgIHRoaXMudXRpRXh0cy5zYXZlRmlsZShtb2RlbC5maWxlYjY0LCBtb2RlbC5maWxlbmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG9uTm90TnVsbFZhbHVlU2V0KCk6IHZvaWQgeyB9XHJcbn0iXX0=
@@ -39,7 +39,7 @@ export class FormInputComponent extends BaseFormControl {
39
39
  FormInputComponent.decorators = [
40
40
  { type: Component, args: [{
41
41
  selector: "form-input",
42
- template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-top-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : LabelColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <val-input [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n type=\"text\"\r\n [(ngModel)]=\"Model\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n autocomplete=\"off\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [Password]=\"Password\">\r\n <ng-container *ngIf=\"HasSuffix\">\r\n <ng-template #suffix_internal>\r\n <button type=\"button\" class=\"mat-button mat-icon-button mat-button-base mat-icon-button-override mat-icon-button-override-suffix\"\r\n matSuffix (click)=\"onSuffixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"HasPrefix\">\r\n <ng-template #prefix_internal>\r\n <button type=\"button\" class=\"mat-button mat-icon-button mat-button-base mat-icon-button-override mat-icon-button-override-prefix\"\r\n matPrefix (click)=\"onPrefixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n </val-input>\r\n</ng-template>",
42
+ template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-bottom-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : InputColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <val-input [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n type=\"text\"\r\n [(ngModel)]=\"Model\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n autocomplete=\"off\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [Password]=\"Password\">\r\n <ng-container *ngIf=\"HasSuffix\">\r\n <ng-template #suffix_internal>\r\n <button type=\"button\" class=\"mat-button mat-icon-button mat-button-base mat-icon-button-override mat-icon-button-override-suffix\"\r\n matSuffix (click)=\"onSuffixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"HasPrefix\">\r\n <ng-template #prefix_internal>\r\n <button type=\"button\" class=\"mat-button mat-icon-button mat-button-base mat-icon-button-override mat-icon-button-override-prefix\"\r\n matPrefix (click)=\"onPrefixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n </val-input>\r\n</ng-template>",
43
43
  changeDetection: ChangeDetectionStrategy.OnPush
44
44
  },] }
45
45
  ];
@@ -59,4 +59,4 @@ FormInputComponent.propDecorators = {
59
59
  suffix: [{ type: ContentChild, args: ["suffix", { static: false },] }],
60
60
  prefix: [{ type: ContentChild, args: ["prefix", { static: false },] }]
61
61
  };
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi9mb3Jtcy9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQXdCLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRixlQUFlO0FBQ2YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsNkVBQTZFO0FBTTdFLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUFlO0lBdUJuRCwyQkFBMkI7SUFDM0IsWUFBWSxHQUFzQixFQUFzQixTQUFvQixFQUFxQyxXQUF1QixFQUFjLEVBQXdCLEVBQWMsVUFBNEIsRUFBcUMsYUFBcUIsRUFBc0MsY0FBd0I7UUFDNVUsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBdkJ0RixvREFBb0Q7UUFDcEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQyx1RUFBdUU7UUFDN0QsbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV4RSx1RUFBdUU7UUFDN0QsbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQVF4RSx1R0FBdUc7UUFDaEcsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUVsQyx1R0FBdUc7UUFDaEcsY0FBUyxHQUFZLEtBQUssQ0FBQztJQUtsQyxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVUsQ0FBQyxHQUFRO1FBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLE9BQU0sRUFBRSxDQUFDO1FBQzVDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7SUFDZCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7SUFDZCxpQkFBaUIsS0FBVyxDQUFDOzs7WUE5Q2hDLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsMjdIQUF3QztnQkFDeEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDbEQ7OztZQVBRLGlCQUFpQjtZQVJvQixTQUFTLHVCQXdDZCxRQUFRLFlBQUksSUFBSTtZQUF5RSxLQUFLLHVCQUFwRCxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWE7WUFsQzFHLG9CQUFvQix1QkFrQ2tILFFBQVE7WUFsQ3hILGdCQUFnQix1QkFrQ3NJLFFBQVE7eUNBQWtDLFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYTswQ0FBMEIsUUFBUSxZQUFJLE1BQU0sU0FBQyxjQUFjOzs7dUJBckJyVCxLQUFLOzZCQUdMLE1BQU07NkJBR04sTUFBTTtxQkFHTixZQUFZLFNBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtxQkFHeEMsWUFBWSxTQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0LCBTZWxmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEJhc2VGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9iYXNlLWZvcm0tY29udHJvbFwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbFNlcnZpY2UsIENvbXBvbmVudENvbnRleHQgfSBmcm9tICdAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBBQ09fQ1VTVE9NS0VZLCBGQVZfREVCVUdfTU9ERSB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKiBTZW1wbGljZSBjb21wb25lbnRlIGRpIElucHV0IHRlc3R1YWxlLCBjb24gZXZlbnR1YWxlIHByZWZpc3NvL3N1ZmZpc3NvICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZm9ybS1pbnB1dFwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiZm9ybS1pbnB1dC5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1JbnB1dENvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ29udHJvbCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGwnaW5wdXQgcmVsYXRpdm8gw6ggZGkgdGlwbyBQYXNzd29yZCAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIFBhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIERlbGVnYXRvIHBlciBsJ2VzZWN1emlvbmUgZGkgdW4nb3BlcmF6aW9uZSBhbCBjbGljayBkZWwgc3VmZmlzc28gKi9cclxuICAgIEBPdXRwdXQoKSBvblN1ZmZpeEFjdGlvbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIC8qKiBEZWxlZ2F0byBwZXIgbCdlc2VjdXppb25lIGRpIHVuJ29wZXJhemlvbmUgYWwgY2xpY2sgZGVsIHByZWZpc3NvICovXHJcbiAgICBAT3V0cHV0KCkgb25QcmVmaXhBY3Rpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvKiogRWxlbWVudG8gY2hlIGNvbnRpZW5lIGxhIHByb2llemlvbmUgZGVsbCdIVE1MIGRlbCBzdWZmaXNzbyAqL1xyXG4gICAgQENvbnRlbnRDaGlsZChcInN1ZmZpeFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgc3VmZml4O1xyXG5cclxuICAgIC8qKiBFbGVtZW50byBjaGUgY29udGllbmUgbGEgcHJvaWV6aW9uZSBkZWxsJ0hUTUwgZGVsIHByZWZpc3NvICovXHJcbiAgICBAQ29udGVudENoaWxkKFwicHJlZml4XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBwcmVmaXg7XHJcblxyXG4gICAgLyoqIEluZGljYSBsYSBwcmVzZW56YSBvIG1lbm8gZGkgdW4gc3VmZmlzc28sIHNpIGJhc2Egc3VsbGEgXCJ0cnV0aGluZXNzXCIgZGVsbGEgcHJvaWV6aW9uZSAqKnN1ZmZpeCoqICovXHJcbiAgICBwdWJsaWMgSGFzU3VmZml4OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEluZGljYSBsYSBwcmVzZW56YSBvIG1lbm8gZGkgdW4gcHJlZmlzc28sIHNpIGJhc2Egc3VsbGEgXCJ0cnV0aGluZXNzXCIgZGVsbGEgcHJvaWV6aW9uZSAqKnByZWZpeCoqICovXHJcbiAgICBwdWJsaWMgSGFzUHJlZml4OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgICovXHJcbiAgICBjb25zdHJ1Y3RvcihjZHI6IENoYW5nZURldGVjdG9yUmVmLCBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLCBAT3B0aW9uYWwoKSBASW5qZWN0KE5HX1ZBTElEQVRPUlMpIF92YWxpZGF0b3JzOiBBcnJheTxhbnk+LCBAT3B0aW9uYWwoKSBhYzogQWNjZXNzQ29udHJvbFNlcnZpY2UsIEBPcHRpb25hbCgpIEFwcENvbnRleHQ6IENvbXBvbmVudENvbnRleHQsIEBPcHRpb25hbCgpIEBJbmplY3QoQUNPX0NVU1RPTUtFWSkgQUNPX0NVU1RPTUtFWTogc3RyaW5nLCBAT3B0aW9uYWwoKSBASW5qZWN0KEZBVl9ERUJVR19NT0RFKSBGQVZfREVCVUdfTU9ERSA6IGJvb2xlYW4pIHtcclxuICAgICAgICBzdXBlcihjZHIsIG5nQ29udHJvbCwgX3ZhbGlkYXRvcnMsIGFjLCBBcHBDb250ZXh0LCBBQ09fQ1VTVE9NS0VZLCBGQVZfREVCVUdfTU9ERSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLkV2YWx1YXRlZE1vZGVsID0gb2JqPy50b1N0cmluZygpIHx8IFwiXCI7XHJcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZShvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5IYXNTdWZmaXggPSAhIXRoaXMuc3VmZml4O1xyXG4gICAgICAgIHRoaXMuSGFzUHJlZml4ID0gISF0aGlzLnByZWZpeDtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgb25Ob3ROdWxsVmFsdWVTZXQoKTogdm9pZCB7IH1cclxufSJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi9mb3Jtcy9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQXdCLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRixlQUFlO0FBQ2YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsNkVBQTZFO0FBTTdFLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUFlO0lBdUJuRCwyQkFBMkI7SUFDM0IsWUFBWSxHQUFzQixFQUFzQixTQUFvQixFQUFxQyxXQUF1QixFQUFjLEVBQXdCLEVBQWMsVUFBNEIsRUFBcUMsYUFBcUIsRUFBc0MsY0FBd0I7UUFDNVUsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBdkJ0RixvREFBb0Q7UUFDcEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQyx1RUFBdUU7UUFDN0QsbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV4RSx1RUFBdUU7UUFDN0QsbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQVF4RSx1R0FBdUc7UUFDaEcsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUVsQyx1R0FBdUc7UUFDaEcsY0FBUyxHQUFZLEtBQUssQ0FBQztJQUtsQyxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVUsQ0FBQyxHQUFRO1FBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLE9BQU0sRUFBRSxDQUFDO1FBQzVDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7SUFDZCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7SUFDZCxpQkFBaUIsS0FBVyxDQUFDOzs7WUE5Q2hDLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsODdIQUF3QztnQkFDeEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDbEQ7OztZQVBRLGlCQUFpQjtZQVJvQixTQUFTLHVCQXdDZCxRQUFRLFlBQUksSUFBSTtZQUF5RSxLQUFLLHVCQUFwRCxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWE7WUFsQzFHLG9CQUFvQix1QkFrQ2tILFFBQVE7WUFsQ3hILGdCQUFnQix1QkFrQ3NJLFFBQVE7eUNBQWtDLFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYTswQ0FBMEIsUUFBUSxZQUFJLE1BQU0sU0FBQyxjQUFjOzs7dUJBckJyVCxLQUFLOzZCQUdMLE1BQU07NkJBR04sTUFBTTtxQkFHTixZQUFZLFNBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtxQkFHeEMsWUFBWSxTQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0LCBTZWxmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEJhc2VGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9iYXNlLWZvcm0tY29udHJvbFwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbFNlcnZpY2UsIENvbXBvbmVudENvbnRleHQgfSBmcm9tICdAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBBQ09fQ1VTVE9NS0VZLCBGQVZfREVCVUdfTU9ERSB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKiBTZW1wbGljZSBjb21wb25lbnRlIGRpIElucHV0IHRlc3R1YWxlLCBjb24gZXZlbnR1YWxlIHByZWZpc3NvL3N1ZmZpc3NvICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZm9ybS1pbnB1dFwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiZm9ybS1pbnB1dC5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1JbnB1dENvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ29udHJvbCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGwnaW5wdXQgcmVsYXRpdm8gw6ggZGkgdGlwbyBQYXNzd29yZCAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIFBhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIERlbGVnYXRvIHBlciBsJ2VzZWN1emlvbmUgZGkgdW4nb3BlcmF6aW9uZSBhbCBjbGljayBkZWwgc3VmZmlzc28gKi9cclxuICAgIEBPdXRwdXQoKSBvblN1ZmZpeEFjdGlvbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIC8qKiBEZWxlZ2F0byBwZXIgbCdlc2VjdXppb25lIGRpIHVuJ29wZXJhemlvbmUgYWwgY2xpY2sgZGVsIHByZWZpc3NvICovXHJcbiAgICBAT3V0cHV0KCkgb25QcmVmaXhBY3Rpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvKiogRWxlbWVudG8gY2hlIGNvbnRpZW5lIGxhIHByb2llemlvbmUgZGVsbCdIVE1MIGRlbCBzdWZmaXNzbyAqL1xyXG4gICAgQENvbnRlbnRDaGlsZChcInN1ZmZpeFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgc3VmZml4O1xyXG5cclxuICAgIC8qKiBFbGVtZW50byBjaGUgY29udGllbmUgbGEgcHJvaWV6aW9uZSBkZWxsJ0hUTUwgZGVsIHByZWZpc3NvICovXHJcbiAgICBAQ29udGVudENoaWxkKFwicHJlZml4XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBwcmVmaXg7XHJcblxyXG4gICAgLyoqIEluZGljYSBsYSBwcmVzZW56YSBvIG1lbm8gZGkgdW4gc3VmZmlzc28sIHNpIGJhc2Egc3VsbGEgXCJ0cnV0aGluZXNzXCIgZGVsbGEgcHJvaWV6aW9uZSAqKnN1ZmZpeCoqICovXHJcbiAgICBwdWJsaWMgSGFzU3VmZml4OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEluZGljYSBsYSBwcmVzZW56YSBvIG1lbm8gZGkgdW4gcHJlZmlzc28sIHNpIGJhc2Egc3VsbGEgXCJ0cnV0aGluZXNzXCIgZGVsbGEgcHJvaWV6aW9uZSAqKnByZWZpeCoqICovXHJcbiAgICBwdWJsaWMgSGFzUHJlZml4OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgICovXHJcbiAgICBjb25zdHJ1Y3RvcihjZHI6IENoYW5nZURldGVjdG9yUmVmLCBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLCBAT3B0aW9uYWwoKSBASW5qZWN0KE5HX1ZBTElEQVRPUlMpIF92YWxpZGF0b3JzOiBBcnJheTxhbnk+LCBAT3B0aW9uYWwoKSBhYzogQWNjZXNzQ29udHJvbFNlcnZpY2UsIEBPcHRpb25hbCgpIEFwcENvbnRleHQ6IENvbXBvbmVudENvbnRleHQsIEBPcHRpb25hbCgpIEBJbmplY3QoQUNPX0NVU1RPTUtFWSkgQUNPX0NVU1RPTUtFWTogc3RyaW5nLCBAT3B0aW9uYWwoKSBASW5qZWN0KEZBVl9ERUJVR19NT0RFKSBGQVZfREVCVUdfTU9ERSA6IGJvb2xlYW4pIHtcclxuICAgICAgICBzdXBlcihjZHIsIG5nQ29udHJvbCwgX3ZhbGlkYXRvcnMsIGFjLCBBcHBDb250ZXh0LCBBQ09fQ1VTVE9NS0VZLCBGQVZfREVCVUdfTU9ERSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLkV2YWx1YXRlZE1vZGVsID0gb2JqPy50b1N0cmluZygpIHx8IFwiXCI7XHJcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZShvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5IYXNTdWZmaXggPSAhIXRoaXMuc3VmZml4O1xyXG4gICAgICAgIHRoaXMuSGFzUHJlZml4ID0gISF0aGlzLnByZWZpeDtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgb25Ob3ROdWxsVmFsdWVTZXQoKTogdm9pZCB7IH1cclxufSJdfQ==
@@ -112,7 +112,8 @@ export class FormMultiSelectComponent extends BaseFormControl {
112
112
  toEmit = this.Model.map(m => ({ id: m.id, description: m.itemName }));
113
113
  else if (this.UseCommaSeparatedList)
114
114
  toEmit = this.Model.map(m => m.id).join(',');
115
- super.changed(toEmit);
115
+ this.EvaluatedModel = this.Model.map(t => t.itemName).join(', ');
116
+ super.changed(toEmit, false, true);
116
117
  super.finalized();
117
118
  }
118
119
  }
@@ -120,7 +121,7 @@ FormMultiSelectComponent.decorators = [
120
121
  { type: Component, args: [{
121
122
  selector: "form-multiselect",
122
123
  viewProviders: [{ provide: LocalizationService, useClass: FormMultiSelectComponentLoc }],
123
- template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-top-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : LabelColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <div [class.ms-placeholder]=\"!Model || Model.length == 0\" (click)=\"focused($event)\">\r\n <angular2-multiselect #validationControl=\"ngModel\" type=\"text\"\r\n [(ngModel)]=\"Model\" name=\"{{GeneratedName}}\"\r\n [settings]=\"Settings\" [data]=\"BoundSource\"\r\n (onSelect)=\"changed();\" \r\n (onDeSelect)=\"changed();\" \r\n (onSelectAll)=\"changed();\"\r\n (onDeSelectAll)=\"changed();\" \r\n (onDeSelectAll)=\"Model = []; changed();\">\r\n </angular2-multiselect>\r\n </div>\r\n</ng-template>",
124
+ template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-bottom-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline'\">&nbsp;</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : InputColWidth}}\">\r\n\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n<!----------------------------------------------------------------------------------------------------------->\r\n\r\n<ng-template #controlTemplate>\r\n <div [class.ms-placeholder]=\"!Model || Model.length == 0\" (click)=\"focused($event)\">\r\n <angular2-multiselect #validationControl=\"ngModel\" type=\"text\"\r\n [(ngModel)]=\"Model\" name=\"{{GeneratedName}}\"\r\n [settings]=\"Settings\" [data]=\"BoundSource\"\r\n (onSelect)=\"changed();\" \r\n (onDeSelect)=\"changed();\" \r\n (onSelectAll)=\"changed();\"\r\n (onDeSelectAll)=\"changed();\" \r\n (onDeSelectAll)=\"Model = []; changed();\">\r\n </angular2-multiselect>\r\n </div>\r\n</ng-template>",
124
125
  encapsulation: ViewEncapsulation.None,
125
126
  changeDetection: ChangeDetectionStrategy.Default,
126
127
  styles: [".c-btn{background:#fff;border:1px solid #ccc;color:#333}.selected-list .c-list .c-token{background:#415269}.selected-list .c-list .c-token .c-label{color:#fff}.selected-list .c-list .c-token .c-remove svg{fill:#fff}.selected-list .c-angle-down svg,.selected-list .c-angle-up svg{fill:#333}.dropdown-list ul li:hover{background:#f5f5f5}.arrow-down,.arrow-up{border-bottom:15px solid #fff}.arrow-2{border-bottom:15px solid #ccc}.list-area{border:1px solid #ccc;background:#fff;box-shadow:0 1px 5px #959595}.list-filter,.select-all{border-bottom:1px solid #ccc}.list-filter .c-clear svg,.list-filter .c-search svg{fill:#888}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{border-color:#415269;background-color:#f2f2f2}.pure-checkbox input[type=checkbox]+label{color:#000}.pure-checkbox input[type=checkbox]+label:before{color:#415269;border:1px solid #415269}.pure-checkbox input[type=checkbox]+label:after{background-color:#415269}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{border-color:#fff}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=checkbox]:checked+label:before{background:#415269}.single-select-mode .pure-checkbox input[type=checkbox]:focus+label:before,.single-select-mode .pure-checkbox input[type=checkbox]:hover+label:before{border-color:#415269;background-color:#f2f2f2}.single-select-mode .pure-checkbox input[type=checkbox]+label{color:#000}.single-select-mode .pure-checkbox input[type=checkbox]+label:before{color:transparent!important;border:0 solid #415269}.single-select-mode .pure-checkbox input[type=checkbox]+label:after{background-color:transparent!important}.single-select-mode .pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.single-select-mode .pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.single-select-mode .pure-checkbox input[type=checkbox]+label:after{border-color:#415269}.single-select-mode .pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.single-select-mode .pure-checkbox input[type=checkbox]:checked+label:before{background:none!important}.selected-item{background:#e9f4ff}.btn-iceblue{background:#415269;border:1px solid #ccc;color:#fff}.cuppa-dropdown{margin-top:2px;min-width:200px}.cuppa-dropdown .c-btn{min-height:34px}.cuppa-dropdown .c-angle-down,.cuppa-dropdown .c-angle-up{margin-top:-2px}.selected-list .c-list{width:auto!important;padding-right:35px!important;margin-top:-2px!important}.selected-list .c-list .c-token{padding:3px 22px 3px 8px!important}.ms-placeholder .cuppa-dropdown .selected-list>div>span{color:#aaa}"]
@@ -141,4 +142,4 @@ FormMultiSelectComponent.propDecorators = {
141
142
  UseKeyValues: [{ type: Input }],
142
143
  UseCommaSeparatedList: [{ type: Input }]
143
144
  };
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tdWx0aXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi9mb3Jtcy9mb3JtLW11bHRpc2VsZWN0L2Zvcm0tbXVsdGlzZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBd0IsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhGLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3RCxlQUFlO0FBQ2YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRDs7Ozs7R0FLRztBQVNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxlQUFlO0lBd0J6RCwyQkFBMkI7SUFDM0IsWUFBWSxHQUFzQixFQUFTLEVBQXVCLEVBQXNCLFNBQW9CLEVBQXFDLFdBQXVCLEVBQWMsRUFBd0IsRUFBYyxVQUE0QixFQUFxQyxhQUFxQixFQUFzQyxjQUF3QjtRQUM1VyxLQUFLLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsRUFB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LENBQUMsR0FBRyxDQUFDLENBQUM7UUFFMUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7O1lBMUhKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixhQUFhLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQztnQkFDeEYsa29GQUE4QztnQkFFOUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxPQUFPOzthQUNuRDs7O1lBZlEsaUJBQWlCO1lBUGpCLG1CQUFtQjtZQUhrQixTQUFTLHVCQW1Ea0IsUUFBUSxZQUFJLElBQUk7WUFBeUUsS0FBSyx1QkFBcEQsUUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhO1lBL0MxSSxvQkFBb0IsdUJBK0NrSixRQUFRO1lBL0N4SixnQkFBZ0IsdUJBK0NzSyxRQUFRO3lDQUFrQyxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWE7MENBQTBCLFFBQVEsWUFBSSxNQUFNLFNBQUMsY0FBYzs7OzBCQVpyVixLQUFLOzJCQUdMLEtBQUs7b0NBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFNlbGYsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sU2VydmljZSwgQ29tcG9uZW50Q29udGV4dCB9IGZyb20gJ0Blc2ZhZW56YS9hY2Nlc3MtY29udHJvbCc7XHJcbmltcG9ydCB7IEFDT19DVVNUT01LRVksIEZBVl9ERUJVR19NT0RFIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBCYXNlRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vYmFzZS1mb3JtLWNvbnRyb2xcIjtcclxuaW1wb3J0IHsgRm9ybU11bHRpU2VsZWN0Q29tcG9uZW50TG9jIH0gZnJvbSBcIi4vZm9ybS1tdWx0aXNlbGVjdC5jb21wb25lbnQubG9jXCI7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIGNoZSBwZXJtZXR0ZSBkaSBlZmZldHR1YXJlIHVuYSBzZWxlemlvbmUgbXVsdGlwbGEgZnJhIGdsaSBvZ2dldHRpIHBhc3NhdGkgbmVsbCdJbnB1dCAqKlNvdXJjZSoqXHJcbiAqIFxyXG4gKiBOLkI6IEFsIGNvbnRyYXJpbyBkZWdsaSBhbHRyaSBjb21wb25lbnRpIGZvcm0tKiBxdWVzdG8gdmllbmUgdGVudXRvIGNvbiAqKmNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCoqIGluIHF1YW50byBpbCBjb21wb25lbnRlIFxyXG4gKiB1dGlsaXp6YXRvIGludGVybmFtZW50ZSAoYW5ndWxhcjItbXVsdGlzZWxlY3QpIG5vbiDDqCBzdGF0byBhc3NvbHV0YW1lbnRlIHBlbnNhdG8gcGVyIGVzc2VyZSB1c2F0byBjb24gKipDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gqKlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJmb3JtLW11bHRpc2VsZWN0XCIsXHJcbiAgICB2aWV3UHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogRm9ybU11bHRpU2VsZWN0Q29tcG9uZW50TG9jIH1dLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiZm9ybS1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3R5bGVVcmxzOiBbXCJmb3JtLW11bHRpc2VsZWN0LmNvbXBvbmVudC5jc3NcIl0sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtTXVsdGlTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlRm9ybUNvbnRyb2wgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb2RlbGxvIHRlbXBvcmFuZW8gKipOT04qKiBjb21wYXRpYmlsZSBpbiBtYW5pZXJhIGRpcmV0dGEgY29uIGlsIGNvbXBvbmVudGUgKiphbmd1bGFyMi1tdWx0aXNlbGVjdCoqIHVzYXRvIGludGVybmFtZW50ZVxyXG4gICAgICogXHJcbiAgICAgKiBTZXJ2ZSBkYSBhcHBvZ2dpbyBwZXIgZWZmZXR0dWFyZSB1biByZS1iaW5kIHF1YWxvcmEgbGEgc29yZ2VudGUgY2FtYmlhc3NlIGUgcXVhbG9yYSAqKlJlYmluZE1vZGVsQWZ0ZXJTb3VyY2UqKiBmb3NzZSB0cnVlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgVG1wTW9kZWw6IHN0cmluZyB8IHN0cmluZ1tdIHwge2lkOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmd9W10gPSBbXTtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGxhIHByb3NzaW1hIG1vZGlmaWNhIGFsbGEgU291cmNlIGRldmUgYW5jaGUgZWZmZXR0dWFyZSB1biByZS1iaW5kIGRlbCBtb2RlbGxvLiBTZXJ2ZSBzZSBsYSAqKkJvdW5kU291cmNlKiogcGFzc2EgZGEgbm9uIGF2ZXJlIG9nZ2V0dGkgYWQgYXZlcm5lICovXHJcbiAgICBwcml2YXRlIFJlYmluZE1vZGVsQWZ0ZXJTb3VyY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogUGVybWV0dGUgZGkgc3BlY2lmaWNhcmUgaWwgdGVzdG8gZGVsbGEgTGFiZWwgZmxvdHRhbnRlIG1hdGVyaWFsLXN0eWxlICovXHJcbiAgICBASW5wdXQoKSBTZWxlY3RMYWJlbDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKiogUGVybWV0dGUgYWwgY29tcG9uZW50ZSBkaSBnZXN0aXJlIGNvbWUgbW9kZWxsbyBub24gdW5hIGxpc3RhIGRpIGNoaWF2aSwgbWEgdW5hIGxpc3RhIGRpIEtleVZhbHVlICovXHJcbiAgICBASW5wdXQoKSBVc2VLZXlWYWx1ZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogSW5kaWNhIGFsIGNvbXBvbmVudGUgZGkgZW1ldHRlcmUgdW5hIGxpc3RhIGRpIGNoaWF2aSBzZXBhcmF0ZSBkYSB2aXJnb2xhIHBpdXR0b3N0byBjaGUgdW5hIGxpc3RhIHZlcmEgZSBwcm9wcmlhIGRpIGNoaWF2aS9LZXlWYWx1ZSAqL1xyXG4gICAgQElucHV0KCkgVXNlQ29tbWFTZXBhcmF0ZWRMaXN0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEltcG9zdGF6aW9uaSBkZWwgY29tcG9uZW50ZSBpbnRlcm5vICoqYW5ndWxhcjItbXVsdGlzZWxlY3QqKiAqL1xyXG4gICAgcHVibGljIFNldHRpbmdzOiB7IHNlbGVjdEFsbFRleHQ6IHN0cmluZywgdW5TZWxlY3RBbGxUZXh0OiBzdHJpbmcsIHRleHQ6IHN0cmluZywgZW5hYmxlQ2hlY2tBbGw6IGJvb2xlYW4sIGRpc2FibGVkOiBib29sZWFuLCBsYWJlbEtleTogc3RyaW5nLCB0YWdUb0JvZHk6IGJvb2xlYW4gfSA9IG51bGw7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgICovXHJcbiAgICBjb25zdHJ1Y3RvcihjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsIEBPcHRpb25hbCgpIEBJbmplY3QoTkdfVkFMSURBVE9SUykgX3ZhbGlkYXRvcnM6IEFycmF5PGFueT4sIEBPcHRpb25hbCgpIGFjOiBBY2Nlc3NDb250cm9sU2VydmljZSwgQE9wdGlvbmFsKCkgQXBwQ29udGV4dDogQ29tcG9uZW50Q29udGV4dCwgQE9wdGlvbmFsKCkgQEluamVjdChBQ09fQ1VTVE9NS0VZKSBBQ09fQ1VTVE9NS0VZOiBzdHJpbmcsIEBPcHRpb25hbCgpIEBJbmplY3QoRkFWX0RFQlVHX01PREUpIEZBVl9ERUJVR19NT0RFIDogYm9vbGVhbikge1xyXG4gICAgICAgIHN1cGVyKGNkciwgbmdDb250cm9sLCBfdmFsaWRhdG9ycywgYWMsIEFwcENvbnRleHQsIEFDT19DVVNUT01LRVksIEZBVl9ERUJVR19NT0RFKTtcclxuXHJcbiAgICAgICAgLy8gRGVmYXVsdCBkZWkgc2V0dGluZ3MgcGVyIGV2aXRhcmUgY2hlIHNpYW5vIG1haSBudWxsaSwgYWx0cmltZW50aSBpbCBjYXp6byBkaSBDdXBwYUxhYiBzYWx0YSBpbiBhcmFpYSBjaGUgw6ggdmVyYW1lbnRlIHVuYSBiZWxsZXp6YVxyXG4gICAgICAgIHRoaXMuZXZhbHVhdGVTZXR0aW5ncyhmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIHB1YmxpYyBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgY29uc3QgbmV3U291cmNlID0gY2hhbmdlc1tcIlNvdXJjZVwiXTtcclxuICAgICAgICBpZiAobmV3U291cmNlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy50cnlCaW5kU291cmNlRGlzcGxheSgpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5SZWJpbmRNb2RlbEFmdGVyU291cmNlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5UbXBNb2RlbCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlJlYmluZE1vZGVsQWZ0ZXJTb3VyY2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcmVhZG9ubHkgPSBjaGFuZ2VzW1wiUmVhZG9ubHlcIl07XHJcbiAgICAgICAgdGhpcy5ldmFsdWF0ZVNldHRpbmdzKHJlYWRvbmx5ID8gcmVhZG9ubHkuY3VycmVudFZhbHVlID8/IGZhbHNlIDogdGhpcy5SZWFkb25seSA/PyBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTY3JpdmUgaSBudW92aSBzZXR0aW5ncyBwZXIgaWwgY29tcG9uZW50ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGRpc2FibGVkIEluZGljYSBzZSBpbCBjb21wb25lbnRlIGRldidlc3NlcmUgZGlzYWJpbGl0YXRvIG8gbWVub1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGV2YWx1YXRlU2V0dGluZ3MoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLlNldHRpbmdzID0ge1xyXG4gICAgICAgICAgICBzZWxlY3RBbGxUZXh0OiB0aGlzLmxjLmxvYyhcIlNlbGVjdCBldmVyeXRoaW5nXCIpLFxyXG4gICAgICAgICAgICB1blNlbGVjdEFsbFRleHQ6IHRoaXMubGMubG9jKFwiRGVzZWxlY3QgZXZlcnl0aGluZ1wiKSxcclxuICAgICAgICAgICAgdGV4dDogdGhpcy5TZWxlY3RMYWJlbCB8fCB0aGlzLmxjLmxvYyhcIlNlbGVjdCBvbmUgb3IgbW9yZSB2YWx1ZXMuLi5cIiksXHJcbiAgICAgICAgICAgIGVuYWJsZUNoZWNrQWxsOiB0cnVlLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXHJcbiAgICAgICAgICAgIGxhYmVsS2V5OiBcImRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICAgIHRhZ1RvQm9keTogZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBvbk5vdE51bGxWYWx1ZVNldCgpOiB2b2lkIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGlsIGNvbW9wbmVudGUgaW4gcXVlc3Rpb25lIMOoIGluIGdyYWRvIGRpIGdlc3RpcmUgbmdDb250cm9sIG51bGxpLiBcclxuICAgICAqIEluIHF1ZXN0byBjb21wb25lbnRlIMOoIG5vcm1hbGUgY2hlIHNpYSBjb3PDrCBxdWluZGkgcmVzdGl0dWlzY2Ugc2VtcGxpY2VtZW50ZSAqKnRydWUqKlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gKip0cnVlKiogc2UgZ2VzdGlzY28gbmdDb250cm9sIG51bGxpLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVOdWxsTmdDb250cm9sKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIE92ZXJyaWRlIHBlciBnZXN0aXJlIGlucHV0IGluIGluZ3Jlc3NvICovXHJcbiAgICB3cml0ZVZhbHVlKG9iajogYW55W10gfCBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLlRtcE1vZGVsID0gb2JqO1xyXG4gICAgICAgIGxldCB0b1Bhc3M6IHsgaWQ6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZyB9W10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5Vc2VDb21tYVNlcGFyYXRlZExpc3QgJiYgb2JqICYmICFvYmoubGVuZ3RoKVxyXG4gICAgICAgICAgICBvYmogPSAoPHN0cmluZz5vYmopLnNwbGl0KCcsJyk7XHJcblxyXG4gICAgICAgIC8vUXVpIGFycml2YW5vIHNvbG8gZ2xpIGlkLCBvIHtpZDogeCwgZGVzY3JpcHRpb246IHl9IGluIGNhc28gc29ubyBpbiBVc2VLZXlWYWx1ZXMsIFxyXG4gICAgICAgIC8vZGV2byB0aXJhcmUgZnVvcmkgZ2xpIG9nZ2V0dGkgcmVsYXRpdmkgZSBwaWF6emFybGkgY29tZSBsaXN0YSBwZXIgaWwgTW9kZWxcclxuICAgICAgICBpZiAob2JqICYmIG9iai5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICg8YW55W10+b2JqKS5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLkJvdW5kU291cmNlLmZpbmQobyA9PiBvLmlkID09ICh0aGlzLlVzZUtleVZhbHVlcyA/IHQuaWQgOiB0KSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbSlcclxuICAgICAgICAgICAgICAgICAgICB0b1Bhc3MucHVzaChKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGl0ZW0pKSk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICghdGhpcy5Cb3VuZFNvdXJjZSB8fCB0aGlzLkJvdW5kU291cmNlLmxlbmd0aCA9PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmViaW5kTW9kZWxBZnRlclNvdXJjZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5FdmFsdWF0ZWRNb2RlbCA9IHRvUGFzcy5tYXAodCA9PiB0LmRlc2NyaXB0aW9uKS5qb2luKCcsICcpO1xyXG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodG9QYXNzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSBPdmVycmlkZSBwZXIgZ2VzdGlyZSBpbnB1dCBpbiB1c2NpdGEgKi9cclxuICAgIGNoYW5nZWQoKSB7XHJcbiAgICAgICAgbGV0IHRvRW1pdCA9IG51bGw7XHJcbiAgICAgICAgaWYgKCF0aGlzLlVzZUtleVZhbHVlcyAmJiAhdGhpcy5Vc2VDb21tYVNlcGFyYXRlZExpc3QpXHJcbiAgICAgICAgICAgIHRvRW1pdCA9ICg8YW55W10+dGhpcy5Nb2RlbCkubWFwKG0gPT4gbS5pZCk7XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5Vc2VLZXlWYWx1ZXMpXHJcbiAgICAgICAgICAgIHRvRW1pdCA9ICg8YW55W10+dGhpcy5Nb2RlbCkubWFwKG0gPT4gKHsgaWQ6IG0uaWQsIGRlc2NyaXB0aW9uOiBtLml0ZW1OYW1lIH0pKTtcclxuICAgICAgICBlbHNlIGlmICh0aGlzLlVzZUNvbW1hU2VwYXJhdGVkTGlzdClcclxuICAgICAgICAgICAgdG9FbWl0ID0gKDxhbnlbXT50aGlzLk1vZGVsKS5tYXAobSA9PiBtLmlkKS5qb2luKCcsJyk7XHJcblxyXG4gICAgICAgIHN1cGVyLmNoYW5nZWQodG9FbWl0KTtcclxuICAgICAgICBzdXBlci5maW5hbGl6ZWQoKTtcclxuICAgIH1cclxufSJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tdWx0aXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi9mb3Jtcy9mb3JtLW11bHRpc2VsZWN0L2Zvcm0tbXVsdGlzZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBd0IsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhGLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3RCxlQUFlO0FBQ2YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRDs7Ozs7R0FLRztBQVNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxlQUFlO0lBd0J6RCwyQkFBMkI7SUFDM0IsWUFBWSxHQUFzQixFQUFTLEVBQXVCLEVBQXNCLFNBQW9CLEVBQXFDLFdBQXVCLEVBQWMsRUFBd0IsRUFBYyxVQUE0QixFQUFxQyxhQUFxQixFQUFzQyxjQUF3QjtRQUM1VyxLQUFLLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsRUFB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LENBQUMsR0FBRyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25DLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7WUEzSEosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLGFBQWEsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxDQUFDO2dCQUN4Rixxb0ZBQThDO2dCQUU5QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE9BQU87O2FBQ25EOzs7WUFmUSxpQkFBaUI7WUFQakIsbUJBQW1CO1lBSGtCLFNBQVMsdUJBbURrQixRQUFRLFlBQUksSUFBSTtZQUF5RSxLQUFLLHVCQUFwRCxRQUFRLFlBQUksTUFBTSxTQUFDLGFBQWE7WUEvQzFJLG9CQUFvQix1QkErQ2tKLFFBQVE7WUEvQ3hKLGdCQUFnQix1QkErQ3NLLFFBQVE7eUNBQWtDLFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYTswQ0FBMEIsUUFBUSxZQUFJLE1BQU0sU0FBQyxjQUFjOzs7MEJBWnJWLEtBQUs7MkJBR0wsS0FBSztvQ0FHTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgU2VsZiwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBDb21wb25lbnRDb250ZXh0IH0gZnJvbSAnQGVzZmFlbnphL2FjY2Vzcy1jb250cm9sJztcclxuaW1wb3J0IHsgQUNPX0NVU1RPTUtFWSwgRkFWX0RFQlVHX01PREUgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEJhc2VGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9iYXNlLWZvcm0tY29udHJvbFwiO1xyXG5pbXBvcnQgeyBGb3JtTXVsdGlTZWxlY3RDb21wb25lbnRMb2MgfSBmcm9tIFwiLi9mb3JtLW11bHRpc2VsZWN0LmNvbXBvbmVudC5sb2NcIjtcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgY2hlIHBlcm1ldHRlIGRpIGVmZmV0dHVhcmUgdW5hIHNlbGV6aW9uZSBtdWx0aXBsYSBmcmEgZ2xpIG9nZ2V0dGkgcGFzc2F0aSBuZWxsJ0lucHV0ICoqU291cmNlKipcclxuICogXHJcbiAqIE4uQjogQWwgY29udHJhcmlvIGRlZ2xpIGFsdHJpIGNvbXBvbmVudGkgZm9ybS0qIHF1ZXN0byB2aWVuZSB0ZW51dG8gY29uICoqY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0KiogaW4gcXVhbnRvIGlsIGNvbXBvbmVudGUgXHJcbiAqIHV0aWxpenphdG8gaW50ZXJuYW1lbnRlIChhbmd1bGFyMi1tdWx0aXNlbGVjdCkgbm9uIMOoIHN0YXRvIGFzc29sdXRhbWVudGUgcGVuc2F0byBwZXIgZXNzZXJlIHVzYXRvIGNvbiAqKkNoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCoqXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImZvcm0tbXVsdGlzZWxlY3RcIixcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBGb3JtTXVsdGlTZWxlY3RDb21wb25lbnRMb2MgfV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCJmb3JtLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdHlsZVVybHM6IFtcImZvcm0tbXVsdGlzZWxlY3QuY29tcG9uZW50LmNzc1wiXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHRcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1NdWx0aVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ29udHJvbCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vZGVsbG8gdGVtcG9yYW5lbyAqKk5PTioqIGNvbXBhdGliaWxlIGluIG1hbmllcmEgZGlyZXR0YSBjb24gaWwgY29tcG9uZW50ZSAqKmFuZ3VsYXIyLW11bHRpc2VsZWN0KiogdXNhdG8gaW50ZXJuYW1lbnRlXHJcbiAgICAgKiBcclxuICAgICAqIFNlcnZlIGRhIGFwcG9nZ2lvIHBlciBlZmZldHR1YXJlIHVuIHJlLWJpbmQgcXVhbG9yYSBsYSBzb3JnZW50ZSBjYW1iaWFzc2UgZSBxdWFsb3JhICoqUmViaW5kTW9kZWxBZnRlclNvdXJjZSoqIGZvc3NlIHRydWVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBUbXBNb2RlbDogc3RyaW5nIHwgc3RyaW5nW10gfCB7aWQ6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZ31bXSA9IFtdO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgbGEgcHJvc3NpbWEgbW9kaWZpY2EgYWxsYSBTb3VyY2UgZGV2ZSBhbmNoZSBlZmZldHR1YXJlIHVuIHJlLWJpbmQgZGVsIG1vZGVsbG8uIFNlcnZlIHNlIGxhICoqQm91bmRTb3VyY2UqKiBwYXNzYSBkYSBub24gYXZlcmUgb2dnZXR0aSBhZCBhdmVybmUgKi9cclxuICAgIHByaXZhdGUgUmViaW5kTW9kZWxBZnRlclNvdXJjZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBQZXJtZXR0ZSBkaSBzcGVjaWZpY2FyZSBpbCB0ZXN0byBkZWxsYSBMYWJlbCBmbG90dGFudGUgbWF0ZXJpYWwtc3R5bGUgKi9cclxuICAgIEBJbnB1dCgpIFNlbGVjdExhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBQZXJtZXR0ZSBhbCBjb21wb25lbnRlIGRpIGdlc3RpcmUgY29tZSBtb2RlbGxvIG5vbiB1bmEgbGlzdGEgZGkgY2hpYXZpLCBtYSB1bmEgbGlzdGEgZGkgS2V5VmFsdWUgKi9cclxuICAgIEBJbnB1dCgpIFVzZUtleVZhbHVlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBJbmRpY2EgYWwgY29tcG9uZW50ZSBkaSBlbWV0dGVyZSB1bmEgbGlzdGEgZGkgY2hpYXZpIHNlcGFyYXRlIGRhIHZpcmdvbGEgcGl1dHRvc3RvIGNoZSB1bmEgbGlzdGEgdmVyYSBlIHByb3ByaWEgZGkgY2hpYXZpL0tleVZhbHVlICovXHJcbiAgICBASW5wdXQoKSBVc2VDb21tYVNlcGFyYXRlZExpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogSW1wb3N0YXppb25pIGRlbCBjb21wb25lbnRlIGludGVybm8gKiphbmd1bGFyMi1tdWx0aXNlbGVjdCoqICovXHJcbiAgICBwdWJsaWMgU2V0dGluZ3M6IHsgc2VsZWN0QWxsVGV4dDogc3RyaW5nLCB1blNlbGVjdEFsbFRleHQ6IHN0cmluZywgdGV4dDogc3RyaW5nLCBlbmFibGVDaGVja0FsbDogYm9vbGVhbiwgZGlzYWJsZWQ6IGJvb2xlYW4sIGxhYmVsS2V5OiBzdHJpbmcsIHRhZ1RvQm9keTogYm9vbGVhbiB9ID0gbnVsbDtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSwgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgQE9wdGlvbmFsKCkgQEluamVjdChOR19WQUxJREFUT1JTKSBfdmFsaWRhdG9yczogQXJyYXk8YW55PiwgQE9wdGlvbmFsKCkgYWM6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBAT3B0aW9uYWwoKSBBcHBDb250ZXh0OiBDb21wb25lbnRDb250ZXh0LCBAT3B0aW9uYWwoKSBASW5qZWN0KEFDT19DVVNUT01LRVkpIEFDT19DVVNUT01LRVk6IHN0cmluZywgQE9wdGlvbmFsKCkgQEluamVjdChGQVZfREVCVUdfTU9ERSkgRkFWX0RFQlVHX01PREUgOiBib29sZWFuKSB7XHJcbiAgICAgICAgc3VwZXIoY2RyLCBuZ0NvbnRyb2wsIF92YWxpZGF0b3JzLCBhYywgQXBwQ29udGV4dCwgQUNPX0NVU1RPTUtFWSwgRkFWX0RFQlVHX01PREUpO1xyXG5cclxuICAgICAgICAvLyBEZWZhdWx0IGRlaSBzZXR0aW5ncyBwZXIgZXZpdGFyZSBjaGUgc2lhbm8gbWFpIG51bGxpLCBhbHRyaW1lbnRpIGlsIGNhenpvIGRpIEN1cHBhTGFiIHNhbHRhIGluIGFyYWlhIGNoZSDDqCB2ZXJhbWVudGUgdW5hIGJlbGxlenphXHJcbiAgICAgICAgdGhpcy5ldmFsdWF0ZVNldHRpbmdzKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgcHVibGljIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBjb25zdCBuZXdTb3VyY2UgPSBjaGFuZ2VzW1wiU291cmNlXCJdO1xyXG4gICAgICAgIGlmIChuZXdTb3VyY2UpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnRyeUJpbmRTb3VyY2VEaXNwbGF5KCk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLlJlYmluZE1vZGVsQWZ0ZXJTb3VyY2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLlRtcE1vZGVsKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuUmViaW5kTW9kZWxBZnRlclNvdXJjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCByZWFkb25seSA9IGNoYW5nZXNbXCJSZWFkb25seVwiXTtcclxuICAgICAgICB0aGlzLmV2YWx1YXRlU2V0dGluZ3MocmVhZG9ubHkgPyByZWFkb25seS5jdXJyZW50VmFsdWUgPz8gZmFsc2UgOiB0aGlzLlJlYWRvbmx5ID8/IGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNjcml2ZSBpIG51b3ZpIHNldHRpbmdzIHBlciBpbCBjb21wb25lbnRlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZGlzYWJsZWQgSW5kaWNhIHNlIGlsIGNvbXBvbmVudGUgZGV2J2Vzc2VyZSBkaXNhYmlsaXRhdG8gbyBtZW5vXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZXZhbHVhdGVTZXR0aW5ncyhkaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuU2V0dGluZ3MgPSB7XHJcbiAgICAgICAgICAgIHNlbGVjdEFsbFRleHQ6IHRoaXMubGMubG9jKFwiU2VsZWN0IGV2ZXJ5dGhpbmdcIiksXHJcbiAgICAgICAgICAgIHVuU2VsZWN0QWxsVGV4dDogdGhpcy5sYy5sb2MoXCJEZXNlbGVjdCBldmVyeXRoaW5nXCIpLFxyXG4gICAgICAgICAgICB0ZXh0OiB0aGlzLlNlbGVjdExhYmVsIHx8IHRoaXMubGMubG9jKFwiU2VsZWN0IG9uZSBvciBtb3JlIHZhbHVlcy4uLlwiKSxcclxuICAgICAgICAgICAgZW5hYmxlQ2hlY2tBbGw6IHRydWUsXHJcbiAgICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcclxuICAgICAgICAgICAgbGFiZWxLZXk6IFwiZGVzY3JpcHRpb25cIixcclxuICAgICAgICAgICAgdGFnVG9Cb2R5OiBmYWxzZVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG9uTm90TnVsbFZhbHVlU2V0KCk6IHZvaWQgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgaWwgY29tb3BuZW50ZSBpbiBxdWVzdGlvbmUgw6ggaW4gZ3JhZG8gZGkgZ2VzdGlyZSBuZ0NvbnRyb2wgbnVsbGkuIFxyXG4gICAgICogSW4gcXVlc3RvIGNvbXBvbmVudGUgw6ggbm9ybWFsZSBjaGUgc2lhIGNvc8OsIHF1aW5kaSByZXN0aXR1aXNjZSBzZW1wbGljZW1lbnRlICoqdHJ1ZSoqXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSAqKnRydWUqKiBzZSBnZXN0aXNjbyBuZ0NvbnRyb2wgbnVsbGksICoqZmFsc2UqKiBhbHRyaW1lbnRpXHJcbiAgICAgKi9cclxuICAgIGhhbmRsZU51bGxOZ0NvbnRyb2woKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgT3ZlcnJpZGUgcGVyIGdlc3RpcmUgaW5wdXQgaW4gaW5ncmVzc28gKi9cclxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnlbXSB8IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuVG1wTW9kZWwgPSBvYmo7XHJcbiAgICAgICAgbGV0IHRvUGFzczogeyBpZDogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nIH1bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZih0aGlzLlVzZUNvbW1hU2VwYXJhdGVkTGlzdCAmJiBvYmogJiYgIW9iai5sZW5ndGgpXHJcbiAgICAgICAgICAgIG9iaiA9ICg8c3RyaW5nPm9iaikuc3BsaXQoJywnKTtcclxuXHJcbiAgICAgICAgLy9RdWkgYXJyaXZhbm8gc29sbyBnbGkgaWQsIG8ge2lkOiB4LCBkZXNjcmlwdGlvbjogeX0gaW4gY2FzbyBzb25vIGluIFVzZUtleVZhbHVlcywgXHJcbiAgICAgICAgLy9kZXZvIHRpcmFyZSBmdW9yaSBnbGkgb2dnZXR0aSByZWxhdGl2aSBlIHBpYXp6YXJsaSBjb21lIGxpc3RhIHBlciBpbCBNb2RlbFxyXG4gICAgICAgIGlmIChvYmogJiYgb2JqLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgKDxhbnlbXT5vYmopLmZvckVhY2godCA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgaXRlbSA9IHRoaXMuQm91bmRTb3VyY2UuZmluZChvID0+IG8uaWQgPT0gKHRoaXMuVXNlS2V5VmFsdWVzID8gdC5pZCA6IHQpKTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtKVxyXG4gICAgICAgICAgICAgICAgICAgIHRvUGFzcy5wdXNoKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbSkpKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzLkJvdW5kU291cmNlIHx8IHRoaXMuQm91bmRTb3VyY2UubGVuZ3RoID09IDApXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5SZWJpbmRNb2RlbEFmdGVyU291cmNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkV2YWx1YXRlZE1vZGVsID0gdG9QYXNzLm1hcCh0ID0+IHQuZGVzY3JpcHRpb24pLmpvaW4oJywgJyk7XHJcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh0b1Bhc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIE92ZXJyaWRlIHBlciBnZXN0aXJlIGlucHV0IGluIHVzY2l0YSAqL1xyXG4gICAgY2hhbmdlZCgpIHtcclxuICAgICAgICBsZXQgdG9FbWl0ID0gbnVsbDtcclxuICAgICAgICBpZiAoIXRoaXMuVXNlS2V5VmFsdWVzICYmICF0aGlzLlVzZUNvbW1hU2VwYXJhdGVkTGlzdClcclxuICAgICAgICAgICAgdG9FbWl0ID0gKDxhbnlbXT50aGlzLk1vZGVsKS5tYXAobSA9PiBtLmlkKTtcclxuICAgICAgICBlbHNlIGlmICh0aGlzLlVzZUtleVZhbHVlcylcclxuICAgICAgICAgICAgdG9FbWl0ID0gKDxhbnlbXT50aGlzLk1vZGVsKS5tYXAobSA9PiAoeyBpZDogbS5pZCwgZGVzY3JpcHRpb246IG0uaXRlbU5hbWUgfSkpO1xyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuVXNlQ29tbWFTZXBhcmF0ZWRMaXN0KVxyXG4gICAgICAgICAgICB0b0VtaXQgPSAoPGFueVtdPnRoaXMuTW9kZWwpLm1hcChtID0+IG0uaWQpLmpvaW4oJywnKTtcclxuXHJcbiAgICAgICAgdGhpcy5FdmFsdWF0ZWRNb2RlbCA9IHRoaXMuTW9kZWwubWFwKHQgPT4gdC5pdGVtTmFtZSkuam9pbignLCAnKTtcclxuICAgICAgICBzdXBlci5jaGFuZ2VkKHRvRW1pdCwgZmFsc2UsIHRydWUpO1xyXG4gICAgICAgIHN1cGVyLmZpbmFsaXplZCgpO1xyXG4gICAgfVxyXG59Il19