sidesys-generic-ui 0.0.26 → 0.0.27-beta

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 (82) hide show
  1. package/esm2022/lib/avatar/s-avatar.component.mjs +1 -1
  2. package/esm2022/lib/badge/s-badge.component.mjs +1 -1
  3. package/esm2022/lib/breadcrum/s-breadcrum.component.mjs +1 -1
  4. package/esm2022/lib/card/s-card.component.mjs +1 -1
  5. package/esm2022/lib/checkbox/s-checkbox.component.mjs +3 -3
  6. package/esm2022/lib/content/s-content.component.mjs +7 -4
  7. package/esm2022/lib/footer/s-footer.component.mjs +8 -3
  8. package/esm2022/lib/form/s-form.component.mjs +1 -1
  9. package/esm2022/lib/icon-material/index.mjs +2 -1
  10. package/esm2022/lib/icon-material/s-icon-material.component.mjs +6 -3
  11. package/esm2022/lib/icon-material/s-icon-material.model.mjs +3 -0
  12. package/esm2022/lib/input/components/calendar/s-calendar.component.mjs +136 -0
  13. package/esm2022/lib/input/components/color/s-color.component.mjs +119 -0
  14. package/esm2022/lib/input/components/error-control/s-error-control.component.mjs +3 -3
  15. package/esm2022/lib/input/components/input/s-input.component.mjs +116 -0
  16. package/esm2022/lib/input/components/input-number/s-input-number.component.mjs +228 -0
  17. package/esm2022/lib/input/components/input-text/s-input-text.component.mjs +7 -9
  18. package/esm2022/lib/input/components/input-textarea/s-input-textarea.component.mjs +17 -21
  19. package/esm2022/lib/input/components/range/s-range.component.mjs +177 -0
  20. package/esm2022/lib/input/components/time/s-time.component.mjs +129 -0
  21. package/esm2022/lib/input/components/validation-error/s-validation-error.component.mjs +33 -0
  22. package/esm2022/lib/input/directives/control-value-accessor.directive.mjs +69 -0
  23. package/esm2022/lib/input/enums/icon-theme.enum.mjs +8 -0
  24. package/esm2022/lib/input/enums/theme.emun.mjs +8 -0
  25. package/esm2022/lib/input/index.mjs +10 -1
  26. package/esm2022/lib/input/input.module.mjs +40 -5
  27. package/esm2022/lib/list/s-list.component.mjs +1 -1
  28. package/esm2022/lib/list-simple/s-list-simple.component.mjs +2 -2
  29. package/esm2022/lib/login/s-login.component.mjs +2 -2
  30. package/esm2022/lib/navbar/components/icon-menu/components/s-notificaction.component.mjs +1 -1
  31. package/esm2022/lib/navbar/components/icon-menu/s-icon-menu.component.mjs +1 -1
  32. package/esm2022/lib/navbar/components/menu-main/s-menu-main.component.mjs +1 -1
  33. package/esm2022/lib/navbar/s-navbar.component.mjs +2 -2
  34. package/esm2022/lib/pagination/s-pagination.component.mjs +17 -4
  35. package/esm2022/lib/popup/s-popup.component.mjs +3 -3
  36. package/esm2022/lib/precode/s-precode.component.mjs +11 -5
  37. package/esm2022/lib/progressbar/s-progressbar.component.mjs +2 -2
  38. package/esm2022/lib/radio/s-radio.component.mjs +8 -9
  39. package/esm2022/lib/select/select-multiple/s-select-multiple.component.mjs +16 -7
  40. package/esm2022/lib/select/select-simple/s-select-simple.component.mjs +14 -6
  41. package/esm2022/lib/sidebar/components/s-menu-item.component.mjs +43 -0
  42. package/esm2022/lib/sidebar/index.mjs +2 -1
  43. package/esm2022/lib/sidebar/s-sidebar-model.mjs +1 -1
  44. package/esm2022/lib/sidebar/s-sidebar.component.mjs +49 -12
  45. package/esm2022/lib/sidebar/s-sidebar.module.mjs +8 -5
  46. package/esm2022/lib/sub-menu/s-sub-menu.component.mjs +1 -1
  47. package/esm2022/lib/tabs/s-tabs.component.mjs +1 -1
  48. package/esm2022/lib/theme/s-theme.component.mjs +2 -2
  49. package/esm2022/lib/toast/s-toast.component.mjs +1 -1
  50. package/esm2022/lib/toggle-switch/s-toggle-switch.component.mjs +1 -1
  51. package/esm2022/lib/tree-list/s-tree-list.component.mjs +1 -1
  52. package/fesm2022/sidesys-generic-ui.mjs +1253 -141
  53. package/fesm2022/sidesys-generic-ui.mjs.map +1 -1
  54. package/lib/content/s-content.component.d.ts +2 -1
  55. package/lib/footer/s-footer.component.d.ts +2 -1
  56. package/lib/icon-material/index.d.ts +1 -0
  57. package/lib/icon-material/s-icon-material.component.d.ts +11 -9
  58. package/lib/icon-material/s-icon-material.model.d.ts +11 -0
  59. package/lib/input/components/calendar/s-calendar.component.d.ts +41 -0
  60. package/lib/input/components/color/s-color.component.d.ts +40 -0
  61. package/lib/input/components/error-control/s-error-control.component.d.ts +1 -1
  62. package/lib/input/components/input/s-input.component.d.ts +72 -0
  63. package/lib/input/components/input-number/s-input-number.component.d.ts +69 -0
  64. package/lib/input/components/input-textarea/s-input-textarea.component.d.ts +6 -7
  65. package/lib/input/components/range/s-range.component.d.ts +44 -0
  66. package/lib/input/components/time/s-time.component.d.ts +36 -0
  67. package/lib/input/components/validation-error/s-validation-error.component.d.ts +11 -0
  68. package/lib/input/directives/control-value-accessor.directive.d.ts +21 -0
  69. package/lib/input/enums/icon-theme.enum.d.ts +6 -0
  70. package/lib/input/enums/theme.emun.d.ts +6 -0
  71. package/lib/input/index.d.ts +9 -0
  72. package/lib/input/input.module.d.ts +12 -5
  73. package/lib/pagination/s-pagination.component.d.ts +5 -1
  74. package/lib/precode/s-precode.component.d.ts +3 -1
  75. package/lib/radio/s-radio.component.d.ts +1 -1
  76. package/lib/select/select-multiple/s-select-multiple.component.d.ts +1 -0
  77. package/lib/sidebar/components/s-menu-item.component.d.ts +16 -0
  78. package/lib/sidebar/index.d.ts +1 -0
  79. package/lib/sidebar/s-sidebar-model.d.ts +14 -2
  80. package/lib/sidebar/s-sidebar.component.d.ts +13 -9
  81. package/lib/sidebar/s-sidebar.module.d.ts +7 -6
  82. package/package.json +1 -1
