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.
- package/esm2022/lib/avatar/s-avatar.component.mjs +1 -1
- package/esm2022/lib/badge/s-badge.component.mjs +1 -1
- package/esm2022/lib/breadcrum/s-breadcrum.component.mjs +1 -1
- package/esm2022/lib/card/s-card.component.mjs +1 -1
- package/esm2022/lib/checkbox/s-checkbox.component.mjs +3 -3
- package/esm2022/lib/content/s-content.component.mjs +7 -4
- package/esm2022/lib/footer/s-footer.component.mjs +8 -3
- package/esm2022/lib/form/s-form.component.mjs +1 -1
- package/esm2022/lib/icon-material/index.mjs +2 -1
- package/esm2022/lib/icon-material/s-icon-material.component.mjs +6 -3
- package/esm2022/lib/icon-material/s-icon-material.model.mjs +3 -0
- package/esm2022/lib/input/components/calendar/s-calendar.component.mjs +136 -0
- package/esm2022/lib/input/components/color/s-color.component.mjs +119 -0
- package/esm2022/lib/input/components/error-control/s-error-control.component.mjs +3 -3
- package/esm2022/lib/input/components/input/s-input.component.mjs +116 -0
- package/esm2022/lib/input/components/input-number/s-input-number.component.mjs +228 -0
- package/esm2022/lib/input/components/input-text/s-input-text.component.mjs +7 -9
- package/esm2022/lib/input/components/input-textarea/s-input-textarea.component.mjs +17 -21
- package/esm2022/lib/input/components/range/s-range.component.mjs +177 -0
- package/esm2022/lib/input/components/time/s-time.component.mjs +129 -0
- package/esm2022/lib/input/components/validation-error/s-validation-error.component.mjs +33 -0
- package/esm2022/lib/input/directives/control-value-accessor.directive.mjs +69 -0
- package/esm2022/lib/input/enums/icon-theme.enum.mjs +8 -0
- package/esm2022/lib/input/enums/theme.emun.mjs +8 -0
- package/esm2022/lib/input/index.mjs +10 -1
- package/esm2022/lib/input/input.module.mjs +40 -5
- package/esm2022/lib/list/s-list.component.mjs +1 -1
- package/esm2022/lib/list-simple/s-list-simple.component.mjs +2 -2
- package/esm2022/lib/login/s-login.component.mjs +2 -2
- package/esm2022/lib/navbar/components/icon-menu/components/s-notificaction.component.mjs +1 -1
- package/esm2022/lib/navbar/components/icon-menu/s-icon-menu.component.mjs +1 -1
- package/esm2022/lib/navbar/components/menu-main/s-menu-main.component.mjs +1 -1
- package/esm2022/lib/navbar/s-navbar.component.mjs +2 -2
- package/esm2022/lib/pagination/s-pagination.component.mjs +17 -4
- package/esm2022/lib/popup/s-popup.component.mjs +3 -3
- package/esm2022/lib/precode/s-precode.component.mjs +11 -5
- package/esm2022/lib/progressbar/s-progressbar.component.mjs +2 -2
- package/esm2022/lib/radio/s-radio.component.mjs +8 -9
- package/esm2022/lib/select/select-multiple/s-select-multiple.component.mjs +16 -7
- package/esm2022/lib/select/select-simple/s-select-simple.component.mjs +14 -6
- package/esm2022/lib/sidebar/components/s-menu-item.component.mjs +43 -0
- package/esm2022/lib/sidebar/index.mjs +2 -1
- package/esm2022/lib/sidebar/s-sidebar-model.mjs +1 -1
- package/esm2022/lib/sidebar/s-sidebar.component.mjs +49 -12
- package/esm2022/lib/sidebar/s-sidebar.module.mjs +8 -5
- package/esm2022/lib/sub-menu/s-sub-menu.component.mjs +1 -1
- package/esm2022/lib/tabs/s-tabs.component.mjs +1 -1
- package/esm2022/lib/theme/s-theme.component.mjs +2 -2
- package/esm2022/lib/toast/s-toast.component.mjs +1 -1
- package/esm2022/lib/toggle-switch/s-toggle-switch.component.mjs +1 -1
- package/esm2022/lib/tree-list/s-tree-list.component.mjs +1 -1
- package/fesm2022/sidesys-generic-ui.mjs +1253 -141
- package/fesm2022/sidesys-generic-ui.mjs.map +1 -1
- package/lib/content/s-content.component.d.ts +2 -1
- package/lib/footer/s-footer.component.d.ts +2 -1
- package/lib/icon-material/index.d.ts +1 -0
- package/lib/icon-material/s-icon-material.component.d.ts +11 -9
- package/lib/icon-material/s-icon-material.model.d.ts +11 -0
- package/lib/input/components/calendar/s-calendar.component.d.ts +41 -0
- package/lib/input/components/color/s-color.component.d.ts +40 -0
- package/lib/input/components/error-control/s-error-control.component.d.ts +1 -1
- package/lib/input/components/input/s-input.component.d.ts +72 -0
- package/lib/input/components/input-number/s-input-number.component.d.ts +69 -0
- package/lib/input/components/input-textarea/s-input-textarea.component.d.ts +6 -7
- package/lib/input/components/range/s-range.component.d.ts +44 -0
- package/lib/input/components/time/s-time.component.d.ts +36 -0
- package/lib/input/components/validation-error/s-validation-error.component.d.ts +11 -0
- package/lib/input/directives/control-value-accessor.directive.d.ts +21 -0
- package/lib/input/enums/icon-theme.enum.d.ts +6 -0
- package/lib/input/enums/theme.emun.d.ts +6 -0
- package/lib/input/index.d.ts +9 -0
- package/lib/input/input.module.d.ts +12 -5
- package/lib/pagination/s-pagination.component.d.ts +5 -1
- package/lib/precode/s-precode.component.d.ts +3 -1
- package/lib/radio/s-radio.component.d.ts +1 -1
- package/lib/select/select-multiple/s-select-multiple.component.d.ts +1 -0
- package/lib/sidebar/components/s-menu-item.component.d.ts +16 -0
- package/lib/sidebar/index.d.ts +1 -0
- package/lib/sidebar/s-sidebar-model.d.ts +14 -2
- package/lib/sidebar/s-sidebar.component.d.ts +13 -9
- package/lib/sidebar/s-sidebar.module.d.ts +7 -6
- package/package.json +1 -1
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, forwardRef } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { THEME } from '../../enums/theme.emun';
|
|
4
|
+
import { ICON_THEME } from '../../enums/icon-theme.enum';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
8
|
+
import * as i3 from "../../../icon-material/s-icon-material.component";
|
|
9
|
+
import * as i4 from "../../../button/components/button/s-button.component";
|
|
10
|
+
import * as i5 from "../error-control/s-error-control.component";
|
|
11
|
+
export class SInputNumber {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.disabled = false;
|
|
14
|
+
this.min = 0;
|
|
15
|
+
this.readOnly = false;
|
|
16
|
+
this.theme = THEME.DEFAULT;
|
|
17
|
+
this.help = false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export class SInputNumberComponent {
|
|
21
|
+
constructor() {
|
|
22
|
+
this.onChange = (_) => { };
|
|
23
|
+
this.onTouch = () => { };
|
|
24
|
+
this.value = 0;
|
|
25
|
+
this.id = (Math.floor(Math.random() * 1000)).toString();
|
|
26
|
+
this.disabled = false;
|
|
27
|
+
this.min = 0;
|
|
28
|
+
this.step = 1;
|
|
29
|
+
this.readOnly = false;
|
|
30
|
+
this.theme = 'default';
|
|
31
|
+
this.classAdd = '';
|
|
32
|
+
this.help = false;
|
|
33
|
+
this.size = 'md';
|
|
34
|
+
this.rangeUnity = '';
|
|
35
|
+
this.inputText = 0;
|
|
36
|
+
this.inputNumber = 0;
|
|
37
|
+
this.visibility = false;
|
|
38
|
+
this.inconSymbol = false;
|
|
39
|
+
this.tooltipValue = '';
|
|
40
|
+
this.ICON_THEME = ICON_THEME;
|
|
41
|
+
this.valueChangeEvent = new EventEmitter();
|
|
42
|
+
this.clickHelpIconEvent = new EventEmitter();
|
|
43
|
+
this.blur = new EventEmitter();
|
|
44
|
+
this.focus = new EventEmitter();
|
|
45
|
+
}
|
|
46
|
+
ngOnInit() {
|
|
47
|
+
//Ajuste cuando type number viene con text y lo convierte a numero
|
|
48
|
+
if (this.value) {
|
|
49
|
+
this.inputNumber = this.value;
|
|
50
|
+
}
|
|
51
|
+
this.inputText = this.value;
|
|
52
|
+
}
|
|
53
|
+
ngOnChanges(changes) {
|
|
54
|
+
if (changes['text']) {
|
|
55
|
+
if (this.value) {
|
|
56
|
+
this.inputNumber = this.value;
|
|
57
|
+
}
|
|
58
|
+
this.inputText = this.value;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
onTextChange() {
|
|
62
|
+
this.updateNumber(this.inputText);
|
|
63
|
+
this.onTouch();
|
|
64
|
+
this.onChange(this.inputText);
|
|
65
|
+
if (this.inputTimeout) {
|
|
66
|
+
clearTimeout(this.inputTimeout);
|
|
67
|
+
}
|
|
68
|
+
this.inputTimeout = setTimeout(() => {
|
|
69
|
+
this.valueChangeEvent.next(this.inputText);
|
|
70
|
+
}, 500, null);
|
|
71
|
+
}
|
|
72
|
+
onTextChangeVal(val) {
|
|
73
|
+
if (this.inputTimeout) {
|
|
74
|
+
clearTimeout(this.inputTimeout);
|
|
75
|
+
}
|
|
76
|
+
this.inputTimeout = setTimeout(() => {
|
|
77
|
+
if (val) {
|
|
78
|
+
this.onTouch();
|
|
79
|
+
this.onChange(val);
|
|
80
|
+
this.valueChangeEvent.next(val);
|
|
81
|
+
this.inputText = val;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.onTouch();
|
|
85
|
+
this.onChange(val);
|
|
86
|
+
this.valueChangeEvent.next(this.inputText);
|
|
87
|
+
}
|
|
88
|
+
}, 500, null);
|
|
89
|
+
}
|
|
90
|
+
clickIcon() {
|
|
91
|
+
this.clickHelpIconEvent.next();
|
|
92
|
+
}
|
|
93
|
+
getIconType() {
|
|
94
|
+
return this.theme == 'yellow' ? 'symbol' : 'icon';
|
|
95
|
+
}
|
|
96
|
+
//FUNCIONES PARA TYPE NUMBER
|
|
97
|
+
numberDecrease() {
|
|
98
|
+
if (!this.disabled && !this.readOnly) {
|
|
99
|
+
if (this.min < this.inputNumber) {
|
|
100
|
+
this.inputNumber -= this.step;
|
|
101
|
+
}
|
|
102
|
+
this.inputText = this.inputNumber;
|
|
103
|
+
this.onTouch();
|
|
104
|
+
this.onChange(this.inputText);
|
|
105
|
+
this.valueChangeEvent.next(this.inputText);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
numberIncrement() {
|
|
109
|
+
if (!this.disabled && !this.readOnly) {
|
|
110
|
+
if (this.max) {
|
|
111
|
+
if (this.max > this.inputNumber) {
|
|
112
|
+
this.inputNumber += this.step;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
this.inputNumber = this.max;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (!this.max) {
|
|
119
|
+
this.inputNumber += this.step;
|
|
120
|
+
}
|
|
121
|
+
this.inputText = this.inputNumber;
|
|
122
|
+
this.onTouch();
|
|
123
|
+
this.onChange(this.inputText);
|
|
124
|
+
this.valueChangeEvent.next(this.inputText);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
updateNumber(value) {
|
|
128
|
+
let value2 = value;
|
|
129
|
+
if (this.max)
|
|
130
|
+
if (value > this.max) {
|
|
131
|
+
value2 = this.max;
|
|
132
|
+
}
|
|
133
|
+
if (value < this.min) {
|
|
134
|
+
value2 = this.min;
|
|
135
|
+
}
|
|
136
|
+
this.inputText = value2.toString();
|
|
137
|
+
this.inputNumber = Number(value2);
|
|
138
|
+
if (this.typeNumber)
|
|
139
|
+
this.typeNumber.nativeElement.value = this.inputNumber;
|
|
140
|
+
this.onTouch();
|
|
141
|
+
this.onChange(this.inputNumber);
|
|
142
|
+
this.valueChangeEvent.next(this.inputText);
|
|
143
|
+
}
|
|
144
|
+
//FIN FUNCIONES PARA TYPE NUMBER
|
|
145
|
+
//FUNCIONES PARA QUE FUNCIONE FORM BUILDER
|
|
146
|
+
writeValue(value) {
|
|
147
|
+
if (value) {
|
|
148
|
+
this.inputText = value;
|
|
149
|
+
this.inputNumber = value;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
registerOnChange(fn) {
|
|
153
|
+
this.onChange = fn;
|
|
154
|
+
}
|
|
155
|
+
registerOnTouched(fn) {
|
|
156
|
+
this.onTouch = fn;
|
|
157
|
+
}
|
|
158
|
+
onBlur(event) {
|
|
159
|
+
this.blur.next(event);
|
|
160
|
+
}
|
|
161
|
+
onFocus(event) {
|
|
162
|
+
this.focus.next(event);
|
|
163
|
+
}
|
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
165
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: SInputNumberComponent, selector: "s-input-number", inputs: { value: "value", id: "id", label: "label", placeHolder: "placeHolder", required: "required", helpText: "helpText", errorText: "errorText", disabled: "disabled", max: "max", min: "min", step: "step", readOnly: "readOnly", theme: "theme", classAdd: "classAdd", help: "help", size: "size", rangeUnity: "rangeUnity" }, outputs: { valueChangeEvent: "valueChangeEvent", clickHelpIconEvent: "clickHelpIconEvent", blur: "blur", focus: "focus" }, providers: [
|
|
166
|
+
{
|
|
167
|
+
provide: NG_VALUE_ACCESSOR,
|
|
168
|
+
useExisting: forwardRef(() => SInputNumberComponent),
|
|
169
|
+
multi: true
|
|
170
|
+
}
|
|
171
|
+
], viewQueries: [{ propertyName: "typeNumber", first: true, predicate: ["typeNumber"], descendants: true }], usesOnChanges: 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=\"d-flex align-center\">\r\n <div class=\"content-left mr-1\">\r\n <s-button [disabled]=\"disabled\" (click)=\"numberDecrease()\" [size]=\"size\" [pill]=\"true\" [invert]=\"true\" class=\"button-input-626\"><s-icon-mat>remove</s-icon-mat></s-button>\r\n </div>\r\n <div class=\"content-input-main-626 content-input-main-text content-input-main-number {{size}} theme-{{theme}} {{classAdd}} w-100\"\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 [readOnly]=\"readOnly\" \r\n [id]=\"id ? id : ''\" \r\n #typeNumber \r\n [disabled]=\"disabled\" \r\n [type]=\"'number'\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" \r\n [(ngModel)]=\"inputText\" \r\n (ngModelChange)=\"onTextChange()\"\r\n [max]=\"max\"\r\n [min]=\"min\"\r\n [step]=\"step\"\r\n >\r\n </div>\r\n\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\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 <div class=\"content-left ml-1\">\r\n <s-button [disabled]=\"disabled\" (click)=\"numberIncrement()\" [size]=\"size\" [pill]=\"true\" [invert]=\"true\" class=\"button-input-626\"><s-icon-mat>add</s-icon-mat></s-button>\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: [".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}.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.SIconMaterialComponent, selector: "s-icon-mat", inputs: ["name", "size", "color", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: i4.SButtonComponent, selector: "s-button", inputs: ["disabled", "pill", "size", "invert", "type", "loading", "position", "theme"] }, { kind: "component", type: i5.SErrorControl, selector: "s-error-control", inputs: ["theme", "icon", "iconCustom", "size"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
172
|
+
}
|
|
173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: SInputNumberComponent, decorators: [{
|
|
174
|
+
type: Component,
|
|
175
|
+
args: [{ selector: 's-input-number', encapsulation: ViewEncapsulation.None, providers: [
|
|
176
|
+
{
|
|
177
|
+
provide: NG_VALUE_ACCESSOR,
|
|
178
|
+
useExisting: forwardRef(() => SInputNumberComponent),
|
|
179
|
+
multi: true
|
|
180
|
+
}
|
|
181
|
+
], 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=\"d-flex align-center\">\r\n <div class=\"content-left mr-1\">\r\n <s-button [disabled]=\"disabled\" (click)=\"numberDecrease()\" [size]=\"size\" [pill]=\"true\" [invert]=\"true\" class=\"button-input-626\"><s-icon-mat>remove</s-icon-mat></s-button>\r\n </div>\r\n <div class=\"content-input-main-626 content-input-main-text content-input-main-number {{size}} theme-{{theme}} {{classAdd}} w-100\"\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 [readOnly]=\"readOnly\" \r\n [id]=\"id ? id : ''\" \r\n #typeNumber \r\n [disabled]=\"disabled\" \r\n [type]=\"'number'\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" \r\n [(ngModel)]=\"inputText\" \r\n (ngModelChange)=\"onTextChange()\"\r\n [max]=\"max\"\r\n [min]=\"min\"\r\n [step]=\"step\"\r\n >\r\n </div>\r\n\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\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 <div class=\"content-left ml-1\">\r\n <s-button [disabled]=\"disabled\" (click)=\"numberIncrement()\" [size]=\"size\" [pill]=\"true\" [invert]=\"true\" class=\"button-input-626\"><s-icon-mat>add</s-icon-mat></s-button>\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: [".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}.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"] }]
|
|
182
|
+
}], propDecorators: { typeNumber: [{
|
|
183
|
+
type: ViewChild,
|
|
184
|
+
args: ['typeNumber']
|
|
185
|
+
}], value: [{
|
|
186
|
+
type: Input
|
|
187
|
+
}], id: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], label: [{
|
|
190
|
+
type: Input
|
|
191
|
+
}], placeHolder: [{
|
|
192
|
+
type: Input
|
|
193
|
+
}], required: [{
|
|
194
|
+
type: Input
|
|
195
|
+
}], helpText: [{
|
|
196
|
+
type: Input
|
|
197
|
+
}], errorText: [{
|
|
198
|
+
type: Input
|
|
199
|
+
}], disabled: [{
|
|
200
|
+
type: Input
|
|
201
|
+
}], max: [{
|
|
202
|
+
type: Input
|
|
203
|
+
}], min: [{
|
|
204
|
+
type: Input
|
|
205
|
+
}], step: [{
|
|
206
|
+
type: Input
|
|
207
|
+
}], readOnly: [{
|
|
208
|
+
type: Input
|
|
209
|
+
}], theme: [{
|
|
210
|
+
type: Input
|
|
211
|
+
}], classAdd: [{
|
|
212
|
+
type: Input
|
|
213
|
+
}], help: [{
|
|
214
|
+
type: Input
|
|
215
|
+
}], size: [{
|
|
216
|
+
type: Input
|
|
217
|
+
}], rangeUnity: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], valueChangeEvent: [{
|
|
220
|
+
type: Output
|
|
221
|
+
}], clickHelpIconEvent: [{
|
|
222
|
+
type: Output
|
|
223
|
+
}], blur: [{
|
|
224
|
+
type: Output
|
|
225
|
+
}], focus: [{
|
|
226
|
+
type: Output
|
|
227
|
+
}] } });
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy1pbnB1dC1udW1iZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvaW5wdXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvcy1pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvaW5wdXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvcy1pbnB1dC1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0osT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7QUFFekQsTUFBTSxPQUFPLFlBQVk7SUFBekI7UUFNRSxhQUFRLEdBQWEsS0FBSyxDQUFDO1FBRzNCLFFBQUcsR0FBWSxDQUFDLENBQUM7UUFDakIsYUFBUSxHQUFhLEtBQUssQ0FBQztRQUMzQixVQUFLLEdBQVcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM5QixTQUFJLEdBQWEsS0FBSyxDQUFDO0lBRXpCLENBQUM7Q0FBQTtBQWVELE1BQU0sT0FBTyxxQkFBcUI7SUFibEM7UUFlRSxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzQixZQUFPLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBS1gsVUFBSyxHQUFXLENBQUMs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QUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQVVJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRIRU1FIH0gZnJvbSAnLi4vLi4vZW51bXMvdGhlbWUuZW11bic7XHJcbmltcG9ydCB7IElDT05fVEhFTUUgfSBmcm9tICcuLi8uLi9lbnVtcy9pY29uLXRoZW1lLmVudW0nO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNJbnB1dE51bWJlciB7XHJcbiAgdmFsdWU/OiBudW1iZXI7XHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIGhpbnQ/OiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgbWF4PzogbnVtYmVyO1xyXG4gIG1heGxlbmd0aD86IG51bWJlcjtcclxuICBtaW4/OiBudW1iZXIgPSAwO1xyXG4gIHJlYWRPbmx5PzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRoZW1lPzogVEhFTUUgPSBUSEVNRS5ERUZBVUxUO1xyXG4gIGhlbHA/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2l6ZT86ICdzbSd8ICdtZCc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncy1pbnB1dC1udW1iZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zLWlucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcy1pbnB1dC1udW1iZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU0lucHV0TnVtYmVyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTSW5wdXROdW1iZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3IgIHtcclxuICBcclxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuICBvblRvdWNoID0gKCkgPT4geyB9O1xyXG5cclxuICAvL1JFRiBQQVJBIFRZUEUgTlVNQkVSXHJcbiAgQFZpZXdDaGlsZCgndHlwZU51bWJlcicpIHR5cGVOdW1iZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQgO1xyXG5cclxuICBASW5wdXQoKSB2YWx1ZTogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSBpZDogc3RyaW5nID0gKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDApKS50b1N0cmluZygpO1xyXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlSG9sZGVyPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoZWxwVGV4dD86IHN0cmluZztcclxuICBASW5wdXQoKSBlcnJvclRleHQ/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBtYXg/OiBudW1iZXIgO1xyXG4gIEBJbnB1dCgpIG1pbjogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSBzdGVwOiBudW1iZXIgPSAxO1xyXG4gIEBJbnB1dCgpIHJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGhlbWU6ICdkZWZhdWx0JyB8ICdncmVlbicgfCAneWVsbG93JyB8ICdyZWQnID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIGNsYXNzQWRkOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBoZWxwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgPSAnbWQnO1xyXG4gIEBJbnB1dCgpIHJhbmdlVW5pdHk6IHN0cmluZyA9ICcnO1xyXG5cclxuICBpbnB1dFRpbWVvdXQ/OiBhbnk7XHJcbiAgaW5wdXRUZXh0OiBudW1iZXIgPSAwO1xyXG4gIGlucHV0TnVtYmVyOiBudW1iZXIgPSAwO1xyXG4gIHZpc2liaWxpdHkgPSBmYWxzZTtcclxuICBpbmNvblN5bWJvbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRvb2x0aXBWYWx1ZTogc3RyaW5nID0gJyc7XHJcbiAgSUNPTl9USEVNRSA9IElDT05fVEhFTUU7XHJcblxyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrSGVscEljb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy9BanVzdGUgY3VhbmRvIHR5cGUgbnVtYmVyIHZpZW5lIGNvbiB0ZXh0IHkgbG8gY29udmllcnRlIGEgbnVtZXJvXHJcbiAgICBpZih0aGlzLnZhbHVlKXtcclxuICAgICAgICB0aGlzLmlucHV0TnVtYmVyID0gdGhpcy52YWx1ZVxyXG4gICAgfVxyXG4gICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYoY2hhbmdlc1sndGV4dCddKXtcclxuICAgICAgaWYodGhpcy52YWx1ZSl7XHJcbiAgICAgICAgICB0aGlzLmlucHV0TnVtYmVyID0gdGhpcy52YWx1ZVxyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIHRoaXMuaW5wdXRUZXh0ID0gdGhpcy52YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVGV4dENoYW5nZSgpIHtcclxuICAgIHRoaXMudXBkYXRlTnVtYmVyKHRoaXMuaW5wdXRUZXh0KVxyXG4gICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuaW5wdXRUZXh0KTtcclxuXHJcbiAgICBpZiAodGhpcy5pbnB1dFRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW5wdXRUaW1lb3V0KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlucHV0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlRXZlbnQubmV4dCh0aGlzLmlucHV0VGV4dCk7XHJcbiAgICB9LCA1MDAsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgb25UZXh0Q2hhbmdlVmFsKHZhbDogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dFRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW5wdXRUaW1lb3V0KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlucHV0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VFdmVudC5uZXh0KHZhbCk7XHJcbiAgICAgICAgdGhpcy5pbnB1dFRleHQgPSB2YWw7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VFdmVudC5uZXh0KHRoaXMuaW5wdXRUZXh0KTtcclxuICAgICAgfVxyXG4gICAgfSwgNTAwLCBudWxsKTtcclxuICB9XHJcblxyXG4gIGNsaWNrSWNvbigpIHtcclxuICAgIHRoaXMuY2xpY2tIZWxwSWNvbkV2ZW50Lm5leHQoKTtcclxuICB9XHJcblxyXG4gIGdldEljb25UeXBlKCk6ICdzeW1ib2wnIHwgJ2ljb24nIHtcclxuICAgIHJldHVybiB0aGlzLnRoZW1lID09ICd5ZWxsb3cnID8gJ3N5bWJvbCcgOiAnaWNvbic7XHJcbiAgfVxyXG5cclxuICAvL0ZVTkNJT05FUyBQQVJBIFRZUEUgTlVNQkVSIFxyXG4gIG51bWJlckRlY3JlYXNlKCl7XHJcbiAgICBpZighdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSl7XHJcbiAgICAgIGlmKHRoaXMubWluIDwgdGhpcy5pbnB1dE51bWJlcil7XHJcbiAgICAgICAgdGhpcy5pbnB1dE51bWJlci09dGhpcy5zdGVwXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLmlucHV0TnVtYmVyXHJcbiAgICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuaW5wdXRUZXh0KTtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZUV2ZW50Lm5leHQodGhpcy5pbnB1dFRleHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbnVtYmVySW5jcmVtZW50KCl7XHJcbiAgICBpZighdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSl7XHJcbiAgICAgIGlmKHRoaXMubWF4KXtcclxuICAgICAgICBpZih0aGlzLm1heCA+IHRoaXMuaW5wdXROdW1iZXIpe1xyXG4gICAgICAgICAgdGhpcy5pbnB1dE51bWJlcis9dGhpcy5zdGVwXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmlucHV0TnVtYmVyID0gdGhpcy5tYXhcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYoIXRoaXMubWF4KXtcclxuICAgICAgICB0aGlzLmlucHV0TnVtYmVyKz10aGlzLnN0ZXBcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucHV0VGV4dCA9IHRoaXMuaW5wdXROdW1iZXJcclxuICAgICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5pbnB1dFRleHQpO1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlRXZlbnQubmV4dCh0aGlzLmlucHV0VGV4dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVOdW1iZXIodmFsdWU6YW55KXtcclxuICAgIGxldCB2YWx1ZTIgPSB2YWx1ZVxyXG4gICAgaWYodGhpcy5tYXgpXHJcbiAgICBpZih2YWx1ZSA+IHRoaXMubWF4KXtcclxuICAgICAgdmFsdWUyID0gdGhpcy5tYXhcclxuICAgIH1cclxuICAgIGlmKHZhbHVlIDwgdGhpcy5taW4pe1xyXG4gICAgICB2YWx1ZTIgPSB0aGlzLm1pblxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5wdXRUZXh0ID0gdmFsdWUyLnRvU3RyaW5nKClcclxuICAgIHRoaXMuaW5wdXROdW1iZXIgPSBOdW1iZXIodmFsdWUyKTtcclxuICAgIGlmKHRoaXMudHlwZU51bWJlcilcclxuICAgIHRoaXMudHlwZU51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5pbnB1dE51bWJlclxyXG4gICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuaW5wdXROdW1iZXIpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZUV2ZW50Lm5leHQodGhpcy5pbnB1dFRleHQpO1xyXG4gICAgXHJcbiAgfSBcclxuICAvL0ZJTiBGVU5DSU9ORVMgUEFSQSBUWVBFIE5VTUJFUiBcclxuICBcclxuXHJcbiAgLy9GVU5DSU9ORVMgUEFSQSBRVUUgRlVOQ0lPTkUgRk9STSBCVUlMREVSXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5pbnB1dFRleHQgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5pbnB1dE51bWJlciA9IHZhbHVlXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuYmx1ci5uZXh0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1cy5uZXh0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lcj5cclxuICAgIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJzLWlucHV0X19sYWJlbFwiPlxyXG5cdFx0e3tsYWJlbH19XHJcblx0XHQ8c3BhbiBjbGFzcz1cInMtaW5wdXRfX3JlcXVpcmVkXCIgKm5nSWY9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcblx0PC9sYWJlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdCBtci0xXCI+XHJcbiAgICAgICAgICAgIDxzLWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2xpY2spPVwibnVtYmVyRGVjcmVhc2UoKVwiIFtzaXplXT1cInNpemVcIiBbcGlsbF09XCJ0cnVlXCIgW2ludmVydF09XCJ0cnVlXCIgY2xhc3M9XCJidXR0b24taW5wdXQtNjI2XCI+PHMtaWNvbi1tYXQ+cmVtb3ZlPC9zLWljb24tbWF0Pjwvcy1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtaW5wdXQtbWFpbi02MjYgY29udGVudC1pbnB1dC1tYWluLXRleHQgY29udGVudC1pbnB1dC1tYWluLW51bWJlciB7e3NpemV9fSB0aGVtZS17e3RoZW1lfX0ge3tjbGFzc0FkZH19IHctMTAwXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkLWFjdGl2ZSc6IGRpc2FibGVkfVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBcclxuICAgICAgICAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCIgIFxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJpZCA/IGlkIDogJydcIiBcclxuICAgICAgICAgICAgICAgICAgICAjdHlwZU51bWJlciBcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBcclxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiBcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiIFxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIm1heFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbl09XCJtaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdGVwXT1cInN0ZXBcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgIT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBbdHlwZV09XCJnZXRJY29uVHlwZSgpXCIgY2xhc3M9XCJpY29uIHJlcG9ydFwiPnt7SUNPTl9USEVNRVt0aGlzLnRoZW1lXX19PC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSA9PSAnZGVmYXVsdCcgJiYgaGVscFwiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgKGNsaWNrKT1cImNsaWNrSWNvbigpXCIgY2xhc3M9XCJpY29uIGN1cnNvclwiPmhlbHBfb3V0bGluZTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdCBtbC0xXCI+XHJcbiAgICAgICAgICAgIDxzLWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2xpY2spPVwibnVtYmVySW5jcmVtZW50KClcIiBbc2l6ZV09XCJzaXplXCIgW3BpbGxdPVwidHJ1ZVwiIFtpbnZlcnRdPVwidHJ1ZVwiIGNsYXNzPVwiYnV0dG9uLWlucHV0LTYyNlwiPjxzLWljb24tbWF0PmFkZDwvcy1pY29uLW1hdD48L3MtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8cy1lcnJvci1jb250cm9sICpuZ0lmPVwiZXJyb3JUZXh0XCIgdGhlbWUgPVwicmVkXCI+e3tlcnJvclRleHR9fTwvcy1lcnJvci1jb250cm9sPlxyXG5cdDxzLWVycm9yLWNvbnRyb2wgKm5nSWY9XCJoZWxwVGV4dCAmJiAhZXJyb3JUZXh0XCI+e3toZWxwVGV4dH19PC9zLWVycm9yLWNvbnRyb2w+XHJcbjwvbmctY29udGFpbmVyPiJdfQ==
|