sidesys-generic-ui 0.0.10 → 0.0.11

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 (28) hide show
  1. package/esm2020/lib/checkbox/s-checkbox.component.mjs +33 -4
  2. package/esm2020/lib/form/s-form.component.mjs +1 -1
  3. package/esm2020/lib/input/components/input-text/s-input-text.component.mjs +36 -4
  4. package/esm2020/lib/input/components/input-textarea/s-input-textarea.component.mjs +32 -4
  5. package/esm2020/lib/input/index.mjs +1 -3
  6. package/esm2020/lib/input/input.module.mjs +1 -11
  7. package/esm2020/lib/radio/s-radio.component.mjs +33 -4
  8. package/esm2020/lib/select/select-multiple/s-select-multiple.component.mjs +32 -5
  9. package/esm2020/lib/select/select-simple/s-select-simple.component.mjs +46 -22
  10. package/esm2020/lib/toggle-switch/s-toggle-switch.component.mjs +32 -4
  11. package/fesm2015/sidesys-generic-ui.mjs +239 -77
  12. package/fesm2015/sidesys-generic-ui.mjs.map +1 -1
  13. package/fesm2020/sidesys-generic-ui.mjs +227 -69
  14. package/fesm2020/sidesys-generic-ui.mjs.map +1 -1
  15. package/lib/checkbox/s-checkbox.component.d.ts +7 -1
  16. package/lib/input/components/input-text/s-input-text.component.d.ts +7 -1
  17. package/lib/input/components/input-textarea/s-input-textarea.component.d.ts +7 -1
  18. package/lib/input/index.d.ts +0 -2
  19. package/lib/input/input.module.d.ts +5 -7
  20. package/lib/radio/s-radio.component.d.ts +7 -1
  21. package/lib/select/select-multiple/s-select-multiple.component.d.ts +7 -1
  22. package/lib/select/select-simple/s-select-simple.component.d.ts +12 -5
  23. package/lib/toggle-switch/s-toggle-switch.component.d.ts +7 -1
  24. package/package.json +1 -1
  25. package/esm2020/lib/input/components/input-email/s-input-email.component.mjs +0 -14
  26. package/esm2020/lib/input/components/input-password/s-input-password.component.mjs +0 -14
  27. package/lib/input/components/input-email/s-input-email.component.d.ts +0 -8
  28. package/lib/input/components/input-password/s-input-password.component.d.ts +0 -8