@@ -3,51 +3,43 @@ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  import * as i2 from "@angular/forms";
6
+ import * as i3 from "../error-control/s-error-control.component";
6
7
  export class SInputTextAreaComponent {
7
- get theme() { return this._theme; }
8
- set theme(val) {
9
- this._theme = ['default', 'green', 'yellow', 'red'].indexOf(val) != -1 ? val : 'default';
10
- }
11
- ;
12
8
  constructor() {
13
9
  this.onChange = (_) => { };
14
10
  this.onTouch = () => { };
15
11
  this.id = Math.floor(Math.random() * 1000);
16
- this.text = '';
12
+ this.value = '';
17
13
  this.name = '';
18
14
  this.placeholder = '';
19
15
  this.disabled = false;
20
16
  this.resize = true;
21
17
  this.class = '';
22
18
  this.readOnly = false;
23
- this._theme = 'default';
24
- this.inputText = '';
19
+ this.theme = 'default';
25
20
  this.visibility = false;
26
21
  this.disabledstyle = '';
27
- this.textChangeEvent = new EventEmitter();
22
+ this.valueChangeEvent = new EventEmitter();
28
23
  this.blur = new EventEmitter();
29
24
  this.focus = new EventEmitter();
30
25
  }
31
26
  ngOnInit() {
32
- this.inputText = this.text;
33
27
  if (this.disabled) {
34
28
  this.disabledstyle = "disabled-active";
35
29
  }
36
30
  }
37
31
  onTextChange() {
38
32
  this.onTouch();
39
- this.onChange(this.inputText);
33
+ this.onChange(this.value);
40
34
  if (this.inputTimeout) {
41
35
  clearTimeout(this.inputTimeout);
42
36
  }
43
37
  this.inputTimeout = setTimeout(() => {
44
- this.textChangeEvent.next(this.inputText);
38
+ this.valueChangeEvent.next(this.value);
45
39
  }, 1000, null);
46
40
  }
47
41
  writeValue(value) {
48
- if (value) {
49
- this.inputText = value;
50
- }
42
+ this.value = value;
51
43
  }
52
44
  registerOnChange(fn) {
53
45
  this.onChange = fn;
@@ -62,13 +54,13 @@ export class SInputTextAreaComponent {
62
54
  this.focus.next(event);
63
55
  }
64
56
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SInputTextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: SInputTextAreaComponent, selector: "s-input-textarea", inputs: { id: "id", text: "text", name: "name", placeholder: "placeholder", disabled: "disabled", resize: "resize", class: "class", height: "height", width: "width", readOnly: "readOnly", theme: "theme" }, outputs: { textChangeEvent: "textChangeEvent", blur: "blur", focus: "focus" }, providers: [
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: SInputTextAreaComponent, selector: "s-input-textarea", inputs: { id: "id", value: "value", name: "name", placeholder: "placeholder", helpText: "helpText", errorText: "errorText", disabled: "disabled", resize: "resize", class: "class", height: "height", width: "width", readOnly: "readOnly", theme: "theme" }, outputs: { valueChangeEvent: "valueChangeEvent", blur: "blur", focus: "focus" }, providers: [
66
58
  {
67
59
  provide: NG_VALUE_ACCESSOR,
68
60
  useExisting: forwardRef(() => SInputTextAreaComponent),
69
61
  multi: true
70
62
  }
71
- ], ngImport: i0, template: "<div class=\"text-area1325 {{class}} {{disabledstyle}}\">\r\n <textarea\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [readOnly]=\"readOnly\"\r\n [ngClass]=\"[resize ? '' : 'resize' , theme ? 'theme-' + theme : '']\"\r\n [ngStyle]=\" {'height' : height , 'width' : width}\"\r\n [disabled]=\"disabled\" \r\n [id]=\"id\"\r\n [name]=\"name\"\r\n autocomplete=\"off\" \r\n [placeholder]=\"placeholder\" \r\n [(ngModel)]=\"inputText\" \r\n (ngModelChange)=\"onTextChange()\"\r\n >\r\n </textarea>\r\n</div>", styles: [".text-area1325 textarea{width:calc(100% - 30px);padding:10px 14px;border:1px solid var(--primary-500);border-radius:4px;color:var(--secondary-600);writing-mode:unset;height:34px;font-size:1rem;max-width:100%}.text-area1325 textarea:focus-visible{outline:none;border:none;border:1px solid var(--primary-600);box-shadow:0 0 0 4px #0091fe26,0 1px 2px #1018280d}.text-area1325 textarea.theme-red{border:1px solid var(--red-600)}.text-area1325 textarea.theme-red:focus-visible{border:1px solid var(--red-600);box-shadow:0 0 0 4px #ff563026,0 1px 2px #1018280d}.text-area1325 textarea.theme-green{border:1px solid var(--green-600)}.text-area1325 textarea.theme-green:focus-visible{border:1px solid var(--green-500);box-shadow:0 0 0 4px #36b37e26,0 1px 2px #1018280d}.text-area1325 textarea.theme-yellow{border:1px solid var(--yellow-500)}.text-area1325 textarea.theme-yellow:focus-visible{border:1px solid var(--yellow-500);box-shadow:0 0 0 4px #ffab0026,0 1px 2px #1018280d}.text-area1325 .resize{resize:none}.text-area1325.disabled-active textarea{border-color:var(--neutrals-900);background-color:var(--neutrals-1100);color:var(--neutrals-800);resize:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
63
+ ], ngImport: i0, template: "<div class=\"text-area1325 {{class}} {{disabledstyle}}\">\r\n <textarea\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [readOnly]=\"readOnly\"\r\n [ngClass]=\"[resize ? '' : 'resize' , theme ? 'theme-' + theme : '']\"\r\n [ngStyle]=\" {'height' : height , 'width' : width}\"\r\n [disabled]=\"disabled\" \r\n [id]=\"id\"\r\n [name]=\"name\"\r\n autocomplete=\"off\" \r\n [placeholder]=\"placeholder\" \r\n [(ngModel)]=\"value\" \r\n (ngModelChange)=\"onTextChange()\"\r\n >\r\n </textarea>\r\n <s-error-control *ngIf=\"errorText\" theme =\"red\">{{errorText}}</s-error-control>\r\n\t<s-error-control *ngIf=\"helpText && !errorText\">{{helpText}}</s-error-control>\r\n</div>", styles: [".text-area1325 textarea{width:calc(100% - 30px);padding:10px 14px;border:1px solid var(--primary-500);border-radius:4px;color:var(--secondary-600);writing-mode:unset;height:34px;font-size:1rem;max-width:100%}.text-area1325 textarea:focus-visible{outline:none;border:none;border:1px solid var(--primary-600);box-shadow:0 0 0 4px #0091fe26,0 1px 2px #1018280d}.text-area1325 textarea.theme-red{border:1px solid var(--red-600)}.text-area1325 textarea.theme-red:focus-visible{border:1px solid var(--red-600);box-shadow:0 0 0 4px #ff563026,0 1px 2px #1018280d}.text-area1325 textarea.theme-green{border:1px solid var(--green-600)}.text-area1325 textarea.theme-green:focus-visible{border:1px solid var(--green-500);box-shadow:0 0 0 4px #36b37e26,0 1px 2px #1018280d}.text-area1325 textarea.theme-yellow{border:1px solid var(--yellow-500)}.text-area1325 textarea.theme-yellow:focus-visible{border:1px solid var(--yellow-500);box-shadow:0 0 0 4px #ffab0026,0 1px 2px #1018280d}.text-area1325 .resize{resize:none}.text-area1325.disabled-active textarea{border-color:var(--neutrals-900);background-color:var(--neutrals-1100);color:var(--neutrals-800);resize:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }] }); }
72
64
  }
73
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SInputTextAreaComponent, decorators: [{
74
66
  type: Component,
@@ -78,15 +70,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
78
70
  useExisting: forwardRef(() => SInputTextAreaComponent),
79
71
  multi: true
80
72
  }
81
- ], template: "<div class=\"text-area1325 {{class}} {{disabledstyle}}\">\r\n <textarea\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [readOnly]=\"readOnly\"\r\n [ngClass]=\"[resize ? '' : 'resize' , theme ? 'theme-' + theme : '']\"\r\n [ngStyle]=\" {'height' : height , 'width' : width}\"\r\n [disabled]=\"disabled\" \r\n [id]=\"id\"\r\n [name]=\"name\"\r\n autocomplete=\"off\" \r\n [placeholder]=\"placeholder\" \r\n [(ngModel)]=\"inputText\" \r\n (ngModelChange)=\"onTextChange()\"\r\n >\r\n </textarea>\r\n</div>", styles: [".text-area1325 textarea{width:calc(100% - 30px);padding:10px 14px;border:1px solid var(--primary-500);border-radius:4px;color:var(--secondary-600);writing-mode:unset;height:34px;font-size:1rem;max-width:100%}.text-area1325 textarea:focus-visible{outline:none;border:none;border:1px solid var(--primary-600);box-shadow:0 0 0 4px #0091fe26,0 1px 2px #1018280d}.text-area1325 textarea.theme-red{border:1px solid var(--red-600)}.text-area1325 textarea.theme-red:focus-visible{border:1px solid var(--red-600);box-shadow:0 0 0 4px #ff563026,0 1px 2px #1018280d}.text-area1325 textarea.theme-green{border:1px solid var(--green-600)}.text-area1325 textarea.theme-green:focus-visible{border:1px solid var(--green-500);box-shadow:0 0 0 4px #36b37e26,0 1px 2px #1018280d}.text-area1325 textarea.theme-yellow{border:1px solid var(--yellow-500)}.text-area1325 textarea.theme-yellow:focus-visible{border:1px solid var(--yellow-500);box-shadow:0 0 0 4px #ffab0026,0 1px 2px #1018280d}.text-area1325 .resize{resize:none}.text-area1325.disabled-active textarea{border-color:var(--neutrals-900);background-color:var(--neutrals-1100);color:var(--neutrals-800);resize:none}\n"] }]
73
+ ], template: "<div class=\"text-area1325 {{class}} {{disabledstyle}}\">\r\n <textarea\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [readOnly]=\"readOnly\"\r\n [ngClass]=\"[resize ? '' : 'resize' , theme ? 'theme-' + theme : '']\"\r\n [ngStyle]=\" {'height' : height , 'width' : width}\"\r\n [disabled]=\"disabled\" \r\n [id]=\"id\"\r\n [name]=\"name\"\r\n autocomplete=\"off\" \r\n [placeholder]=\"placeholder\" \r\n [(ngModel)]=\"value\" \r\n (ngModelChange)=\"onTextChange()\"\r\n >\r\n </textarea>\r\n <s-error-control *ngIf=\"errorText\" theme =\"red\">{{errorText}}</s-error-control>\r\n\t<s-error-control *ngIf=\"helpText && !errorText\">{{helpText}}</s-error-control>\r\n</div>", styles: [".text-area1325 textarea{width:calc(100% - 30px);padding:10px 14px;border:1px solid var(--primary-500);border-radius:4px;color:var(--secondary-600);writing-mode:unset;height:34px;font-size:1rem;max-width:100%}.text-area1325 textarea:focus-visible{outline:none;border:none;border:1px solid var(--primary-600);box-shadow:0 0 0 4px #0091fe26,0 1px 2px #1018280d}.text-area1325 textarea.theme-red{border:1px solid var(--red-600)}.text-area1325 textarea.theme-red:focus-visible{border:1px solid var(--red-600);box-shadow:0 0 0 4px #ff563026,0 1px 2px #1018280d}.text-area1325 textarea.theme-green{border:1px solid var(--green-600)}.text-area1325 textarea.theme-green:focus-visible{border:1px solid var(--green-500);box-shadow:0 0 0 4px #36b37e26,0 1px 2px #1018280d}.text-area1325 textarea.theme-yellow{border:1px solid var(--yellow-500)}.text-area1325 textarea.theme-yellow:focus-visible{border:1px solid var(--yellow-500);box-shadow:0 0 0 4px #ffab0026,0 1px 2px #1018280d}.text-area1325 .resize{resize:none}.text-area1325.disabled-active textarea{border-color:var(--neutrals-900);background-color:var(--neutrals-1100);color:var(--neutrals-800);resize:none}\n"] }]
82
74
  }], ctorParameters: function () { return []; }, propDecorators: { id: [{
83
75
  type: Input
84
- }], text: [{
76
+ }], value: [{
85
77
  type: Input
86
78
  }], name: [{
87
79
  type: Input
88
80
  }], placeholder: [{
89
81
  type: Input
82
+ }], helpText: [{
83
+ type: Input
84
+ }], errorText: [{
85
+ type: Input
90
86
  }], disabled: [{
91
87
  type: Input
92
88
  }], resize: [{
@@ -101,11 +97,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
101
97
  type: Input
102
98
  }], theme: [{
103
99
  type: Input
104
- }], textChangeEvent: [{
100
+ }], valueChangeEvent: [{
105
101
  type: Output
106
102
  }], blur: [{
107
103
  type: Output
108
104
  }], focus: [{
109
105
  type: Output
110
106
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy1pbnB1dC10ZXh0YXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlc3lzLWdlbmVyaWMtdWkvc3JjL2xpYi9pbnB1dC9jb21wb25lbnRzL2lucHV0LXRleHRhcmVhL3MtaW5wdXQtdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvaW5wdXQvY29tcG9uZW50cy9pbnB1dC10ZXh0YXJlYS9zLWlucHV0LXRleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWN6RSxNQUFNLE9BQU8sdUJBQXVCO0lBZWxDLElBQ0ksS0FBSyxLQUFhLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDM0MsSUFBSSxLQUFLLENBQUMsR0FBVztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUcsS0FBSyxDQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM3RixDQUFDO0lBQUEsQ0FBQztJQVVGO1FBM0JBLGFBQVEsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFWCxPQUFFLEdBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDNUMsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLGdCQUFXLEdBQVksRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsV0FBTSxHQUFZLElBQUksQ0FBQztRQUN2QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBR25CLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFNbkMsV0FBTSxHQUFXLFNBQVMsQ0FBQztRQUUzQixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFFakIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzdDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2hDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUUzQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQTtTQUN2QztJQUNILENBQUM7SUFFRCxZQUFZO1FBRVYsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDakM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVU7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0F6RVUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsd1VBUnZCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ2JILHdtQkFnQk07OzJGRERPLHVCQUF1QjtrQkFabkMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzBFQU9RLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRixLQUFLO3NCQURSLEtBQUs7Z0JBV0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3MtaW5wdXQtdGV4dGFyZWEnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zLWlucHV0LXRleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zLWlucHV0LXRleHRhcmVhLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTSW5wdXRUZXh0QXJlYUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU0lucHV0VGV4dEFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgLCBDb250cm9sVmFsdWVBY2Nlc3NvcntcclxuXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgb25Ub3VjaCA9ICgpID0+IHsgfTtcclxuXHJcbiAgQElucHV0KCkgaWQ6IGFueSA9ICBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwKTtcclxuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcmVzaXplOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaGVpZ2h0Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHdpZHRoPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBnZXQgdGhlbWUoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX3RoZW1lOyB9XHJcbiAgc2V0IHRoZW1lKHZhbDogc3RyaW5nKXtcclxuICAgIHRoaXMuX3RoZW1lID0gWydkZWZhdWx0JywgJ2dyZWVuJywgJ3llbGxvdycgLCAncmVkJyBdLmluZGV4T2YodmFsKSAhPSAtMSA/IHZhbCA6ICdkZWZhdWx0JztcclxuICB9O1xyXG4gIF90aGVtZTogc3RyaW5nID0gJ2RlZmF1bHQnO1xyXG4gIGlucHV0VGltZW91dD86IGFueTtcclxuICBpbnB1dFRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIHZpc2liaWxpdHkgPSBmYWxzZTtcclxuICBkaXNhYmxlZHN0eWxlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQE91dHB1dCgpIHRleHRDaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLnRleHQ7XHJcblxyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5kaXNhYmxlZHN0eWxlID0gXCJkaXNhYmxlZC1hY3RpdmVcIlxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UZXh0Q2hhbmdlKCkge1xyXG5cclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlucHV0VGV4dCk7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5wdXRUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmlucHV0VGltZW91dCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbnB1dFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy50ZXh0Q2hhbmdlRXZlbnQubmV4dCh0aGlzLmlucHV0VGV4dCk7XHJcbiAgICB9LCAxMDAwLCBudWxsKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRUZXh0ID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuYmx1ci5uZXh0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1cy5uZXh0KGV2ZW50KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0ZXh0LWFyZWExMzI1IHt7Y2xhc3N9fSB7e2Rpc2FibGVkc3R5bGV9fVwiPlxyXG4gICAgPHRleHRhcmVhXHJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiW3Jlc2l6ZSA/ICcnIDogJ3Jlc2l6ZScgLCB0aGVtZSA/ICd0aGVtZS0nICsgdGhlbWUgOiAnJ11cIlxyXG4gICAgICAgIFtuZ1N0eWxlXT1cIiB7J2hlaWdodCcgOiBoZWlnaHQgLCAnd2lkdGgnIDogd2lkdGh9XCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBcclxuICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRUZXh0XCIgXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIlxyXG4gICAgPlxyXG4gICAgPC90ZXh0YXJlYT5cclxuPC9kaXY+Il19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy1pbnB1dC10ZXh0YXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlc3lzLWdlbmVyaWMtdWkvc3JjL2xpYi9pbnB1dC9jb21wb25lbnRzL2lucHV0LXRleHRhcmVhL3MtaW5wdXQtdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvaW5wdXQvY29tcG9uZW50cy9pbnB1dC10ZXh0YXJlYS9zLWlucHV0LXRleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFjekUsTUFBTSxPQUFPLHVCQUF1QjtJQXlCbEM7UUF2QkEsYUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0IsWUFBTyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVYLE9BQUUsR0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1QyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsZ0JBQVcsR0FBWSxFQUFFLENBQUM7UUFHMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixXQUFNLEdBQVksSUFBSSxDQUFDO1FBQ3ZCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFHbkIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixVQUFLLEdBQTJDLFNBQVMsQ0FBQztRQUVuRSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBRWpCLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDaEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsaUJBQWlCLENBQUE7U0FDdkM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUVWLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBVTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBVTtRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQWpFVSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwwWEFSdkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUN0RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDYkgscXhCQWtCTTs7MkZESE8sdUJBQXVCO2tCQVpuQyxTQUFTOytCQUNFLGtCQUFrQixhQUdqQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7MEVBT1EsRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncy1pbnB1dC10ZXh0YXJlYScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3MtaW5wdXQtdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3MtaW5wdXQtdGV4dGFyZWEuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNJbnB1dFRleHRBcmVhQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTSW5wdXRUZXh0QXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCAsIENvbnRyb2xWYWx1ZUFjY2Vzc29ye1xyXG5cclxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuICBvblRvdWNoID0gKCkgPT4geyB9O1xyXG5cclxuICBASW5wdXQoKSBpZDogYW55ID0gIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDApO1xyXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGhlbHBUZXh0Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVycm9yVGV4dD86IHN0cmluZztcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlc2l6ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGhlaWdodD86IHN0cmluZztcclxuICBASW5wdXQoKSB3aWR0aD86IHN0cmluZztcclxuICBASW5wdXQoKSByZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRoZW1lOiAnZGVmYXVsdCcgfCAnZ3JlZW4nIHwgJ3llbGxvdycgfCAncmVkJyA9ICdkZWZhdWx0JztcclxuICBpbnB1dFRpbWVvdXQ/OiBhbnk7XHJcbiAgdmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gIGRpc2FibGVkc3R5bGU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5kaXNhYmxlZHN0eWxlID0gXCJkaXNhYmxlZC1hY3RpdmVcIlxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UZXh0Q2hhbmdlKCkge1xyXG5cclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuXHJcbiAgICBpZiAodGhpcy5pbnB1dFRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW5wdXRUaW1lb3V0KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlucHV0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlRXZlbnQubmV4dCh0aGlzLnZhbHVlKTtcclxuICAgIH0sIDEwMDAsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuYmx1ci5uZXh0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1cy5uZXh0KGV2ZW50KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0ZXh0LWFyZWExMzI1IHt7Y2xhc3N9fSB7e2Rpc2FibGVkc3R5bGV9fVwiPlxyXG4gICAgPHRleHRhcmVhXHJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiW3Jlc2l6ZSA/ICcnIDogJ3Jlc2l6ZScgLCB0aGVtZSA/ICd0aGVtZS0nICsgdGhlbWUgOiAnJ11cIlxyXG4gICAgICAgIFtuZ1N0eWxlXT1cIiB7J2hlaWdodCcgOiBoZWlnaHQgLCAnd2lkdGgnIDogd2lkdGh9XCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBcclxuICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFxyXG4gICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIiBcclxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblRleHRDaGFuZ2UoKVwiXHJcbiAgICA+XHJcbiAgICA8L3RleHRhcmVhPlxyXG4gICAgPHMtZXJyb3ItY29udHJvbCAqbmdJZj1cImVycm9yVGV4dFwiIHRoZW1lID1cInJlZFwiPnt7ZXJyb3JUZXh0fX08L3MtZXJyb3ItY29udHJvbD5cclxuXHQ8cy1lcnJvci1jb250cm9sICpuZ0lmPVwiaGVscFRleHQgJiYgIWVycm9yVGV4dFwiPnt7aGVscFRleHR9fTwvcy1lcnJvci1jb250cm9sPlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,177 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "../error-control/s-error-control.component";
6
+ export class SRangeComponent {
7
+ constructor() {
8
+ this.onChange = (_) => { };
9
+ this.onTouch = () => { };
10
+ this.value = '';
11
+ this.id = (Math.floor(Math.random() * 1000)).toString();
12
+ this.disabled = false;
13
+ this.min = 0;
14
+ this.step = 1;
15
+ this.readOnly = false;
16
+ this.classAdd = '';
17
+ this.size = 'md';
18
+ this.rangeUnity = '';
19
+ this.inconSymbol = false;
20
+ this.tooltipValue = '';
21
+ this.valueChangeEvent = new EventEmitter();
22
+ this.clickHelpIconEvent = new EventEmitter();
23
+ this.blur = new EventEmitter();
24
+ this.focus = new EventEmitter();
25
+ }
26
+ ngAfterViewInit() {
27
+ this.rangeOnLoad();
28
+ }
29
+ onTextChange() {
30
+ this.onTouch();
31
+ this.onChange(this.value);
32
+ if (this.inputTimeout) {
33
+ clearTimeout(this.inputTimeout);
34
+ }
35
+ this.inputTimeout = setTimeout(() => {
36
+ this.valueChangeEvent.next(this.value);
37
+ }, 500, null);
38
+ }
39
+ onTextChangeVal(val) {
40
+ if (this.inputTimeout) {
41
+ clearTimeout(this.inputTimeout);
42
+ }
43
+ this.inputTimeout = setTimeout(() => {
44
+ if (val) {
45
+ this.onTouch();
46
+ this.onChange(val);
47
+ this.valueChangeEvent.next(val);
48
+ this.value = val;
49
+ }
50
+ else {
51
+ this.onTouch();
52
+ this.onChange(val);
53
+ this.valueChangeEvent.next(this.value);
54
+ }
55
+ }, 500, null);
56
+ }
57
+ clickIcon() {
58
+ this.clickHelpIconEvent.next();
59
+ }
60
+ //FUNCIONES PARA TYPE RANGE
61
+ rangeOnLoad() {
62
+ setTimeout(() => {
63
+ //RANGO TOTAL
64
+ const rangeMax = this.max ? this.max : 100;
65
+ //CALCULO LA AMPLITUD PARA PODER POSICIONAR AL 50% POR DEFECTO
66
+ let amplitudTotal = rangeMax - this.min;
67
+ let porcion = (amplitudTotal * 50) / 100;
68
+ // INICIALIZA AL 50% CUANDO NO HAY VALOR PREDEFINIDO
69
+ let value = this.value == '' ? this.min + porcion : this.value;
70
+ value = this.value == '' ? this.min + porcion : this.value;
71
+ //DEFINO EL TOOTLTIP
72
+ this.tooltipValue = this.value + this.rangeUnity;
73
+ //SI ES CHROME APLICO EL FIX
74
+ const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
75
+ if (isChrome) {
76
+ //CALCCULO EL % A ASIGNAR
77
+ let porcentaje = ((Number(value) - this.min) / (rangeMax - this.min)) * 100;
78
+ document.getElementById(this.id)?.style.setProperty('margin-top', '14px');
79
+ document.getElementById(this.id)?.style.setProperty('margin-bottom', '14px');
80
+ document.getElementById(this.id)?.style.setProperty('border-radius', '4px');
81
+ document.getElementById(this.id)?.style.setProperty('height', '8px');
82
+ document.getElementById(this.id)?.style.setProperty('background', 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' + porcentaje + '%, var(--neutrals-1000) ' + porcentaje + '%, var(--neutrals-1000) 100%)');
83
+ }
84
+ ;
85
+ }, 0);
86
+ }
87
+ //FUNCION PARA CHROME CUANDO SE DESLIZA EL SLIDE FUNCIONE CORRECTAMENTE
88
+ changeRange(value) {
89
+ const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
90
+ const rangeMax = this.max ? this.max : 100;
91
+ if (isChrome) {
92
+ let porcentaje = ((value - this.min) / (rangeMax - this.min)) * 100;
93
+ document.getElementById(this.id)?.style.setProperty('background', 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' + porcentaje + '%, var(--neutrals-1000) ' + porcentaje + '%, var(--neutrals-1000) 100%)');
94
+ }
95
+ ;
96
+ }
97
+ //FUNCION QUE ACTUALIZA EL TOOLTIP CUANDO SE DESLIZA EL SLIDE
98
+ updateTooltip(value) {
99
+ if (this.tooltipContainer && this.tooltip) {
100
+ const rangeWidth = this.tooltipContainer.nativeElement.offsetWidth;
101
+ const rangeMax = this.max ? this.max : 100;
102
+ let porcentaje = ((Number(value) - this.min) / (rangeMax - this.min)) * 100;
103
+ let ajuste = porcentaje * rangeWidth / 100;
104
+ this.tooltip.nativeElement.style.left = `${ajuste}px`;
105
+ this.tooltipValue = value + this.rangeUnity;
106
+ }
107
+ }
108
+ //FIN FUNCIONES PARA TYPE RANGE
109
+ //FUNCIONES PARA QUE FUNCIONE FORM BUILDER
110
+ writeValue(value) {
111
+ if (value) {
112
+ this.value = value;
113
+ this.rangeOnLoad();
114
+ }
115
+ }
116
+ registerOnChange(fn) {
117
+ this.onChange = fn;
118
+ }
119
+ registerOnTouched(fn) {
120
+ this.onTouch = fn;
121
+ }
122
+ onBlur(event) {
123
+ this.blur.next(event);
124
+ }
125
+ onFocus(event) {
126
+ this.focus.next(event);
127
+ }
128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: SRangeComponent, selector: "s-range", inputs: { value: "value", id: "id", label: "label", required: "required", helpText: "helpText", errorText: "errorText", disabled: "disabled", max: "max", min: "min", step: "step", readOnly: "readOnly", classAdd: "classAdd", size: "size", rangeUnity: "rangeUnity" }, outputs: { valueChangeEvent: "valueChangeEvent", clickHelpIconEvent: "clickHelpIconEvent", blur: "blur", focus: "focus" }, viewQueries: [{ propertyName: "tooltipContainer", first: true, predicate: ["tooltipContainer"], descendants: true }, { propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true }], ngImport: i0, template: "<ng-container>\r\n <label *ngIf=\"label\" class=\"s-input__label\">\r\n\t\t{{label}}\r\n\t\t<span class=\"s-input__required\" *ngIf=\"required\">*</span>\r\n\t</label>\r\n <div class=\"content-input-main-range {{classAdd}}\" [ngClass]=\"{'disabled-active': disabled}\">\r\n <div class=\"tooltip tooltip-{{disabled}}\" #tooltipContainer>\r\n <input\r\n #rangeField \r\n [id]=\"id\"\r\n [step]=\"step\"\r\n autocomplete=\"off\"\r\n disabled={{disabled}}\r\n [readOnly]=\"readOnly\"\r\n [type]=\"'range'\"\r\n max={{max}}\r\n min={{min}}\r\n [(ngModel)]=\"value\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n (ngModelChange)=\"onTextChange()\"\r\n (mousemove)=\"changeRange(rangeField.value)\"\r\n (input)=\"updateTooltip(rangeField.value)\"\r\n >\r\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\r\n </div>\r\n </div>\r\n <s-error-control *ngIf=\"errorText\" theme =\"red\">{{errorText}}</s-error-control>\r\n\t<s-error-control *ngIf=\"helpText && !errorText\">{{helpText}}</s-error-control>\r\n</ng-container>", styles: [".s-input__label{font-size:14px}.s-input__required{color:var(--primary-600)}.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(--primary-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-left-url{display:flex;align-items:center;justify-content:space-evenly;margin-right:8px;border-right:1px solid var(--secondary-500);padding-right:8px;color:var(--secondary-500);font-size:.9rem}.content-input-main-626 .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:8px;color:var(--secondary-600)}.content-input-main-626.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.content-input-main-626.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.content-input-main-626.disabled-active .content-left{color:var(--neutrals-800)!important}.content-input-main-626.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.content-input-main-626.disabled-active.content-input-main-url .content-left,.content-input-main-626.disabled-active.content-input-main-color .content-left{color:var(--neutrals-800)!important;border-right:1px solid var(--neutrals-900)}.content-input-main-626.theme-red{border:1px solid var(--red-500)}.content-input-main-626.theme-red .icon.report span{color:var(--red-600)}.content-input-main-626.theme-green{border:1px solid var(--green-500)}.content-input-main-626.theme-green .icon.report span{color:var(--green-600)}.content-input-main-626.theme-yellow{border:1px solid var(--yellow-500)}.content-input-main-626.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}.content-input-main-626.content-input-main-number input::-webkit-outer-spin-button,.content-input-main-626.content-input-main-number input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.content-input-main-626.content-input-main-number input[type=number]{-moz-appearance:textfield}.button-input-626{font-size:15px;font-weight:700}.content-input-main-range input{width:100%;height:36px;margin:0;-webkit-appearance:none}.content-input-main-range input[type=range]::-webkit-slider-runnable-track{border-radius:4px;height:8px}.content-input-main-range input[type=range]::-moz-range-track{appearance:none;background-color:var(--neutrals-1000)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-ms-track{appearance:none;background-color:var(--neutrals-1000)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-moz-range-progress{appearance:none;background-color:var(--primary-600)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-ms-fill-upper{appearance:none;background-color:var(--primary-600)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-webkit-slider-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:24px;height:24px;border-radius:50%;border:3px solid var(--primary-600);background:var(--neutrals-1200);margin-top:-8px}.content-input-main-range input[type=range]::-moz-range-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:24px;height:24px;border-radius:50%;border:3px solid var(--primary-600);background:var(--neutrals-1200)}.content-input-main-range input[type=range]::-ms-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:24px;height:24px;border-radius:50%;border:3px solid var(--primary-600);background:var(--neutrals-1200)}.content-input-main-range input[type=range]::-webkit-slider-thumb:hover{border:3px solid var(--primary-600);background:var(--primary-200)}.content-input-main-range input[type=range]::-moz-range-thumb:hover{border:3px solid var(--primary-600);background:var(--primary-200)}.content-input-main-range input[type=range]::-ms-thumb:hover{border:3px solid var(--primary-600);background:var(--primary-200)}.content-input-main-range input[type=range]::-webkit-slider-thumb:active{border:3px solid var(--primary-600);background:var(--primary-600);box-shadow:0 1px 2px #1018280d,0 0 0 4px #0091fe26}.content-input-main-range input[type=range]::-moz-range-thumb:active{border:3px solid var(--primary-600);background:var(--primary-600);box-shadow:0 1px 2px #1018280d,0 0 0 4px #0091fe26}.content-input-main-range input[type=range]::-ms-thumb:active{border:3px solid var(--primary-600);background:var(--primary-600);box-shadow:0 1px 2px #1018280d,0 0 0 4px #0091fe26}.content-input-main-range input[type=range]:disabled{filter:grayscale(1);opacity:.3;cursor:not-allowed}.tooltip{position:relative;display:inline-block;cursor:pointer;width:100%}.tooltip .tooltiptext{visibility:hidden;width:40px;background-color:var(--neutrals-1200);color:var(--secondary-600);font-weight:700;font-size:12px;text-align:center;border-radius:4px;padding:5px;position:absolute;z-index:1;bottom:100%;left:550%;transform:translate(-50%);box-shadow:0 0 16px #17386129}.tooltip-false:hover .tooltiptext{visibility:visible}.tooltip .tooltiptext:before{content:\"\";position:absolute!important;transform:rotate(45deg);height:10px;width:10px;bottom:-5px;background-color:var(--neutrals-1200);box-shadow:0 0 16px #17386129;left:40%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }], encapsulation: i0.ViewEncapsulation.None }); }
130
+ }
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SRangeComponent, decorators: [{
132
+ type: Component,
133
+ args: [{ selector: 's-range', encapsulation: ViewEncapsulation.None, template: "<ng-container>\r\n <label *ngIf=\"label\" class=\"s-input__label\">\r\n\t\t{{label}}\r\n\t\t<span class=\"s-input__required\" *ngIf=\"required\">*</span>\r\n\t</label>\r\n <div class=\"content-input-main-range {{classAdd}}\" [ngClass]=\"{'disabled-active': disabled}\">\r\n <div class=\"tooltip tooltip-{{disabled}}\" #tooltipContainer>\r\n <input\r\n #rangeField \r\n [id]=\"id\"\r\n [step]=\"step\"\r\n autocomplete=\"off\"\r\n disabled={{disabled}}\r\n [readOnly]=\"readOnly\"\r\n [type]=\"'range'\"\r\n max={{max}}\r\n min={{min}}\r\n [(ngModel)]=\"value\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n (ngModelChange)=\"onTextChange()\"\r\n (mousemove)=\"changeRange(rangeField.value)\"\r\n (input)=\"updateTooltip(rangeField.value)\"\r\n >\r\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\r\n </div>\r\n </div>\r\n <s-error-control *ngIf=\"errorText\" theme =\"red\">{{errorText}}</s-error-control>\r\n\t<s-error-control *ngIf=\"helpText && !errorText\">{{helpText}}</s-error-control>\r\n</ng-container>", styles: [".s-input__label{font-size:14px}.s-input__required{color:var(--primary-600)}.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(--primary-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-left-url{display:flex;align-items:center;justify-content:space-evenly;margin-right:8px;border-right:1px solid var(--secondary-500);padding-right:8px;color:var(--secondary-500);font-size:.9rem}.content-input-main-626 .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:8px;color:var(--secondary-600)}.content-input-main-626.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.content-input-main-626.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.content-input-main-626.disabled-active .content-left{color:var(--neutrals-800)!important}.content-input-main-626.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.content-input-main-626.disabled-active.content-input-main-url .content-left,.content-input-main-626.disabled-active.content-input-main-color .content-left{color:var(--neutrals-800)!important;border-right:1px solid var(--neutrals-900)}.content-input-main-626.theme-red{border:1px solid var(--red-500)}.content-input-main-626.theme-red .icon.report span{color:var(--red-600)}.content-input-main-626.theme-green{border:1px solid var(--green-500)}.content-input-main-626.theme-green .icon.report span{color:var(--green-600)}.content-input-main-626.theme-yellow{border:1px solid var(--yellow-500)}.content-input-main-626.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}.content-input-main-626.content-input-main-number input::-webkit-outer-spin-button,.content-input-main-626.content-input-main-number input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.content-input-main-626.content-input-main-number input[type=number]{-moz-appearance:textfield}.button-input-626{font-size:15px;font-weight:700}.content-input-main-range input{width:100%;height:36px;margin:0;-webkit-appearance:none}.content-input-main-range input[type=range]::-webkit-slider-runnable-track{border-radius:4px;height:8px}.content-input-main-range input[type=range]::-moz-range-track{appearance:none;background-color:var(--neutrals-1000)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-ms-track{appearance:none;background-color:var(--neutrals-1000)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-moz-range-progress{appearance:none;background-color:var(--primary-600)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-ms-fill-upper{appearance:none;background-color:var(--primary-600)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-webkit-slider-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:24px;height:24px;border-radius:50%;border:3px solid var(--primary-600);background:var(--neutrals-1200);margin-top:-8px}.content-input-main-range input[type=range]::-moz-range-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:24px;height:24px;border-radius:50%;border:3px solid var(--primary-600);background:var(--neutrals-1200)}.content-input-main-range input[type=range]::-ms-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:24px;height:24px;border-radius:50%;border:3px solid var(--primary-600);background:var(--neutrals-1200)}.content-input-main-range input[type=range]::-webkit-slider-thumb:hover{border:3px solid var(--primary-600);background:var(--primary-200)}.content-input-main-range input[type=range]::-moz-range-thumb:hover{border:3px solid var(--primary-600);background:var(--primary-200)}.content-input-main-range input[type=range]::-ms-thumb:hover{border:3px solid var(--primary-600);background:var(--primary-200)}.content-input-main-range input[type=range]::-webkit-slider-thumb:active{border:3px solid var(--primary-600);background:var(--primary-600);box-shadow:0 1px 2px #1018280d,0 0 0 4px #0091fe26}.content-input-main-range input[type=range]::-moz-range-thumb:active{border:3px solid var(--primary-600);background:var(--primary-600);box-shadow:0 1px 2px #1018280d,0 0 0 4px #0091fe26}.content-input-main-range input[type=range]::-ms-thumb:active{border:3px solid var(--primary-600);background:var(--primary-600);box-shadow:0 1px 2px #1018280d,0 0 0 4px #0091fe26}.content-input-main-range input[type=range]:disabled{filter:grayscale(1);opacity:.3;cursor:not-allowed}.tooltip{position:relative;display:inline-block;cursor:pointer;width:100%}.tooltip .tooltiptext{visibility:hidden;width:40px;background-color:var(--neutrals-1200);color:var(--secondary-600);font-weight:700;font-size:12px;text-align:center;border-radius:4px;padding:5px;position:absolute;z-index:1;bottom:100%;left:550%;transform:translate(-50%);box-shadow:0 0 16px #17386129}.tooltip-false:hover .tooltiptext{visibility:visible}.tooltip .tooltiptext:before{content:\"\";position:absolute!important;transform:rotate(45deg);height:10px;width:10px;bottom:-5px;background-color:var(--neutrals-1200);box-shadow:0 0 16px #17386129;left:40%}\n"] }]
134
+ }], propDecorators: { tooltipContainer: [{
135
+ type: ViewChild,
136
+ args: ['tooltipContainer', { static: false }]
137
+ }], tooltip: [{
138
+ type: ViewChild,
139
+ args: ['tooltip', { static: false }]
140
+ }], value: [{
141
+ type: Input
142
+ }], id: [{
143
+ type: Input
144
+ }], label: [{
145
+ type: Input
146
+ }], required: [{
147
+ type: Input
148
+ }], helpText: [{
149
+ type: Input
150
+ }], errorText: [{
151
+ type: Input
152
+ }], disabled: [{
153
+ type: Input
154
+ }], max: [{
155
+ type: Input
156
+ }], min: [{
157
+ type: Input
158
+ }], step: [{
159
+ type: Input
160
+ }], readOnly: [{
161
+ type: Input
162
+ }], classAdd: [{
163
+ type: Input
164
+ }], size: [{
165
+ type: Input
166
+ }], rangeUnity: [{
167
+ type: Input
168
+ }], valueChangeEvent: [{
169
+ type: Output
170
+ }], clickHelpIconEvent: [{
171
+ type: Output
172
+ }], blur: [{
173
+ type: Output
174
+ }], focus: [{
175
+ type: Output
176
+ }] } });
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWRlc3lzLWdlbmVyaWMtdWkvc3JjL2xpYi9pbnB1dC9jb21wb25lbnRzL3JhbmdlL3MtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvaW5wdXQvY29tcG9uZW50cy9yYW5nZS9zLXJhbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTaEksTUFBTSxPQUFPLGVBQWU7SUFONUI7UUFRRSxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzQixZQUFPLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBT1gsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixPQUFFLEdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBSzNELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsUUFBRyxHQUFXLENBQUMsQ0FBQztRQUNoQixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBQ2pCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixTQUFJLEdBQWdCLElBQUksQ0FBQztRQUN6QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBR2pDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRWhCLHFCQUFnQixHQUFHLElB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LEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFNSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncy1yYW5nZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3MtcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3MtcmFuZ2UuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU1JhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuICBvblRvdWNoID0gKCkgPT4geyB9O1xyXG5cclxuICAvL1JFRiBQQVJBIFRZUEUgUkFOR0VcclxuICBAVmlld0NoaWxkKCd0b29sdGlwQ29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHRvb2x0aXBDb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgndG9vbHRpcCcsIHsgc3RhdGljOiBmYWxzZSB9KSB0b29sdGlwOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG5cclxuXHJcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMCkpLnRvU3RyaW5nKCk7XHJcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhlbHBUZXh0Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVycm9yVGV4dD86IHN0cmluZztcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1heD86IG51bWJlcjtcclxuICBASW5wdXQoKSBtaW46IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgc3RlcDogbnVtYmVyID0gMTtcclxuICBASW5wdXQoKSByZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGNsYXNzQWRkOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ21kJyA9ICdtZCc7XHJcbiAgQElucHV0KCkgcmFuZ2VVbml0eTogc3RyaW5nID0gJyc7XHJcblxyXG4gIGlucHV0VGltZW91dD86IGFueTtcclxuICBpbmNvblN5bWJvbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRvb2x0aXBWYWx1ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrSGVscEljb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmFuZ2VPbkxvYWQoKTtcclxuICB9XHJcblxyXG4gIG9uVGV4dENoYW5nZSgpIHtcclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIGlmICh0aGlzLmlucHV0VGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5pbnB1dFRpbWVvdXQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnB1dFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZUV2ZW50Lm5leHQodGhpcy52YWx1ZSk7XHJcbiAgICB9LCA1MDAsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgb25UZXh0Q2hhbmdlVmFsKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dFRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW5wdXRUaW1lb3V0KTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wdXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZUV2ZW50Lm5leHQodmFsKTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlRXZlbnQubmV4dCh0aGlzLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSwgNTAwLCBudWxsKTtcclxuICB9XHJcblxyXG4gIGNsaWNrSWNvbigpIHtcclxuICAgIHRoaXMuY2xpY2tIZWxwSWNvbkV2ZW50Lm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8vRlVOQ0lPTkVTIFBBUkEgVFlQRSBSQU5HRSBcclxuICByYW5nZU9uTG9hZCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvL1JBTkdPIFRPVEFMXHJcbiAgICAgIGNvbnN0IHJhbmdlTWF4ID0gdGhpcy5tYXggPyB0aGlzLm1heCA6IDEwMDtcclxuICAgICAgLy9DQUxDVUxPIExBIEFNUExJVFVEIFBBUkEgUE9ERVIgUE9TSUNJT05BUiBBTCA1MCUgUE9SIERFRkVDVE9cclxuICAgICAgbGV0IGFtcGxpdHVkVG90YWwgPSByYW5nZU1heCAtIHRoaXMubWluXHJcbiAgICAgIGxldCBwb3JjaW9uID0gKGFtcGxpdHVkVG90YWwgKiA1MCkgLyAxMDBcclxuICAgICAgLy8gSU5JQ0lBTElaQSBBTCA1MCUgQ1VBTkRPIE5PIEhBWSBWQUxPUiBQUkVERUZJTklET1xyXG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLnZhbHVlID09ICcnID8gdGhpcy5taW4gKyBwb3JjaW9uIDogdGhpcy52YWx1ZVxyXG4gICAgICB2YWx1ZSA9IHRoaXMudmFsdWUgPT0gJycgPyB0aGlzLm1pbiArIHBvcmNpb24gOiB0aGlzLnZhbHVlXHJcbiAgICAgIC8vREVGSU5PIEVMIFRPT1RMVElQXHJcbiAgICAgIHRoaXMudG9vbHRpcFZhbHVlID0gdGhpcy52YWx1ZSArIHRoaXMucmFuZ2VVbml0eTtcclxuICAgICAgLy9TSSBFUyBDSFJPTUUgQVBMSUNPIEVMIEZJWFxyXG4gICAgICBjb25zdCBpc0Nocm9tZSA9IC9DaHJvbWUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgL0dvb2dsZSBJbmMvLnRlc3QobmF2aWdhdG9yLnZlbmRvcik7XHJcbiAgICAgIGlmIChpc0Nocm9tZSkge1xyXG4gICAgICAgIC8vQ0FMQ0NVTE8gRUwgJSBBIEFTSUdOQVJcclxuICAgICAgICBsZXQgcG9yY2VudGFqZSA9ICgoTnVtYmVyKHZhbHVlKSAtIHRoaXMubWluKSAvIChyYW5nZU1heCAtIHRoaXMubWluKSkgKiAxMDBcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlkKT8uc3R5bGUuc2V0UHJvcGVydHkoJ21hcmdpbi10b3AnLCAnMTRweCcpO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpPy5zdHlsZS5zZXRQcm9wZXJ0eSgnbWFyZ2luLWJvdHRvbScsICcxNHB4Jyk7XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCk/LnN0eWxlLnNldFByb3BlcnR5KCdib3JkZXItcmFkaXVzJywgJzRweCcpO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpPy5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgJzhweCcpO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpPy5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZCcsICdsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLXByaW1hcnktNjAwKSAwJSwgdmFyKC0tcHJpbWFyeS02MDApICcgKyBwb3JjZW50YWplICsgJyUsIHZhcigtLW5ldXRyYWxzLTEwMDApICcgKyBwb3JjZW50YWplICsgJyUsIHZhcigtLW5ldXRyYWxzLTEwMDApIDEwMCUpJyk7XHJcbiAgICAgIH07XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIC8vRlVOQ0lPTiBQQVJBIENIUk9NRSBDVUFORE8gU0UgREVTTElaQSBFTCBTTElERSBGVU5DSU9ORSBDT1JSRUNUQU1FTlRFXHJcbiAgY2hhbmdlUmFuZ2UodmFsdWU6IGFueSkge1xyXG4gICAgY29uc3QgaXNDaHJvbWUgPSAvQ2hyb21lLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIC9Hb29nbGUgSW5jLy50ZXN0KG5hdmlnYXRvci52ZW5kb3IpO1xyXG4gICAgY29uc3QgcmFuZ2VNYXggPSB0aGlzLm1heCA/IHRoaXMubWF4IDogMTAwO1xyXG4gICAgaWYgKGlzQ2hyb21lKSB7XHJcbiAgICAgIGxldCBwb3JjZW50YWplID0gKCh2YWx1ZSAtIHRoaXMubWluKSAvIChyYW5nZU1heCAtIHRoaXMubWluKSkgKiAxMDBcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCk/LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kJywgJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tcHJpbWFyeS02MDApIDAlLCB2YXIoLS1wcmltYXJ5LTYwMCkgJyArIHBvcmNlbnRhamUgKyAnJSwgdmFyKC0tbmV1dHJhbHMtMTAwMCkgJyArIHBvcmNlbnRhamUgKyAnJSwgdmFyKC0tbmV1dHJhbHMtMTAwMCkgMTAwJSknKTtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvL0ZVTkNJT04gUVVFIEFDVFVBTElaQSBFTCBUT09MVElQIENVQU5ETyBTRSBERVNMSVpBIEVMIFNMSURFXHJcbiAgdXBkYXRlVG9vbHRpcCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwQ29udGFpbmVyICYmIHRoaXMudG9vbHRpcCkge1xyXG4gICAgICBjb25zdCByYW5nZVdpZHRoID0gdGhpcy50b29sdGlwQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgIGNvbnN0IHJhbmdlTWF4ID0gdGhpcy5tYXggPyB0aGlzLm1heCA6IDEwMDtcclxuICAgICAgbGV0IHBvcmNlbnRhamUgPSAoKE51bWJlcih2YWx1ZSkgLSB0aGlzLm1pbikgLyAocmFuZ2VNYXggLSB0aGlzLm1pbikpICogMTAwXHJcbiAgICAgIGxldCBhanVzdGUgPSBwb3JjZW50YWplICogcmFuZ2VXaWR0aCAvIDEwMDtcclxuICAgICAgdGhpcy50b29sdGlwLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IGAke2FqdXN0ZX1weGA7XHJcbiAgICAgIHRoaXMudG9vbHRpcFZhbHVlID0gdmFsdWUgKyB0aGlzLnJhbmdlVW5pdHk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vRklOIEZVTkNJT05FUyBQQVJBIFRZUEUgUkFOR0VcclxuXHJcbiAgLy9GVU5DSU9ORVMgUEFSQSBRVUUgRlVOQ0lPTkUgRk9STSBCVUlMREVSXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLnJhbmdlT25Mb2FkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuYmx1ci5uZXh0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1cy5uZXh0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lcj5cclxuICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwicy1pbnB1dF9fbGFiZWxcIj5cclxuXHRcdHt7bGFiZWx9fVxyXG5cdFx0PHNwYW4gY2xhc3M9XCJzLWlucHV0X19yZXF1aXJlZFwiICpuZ0lmPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxyXG5cdDwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRlbnQtaW5wdXQtbWFpbi1yYW5nZSB7e2NsYXNzQWRkfX1cIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkLWFjdGl2ZSc6IGRpc2FibGVkfVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcCB0b29sdGlwLXt7ZGlzYWJsZWR9fVwiICN0b29sdGlwQ29udGFpbmVyPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgI3JhbmdlRmllbGQgXHJcbiAgICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgICBbc3RlcF09XCJzdGVwXCJcclxuICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgIGRpc2FibGVkPXt7ZGlzYWJsZWR9fVxyXG4gICAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgW3R5cGVdPVwiJ3JhbmdlJ1wiXHJcbiAgICAgICAgICAgICAgbWF4PXt7bWF4fX1cclxuICAgICAgICAgICAgICBtaW49e3ttaW59fVxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblRleHRDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgKG1vdXNlbW92ZSk9XCJjaGFuZ2VSYW5nZShyYW5nZUZpZWxkLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgKGlucHV0KT1cInVwZGF0ZVRvb2x0aXAocmFuZ2VGaWVsZC52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0XCIgI3Rvb2x0aXA+e3sgdG9vbHRpcFZhbHVlIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8cy1lcnJvci1jb250cm9sICpuZ0lmPVwiZXJyb3JUZXh0XCIgdGhlbWUgPVwicmVkXCI+e3tlcnJvclRleHR9fTwvcy1lcnJvci1jb250cm9sPlxyXG5cdDxzLWVycm9yLWNvbnRyb2wgKm5nSWY9XCJoZWxwVGV4dCAmJiAhZXJyb3JUZXh0XCI+e3toZWxwVGV4dH19PC9zLWVycm9yLWNvbnRyb2w+XHJcbjwvbmctY29udGFpbmVyPiJdfQ==
@@ -0,0 +1,129 @@
1
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { ICON_THEME } from '../../enums/icon-theme.enum';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "../../../icon-material/s-icon-material.component";
8
+ import * as i4 from "../error-control/s-error-control.component";
9
+ export class STimeComponent {
10
+ constructor() {
11
+ this.onChange = (_) => { };
12
+ this.onTouch = () => { };
13
+ this.value = '';
14
+ this.id = (Math.floor(Math.random() * 1000)).toString();
15
+ this.disabled = false;
16
+ this.theme = 'default';
17
+ this.classAdd = '';
18
+ this.help = false;
19
+ this.size = 'md';
20
+ this.valueChangeEvent = new EventEmitter();
21
+ this.clickHelpIconEvent = new EventEmitter();
22
+ this.blur = new EventEmitter();
23
+ this.focus = new EventEmitter();
24
+ this.ICON_THEME = ICON_THEME;
25
+ }
26
+ onTextChange() {
27
+ this.onTouch();
28
+ this.onChange(this.value);
29
+ if (this.inputTimeout) {
30
+ clearTimeout(this.inputTimeout);
31
+ }
32
+ this.inputTimeout = setTimeout(() => {
33
+ this.valueChangeEvent.next(this.value);
34
+ }, 500, null);
35
+ }
36
+ onTextChangeVal(val) {
37
+ if (this.inputTimeout) {
38
+ clearTimeout(this.inputTimeout);
39
+ }
40
+ this.inputTimeout = setTimeout(() => {
41
+ if (val) {
42
+ this.onTouch();
43
+ this.onChange(val);
44
+ this.valueChangeEvent.next(val);
45
+ this.value = val;
46
+ }
47
+ else {
48
+ this.onTouch();
49
+ this.onChange(val);
50
+ this.valueChangeEvent.next(this.value);
51
+ }
52
+ }, 500, null);
53
+ }
54
+ clickIcon() {
55
+ this.clickHelpIconEvent.next();
56
+ }
57
+ getIconType() {
58
+ return this.theme == 'yellow' ? 'symbol' : 'icon';
59
+ }
60
+ //FUNCIONES PARA QUE FUNCIONE FORM BUILDER
61
+ writeValue(value) {
62
+ if (value) {
63
+ this.value = value;
64
+ }
65
+ }
66
+ registerOnChange(fn) {
67
+ this.onChange = fn;
68
+ }
69
+ registerOnTouched(fn) {
70
+ this.onTouch = fn;
71
+ }
72
+ onBlur(event) {
73
+ this.blur.next(event);
74
+ }
75
+ onFocus(event) {
76
+ this.focus.next(event);
77
+ }
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: STimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: STimeComponent, selector: "s-time", inputs: { value: "value", id: "id", label: "label", placeHolder: "placeHolder", required: "required", helpText: "helpText", errorText: "errorText", disabled: "disabled", theme: "theme", classAdd: "classAdd", help: "help", size: "size" }, outputs: { valueChangeEvent: "valueChangeEvent", clickHelpIconEvent: "clickHelpIconEvent", blur: "blur", focus: "focus" }, providers: [
80
+ {
81
+ provide: NG_VALUE_ACCESSOR,
82
+ useExisting: forwardRef(() => STimeComponent),
83
+ multi: true
84
+ }
85
+ ], ngImport: i0, template: "<ng-container>\r\n <label *ngIf=\"label\" class=\"s-input__label\">\r\n\t\t{{label}}\r\n\t\t<span class=\"s-input__required\" *ngIf=\"required\">*</span>\r\n\t</label>\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}}\"\r\n [ngClass]=\"{'disabled-active': disabled}\">\r\n <div class=\"content-center\">\r\n <input \r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [disabled]=\"disabled\" \r\n [type]=\"'time'\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" \r\n (ngModelChange)=\"onTextChangeVal($event)\"\r\n [ngModel]=\"value\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{ICON_THEME[this.theme]}}</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 <s-error-control *ngIf=\"errorText\" theme =\"red\">{{errorText}}</s-error-control>\r\n\t<s-error-control *ngIf=\"helpText && !errorText\">{{helpText}}</s-error-control>\r\n</ng-container>", styles: [".s-input{margin-bottom:.5rem}.s-input__label{font-size:14px}.s-input__required{color:var(--primary-600)}.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(--primary-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)}.content-input-main-626.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.content-input-main-626.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.content-input-main-626.disabled-active .content-left{color:var(--neutrals-800)!important}.content-input-main-626.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.content-input-main-626.disabled-active.content-input-main-url .content-left,.content-input-main-626.disabled-active.content-input-main-color .content-left{color:var(--neutrals-800)!important;border-right:1px solid var(--neutrals-900)}.content-input-main-626.theme-red{border:1px solid var(--red-500)}.content-input-main-626.theme-red .icon.report span{color:var(--red-600)}.content-input-main-626.theme-green{border:1px solid var(--green-500)}.content-input-main-626.theme-green .icon.report span{color:var(--green-600)}.content-input-main-626.theme-yellow{border:1px solid var(--yellow-500)}.content-input-main-626.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}.tooltip{position:relative;display:inline-block;cursor:pointer;width:100%}.tooltip .tooltiptext{visibility:hidden;width:40px;background-color:var(--neutrals-1200);color:var(--secondary-600);font-weight:700;font-size:12px;text-align:center;border-radius:4px;padding:5px;position:absolute;z-index:1;bottom:100%;left:550%;transform:translate(-50%);box-shadow:0 0 16px #17386129}.tooltip-false:hover .tooltiptext{visibility:visible}.tooltip .tooltiptext:before{content:\"\";position:absolute!important;transform:rotate(45deg);height:10px;width:10px;bottom:-5px;background-color:var(--neutrals-1200);box-shadow:0 0 16px #17386129;left:40%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "color", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: i4.SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }], encapsulation: i0.ViewEncapsulation.None }); }
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: STimeComponent, decorators: [{
88
+ type: Component,
89
+ args: [{ selector: 's-time', encapsulation: ViewEncapsulation.None, providers: [
90
+ {
91
+ provide: NG_VALUE_ACCESSOR,
92
+ useExisting: forwardRef(() => STimeComponent),
93
+ multi: true
94
+ }
95
+ ], template: "<ng-container>\r\n <label *ngIf=\"label\" class=\"s-input__label\">\r\n\t\t{{label}}\r\n\t\t<span class=\"s-input__required\" *ngIf=\"required\">*</span>\r\n\t</label>\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}}\"\r\n [ngClass]=\"{'disabled-active': disabled}\">\r\n <div class=\"content-center\">\r\n <input \r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [disabled]=\"disabled\" \r\n [type]=\"'time'\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" \r\n (ngModelChange)=\"onTextChangeVal($event)\"\r\n [ngModel]=\"value\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"getIconType()\" class=\"icon report\">{{ICON_THEME[this.theme]}}</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 <s-error-control *ngIf=\"errorText\" theme =\"red\">{{errorText}}</s-error-control>\r\n\t<s-error-control *ngIf=\"helpText && !errorText\">{{helpText}}</s-error-control>\r\n</ng-container>", styles: [".s-input{margin-bottom:.5rem}.s-input__label{font-size:14px}.s-input__required{color:var(--primary-600)}.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(--primary-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)}.content-input-main-626.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.content-input-main-626.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.content-input-main-626.disabled-active .content-left{color:var(--neutrals-800)!important}.content-input-main-626.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.content-input-main-626.disabled-active.content-input-main-url .content-left,.content-input-main-626.disabled-active.content-input-main-color .content-left{color:var(--neutrals-800)!important;border-right:1px solid var(--neutrals-900)}.content-input-main-626.theme-red{border:1px solid var(--red-500)}.content-input-main-626.theme-red .icon.report span{color:var(--red-600)}.content-input-main-626.theme-green{border:1px solid var(--green-500)}.content-input-main-626.theme-green .icon.report span{color:var(--green-600)}.content-input-main-626.theme-yellow{border:1px solid var(--yellow-500)}.content-input-main-626.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}.tooltip{position:relative;display:inline-block;cursor:pointer;width:100%}.tooltip .tooltiptext{visibility:hidden;width:40px;background-color:var(--neutrals-1200);color:var(--secondary-600);font-weight:700;font-size:12px;text-align:center;border-radius:4px;padding:5px;position:absolute;z-index:1;bottom:100%;left:550%;transform:translate(-50%);box-shadow:0 0 16px #17386129}.tooltip-false:hover .tooltiptext{visibility:visible}.tooltip .tooltiptext:before{content:\"\";position:absolute!important;transform:rotate(45deg);height:10px;width:10px;bottom:-5px;background-color:var(--neutrals-1200);box-shadow:0 0 16px #17386129;left:40%}\n"] }]
96
+ }], propDecorators: { value: [{
97
+ type: Input
98
+ }], id: [{
99
+ type: Input
100
+ }], label: [{
101
+ type: Input
102
+ }], placeHolder: [{
103
+ type: Input
104
+ }], required: [{
105
+ type: Input
106
+ }], helpText: [{
107
+ type: Input
108
+ }], errorText: [{
109
+ type: Input
110
+ }], disabled: [{
111
+ type: Input
112
+ }], theme: [{
113
+ type: Input
114
+ }], classAdd: [{
115
+ type: Input
116
+ }], help: [{
117
+ type: Input
118
+ }], size: [{
119
+ type: Input
120
+ }], valueChangeEvent: [{
121
+ type: Output
122
+ }], clickHelpIconEvent: [{
123
+ type: Output
124
+ }], blur: [{
125
+ type: Output
126
+ }], focus: [{
127
+ type: Output
128
+ }] } });
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpZGVzeXMtZ2VuZXJpYy11aS9zcmMvbGliL2lucHV0L2NvbXBvbmVudHMvdGltZS9zLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvaW5wdXQvY29tcG9uZW50cy90aW1lL3MtdGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7OztBQWV6RCxNQUFNLE9BQU8sY0FBYztJQWIzQjtRQWVFLGFBQVEsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFWCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLE9BQUUsR0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFNM0QsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixVQUFLLEdBQTJDLFNBQVMsQ0FBQztRQUMxRCxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsU0FBSSxHQUFnQixJQUFJLENBQUM7UUFDeEIscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5Qyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzlDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2hDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRzNDLGVBQVUsR0FBRyxVQUFVLENBQUM7S0FpRXpCO0lBL0RDLFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBVztRQUN6QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7YUFDbEI7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3hDO1FBQ0gsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BELENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBVTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBVTtRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQXZGVSxjQUFjO2tHQUFkLGNBQWMsMFlBUmQ7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDN0MsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ2ZILDAzQ0E0QmU7OzJGRFhGLGNBQWM7a0JBYjFCLFNBQVM7K0JBQ0UsUUFBUSxpQkFHSCxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQzs0QkFDN0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBT1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJQ09OX1RIRU1FIH0gZnJvbSAnLi4vLi4vZW51bXMvaWNvbi10aGVtZS5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncy10aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcy10aW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zLXRpbWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU1RpbWVDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNUaW1lQ29tcG9uZW50IHtcclxuICBcclxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuICBvblRvdWNoID0gKCkgPT4geyB9O1xyXG5cclxuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9IChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwKSkudG9TdHJpbmcoKTtcclxuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZUhvbGRlcj86IHN0cmluZztcclxuICBASW5wdXQoKSByZXF1aXJlZD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGVscFRleHQ/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZXJyb3JUZXh0Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGhlbWU6ICdkZWZhdWx0JyB8ICdncmVlbicgfCAneWVsbG93JyB8ICdyZWQnID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIGNsYXNzQWRkOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBoZWxwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgPSAnbWQnO1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrSGVscEljb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIGlucHV0VGltZW91dD86IGFueTtcclxuICBJQ09OX1RIRU1FID0gSUNPTl9USEVNRTtcclxuXHJcbiAgb25UZXh0Q2hhbmdlKCkge1xyXG4gICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG5cclxuICAgIGlmICh0aGlzLmlucHV0VGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5pbnB1dFRpbWVvdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5wdXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VFdmVudC5uZXh0KHRoaXMudmFsdWUpO1xyXG4gICAgfSwgNTAwLCBudWxsKTtcclxuICB9XHJcblxyXG4gIG9uVGV4dENoYW5nZVZhbCh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmlucHV0VGltZW91dCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbnB1dFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlRXZlbnQubmV4dCh2YWwpO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWw7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VFdmVudC5uZXh0KHRoaXMudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9LCA1MDAsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tJY29uKCkge1xyXG4gICAgdGhpcy5jbGlja0hlbHBJY29uRXZlbnQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SWNvblR5cGUoKTogJ3N5bWJvbCcgfCAnaWNvbicge1xyXG4gICAgcmV0dXJuIHRoaXMudGhlbWUgPT0gJ3llbGxvdycgPyAnc3ltYm9sJyA6ICdpY29uJztcclxuICB9XHJcblxyXG4gIC8vRlVOQ0lPTkVTIFBBUkEgUVVFIEZVTkNJT05FIEZPUk0gQlVJTERFUlxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5ibHVyLm5leHQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzLm5leHQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyPlxyXG4gICAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cInMtaW5wdXRfX2xhYmVsXCI+XHJcblx0XHR7e2xhYmVsfX1cclxuXHRcdDxzcGFuIGNsYXNzPVwicy1pbnB1dF9fcmVxdWlyZWRcIiAqbmdJZj1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuXHQ8L2xhYmVsPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiY29udGVudC1pbnB1dC1tYWluLTYyNiBjb250ZW50LWlucHV0LW1haW4tdGV4dCB7e3NpemV9fSB0aGVtZS17e3RoZW1lfX0ge3tjbGFzc0FkZH19XCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkLWFjdGl2ZSc6IGRpc2FibGVkfVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgXHJcbiAgICAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFxyXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwiJ3RpbWUnXCJcclxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiBcclxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZVZhbCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lICE9ICdkZWZhdWx0J1wiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICA8cy1pY29uLW1hdCBbdHlwZV09XCJnZXRJY29uVHlwZSgpXCIgY2xhc3M9XCJpY29uIHJlcG9ydFwiPnt7SUNPTl9USEVNRVt0aGlzLnRoZW1lXX19PC9zLWljb24tbWF0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSA9PSAnZGVmYXVsdCcgJiYgaGVscFwiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICA8cy1pY29uLW1hdCAoY2xpY2spPVwiY2xpY2tJY29uKClcIiBjbGFzcz1cImljb24gY3Vyc29yXCI+aGVscF9vdXRsaW5lPC9zLWljb24tbWF0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8cy1lcnJvci1jb250cm9sICpuZ0lmPVwiZXJyb3JUZXh0XCIgdGhlbWUgPVwicmVkXCI+e3tlcnJvclRleHR9fTwvcy1lcnJvci1jb250cm9sPlxyXG5cdDxzLWVycm9yLWNvbnRyb2wgKm5nSWY9XCJoZWxwVGV4dCAmJiAhZXJyb3JUZXh0XCI+e3toZWxwVGV4dH19PC9zLWVycm9yLWNvbnRyb2w+XHJcbjwvbmctY29udGFpbmVyPiJdfQ==