@@ -1,9 +1,12 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
1
+ import { Component, Input, Output, EventEmitter, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/forms";
4
5
  import * as i2 from "@angular/common";
5
6
  export class SCheckboxComponent {
6
7
  constructor() {
8
+ this.onChange = (_) => { };
9
+ this.onTouch = () => { };
7
10
  this.disable = false;
8
11
  this.isUndefined = false;
9
12
  this.label = "";
@@ -12,15 +15,41 @@ export class SCheckboxComponent {
12
15
  ngOnInit() {
13
16
  }
14
17
  doCheck(event) {
18
+ this.onTouch();
19
+ this.onChange(event);
15
20
  this.isUndefined = false;
16
21
  this.emitSelection.emit({ value: this.value, event: event });
17
22
  }
23
+ writeValue(value) {
24
+ if (value) {
25
+ this.model = value;
26
+ this.value = value;
27
+ }
28
+ }
29
+ registerOnChange(fn) {
30
+ this.onChange = fn;
31
+ }
32
+ registerOnTouched(fn) {
33
+ this.onTouch = fn;
34
+ }
18
35
  }
19
36
  SCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: SCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- SCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: SCheckboxComponent, selector: "s-checkbox", inputs: { value: "value", model: "model", disable: "disable", isUndefined: "isUndefined", label: "label" }, outputs: { emitSelection: "emitSelection" }, ngImport: i0, template: "<input type=\"checkbox\" [ngClass]=\"isUndefined ? 'undefined':''\" [value]=\"value\" [ngModel]=\"model\" [disabled]=\"disable\"\r\n (ngModelChange)=\"doCheck($event)\" />\r\n<label [ngClass]=\"!isUndefined && !model && disable ? 'disabled': ''\" *ngIf=\"label\"\r\n class=\"s-body-2 label-check\">{{label}}</label>", styles: ["input[type=checkbox]{-webkit-appearance:none;appearance:none;background-color:var(--neutrals-1200);margin:0;font:inherit;width:12px;height:12px;border:1px solid var(--neutrals-800);border-radius:2px;display:inline-grid;place-content:center;vertical-align:middle}input[type=checkbox]:before{content:\"\";width:12px;height:12px;transform:scale(0);box-shadow:inset 1px 1px var(--neutrals-1200);background-color:var(--neutrals-1200);transform-origin:bottom left;clip-path:polygon(3.5px 5px,5px 6.5px,8.5px 3px,10px 4.5px,5px 9.5px,2px 6.5px)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox].undefined{background-color:var(--primary-600);border-color:var(--primary-600)}input[type=checkbox].undefined:before{transform:scale(1);clip-path:polygon(2px 5px,10px 5px,10px 7px,2px 7px)}input[type=checkbox]:checked{background-color:var(--primary-600);border-color:var(--primary-600)}input[type=checkbox][disabled]{background-color:var(--neutrals-1000);border-color:var(--neutrals-900)}input[type=checkbox][disabled]:checked,input[type=checkbox][disabled].undefined{background-color:var(--primary-500);border-color:var(--primary-500)}label.label-check{margin-left:8px}label.disabled{color:var(--neutrals-700)}\n"], directives: [{ type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
37
+ SCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: SCheckboxComponent, selector: "s-checkbox", inputs: { value: "value", model: "model", disable: "disable", isUndefined: "isUndefined", label: "label" }, outputs: { emitSelection: "emitSelection" }, providers: [
38
+ {
39
+ provide: NG_VALUE_ACCESSOR,
40
+ useExisting: forwardRef(() => SCheckboxComponent),
41
+ multi: true
42
+ }
43
+ ], ngImport: i0, template: "<input type=\"checkbox\" [ngClass]=\"isUndefined ? 'undefined':''\" [value]=\"value\" [ngModel]=\"model\" [disabled]=\"disable\"\r\n (ngModelChange)=\"doCheck($event)\" />\r\n<label [ngClass]=\"!isUndefined && !model && disable ? 'disabled': ''\" *ngIf=\"label\"\r\n class=\"s-body-2 label-check\">{{label}}</label>", styles: ["input[type=checkbox]{-webkit-appearance:none;appearance:none;background-color:var(--neutrals-1200);margin:0;font:inherit;width:12px;height:12px;border:1px solid var(--neutrals-800);border-radius:2px;display:inline-grid;place-content:center;vertical-align:middle}input[type=checkbox]:before{content:\"\";width:12px;height:12px;transform:scale(0);box-shadow:inset 1px 1px var(--neutrals-1200);background-color:var(--neutrals-1200);transform-origin:bottom left;clip-path:polygon(3.5px 5px,5px 6.5px,8.5px 3px,10px 4.5px,5px 9.5px,2px 6.5px)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox].undefined{background-color:var(--primary-600);border-color:var(--primary-600)}input[type=checkbox].undefined:before{transform:scale(1);clip-path:polygon(2px 5px,10px 5px,10px 7px,2px 7px)}input[type=checkbox]:checked{background-color:var(--primary-600);border-color:var(--primary-600)}input[type=checkbox][disabled]{background-color:var(--neutrals-1000);border-color:var(--neutrals-900)}input[type=checkbox][disabled]:checked,input[type=checkbox][disabled].undefined{background-color:var(--primary-500);border-color:var(--primary-500)}label.label-check{margin-left:8px}label.disabled{color:var(--neutrals-700)}\n"], directives: [{ type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
21
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: SCheckboxComponent, decorators: [{
22
45
  type: Component,
23
- args: [{ selector: 's-checkbox', template: "<input type=\"checkbox\" [ngClass]=\"isUndefined ? 'undefined':''\" [value]=\"value\" [ngModel]=\"model\" [disabled]=\"disable\"\r\n (ngModelChange)=\"doCheck($event)\" />\r\n<label [ngClass]=\"!isUndefined && !model && disable ? 'disabled': ''\" *ngIf=\"label\"\r\n class=\"s-body-2 label-check\">{{label}}</label>", styles: ["input[type=checkbox]{-webkit-appearance:none;appearance:none;background-color:var(--neutrals-1200);margin:0;font:inherit;width:12px;height:12px;border:1px solid var(--neutrals-800);border-radius:2px;display:inline-grid;place-content:center;vertical-align:middle}input[type=checkbox]:before{content:\"\";width:12px;height:12px;transform:scale(0);box-shadow:inset 1px 1px var(--neutrals-1200);background-color:var(--neutrals-1200);transform-origin:bottom left;clip-path:polygon(3.5px 5px,5px 6.5px,8.5px 3px,10px 4.5px,5px 9.5px,2px 6.5px)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox].undefined{background-color:var(--primary-600);border-color:var(--primary-600)}input[type=checkbox].undefined:before{transform:scale(1);clip-path:polygon(2px 5px,10px 5px,10px 7px,2px 7px)}input[type=checkbox]:checked{background-color:var(--primary-600);border-color:var(--primary-600)}input[type=checkbox][disabled]{background-color:var(--neutrals-1000);border-color:var(--neutrals-900)}input[type=checkbox][disabled]:checked,input[type=checkbox][disabled].undefined{background-color:var(--primary-500);border-color:var(--primary-500)}label.label-check{margin-left:8px}label.disabled{color:var(--neutrals-700)}\n"] }]
46
+ args: [{ selector: 's-checkbox', providers: [
47
+ {
48
+ provide: NG_VALUE_ACCESSOR,
49
+ useExisting: forwardRef(() => SCheckboxComponent),
50
+ multi: true
51
+ }
52
+ ], template: "<input type=\"checkbox\" [ngClass]=\"isUndefined ? 'undefined':''\" [value]=\"value\" [ngModel]=\"model\" [disabled]=\"disable\"\r\n (ngModelChange)=\"doCheck($event)\" />\r\n<label [ngClass]=\"!isUndefined && !model && disable ? 'disabled': ''\" *ngIf=\"label\"\r\n class=\"s-body-2 label-check\">{{label}}</label>", styles: ["input[type=checkbox]{-webkit-appearance:none;appearance:none;background-color:var(--neutrals-1200);margin:0;font:inherit;width:12px;height:12px;border:1px solid var(--neutrals-800);border-radius:2px;display:inline-grid;place-content:center;vertical-align:middle}input[type=checkbox]:before{content:\"\";width:12px;height:12px;transform:scale(0);box-shadow:inset 1px 1px var(--neutrals-1200);background-color:var(--neutrals-1200);transform-origin:bottom left;clip-path:polygon(3.5px 5px,5px 6.5px,8.5px 3px,10px 4.5px,5px 9.5px,2px 6.5px)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox].undefined{background-color:var(--primary-600);border-color:var(--primary-600)}input[type=checkbox].undefined:before{transform:scale(1);clip-path:polygon(2px 5px,10px 5px,10px 7px,2px 7px)}input[type=checkbox]:checked{background-color:var(--primary-600);border-color:var(--primary-600)}input[type=checkbox][disabled]{background-color:var(--neutrals-1000);border-color:var(--neutrals-900)}input[type=checkbox][disabled]:checked,input[type=checkbox][disabled].undefined{background-color:var(--primary-500);border-color:var(--primary-500)}label.label-check{margin-left:8px}label.disabled{color:var(--neutrals-700)}\n"] }]
24
53
  }], ctorParameters: function () { return []; }, propDecorators: { value: [{
25
54
  type: Input
26
55
  }], model: [{
@@ -34,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
34
63
  }], emitSelection: [{
35
64
  type: Output
36
65
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlc3lzLWdlbmVyaWMtdWkvc3JjL2xpYi9jaGVja2JveC9zLWNoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpZGVzeXMtZ2VuZXJpYy11aS9zcmMvbGliL2NoZWNrYm94L3MtY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFVLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVEvRSxNQUFNLE9BQU8sa0JBQWtCO0lBUTdCO1FBTFMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVwQyxDQUFDO0lBRWYsUUFBUTtJQUNSLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBVTtRQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7OytHQWhCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwyTUNSL0IsbVVBR2tEOzJGREtyQyxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsWUFBWTswRUFNYixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBPbkluaXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzLWNoZWNrYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcy1jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcy1jaGVja2JveC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU0NoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSB2YWx1ZTogYW55O1xyXG4gIEBJbnB1dCgpIG1vZGVsOiBhbnk7XHJcbiAgQElucHV0KCkgZGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzVW5kZWZpbmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9IFwiXCI7XHJcbiAgQE91dHB1dCgpIGVtaXRTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKXt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgZG9DaGVjayhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmlzVW5kZWZpbmVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmVtaXRTZWxlY3Rpb24uZW1pdCh7dmFsdWU6IHRoaXMudmFsdWUsIGV2ZW50OiBldmVudH0pO1xyXG4gIH1cclxufVxyXG4iLCI8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW25nQ2xhc3NdPVwiaXNVbmRlZmluZWQgPyAndW5kZWZpbmVkJzonJ1wiIFt2YWx1ZV09XCJ2YWx1ZVwiIFtuZ01vZGVsXT1cIm1vZGVsXCIgW2Rpc2FibGVkXT1cImRpc2FibGVcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiZG9DaGVjaygkZXZlbnQpXCIgLz5cclxuPGxhYmVsIFtuZ0NsYXNzXT1cIiFpc1VuZGVmaW5lZCAmJiAhbW9kZWwgJiYgZGlzYWJsZSA/ICdkaXNhYmxlZCc6ICcnXCIgKm5nSWY9XCJsYWJlbFwiXHJcbiAgICBjbGFzcz1cInMtYm9keS0yIGxhYmVsLWNoZWNrXCI+e3tsYWJlbH19PC9sYWJlbD4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlc3lzLWdlbmVyaWMtdWkvc3JjL2xpYi9jaGVja2JveC9zLWNoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpZGVzeXMtZ2VuZXJpYy11aS9zcmMvbGliL2NoZWNrYm94L3MtY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFVLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBZXpFLE1BQU0sT0FBTyxrQkFBa0I7SUFZN0I7UUFWQSxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzQixZQUFPLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSVgsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVwQyxDQUFDO0lBRWYsUUFBUTtJQUNSLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBVTtRQUNoQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDOzsrR0FyQ1Usa0JBQWtCO21HQUFsQixrQkFBa0IsOExBVGxCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7WUFDakQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDBCQ2JILG1VQUdrRDsyRkRhckMsa0JBQWtCO2tCQWI5QixTQUFTOytCQUNFLFlBQVksYUFHWDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7MEVBUVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzLWNoZWNrYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcy1jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcy1jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU0NoZWNrYm94Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU0NoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0ICwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuICBvblRvdWNoID0gKCkgPT4geyB9O1xyXG5cclxuICBASW5wdXQoKSB2YWx1ZTogYW55O1xyXG4gIEBJbnB1dCgpIG1vZGVsOiBhbnk7XHJcbiAgQElucHV0KCkgZGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzVW5kZWZpbmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9IFwiXCI7XHJcbiAgQE91dHB1dCgpIGVtaXRTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKXt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgZG9DaGVjayhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgIHRoaXMub25DaGFuZ2UoZXZlbnQpO1xyXG4gICAgdGhpcy5pc1VuZGVmaW5lZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5lbWl0U2VsZWN0aW9uLmVtaXQoe3ZhbHVlOiB0aGlzLnZhbHVlLCBldmVudDogZXZlbnR9KTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSB2YWx1ZVxyXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxufVxyXG4iLCI8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW25nQ2xhc3NdPVwiaXNVbmRlZmluZWQgPyAndW5kZWZpbmVkJzonJ1wiIFt2YWx1ZV09XCJ2YWx1ZVwiIFtuZ01vZGVsXT1cIm1vZGVsXCIgW2Rpc2FibGVkXT1cImRpc2FibGVcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiZG9DaGVjaygkZXZlbnQpXCIgLz5cclxuPGxhYmVsIFtuZ0NsYXNzXT1cIiFpc1VuZGVmaW5lZCAmJiAhbW9kZWwgJiYgZGlzYWJsZSA/ICdkaXNhYmxlZCc6ICcnXCIgKm5nSWY9XCJsYWJlbFwiXHJcbiAgICBjbGFzcz1cInMtYm9keS0yIGxhYmVsLWNoZWNrXCI+e3tsYWJlbH19PC9sYWJlbD4iXX0=
@@ -104,7 +104,7 @@ export class SFormComponent {
104
104
  }
105
105
  }
106
106
  SFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: SFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
107
- SFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: SFormComponent, selector: "s-form", inputs: { controls: "controls", submitClick: "submitClick", requiredMessage: "requiredMessage", emailMessage: "emailMessage", dafaultMessage: "dafaultMessage" }, outputs: { controlsChangeEvent: "controlsChangeEvent", submitEvent: "submitEvent", changeSelectEvent: "changeSelectEvent", clickButtonEvent: "clickButtonEvent" }, usesOnChanges: true, ngImport: i0, template: "<form *ngIf=\"form && controls\" [formGroup]=\"form\">\r\n <div class=\"form-control\" [ngStyle]=\"{width: c.width + '%', display: c.width < 100 ? 'inline-block' : 'initial'}\"\r\n *ngFor=\"let c of controls\">\r\n <div *ngIf=\"c.show && enabledTypes.indexOf(c.inputType) != -1\">\r\n <div *ngIf=\"c.inputType != 'button' && c.inputType != 'select' && c.inputType != 'checkbox'\">\r\n <input [id]=\"c.formControlName\" [type]=\"c.inputType\" [disabled]=\"c.disabled\"\r\n [formControlName]=\"c.formControlName\" style=\"display: none;\">\r\n <div class=\"form-group\">\r\n <label class=\"label\">{{c.label}}</label>\r\n <s-input-text [type]=\"c.inputType\" [text]=\"c.value\" [disabled]=\"c.disabled\"\r\n [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\" [placeHolder]=\"c.inputPlaceHolder\"\r\n [name]=\"c.formControlName + c.inputType\"\r\n (textChangeEvent)=\"changeControl(c.formControlName, $event)\"\r\n [title]=\"c.inputPlaceHolder\"></s-input-text>\r\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\r\n <span *ngIf=\"checkErrors(c.formControlName)\">\r\n {{getErrorMessage(c.formControlName)}}\r\n </span>\r\n </s-error-control>\r\n </div>\r\n </div>\r\n <div *ngIf=\"c.inputType == 'button' && c.button != undefined\">\r\n <div class=\"form-group\">\r\n <s-button [pill]=\"c.button.pill\" [invert]=\"c.button.invert\" [type]=\"c.button.type\" size=\"sm\"\r\n [title]=\"c.inputPlaceHolder\" [class]=\"c.button.class\" [size]=\"c.button.size ? c.button.size : 'md' \" (click)=\"buttonClick(c.formControlName)\">\r\n {{c.label}}\r\n <s-icon-mat *ngIf=\"c.button.icon\">{{c.button.icon}}</s-icon-mat>\r\n </s-button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"c.inputType == 'checkbox'\">\r\n <input [id]=\"c.formControlName\" [type]=\"c.inputType\" [disabled]=\"c.disabled\"\r\n [formControlName]=\"c.formControlName\" style=\"display: none;\">\r\n <div class=\"form-group\">\r\n <s-checkbox [value]=\"c.value\" [label]=\"c.label\" (emitSelection)=\"changeControl(c.formControlName, $event.event.toString())\"></s-checkbox>\r\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\r\n <span *ngIf=\"checkErrors(c.formControlName)\">\r\n {{getErrorMessage(c.formControlName)}}\r\n </span>\r\n </s-error-control>\r\n </div>\r\n </div>\r\n <div *ngIf=\"c.inputType == 'select'\">\r\n <select [id]=\"c.formControlName\" [name]=\"c.formControlName\" [formControlName]=\"c.formControlName\" style=\"display: none;\">\r\n <option *ngFor=\"let o of c.selectModel\" [value]=\"o.key\" [selected]=\"o.key == c.value\">{{o.value}}\r\n </option>\r\n </select>\r\n <div class=\"form-group\">\r\n <label class=\"label\">{{c.label}}</label>\r\n <s-select-simple [options]=\"c.selectModel\" (selectEvent)=\"changeSelect($event, c.formControlName)\" [title]=\"c.inputPlaceHolder\" [selectedValue]=\"c.value\"></s-select-simple>\r\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\r\n <span *ngIf=\"checkErrors(c.formControlName)\">\r\n {{getErrorMessage(c.formControlName)}}\r\n </span>\r\n </s-error-control>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>", styles: [".form-control{vertical-align:middle}.button .primary .round-sm .sm{width:100%!important}\n"], components: [{ type: i1.SInputTextComponent, selector: "s-input-text", inputs: ["text", "name", "placeHolder", "disabled", "theme", "type", "classAdd", "help", "size"], outputs: ["textChangeEvent", "clickHelpIconEvent"] }, { type: i2.SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { type: i3.SButtonComponent, selector: "s-button", inputs: ["disabled", "class", "rounded", "pill", "size", "invert", "selected", "type", "border", "loading", "position", "theme"] }, { type: i4.SIconMaterialComponent, selector: "s-icon-mat", inputs: ["size", "color", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { type: i5.SCheckboxComponent, selector: "s-checkbox", inputs: ["value", "model", "disable", "isUndefined", "label"], outputs: ["emitSelection"] }, { type: i6.SSelectSimpleComponent, selector: "s-select-simple", inputs: ["placeholder", "options", "selectedValue", "label", "display", "size"], outputs: ["selectEvent"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i8.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i8.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i8.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], encapsulation: i0.ViewEncapsulation.None });
107
+ SFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: SFormComponent, selector: "s-form", inputs: { controls: "controls", submitClick: "submitClick", requiredMessage: "requiredMessage", emailMessage: "emailMessage", dafaultMessage: "dafaultMessage" }, outputs: { controlsChangeEvent: "controlsChangeEvent", submitEvent: "submitEvent", changeSelectEvent: "changeSelectEvent", clickButtonEvent: "clickButtonEvent" }, usesOnChanges: true, ngImport: i0, template: "<form *ngIf=\"form && controls\" [formGroup]=\"form\">\r\n <div class=\"form-control\" [ngStyle]=\"{width: c.width + '%', display: c.width < 100 ? 'inline-block' : 'initial'}\"\r\n *ngFor=\"let c of controls\">\r\n <div *ngIf=\"c.show && enabledTypes.indexOf(c.inputType) != -1\">\r\n <div *ngIf=\"c.inputType != 'button' && c.inputType != 'select' && c.inputType != 'checkbox'\">\r\n <input [id]=\"c.formControlName\" [type]=\"c.inputType\" [disabled]=\"c.disabled\"\r\n [formControlName]=\"c.formControlName\" style=\"display: none;\">\r\n <div class=\"form-group\">\r\n <label class=\"label\">{{c.label}}</label>\r\n <s-input-text [type]=\"c.inputType\" [text]=\"c.value\" [disabled]=\"c.disabled\"\r\n [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\" [placeHolder]=\"c.inputPlaceHolder\"\r\n [name]=\"c.formControlName + c.inputType\"\r\n (textChangeEvent)=\"changeControl(c.formControlName, $event)\"\r\n [title]=\"c.inputPlaceHolder\"></s-input-text>\r\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\r\n <span *ngIf=\"checkErrors(c.formControlName)\">\r\n {{getErrorMessage(c.formControlName)}}\r\n </span>\r\n </s-error-control>\r\n </div>\r\n </div>\r\n <div *ngIf=\"c.inputType == 'button' && c.button != undefined\">\r\n <div class=\"form-group\">\r\n <s-button [pill]=\"c.button.pill\" [invert]=\"c.button.invert\" [type]=\"c.button.type\" size=\"sm\"\r\n [title]=\"c.inputPlaceHolder\" [class]=\"c.button.class\" [size]=\"c.button.size ? c.button.size : 'md' \" (click)=\"buttonClick(c.formControlName)\">\r\n {{c.label}}\r\n <s-icon-mat *ngIf=\"c.button.icon\">{{c.button.icon}}</s-icon-mat>\r\n </s-button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"c.inputType == 'checkbox'\">\r\n <input [id]=\"c.formControlName\" [type]=\"c.inputType\" [disabled]=\"c.disabled\"\r\n [formControlName]=\"c.formControlName\" style=\"display: none;\">\r\n <div class=\"form-group\">\r\n <s-checkbox [value]=\"c.value\" [label]=\"c.label\" (emitSelection)=\"changeControl(c.formControlName, $event.event.toString())\"></s-checkbox>\r\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\r\n <span *ngIf=\"checkErrors(c.formControlName)\">\r\n {{getErrorMessage(c.formControlName)}}\r\n </span>\r\n </s-error-control>\r\n </div>\r\n </div>\r\n <div *ngIf=\"c.inputType == 'select'\">\r\n <select [id]=\"c.formControlName\" [name]=\"c.formControlName\" [formControlName]=\"c.formControlName\" style=\"display: none;\">\r\n <option *ngFor=\"let o of c.selectModel\" [value]=\"o.key\" [selected]=\"o.key == c.value\">{{o.value}}\r\n </option>\r\n </select>\r\n <div class=\"form-group\">\r\n <label class=\"label\">{{c.label}}</label>\r\n <s-select-simple [options]=\"c.selectModel\" (selectEvent)=\"changeSelect($event, c.formControlName)\" [title]=\"c.inputPlaceHolder\" [selectedValue]=\"c.value\"></s-select-simple>\r\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\r\n <span *ngIf=\"checkErrors(c.formControlName)\">\r\n {{getErrorMessage(c.formControlName)}}\r\n </span>\r\n </s-error-control>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>", styles: [".form-control{vertical-align:middle}.button .primary .round-sm .sm{width:100%!important}\n"], components: [{ type: i1.SInputTextComponent, selector: "s-input-text", inputs: ["text", "name", "placeHolder", "disabled", "theme", "type", "classAdd", "help", "size"], outputs: ["textChangeEvent", "clickHelpIconEvent"] }, { type: i2.SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }, { type: i3.SButtonComponent, selector: "s-button", inputs: ["disabled", "class", "rounded", "pill", "size", "invert", "selected", "type", "border", "loading", "position", "theme"] }, { type: i4.SIconMaterialComponent, selector: "s-icon-mat", inputs: ["size", "color", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { type: i5.SCheckboxComponent, selector: "s-checkbox", inputs: ["value", "model", "disable", "isUndefined", "label"], outputs: ["emitSelection"] }, { type: i6.SSelectSimpleComponent, selector: "s-select-simple", inputs: ["placeholder", "options", "selectedValue", "selectLabel", "display", "size"], outputs: ["selectEvent"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i8.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i8.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i8.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], encapsulation: i0.ViewEncapsulation.None });
108
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: SFormComponent, decorators: [{
109
109
  type: Component,
110
110
  args: [{ selector: 's-form', encapsulation: ViewEncapsulation.None, template: "<form *ngIf=\"form && controls\" [formGroup]=\"form\">\r\n <div class=\"form-control\" [ngStyle]=\"{width: c.width + '%', display: c.width < 100 ? 'inline-block' : 'initial'}\"\r\n *ngFor=\"let c of controls\">\r\n <div *ngIf=\"c.show && enabledTypes.indexOf(c.inputType) != -1\">\r\n <div *ngIf=\"c.inputType != 'button' && c.inputType != 'select' && c.inputType != 'checkbox'\">\r\n <input [id]=\"c.formControlName\" [type]=\"c.inputType\" [disabled]=\"c.disabled\"\r\n [formControlName]=\"c.formControlName\" style=\"display: none;\">\r\n <div class=\"form-group\">\r\n <label class=\"label\">{{c.label}}</label>\r\n <s-input-text [type]=\"c.inputType\" [text]=\"c.value\" [disabled]=\"c.disabled\"\r\n [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\" [placeHolder]=\"c.inputPlaceHolder\"\r\n [name]=\"c.formControlName + c.inputType\"\r\n (textChangeEvent)=\"changeControl(c.formControlName, $event)\"\r\n [title]=\"c.inputPlaceHolder\"></s-input-text>\r\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\r\n <span *ngIf=\"checkErrors(c.formControlName)\">\r\n {{getErrorMessage(c.formControlName)}}\r\n </span>\r\n </s-error-control>\r\n </div>\r\n </div>\r\n <div *ngIf=\"c.inputType == 'button' && c.button != undefined\">\r\n <div class=\"form-group\">\r\n <s-button [pill]=\"c.button.pill\" [invert]=\"c.button.invert\" [type]=\"c.button.type\" size=\"sm\"\r\n [title]=\"c.inputPlaceHolder\" [class]=\"c.button.class\" [size]=\"c.button.size ? c.button.size : 'md' \" (click)=\"buttonClick(c.formControlName)\">\r\n {{c.label}}\r\n <s-icon-mat *ngIf=\"c.button.icon\">{{c.button.icon}}</s-icon-mat>\r\n </s-button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"c.inputType == 'checkbox'\">\r\n <input [id]=\"c.formControlName\" [type]=\"c.inputType\" [disabled]=\"c.disabled\"\r\n [formControlName]=\"c.formControlName\" style=\"display: none;\">\r\n <div class=\"form-group\">\r\n <s-checkbox [value]=\"c.value\" [label]=\"c.label\" (emitSelection)=\"changeControl(c.formControlName, $event.event.toString())\"></s-checkbox>\r\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\r\n <span *ngIf=\"checkErrors(c.formControlName)\">\r\n {{getErrorMessage(c.formControlName)}}\r\n </span>\r\n </s-error-control>\r\n </div>\r\n </div>\r\n <div *ngIf=\"c.inputType == 'select'\">\r\n <select [id]=\"c.formControlName\" [name]=\"c.formControlName\" [formControlName]=\"c.formControlName\" style=\"display: none;\">\r\n <option *ngFor=\"let o of c.selectModel\" [value]=\"o.key\" [selected]=\"o.key == c.value\">{{o.value}}\r\n </option>\r\n </select>\r\n <div class=\"form-group\">\r\n <label class=\"label\">{{c.label}}</label>\r\n <s-select-simple [options]=\"c.selectModel\" (selectEvent)=\"changeSelect($event, c.formControlName)\" [title]=\"c.inputPlaceHolder\" [selectedValue]=\"c.value\"></s-select-simple>\r\n <s-error-control [theme]=\"checkErrors(c.formControlName) ? 'red' : 'default'\">\r\n <span *ngIf=\"checkErrors(c.formControlName)\">\r\n {{getErrorMessage(c.formControlName)}}\r\n </span>\r\n </s-error-control>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>", styles: [".form-control{vertical-align:middle}.button .primary .round-sm .sm{width:100%!important}\n"] }]
@@ -1,10 +1,13 @@
1
- import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "../../../icon-material/s-icon-material.component";
4
5
  import * as i2 from "@angular/common";
5
6
  import * as i3 from "@angular/forms";
6
7
  export class SInputTextComponent {
7
8
  constructor() {
9
+ this.onChange = (_) => { };
10
+ this.onTouch = () => { };
8
11
  this.text = '';
9
12
  this.name = '';
10
13
  this.placeHolder = '';
@@ -67,6 +70,8 @@ export class SInputTextComponent {
67
70
  }
68
71
  }
69
72
  onTextChange() {
73
+ this.onTouch();
74
+ this.onChange(this.inputText);
70
75
  if (this.inputTimeout) {
71
76
  clearTimeout(this.inputTimeout);
72
77
  }
@@ -80,10 +85,14 @@ export class SInputTextComponent {
80
85
  }
81
86
  this.inputTimeout = setTimeout(() => {
82
87
  if (val) {
88
+ this.onTouch();
89
+ this.onChange(val);
83
90
  this.textChangeEvent.next(val);
84
91
  this.inputText = val;
85
92
  }
86
93
  else {
94
+ this.onTouch();
95
+ this.onChange(val);
87
96
  this.textChangeEvent.next(this.inputText);
88
97
  }
89
98
  }, 500, null);
@@ -94,12 +103,35 @@ export class SInputTextComponent {
94
103
  colorClick() {
95
104
  document.getElementById(this.name)?.click();
96
105
  }
106
+ writeValue(value) {
107
+ if (value) {
108
+ this.inputText = value;
109
+ }
110
+ }
111
+ registerOnChange(fn) {
112
+ this.onChange = fn;
113
+ }
114
+ registerOnTouched(fn) {
115
+ this.onTouch = fn;
116
+ }
97
117
  }
98
118
  SInputTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: SInputTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
99
- SInputTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: SInputTextComponent, selector: "s-input-text", inputs: { text: "text", name: "name", placeHolder: "placeHolder", disabled: "disabled", theme: "theme", type: "type", classAdd: "classAdd", help: "help", size: "size" }, outputs: { textChangeEvent: "textChangeEvent", clickHelpIconEvent: "clickHelpIconEvent" }, usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\r\n <!-- El switch case con cada caso por input ['text', 'password', 'email' , 'phone' , 'url' , 'search']-->\r\n\r\n <!-- case text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <!-- <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">email</s-icon-mat>\r\n </div> -->\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case password -->\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-password {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">vpn_key</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input type=\"{{visibility ? 'text' : 'password'}}\" [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon cursor\"\r\n (click)=\"visibility = !visibility\">{{visibility ? 'visibility' :\r\n 'visibility_off'}}</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case email -->\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-email {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">mail_outline</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-phone {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">phone</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case url -->\r\n <ng-container *ngSwitchCase=\"'url'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-url {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n http://\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case search -->\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-search {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">search</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <!-- <div class=\"content-right\">\r\n <s-icon-mat class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div> -->\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case color -->\r\n <ng-container *ngSwitchCase=\"'color'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-color {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <input #color [id]=\"name\" [name]=\"name\" type=\"color\" [disabled]=\"disabled\" [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\" style=\"width: 40px; padding: 0;\">\r\n </div>\r\n <div class=\"content-center\" (click)=\"this.color.click()\">\r\n <input [type]=\"text\" autocomplete=\"off\" [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" disabled>\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" (ngModelChange)=\"onTextChangeVal($event)\"\r\n [ngModel]=\"inputText | date:'yyyy-MM-dd' : 'UTC'\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case default -->\r\n <ng-container *ngSwitchDefault>\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <!-- <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">email</s-icon-mat>\r\n </div> -->\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</ng-container>", styles: [".content-input-main-626:has(input:focus){border:1px solid var(--primary-600);box-shadow:0 0 0 4px #0091fe26,0 1px 2px #1018280d}.content-input-main-626.theme-green:has(input:focus){border:1px solid var(--green-500);box-shadow:0 0 0 4px #36b37e26,0 1px 2px #1018280d}.content-input-main-626.theme-yellow:has(input:focus){border:1px solid var(--yellow-500);box-shadow:0 0 0 4px #ffab0026,0 1px 2px #1018280d}.content-input-main-626.theme-red:has(input:focus){border:1px solid var(--red-500);box-shadow:0 0 0 4px #ff563026,0 1px 2px #1018280d}.content-input-main-626.sm input{height:22px;font-size:.75rem}.content-input-main-626.sm .icon{width:20px;cursor:default}.content-input-main-626.sm .icon span{font-size:1.2em;display:flex}.content-input-main-626{display:flex;border:1px solid var(--secondary-500);border-radius:4px;padding:0 8px;margin:3px 0;background-color:var(--neutrals-1200)}.content-input-main-626 input{width:100%;border:0px;color:var(--secondary-600);writing-mode:unset;height:36px;font-size:inherit;background-color:var(--neutrals-1200)}.content-input-main-626 input:focus,.content-input-main-626 input:focus-visible{outline:none}.content-input-main-626 .icon{width:20px;cursor:default}.content-input-main-626 .icon span{display:flex}.content-input-main-626 .content-center{width:100%;background-color:var(--neutrals-1200)}.content-input-main-626 .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:8px;color:var(--primary-600)}.content-input-main-626 .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:8px;color:var(--secondary-600)}.disabled-active{background-color:var(--neutrals-1100)}.theme-red{border:1px solid var(--red-500)}.theme-red .icon.report span{color:var(--red-600)}.theme-green{border:1px solid var(--green-500)}.theme-green .icon.report span{color:var(--green-600)}.theme-yellow{border:1px solid var(--yellow-500)}.theme-yellow .icon.report span{color:var(--yellow-600)}.content-input-main-626.content-input-main-password .content-right .icon span{color:var(--secondary-500)}.content-input-main-url .content-left,.content-input-main-color .content-left{border-right:1px solid var(--secondary-500);padding-right:8px;color:var(--secondary-500);font-size:.9rem;padding-left:8px}.content-input-main-url,.content-input-main-color{padding-left:0}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px var(--neutrals-1200) inset!important}\n"], components: [{ type: i1.SIconMaterialComponent, selector: "s-icon-mat", inputs: ["size", "color", "fill", "weight", "grade", "opticalSize", "style", "type"] }], directives: [{ type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "date": i2.DatePipe }, encapsulation: i0.ViewEncapsulation.None });
119
+ SInputTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: SInputTextComponent, selector: "s-input-text", inputs: { text: "text", name: "name", placeHolder: "placeHolder", disabled: "disabled", theme: "theme", type: "type", classAdd: "classAdd", help: "help", size: "size" }, outputs: { textChangeEvent: "textChangeEvent", clickHelpIconEvent: "clickHelpIconEvent" }, providers: [
120
+ {
121
+ provide: NG_VALUE_ACCESSOR,
122
+ useExisting: forwardRef(() => SInputTextComponent),
123
+ multi: true
124
+ }
125
+ ], usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\r\n <!-- El switch case con cada caso por input ['text', 'password', 'email' , 'phone' , 'url' , 'search']-->\r\n\r\n <!-- case text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <!-- <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">email</s-icon-mat>\r\n </div> -->\r\n <div class=\"content-center\">\r\n <input \r\n [disabled]=\"disabled\" \r\n [type]=\"type\" \r\n [id]=\"name\" \r\n [name]=\"name\" \r\n autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\"\r\n [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\"\r\n >\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case password -->\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-password {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">vpn_key</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input type=\"{{visibility ? 'text' : 'password'}}\" [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon cursor\"\r\n (click)=\"visibility = !visibility\">{{visibility ? 'visibility' :\r\n 'visibility_off'}}</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case email -->\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-email {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">mail_outline</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-phone {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">phone</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case url -->\r\n <ng-container *ngSwitchCase=\"'url'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-url {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n http://\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case search -->\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-search {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">search</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <!-- <div class=\"content-right\">\r\n <s-icon-mat class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div> -->\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case color -->\r\n <ng-container *ngSwitchCase=\"'color'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-color {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <input #color [id]=\"name\" [name]=\"name\" type=\"color\" [disabled]=\"disabled\" [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\" style=\"width: 40px; padding: 0;\">\r\n </div>\r\n <div class=\"content-center\" (click)=\"this.color.click()\">\r\n <input [type]=\"text\" autocomplete=\"off\" [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" [disabled]=\"disabled\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" (ngModelChange)=\"onTextChangeVal($event)\"\r\n [ngModel]=\"inputText | date:'yyyy-MM-dd' : 'UTC'\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case default -->\r\n <ng-container *ngSwitchDefault>\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <!-- <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">email</s-icon-mat>\r\n </div> -->\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</ng-container>", styles: [".content-input-main-626:has(input:focus){border:1px solid var(--primary-600);box-shadow:0 0 0 4px #0091fe26,0 1px 2px #1018280d}.content-input-main-626.theme-green:has(input:focus){border:1px solid var(--green-500);box-shadow:0 0 0 4px #36b37e26,0 1px 2px #1018280d}.content-input-main-626.theme-yellow:has(input:focus){border:1px solid var(--yellow-500);box-shadow:0 0 0 4px #ffab0026,0 1px 2px #1018280d}.content-input-main-626.theme-red:has(input:focus){border:1px solid var(--red-500);box-shadow:0 0 0 4px #ff563026,0 1px 2px #1018280d}.content-input-main-626.sm input{height:22px;font-size:.75rem}.content-input-main-626.sm .icon{width:20px;cursor:default}.content-input-main-626.sm .icon span{font-size:1.2em;display:flex}.content-input-main-626{display:flex;border:1px solid var(--secondary-500);border-radius:4px;padding:0 8px;margin:3px 0;background-color:var(--neutrals-1200)}.content-input-main-626 input{width:100%;border:0px;color:var(--secondary-600);writing-mode:unset;height:36px;font-size:inherit;background-color:var(--neutrals-1200)}.content-input-main-626 input:focus,.content-input-main-626 input:focus-visible{outline:none}.content-input-main-626 .icon{width:20px;cursor:default}.content-input-main-626 .icon span{display:flex}.content-input-main-626 .content-center{width:100%;background-color:var(--neutrals-1200)}.content-input-main-626 .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:8px;color:var(--primary-600)}.content-input-main-626 .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:8px;color:var(--secondary-600)}.disabled-active{background-color:var(--neutrals-1100)}.theme-red{border:1px solid var(--red-500)}.theme-red .icon.report span{color:var(--red-600)}.theme-green{border:1px solid var(--green-500)}.theme-green .icon.report span{color:var(--green-600)}.theme-yellow{border:1px solid var(--yellow-500)}.theme-yellow .icon.report span{color:var(--yellow-600)}.content-input-main-626.content-input-main-password .content-right .icon span{color:var(--secondary-500)}.content-input-main-url .content-left,.content-input-main-color .content-left{border-right:1px solid var(--secondary-500);padding-right:8px;color:var(--secondary-500);font-size:.9rem;padding-left:8px}.content-input-main-url,.content-input-main-color{padding-left:0}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px var(--neutrals-1200) inset!important}\n"], components: [{ type: i1.SIconMaterialComponent, selector: "s-icon-mat", inputs: ["size", "color", "fill", "weight", "grade", "opticalSize", "style", "type"] }], directives: [{ type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "date": i2.DatePipe }, encapsulation: i0.ViewEncapsulation.None });
100
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: SInputTextComponent, decorators: [{
101
127
  type: Component,
102
- args: [{ selector: 's-input-text', encapsulation: ViewEncapsulation.None, template: "<ng-container [ngSwitch]=\"type\">\r\n <!-- El switch case con cada caso por input ['text', 'password', 'email' , 'phone' , 'url' , 'search']-->\r\n\r\n <!-- case text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <!-- <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">email</s-icon-mat>\r\n </div> -->\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case password -->\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-password {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">vpn_key</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input type=\"{{visibility ? 'text' : 'password'}}\" [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon cursor\"\r\n (click)=\"visibility = !visibility\">{{visibility ? 'visibility' :\r\n 'visibility_off'}}</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case email -->\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-email {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">mail_outline</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-phone {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">phone</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case url -->\r\n <ng-container *ngSwitchCase=\"'url'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-url {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n http://\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case search -->\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-search {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">search</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <!-- <div class=\"content-right\">\r\n <s-icon-mat class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div> -->\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case color -->\r\n <ng-container *ngSwitchCase=\"'color'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-color {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <input #color [id]=\"name\" [name]=\"name\" type=\"color\" [disabled]=\"disabled\" [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\" style=\"width: 40px; padding: 0;\">\r\n </div>\r\n <div class=\"content-center\" (click)=\"this.color.click()\">\r\n <input [type]=\"text\" autocomplete=\"off\" [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" disabled>\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" (ngModelChange)=\"onTextChangeVal($event)\"\r\n [ngModel]=\"inputText | date:'yyyy-MM-dd' : 'UTC'\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case default -->\r\n <ng-container *ngSwitchDefault>\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <!-- <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">email</s-icon-mat>\r\n </div> -->\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</ng-container>", styles: [".content-input-main-626:has(input:focus){border:1px solid var(--primary-600);box-shadow:0 0 0 4px #0091fe26,0 1px 2px #1018280d}.content-input-main-626.theme-green:has(input:focus){border:1px solid var(--green-500);box-shadow:0 0 0 4px #36b37e26,0 1px 2px #1018280d}.content-input-main-626.theme-yellow:has(input:focus){border:1px solid var(--yellow-500);box-shadow:0 0 0 4px #ffab0026,0 1px 2px #1018280d}.content-input-main-626.theme-red:has(input:focus){border:1px solid var(--red-500);box-shadow:0 0 0 4px #ff563026,0 1px 2px #1018280d}.content-input-main-626.sm input{height:22px;font-size:.75rem}.content-input-main-626.sm .icon{width:20px;cursor:default}.content-input-main-626.sm .icon span{font-size:1.2em;display:flex}.content-input-main-626{display:flex;border:1px solid var(--secondary-500);border-radius:4px;padding:0 8px;margin:3px 0;background-color:var(--neutrals-1200)}.content-input-main-626 input{width:100%;border:0px;color:var(--secondary-600);writing-mode:unset;height:36px;font-size:inherit;background-color:var(--neutrals-1200)}.content-input-main-626 input:focus,.content-input-main-626 input:focus-visible{outline:none}.content-input-main-626 .icon{width:20px;cursor:default}.content-input-main-626 .icon span{display:flex}.content-input-main-626 .content-center{width:100%;background-color:var(--neutrals-1200)}.content-input-main-626 .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:8px;color:var(--primary-600)}.content-input-main-626 .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:8px;color:var(--secondary-600)}.disabled-active{background-color:var(--neutrals-1100)}.theme-red{border:1px solid var(--red-500)}.theme-red .icon.report span{color:var(--red-600)}.theme-green{border:1px solid var(--green-500)}.theme-green .icon.report span{color:var(--green-600)}.theme-yellow{border:1px solid var(--yellow-500)}.theme-yellow .icon.report span{color:var(--yellow-600)}.content-input-main-626.content-input-main-password .content-right .icon span{color:var(--secondary-500)}.content-input-main-url .content-left,.content-input-main-color .content-left{border-right:1px solid var(--secondary-500);padding-right:8px;color:var(--secondary-500);font-size:.9rem;padding-left:8px}.content-input-main-url,.content-input-main-color{padding-left:0}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px var(--neutrals-1200) inset!important}\n"] }]
128
+ args: [{ selector: 's-input-text', encapsulation: ViewEncapsulation.None, providers: [
129
+ {
130
+ provide: NG_VALUE_ACCESSOR,
131
+ useExisting: forwardRef(() => SInputTextComponent),
132
+ multi: true
133
+ }
134
+ ], template: "<ng-container [ngSwitch]=\"type\">\r\n <!-- El switch case con cada caso por input ['text', 'password', 'email' , 'phone' , 'url' , 'search']-->\r\n\r\n <!-- case text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <!-- <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">email</s-icon-mat>\r\n </div> -->\r\n <div class=\"content-center\">\r\n <input \r\n [disabled]=\"disabled\" \r\n [type]=\"type\" \r\n [id]=\"name\" \r\n [name]=\"name\" \r\n autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\"\r\n [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\"\r\n >\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case password -->\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-password {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">vpn_key</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input type=\"{{visibility ? 'text' : 'password'}}\" [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon cursor\"\r\n (click)=\"visibility = !visibility\">{{visibility ? 'visibility' :\r\n 'visibility_off'}}</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case email -->\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-email {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">mail_outline</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-phone {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">phone</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case url -->\r\n <ng-container *ngSwitchCase=\"'url'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-url {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n http://\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case search -->\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-search {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">search</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <!-- <div class=\"content-right\">\r\n <s-icon-mat class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div> -->\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case color -->\r\n <ng-container *ngSwitchCase=\"'color'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-color {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <input #color [id]=\"name\" [name]=\"name\" type=\"color\" [disabled]=\"disabled\" [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\" style=\"width: 40px; padding: 0;\">\r\n </div>\r\n <div class=\"content-center\" (click)=\"this.color.click()\">\r\n <input [type]=\"text\" autocomplete=\"off\" [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" [disabled]=\"disabled\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" (ngModelChange)=\"onTextChangeVal($event)\"\r\n [ngModel]=\"inputText | date:'yyyy-MM-dd' : 'UTC'\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case default -->\r\n <ng-container *ngSwitchDefault>\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <!-- <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">email</s-icon-mat>\r\n </div> -->\r\n <div class=\"content-center\">\r\n <input [disabled]=\"disabled\" [type]=\"type\" [id]=\"name\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</ng-container>", styles: [".content-input-main-626:has(input:focus){border:1px solid var(--primary-600);box-shadow:0 0 0 4px #0091fe26,0 1px 2px #1018280d}.content-input-main-626.theme-green:has(input:focus){border:1px solid var(--green-500);box-shadow:0 0 0 4px #36b37e26,0 1px 2px #1018280d}.content-input-main-626.theme-yellow:has(input:focus){border:1px solid var(--yellow-500);box-shadow:0 0 0 4px #ffab0026,0 1px 2px #1018280d}.content-input-main-626.theme-red:has(input:focus){border:1px solid var(--red-500);box-shadow:0 0 0 4px #ff563026,0 1px 2px #1018280d}.content-input-main-626.sm input{height:22px;font-size:.75rem}.content-input-main-626.sm .icon{width:20px;cursor:default}.content-input-main-626.sm .icon span{font-size:1.2em;display:flex}.content-input-main-626{display:flex;border:1px solid var(--secondary-500);border-radius:4px;padding:0 8px;margin:3px 0;background-color:var(--neutrals-1200)}.content-input-main-626 input{width:100%;border:0px;color:var(--secondary-600);writing-mode:unset;height:36px;font-size:inherit;background-color:var(--neutrals-1200)}.content-input-main-626 input:focus,.content-input-main-626 input:focus-visible{outline:none}.content-input-main-626 .icon{width:20px;cursor:default}.content-input-main-626 .icon span{display:flex}.content-input-main-626 .content-center{width:100%;background-color:var(--neutrals-1200)}.content-input-main-626 .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:8px;color:var(--primary-600)}.content-input-main-626 .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:8px;color:var(--secondary-600)}.disabled-active{background-color:var(--neutrals-1100)}.theme-red{border:1px solid var(--red-500)}.theme-red .icon.report span{color:var(--red-600)}.theme-green{border:1px solid var(--green-500)}.theme-green .icon.report span{color:var(--green-600)}.theme-yellow{border:1px solid var(--yellow-500)}.theme-yellow .icon.report span{color:var(--yellow-600)}.content-input-main-626.content-input-main-password .content-right .icon span{color:var(--secondary-500)}.content-input-main-url .content-left,.content-input-main-color .content-left{border-right:1px solid var(--secondary-500);padding-right:8px;color:var(--secondary-500);font-size:.9rem;padding-left:8px}.content-input-main-url,.content-input-main-color{padding-left:0}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px var(--neutrals-1200) inset!important}\n"] }]
103
135
  }], ctorParameters: function () { return []; }, propDecorators: { text: [{
104
136
  type: Input
105
137
  }], name: [{
@@ -123,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
123
155
  }], clickHelpIconEvent: [{
124
156
  type: Output
125
157
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy1pbnB1dC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpZGVzeXMtZ2VuZXJpYy11aS9zcmMvbGliL2lucHV0L2NvbXBvbmVudHMvaW5wdXQtdGV4dC9zLWlucHV0LXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvaW5wdXQvY29tcG9uZW50cy9pbnB1dC10ZXh0L3MtaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUTVILE1BQU0sT0FBTyxtQkFBbUI7SUFpQzlCO1FBL0JTLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixnQkFBVyxHQUFZLEVBQUUsQ0FBQztRQUMxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBWTFCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixTQUFJLEdBQWdCLElBQUksQ0FBQztRQUdsQyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLFVBQUssR0FBVyxNQUFNLENBQUM7UUFDdkIsV0FBTSxHQUFXLFNBQVMsQ0FBQztRQUMzQixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRW5CLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM3Qyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRXhDLENBQUM7SUExQmpCLElBQ0ksS0FBSyxLQUFhLE9BQU8s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LENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQzthQUN0QjtpQkFDSTtnQkFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDM0M7UUFDSCxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxVQUFVO1FBQ1IsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7Z0hBN0dVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDhVQ1JoQyw2bVRBMExlOzJGRGxMRixtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsY0FBYyxpQkFHVCxpQkFBaUIsQ0FBQyxJQUFJOzBFQUk1QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRixLQUFLO3NCQURSLEtBQUs7Z0JBTUYsSUFBSTtzQkFEUCxLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFXSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncy1pbnB1dC10ZXh0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcy1pbnB1dC10ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zLWlucHV0LXRleHQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU0lucHV0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KCkgdGV4dDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgcGxhY2VIb2xkZXI/OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCB0aGVtZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fdGhlbWU7IH1cclxuICBzZXQgdGhlbWUodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RoZW1lID0gWydkZWZhdWx0JywgJ2dyZWVuJywgJ3llbGxvdycsICdyZWQnXS5pbmRleE9mKHZhbCkgIT0gLTEgPyB2YWwgOiAnZGVmYXVsdCc7XHJcbiAgfTtcclxuICBASW5wdXQoKVxyXG4gIGdldCB0eXBlKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLl90eXBlOyB9XHJcbiAgc2V0IHR5cGUodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3R5cGUgPSBbJ3RleHQnLCAncGFzc3dvcmQnLCAnZW1haWwnLCAncGhvbmUnLCAndXJsJywgJ3NlYXJjaCcsICdudW1iZXInLCAnY29sb3InLCAnZGF0ZSddLmluZGV4T2YodmFsKSAhPSAtMSA/IHZhbCA6ICd0ZXh0JztcclxuICB9O1xyXG4gIEBJbnB1dCgpIGNsYXNzQWRkOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBoZWxwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgPSAnbWQnO1xyXG5cclxuICBpbnB1dFRpbWVvdXQ/OiBhbnk7XHJcbiAgaW5wdXRUZXh0OiBzdHJpbmcgPSAnJztcclxuICBfdHlwZTogc3RyaW5nID0gJ3RleHQnO1xyXG4gIF90aGVtZTogc3RyaW5nID0gJ2RlZmF1bHQnO1xyXG4gIGRpc2FibGVkc3R5bGU6IHN0cmluZyA9ICcnO1xyXG4gIHZpc2liaWxpdHkgPSBmYWxzZTtcclxuICBpY29uTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGluY29uU3ltYm9sOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSB0ZXh0Q2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgY2xpY2tIZWxwSWNvbkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl90eXBlID09ICdjb2xvcicgJiYgdGhpcy50ZXh0ID09ICcnKSB7XHJcbiAgICAgIHRoaXMudGV4dCA9ICcjMDAwMDAwJ1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5wdXRUZXh0ID0gdGhpcy50ZXh0O1xyXG5cclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWRzdHlsZSA9IFwiZGlzYWJsZWQtYWN0aXZlXCJcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvYWRUaGVtZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3RoZW1lJ10pIHtcclxuICAgICAgdGhpcy5sb2FkVGhlbWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZFRoZW1lKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLnRoZW1lKSB7XHJcbiAgICAgIGNhc2UgXCJkZWZhdWx0XCI6XHJcbiAgICAgICAgdGhpcy5pY29uTmFtZSA9IFwiXCJcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcInJlZFwiOlxyXG4gICAgICAgIHRoaXMuaWNvbk5hbWUgPSBcImVycm9yX291dGxpbmVcIlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiZ3JlZW5cIjpcclxuICAgICAgICB0aGlzLmljb25OYW1lID0gXCJjaGVja19jaXJjbGVfb3V0bGluZVwiXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJ5ZWxsb3dcIjpcclxuICAgICAgICB0aGlzLmluY29uU3ltYm9sID0gdHJ1ZVxyXG4gICAgICAgIHRoaXMuaWNvbk5hbWUgPSBcIndhcm5pbmdcIlxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLmljb25OYW1lID0gXCJcIlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UZXh0Q2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmlucHV0VGltZW91dCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbnB1dFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy50ZXh0Q2hhbmdlRXZlbnQubmV4dCh0aGlzLmlucHV0VGV4dCk7XHJcbiAgICB9LCA1MDAsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgb25UZXh0Q2hhbmdlVmFsKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dFRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW5wdXRUaW1lb3V0KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlucHV0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgdGhpcy50ZXh0Q2hhbmdlRXZlbnQubmV4dCh2YWwpO1xyXG4gICAgICAgIHRoaXMuaW5wdXRUZXh0ID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGV4dENoYW5nZUV2ZW50Lm5leHQodGhpcy5pbnB1dFRleHQpO1xyXG4gICAgICB9XHJcbiAgICB9LCA1MDAsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tJY29uKCkge1xyXG4gICAgdGhpcy5jbGlja0hlbHBJY29uRXZlbnQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgY29sb3JDbGljaygpIHtcclxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMubmFtZSk/LmNsaWNrKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cclxuICAgIDwhLS0gRWwgc3dpdGNoIGNhc2UgY29uIGNhZGEgY2FzbyBwb3IgaW5wdXQgIFsndGV4dCcsICdwYXNzd29yZCcsICdlbWFpbCcgLCAncGhvbmUnICwgJ3VybCcgLCAnc2VhcmNoJ10tLT5cclxuXHJcbiAgICA8IS0tIGNhc2UgdGV4dCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tNjI2IGNvbnRlbnQtaW5wdXQtbWFpbi10ZXh0IHt7c2l6ZX19IHRoZW1lLXt7dGhlbWV9fSB7e2NsYXNzQWRkfX0ge3tkaXNhYmxlZHN0eWxlfX1cIj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29udGVudC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBjbGFzcz1cImljb25cIj5lbWFpbDwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdHlwZV09XCJ0eXBlXCIgW2lkXT1cIm5hbWVcIiBbbmFtZV09XCJuYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgIT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBbdHlwZV09XCJpbmNvblN5bWJvbD8nc3ltYm9sJzonaWNvbidcIiBjbGFzcz1cImljb24gcmVwb3J0XCI+e3tpY29uTmFtZX19PC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSA9PSAnZGVmYXVsdCcgJiYgaGVscFwiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgKGNsaWNrKT1cImNsaWNrSWNvbigpXCIgY2xhc3M9XCJpY29uIGN1cnNvclwiPmhlbHBfb3V0bGluZTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIGNhc2UgcGFzc3dvcmQgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncGFzc3dvcmQnXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtaW5wdXQtbWFpbi02MjYgY29udGVudC1pbnB1dC1tYWluLXBhc3N3b3JkIHt7c2l6ZX19IHRoZW1lLXt7dGhlbWV9fSB7e2NsYXNzQWRkfX0ge3tkaXNhYmxlZHN0eWxlfX1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgY2xhc3M9XCJpY29uXCI+dnBuX2tleTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ7e3Zpc2liaWxpdHkgPyAndGV4dCcgOiAncGFzc3dvcmQnfX1cIiBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBbdHlwZV09XCJpbmNvblN5bWJvbD8nc3ltYm9sJzonaWNvbidcIiBjbGFzcz1cImljb24gY3Vyc29yXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmlzaWJpbGl0eSA9ICF2aXNpYmlsaXR5XCI+e3t2aXNpYmlsaXR5ID8gJ3Zpc2liaWxpdHknIDpcclxuICAgICAgICAgICAgICAgICAgICAndmlzaWJpbGl0eV9vZmYnfX08L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBjYXNlIGVtYWlsIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2VtYWlsJ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tNjI2IGNvbnRlbnQtaW5wdXQtbWFpbi1lbWFpbCB7e3NpemV9fSB0aGVtZS17e3RoZW1lfX0ge3tjbGFzc0FkZH19IHt7ZGlzYWJsZWRzdHlsZX19XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IGNsYXNzPVwiaWNvblwiPm1haWxfb3V0bGluZTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0eXBlXT1cInR5cGVcIiBbaWRdPVwibmFtZVwiIFtuYW1lXT1cIm5hbWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclwiIFsobmdNb2RlbCldPVwiaW5wdXRUZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSAhPSAnZGVmYXVsdCdcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IFt0eXBlXT1cImluY29uU3ltYm9sPydzeW1ib2wnOidpY29uJ1wiIGNsYXNzPVwiaWNvbiByZXBvcnRcIj57e2ljb25OYW1lfX08L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lID09ICdkZWZhdWx0JyAmJiBoZWxwXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCAoY2xpY2spPVwiY2xpY2tJY29uKClcIiBjbGFzcz1cImljb24gY3Vyc29yXCI+aGVscF9vdXRsaW5lPC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICA8IS0tIGNhc2UgcGhvbmUgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncGhvbmUnXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtaW5wdXQtbWFpbi02MjYgY29udGVudC1pbnB1dC1tYWluLXBob25lIHt7c2l6ZX19IHRoZW1lLXt7dGhlbWV9fSB7e2NsYXNzQWRkfX0ge3tkaXNhYmxlZHN0eWxlfX1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgY2xhc3M9XCJpY29uXCI+cGhvbmU8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdHlwZV09XCJ0eXBlXCIgW2lkXT1cIm5hbWVcIiBbbmFtZV09XCJuYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgIT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBbdHlwZV09XCJpbmNvblN5bWJvbD8nc3ltYm9sJzonaWNvbidcIiBjbGFzcz1cImljb24gcmVwb3J0XCI+e3tpY29uTmFtZX19PC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSA9PSAnZGVmYXVsdCcgJiYgaGVscFwiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgKGNsaWNrKT1cImNsaWNrSWNvbigpXCIgY2xhc3M9XCJpY29uIGN1cnNvclwiPmhlbHBfb3V0bGluZTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgPCEtLSBjYXNlIHVybCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid1cmwnXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtaW5wdXQtbWFpbi02MjYgY29udGVudC1pbnB1dC1tYWluLXVybCB7e3NpemV9fSB0aGVtZS17e3RoZW1lfX0ge3tjbGFzc0FkZH19IHt7ZGlzYWJsZWRzdHlsZX19XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWxlZnRcIj5cclxuICAgICAgICAgICAgICAgIGh0dHA6Ly9cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0eXBlXT1cInR5cGVcIiBbaWRdPVwibmFtZVwiIFtuYW1lXT1cIm5hbWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclwiIFsobmdNb2RlbCldPVwiaW5wdXRUZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSAhPSAnZGVmYXVsdCdcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IFt0eXBlXT1cImluY29uU3ltYm9sPydzeW1ib2wnOidpY29uJ1wiIGNsYXNzPVwiaWNvbiByZXBvcnRcIj57e2ljb25OYW1lfX08L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lID09ICdkZWZhdWx0JyAmJiBoZWxwXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCAoY2xpY2spPVwiY2xpY2tJY29uKClcIiBjbGFzcz1cImljb24gY3Vyc29yXCI+aGVscF9vdXRsaW5lPC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICA8IS0tIGNhc2Ugc2VhcmNoIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaCdcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1pbnB1dC1tYWluLTYyNiBjb250ZW50LWlucHV0LW1haW4tc2VhcmNoIHt7c2l6ZX19IHRoZW1lLXt7dGhlbWV9fSB7e2NsYXNzQWRkfX0ge3tkaXNhYmxlZHN0eWxlfX1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgY2xhc3M9XCJpY29uXCI+c2VhcmNoPC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3R5cGVdPVwidHlwZVwiIFtpZF09XCJuYW1lXCIgW25hbWVdPVwibmFtZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCIgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIiAobmdNb2RlbENoYW5nZSk9XCJvblRleHRDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgY2xhc3M9XCJpY29uIGN1cnNvclwiPmhlbHBfb3V0bGluZTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBjYXNlIGNvbG9yIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbG9yJ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tNjI2IGNvbnRlbnQtaW5wdXQtbWFpbi1jb2xvciB7e3NpemV9fSB0aGVtZS17e3RoZW1lfX0ge3tjbGFzc0FkZH19IHt7ZGlzYWJsZWRzdHlsZX19XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCAjY29sb3IgW2lkXT1cIm5hbWVcIiBbbmFtZV09XCJuYW1lXCIgdHlwZT1cImNvbG9yXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgpXCIgc3R5bGU9XCJ3aWR0aDogNDBweDsgcGFkZGluZzogMDtcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNlbnRlclwiIChjbGljayk9XCJ0aGlzLmNvbG9yLmNsaWNrKClcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbdHlwZV09XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCIgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIiBkaXNhYmxlZD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSAhPSAnZGVmYXVsdCdcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IFt0eXBlXT1cImluY29uU3ltYm9sPydzeW1ib2wnOidpY29uJ1wiIGNsYXNzPVwiaWNvbiByZXBvcnRcIj57e2ljb25OYW1lfX08L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lID09ICdkZWZhdWx0JyAmJiBoZWxwXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCAoY2xpY2spPVwiY2xpY2tJY29uKClcIiBjbGFzcz1cImljb24gY3Vyc29yXCI+aGVscF9vdXRsaW5lPC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gY2FzZSBkYXRlIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtaW5wdXQtbWFpbi02MjYgY29udGVudC1pbnB1dC1tYWluLXRleHQge3tzaXplfX0gdGhlbWUte3t0aGVtZX19IHt7Y2xhc3NBZGR9fSB7e2Rpc2FibGVkc3R5bGV9fVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdHlwZV09XCJ0eXBlXCIgW2lkXT1cIm5hbWVcIiBbbmFtZV09XCJuYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiAobmdNb2RlbENoYW5nZSk9XCJvblRleHRDaGFuZ2VWYWwoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiaW5wdXRUZXh0IHwgZGF0ZToneXl5eS1NTS1kZCcgOiAnVVRDJ1wiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lICE9ICdkZWZhdWx0J1wiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiaW5jb25TeW1ib2w/J3N5bWJvbCc6J2ljb24nXCIgY2xhc3M9XCJpY29uIHJlcG9ydFwiPnt7aWNvbk5hbWV9fTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSA9PSAnZGVmYXVsdCcgJiYgaGVscFwiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgKGNsaWNrKT1cImNsaWNrSWNvbigpXCIgY2xhc3M9XCJpY29uIGN1cnNvclwiPmhlbHBfb3V0bGluZTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIGNhc2UgZGVmYXVsdCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1pbnB1dC1tYWluLTYyNiBjb250ZW50LWlucHV0LW1haW4tdGV4dCB7e3NpemV9fSB0aGVtZS17e3RoZW1lfX0ge3tjbGFzc0FkZH19IHt7ZGlzYWJsZWRzdHlsZX19XCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgY2xhc3M9XCJpY29uXCI+ZW1haWw8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3R5cGVdPVwidHlwZVwiIFtpZF09XCJuYW1lXCIgW25hbWVdPVwibmFtZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCIgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIiAobmdNb2RlbENoYW5nZSk9XCJvblRleHRDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lICE9ICdkZWZhdWx0J1wiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiaW5jb25TeW1ib2w/J3N5bWJvbCc6J2ljb24nXCIgY2xhc3M9XCJpY29uIHJlcG9ydFwiPnt7aWNvbk5hbWV9fTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgPT0gJ2RlZmF1bHQnICYmIGhlbHBcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IChjbGljayk9XCJjbGlja0ljb24oKVwiIGNsYXNzPVwiaWNvbiBjdXJzb3JcIj5oZWxwX291dGxpbmU8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG48L25nLWNvbnRhaW5lcj4iXX0=
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy1pbnB1dC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpZGVzeXMtZ2VuZXJpYy11aS9zcmMvbGliL2lucHV0L2NvbXBvbmVudHMvaW5wdXQtdGV4dC9zLWlucHV0LXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvaW5wdXQvY29tcG9uZW50cy9pbnB1dC10ZXh0L3MtaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hJLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFlekUsTUFBTSxPQUFPLG1CQUFtQjtJQW9DOUI7UUFsQ0EsYUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0IsWUFBTyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVYLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixnQkFBVyxHQUFZLEVBQUUsQ0FBQztRQUMxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBWTFCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixTQUFJLEdBQWdCLElBQUksQ0FBQztRQUdsQyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLFVBQUssR0FBVyxNQUFNLENBQUM7UUFDdkIsV0FBTSxHQUFXLFNBQVMsQ0FBQztRQUMzQixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixlQUFVLEdBQUcsS0FB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cEIsQ0FBQzs7Z0hBeElVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDRTQVJuQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQ2xELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwrQ0NkSCx1eFRBa01lOzJGRGxMRixtQkFBbUI7a0JBYi9CLFNBQVM7K0JBQ0UsY0FBYyxpQkFHVCxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjswRUFPUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRixLQUFLO3NCQURSLEtBQUs7Z0JBTUYsSUFBSTtzQkFEUCxLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFXSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24sIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzLWlucHV0LXRleHQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zLWlucHV0LXRleHQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3MtaW5wdXQtdGV4dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTSW5wdXRUZXh0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTSW5wdXRUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yICB7XHJcblxyXG4gIG9uQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG4gIG9uVG91Y2ggPSAoKSA9PiB7IH07XHJcblxyXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHBsYWNlSG9sZGVyPzogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICBASW5wdXQoKVxyXG4gIGdldCB0aGVtZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fdGhlbWU7IH1cclxuICBzZXQgdGhlbWUodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RoZW1lID0gWydkZWZhdWx0JywgJ2dyZWVuJywgJ3llbGxvdycsICdyZWQnXS5pbmRleE9mKHZhbCkgIT0gLTEgPyB2YWwgOiAnZGVmYXVsdCc7XHJcbiAgfTtcclxuICBASW5wdXQoKVxyXG4gIGdldCB0eXBlKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLl90eXBlOyB9XHJcbiAgc2V0IHR5cGUodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3R5cGUgPSBbJ3RleHQnLCAncGFzc3dvcmQnLCAnZW1haWwnLCAncGhvbmUnLCAndXJsJywgJ3NlYXJjaCcsICdudW1iZXInLCAnY29sb3InLCAnZGF0ZSddLmluZGV4T2YodmFsKSAhPSAtMSA/IHZhbCA6ICd0ZXh0JztcclxuICB9O1xyXG4gIEBJbnB1dCgpIGNsYXNzQWRkOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBoZWxwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgPSAnbWQnO1xyXG5cclxuICBpbnB1dFRpbWVvdXQ/OiBhbnk7XHJcbiAgaW5wdXRUZXh0OiBzdHJpbmcgPSAnJztcclxuICBfdHlwZTogc3RyaW5nID0gJ3RleHQnO1xyXG4gIF90aGVtZTogc3RyaW5nID0gJ2RlZmF1bHQnO1xyXG4gIGRpc2FibGVkc3R5bGU6IHN0cmluZyA9ICcnO1xyXG4gIHZpc2liaWxpdHkgPSBmYWxzZTtcclxuICBpY29uTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGluY29uU3ltYm9sOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSB0ZXh0Q2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgY2xpY2tIZWxwSWNvbkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgXHJcbiAgICBcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT0gJ2NvbG9yJyAmJiB0aGlzLnRleHQgPT0gJycpIHtcclxuICAgICAgdGhpcy50ZXh0ID0gJyMwMDAwMDAnXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLnRleHQ7XHJcblxyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5kaXNhYmxlZHN0eWxlID0gXCJkaXNhYmxlZC1hY3RpdmVcIlxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubG9hZFRoZW1lKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sndGhlbWUnXSkge1xyXG4gICAgICB0aGlzLmxvYWRUaGVtZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkVGhlbWUoKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMudGhlbWUpIHtcclxuICAgICAgY2FzZSBcImRlZmF1bHRcIjpcclxuICAgICAgICB0aGlzLmljb25OYW1lID0gXCJcIlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwicmVkXCI6XHJcbiAgICAgICAgdGhpcy5pY29uTmFtZSA9IFwiZXJyb3Jfb3V0bGluZVwiXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJncmVlblwiOlxyXG4gICAgICAgIHRoaXMuaWNvbk5hbWUgPSBcImNoZWNrX2NpcmNsZV9vdXRsaW5lXCJcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcInllbGxvd1wiOlxyXG4gICAgICAgIHRoaXMuaW5jb25TeW1ib2wgPSB0cnVlXHJcbiAgICAgICAgdGhpcy5pY29uTmFtZSA9IFwid2FybmluZ1wiXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuaWNvbk5hbWUgPSBcIlwiXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRleHRDaGFuZ2UoKSB7XHJcblxyXG4gICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuaW5wdXRUZXh0KTtcclxuXHJcbiAgICBpZiAodGhpcy5pbnB1dFRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW5wdXRUaW1lb3V0KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlucHV0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnRleHRDaGFuZ2VFdmVudC5uZXh0KHRoaXMuaW5wdXRUZXh0KTtcclxuICAgIH0sIDUwMCwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBvblRleHRDaGFuZ2VWYWwodmFsOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmlucHV0VGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5pbnB1dFRpbWVvdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5wdXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XHJcbiAgICAgICAgdGhpcy50ZXh0Q2hhbmdlRXZlbnQubmV4dCh2YWwpO1xyXG4gICAgICAgIHRoaXMuaW5wdXRUZXh0ID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcclxuICAgICAgICB0aGlzLnRleHRDaGFuZ2VFdmVudC5uZXh0KHRoaXMuaW5wdXRUZXh0KTtcclxuICAgICAgfVxyXG4gICAgfSwgNTAwLCBudWxsKTtcclxuICB9XHJcblxyXG4gIGNsaWNrSWNvbigpIHtcclxuICAgIHRoaXMuY2xpY2tIZWxwSWNvbkV2ZW50Lm5leHQoKTtcclxuICB9XHJcblxyXG4gIGNvbG9yQ2xpY2soKSB7XHJcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm5hbWUpPy5jbGljaygpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5pbnB1dFRleHQgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cclxuICAgIDwhLS0gRWwgc3dpdGNoIGNhc2UgY29uIGNhZGEgY2FzbyBwb3IgaW5wdXQgIFsndGV4dCcsICdwYXNzd29yZCcsICdlbWFpbCcgLCAncGhvbmUnICwgJ3VybCcgLCAnc2VhcmNoJ10tLT5cclxuXHJcbiAgICA8IS0tIGNhc2UgdGV4dCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tNjI2IGNvbnRlbnQtaW5wdXQtbWFpbi10ZXh0IHt7c2l6ZX19IHRoZW1lLXt7dGhlbWV9fSB7e2NsYXNzQWRkfX0ge3tkaXNhYmxlZHN0eWxlfX1cIj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29udGVudC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBjbGFzcz1cImljb25cIj5lbWFpbDwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFxyXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiIFxyXG4gICAgICAgICAgICAgICAgW2lkXT1cIm5hbWVcIiBcclxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIiBcclxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIlxyXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lICE9ICdkZWZhdWx0J1wiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiaW5jb25TeW1ib2w/J3N5bWJvbCc6J2ljb24nXCIgY2xhc3M9XCJpY29uIHJlcG9ydFwiPnt7aWNvbk5hbWV9fTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgPT0gJ2RlZmF1bHQnICYmIGhlbHBcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IChjbGljayk9XCJjbGlja0ljb24oKVwiIGNsYXNzPVwiaWNvbiBjdXJzb3JcIj5oZWxwX291dGxpbmU8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBjYXNlIHBhc3N3b3JkIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3Bhc3N3b3JkJ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tNjI2IGNvbnRlbnQtaW5wdXQtbWFpbi1wYXNzd29yZCB7e3NpemV9fSB0aGVtZS17e3RoZW1lfX0ge3tjbGFzc0FkZH19IHt7ZGlzYWJsZWRzdHlsZX19XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IGNsYXNzPVwiaWNvblwiPnZwbl9rZXk8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwie3t2aXNpYmlsaXR5ID8gJ3RleHQnIDogJ3Bhc3N3b3JkJ319XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCIgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiaW5jb25TeW1ib2w/J3N5bWJvbCc6J2ljb24nXCIgY2xhc3M9XCJpY29uIGN1cnNvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInZpc2liaWxpdHkgPSAhdmlzaWJpbGl0eVwiPnt7dmlzaWJpbGl0eSA/ICd2aXNpYmlsaXR5JyA6XHJcbiAgICAgICAgICAgICAgICAgICAgJ3Zpc2liaWxpdHlfb2ZmJ319PC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gY2FzZSBlbWFpbCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidlbWFpbCdcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1pbnB1dC1tYWluLTYyNiBjb250ZW50LWlucHV0LW1haW4tZW1haWwge3tzaXplfX0gdGhlbWUte3t0aGVtZX19IHt7Y2xhc3NBZGR9fSB7e2Rpc2FibGVkc3R5bGV9fVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBjbGFzcz1cImljb25cIj5tYWlsX291dGxpbmU8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdHlwZV09XCJ0eXBlXCIgW2lkXT1cIm5hbWVcIiBbbmFtZV09XCJuYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgIT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBbdHlwZV09XCJpbmNvblN5bWJvbD8nc3ltYm9sJzonaWNvbidcIiBjbGFzcz1cImljb24gcmVwb3J0XCI+e3tpY29uTmFtZX19PC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSA9PSAnZGVmYXVsdCcgJiYgaGVscFwiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgKGNsaWNrKT1cImNsaWNrSWNvbigpXCIgY2xhc3M9XCJpY29uIGN1cnNvclwiPmhlbHBfb3V0bGluZTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgPCEtLSBjYXNlIHBob25lIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3Bob25lJ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tNjI2IGNvbnRlbnQtaW5wdXQtbWFpbi1waG9uZSB7e3NpemV9fSB0aGVtZS17e3RoZW1lfX0ge3tjbGFzc0FkZH19IHt7ZGlzYWJsZWRzdHlsZX19XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IGNsYXNzPVwiaWNvblwiPnBob25lPC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3R5cGVdPVwidHlwZVwiIFtpZF09XCJuYW1lXCIgW25hbWVdPVwibmFtZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCIgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIiAobmdNb2RlbENoYW5nZSk9XCJvblRleHRDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lICE9ICdkZWZhdWx0J1wiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiaW5jb25TeW1ib2w/J3N5bWJvbCc6J2ljb24nXCIgY2xhc3M9XCJpY29uIHJlcG9ydFwiPnt7aWNvbk5hbWV9fTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgPT0gJ2RlZmF1bHQnICYmIGhlbHBcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IChjbGljayk9XCJjbGlja0ljb24oKVwiIGNsYXNzPVwiaWNvbiBjdXJzb3JcIj5oZWxwX291dGxpbmU8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgIDwhLS0gY2FzZSB1cmwgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndXJsJ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tNjI2IGNvbnRlbnQtaW5wdXQtbWFpbi11cmwge3tzaXplfX0gdGhlbWUte3t0aGVtZX19IHt7Y2xhc3NBZGR9fSB7e2Rpc2FibGVkc3R5bGV9fVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICBodHRwOi8vXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdHlwZV09XCJ0eXBlXCIgW2lkXT1cIm5hbWVcIiBbbmFtZV09XCJuYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgIT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBbdHlwZV09XCJpbmNvblN5bWJvbD8nc3ltYm9sJzonaWNvbidcIiBjbGFzcz1cImljb24gcmVwb3J0XCI+e3tpY29uTmFtZX19PC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSA9PSAnZGVmYXVsdCcgJiYgaGVscFwiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgKGNsaWNrKT1cImNsaWNrSWNvbigpXCIgY2xhc3M9XCJpY29uIGN1cnNvclwiPmhlbHBfb3V0bGluZTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgPCEtLSBjYXNlIHNlYXJjaCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWFyY2gnXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtaW5wdXQtbWFpbi02MjYgY29udGVudC1pbnB1dC1tYWluLXNlYXJjaCB7e3NpemV9fSB0aGVtZS17e3RoZW1lfX0ge3tjbGFzc0FkZH19IHt7ZGlzYWJsZWRzdHlsZX19XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IGNsYXNzPVwiaWNvblwiPnNlYXJjaDwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0eXBlXT1cInR5cGVcIiBbaWRdPVwibmFtZVwiIFtuYW1lXT1cIm5hbWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclwiIFsobmdNb2RlbCldPVwiaW5wdXRUZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IGNsYXNzPVwiaWNvbiBjdXJzb3JcIj5oZWxwX291dGxpbmU8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gY2FzZSBjb2xvciAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjb2xvcidcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1pbnB1dC1tYWluLTYyNiBjb250ZW50LWlucHV0LW1haW4tY29sb3Ige3tzaXplfX0gdGhlbWUte3t0aGVtZX19IHt7Y2xhc3NBZGR9fSB7e2Rpc2FibGVkc3R5bGV9fVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgICNjb2xvciBbaWRdPVwibmFtZVwiIFtuYW1lXT1cIm5hbWVcIiB0eXBlPVwiY29sb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIiBzdHlsZT1cIndpZHRoOiA0MHB4OyBwYWRkaW5nOiAwO1wiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtY2VudGVyXCIgKGNsaWNrKT1cInRoaXMuY29sb3IuY2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IFt0eXBlXT1cInRleHRcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lICE9ICdkZWZhdWx0J1wiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiaW5jb25TeW1ib2w/J3N5bWJvbCc6J2ljb24nXCIgY2xhc3M9XCJpY29uIHJlcG9ydFwiPnt7aWNvbk5hbWV9fTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgPT0gJ2RlZmF1bHQnICYmIGhlbHBcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IChjbGljayk9XCJjbGlja0ljb24oKVwiIGNsYXNzPVwiaWNvbiBjdXJzb3JcIj5oZWxwX291dGxpbmU8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBjYXNlIGRhdGUgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1pbnB1dC1tYWluLTYyNiBjb250ZW50LWlucHV0LW1haW4tdGV4dCB7e3NpemV9fSB0aGVtZS17e3RoZW1lfX0ge3tjbGFzc0FkZH19IHt7ZGlzYWJsZWRzdHlsZX19XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0eXBlXT1cInR5cGVcIiBbaWRdPVwibmFtZVwiIFtuYW1lXT1cIm5hbWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZVZhbCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJpbnB1dFRleHQgfCBkYXRlOid5eXl5LU1NLWRkJyA6ICdVVEMnXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgIT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBbdHlwZV09XCJpbmNvblN5bWJvbD8nc3ltYm9sJzonaWNvbidcIiBjbGFzcz1cImljb24gcmVwb3J0XCI+e3tpY29uTmFtZX19PC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lID09ICdkZWZhdWx0JyAmJiBoZWxwXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCAoY2xpY2spPVwiY2xpY2tJY29uKClcIiBjbGFzcz1cImljb24gY3Vyc29yXCI+aGVscF9vdXRsaW5lPC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gY2FzZSBkZWZhdWx0IC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tNjI2IGNvbnRlbnQtaW5wdXQtbWFpbi10ZXh0IHt7c2l6ZX19IHRoZW1lLXt7dGhlbWV9fSB7e2NsYXNzQWRkfX0ge3tkaXNhYmxlZHN0eWxlfX1cIj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29udGVudC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBjbGFzcz1cImljb25cIj5lbWFpbDwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdHlwZV09XCJ0eXBlXCIgW2lkXT1cIm5hbWVcIiBbbmFtZV09XCJuYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgIT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBbdHlwZV09XCJpbmNvblN5bWJvbD8nc3ltYm9sJzonaWNvbidcIiBjbGFzcz1cImljb24gcmVwb3J0XCI+e3tpY29uTmFtZX19PC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSA9PSAnZGVmYXVsdCcgJiYgaGVscFwiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgKGNsaWNrKT1cImNsaWNrSWNvbigpXCIgY2xhc3M9XCJpY29uIGN1cnNvclwiPmhlbHBfb3V0bGluZTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbjwvbmctY29udGFpbmVyPiJdfQ==