ngx-sumax-erp-components 1.1.0 → 1.1.1

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.
@@ -135,6 +135,12 @@ export class InputNumberComponent {
135
135
  * @type boolean
136
136
  */
137
137
  this.allowNegativeNumbers = false;
138
+ /**
139
+ * @description Deshabilita el separador de miles
140
+ * @default false
141
+ * @type boolean
142
+ */
143
+ this.disableThousandSeparator = false;
138
144
  this.onNext = new EventEmitter();
139
145
  this.onBack = new EventEmitter();
140
146
  this.change = new EventEmitter();
@@ -355,7 +361,7 @@ export class InputNumberComponent {
355
361
  }, 150);
356
362
  }
357
363
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputNumberComponent, deps: [{ token: i1.MessageUtilService }, { token: i2.InputNumberService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
358
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: InputNumberComponent, selector: "input-number", inputs: { showLabel: "showLabel", label: "label", btnEnable: "btnEnable", autocomplete: "autocomplete", bold: "bold", decimals: "decimals", formatCero: "formatCero", maxLength: "maxLength", next: "next", nextIsDisable: "nextIsDisable", back: "back", backIsDisable: "backIsDisable", required: "required", disabled: "disabled", readonly: "readonly", validatorMessage: "validatorMessage", tooltipMessage: "tooltipMessage", submitted: "submitted", labelInfo: "labelInfo", textLabelInfo: "textLabelInfo", validatorAlert: "validatorAlert", setNgClass: "setNgClass", placeholder: "placeholder", allowNegativeNumbers: "allowNegativeNumbers" }, outputs: { onNext: "onNext", onBack: "onBack", change: "change", onchange: "onchange", blur: "blur", onfocus: "onfocus", onfocusout: "onfocusout" }, providers: [
364
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: InputNumberComponent, selector: "input-number", inputs: { showLabel: "showLabel", label: "label", btnEnable: "btnEnable", autocomplete: "autocomplete", bold: "bold", decimals: "decimals", formatCero: "formatCero", maxLength: "maxLength", next: "next", nextIsDisable: "nextIsDisable", back: "back", backIsDisable: "backIsDisable", required: "required", disabled: "disabled", readonly: "readonly", validatorMessage: "validatorMessage", tooltipMessage: "tooltipMessage", submitted: "submitted", labelInfo: "labelInfo", textLabelInfo: "textLabelInfo", validatorAlert: "validatorAlert", setNgClass: "setNgClass", placeholder: "placeholder", allowNegativeNumbers: "allowNegativeNumbers", disableThousandSeparator: "disableThousandSeparator" }, outputs: { onNext: "onNext", onBack: "onBack", change: "change", onchange: "onchange", blur: "blur", onfocus: "onfocus", onfocusout: "onfocusout" }, providers: [
359
365
  {
360
366
  provide: NG_VALUE_ACCESSOR,
361
367
  useExisting: forwardRef(() => InputNumberComponent),
@@ -366,7 +372,7 @@ export class InputNumberComponent {
366
372
  useExisting: forwardRef(() => InputNumberComponent),
367
373
  multi: true
368
374
  }
369
- ], viewQueries: [{ propertyName: "inputText", first: true, predicate: ["inputText"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n\t><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n\t<span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n\t<span *ngIf=\"labelInfo\">\r\n\t\t<i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n\t</span>\r\n</label>\r\n<div\r\n\t[class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t[class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n>\r\n\t<div class=\"d-flex\">\r\n\t\t<div class=\"w-100 position-relative\">\r\n\t\t\t<tooltip-message\r\n\t\t\t\t[label]=\"label\"\r\n\t\t\t\t[controls]=\"controls\"\r\n\t\t\t\t[validatorMessage]=\"validatorMessage\"\r\n\t\t\t\t[tooltipMessage]=\"tooltipMessage\"\r\n\t\t\t\t[submitted]=\"submitted\"\r\n\t\t\t></tooltip-message>\r\n\t\t\t<input\r\n\t\t\t\t#inputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tclass=\"form-control form-control-sm text-end\"\r\n\t\t\t\t[class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t\t\t\t[(ngModel)]=\"value\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[readonly]=\"readonly\"\r\n\t\t\t\t[mask]=\"format\"\r\n\t\t\t\tthousandSeparator=\",\"\r\n\t\t\t\t(blur)=\"onBlur($any($event.target).value)\"\r\n\t\t\t\t(input)=\"onInput($any($event.target).value)\"\r\n\t\t\t\t(focusout)=\"onFocusOut($any($event.target).value)\"\r\n\t\t\t\t[attr.autocomplete]=\"autocomplete\"\r\n\t\t\t\t[placeholder]=\"placeholder\"\r\n\t\t\t\t(focus)=\"onFocus($any($event.target).value)\"\r\n\t\t\t\t[attr.maxLength]=\"maxLength\"\r\n\t\t\t\t(keyup.enter)=\"enterKeyUp()\"\r\n\t\t\t\t(keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n\t\t\t\t[ngClass]=\"setNgClass\"\r\n\t\t\t\t[class.bold]=\"bold\"\r\n\t\t\t\t[allowNegativeNumbers]=\"allowNegativeNumbers\"\r\n\t\t\t\t[leadZero]=\"!allowNegativeNumbers\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t\t<div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n\t\t\t<button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n\t\t\t\t<i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[more-buttons]\"></ng-content>\r\n\t</div>\r\n</div>\r\n<error-message\r\n\t[label]=\"label\"\r\n\t[controls]=\"controls\"\r\n\t[validatorMessage]=\"validatorMessage\"\r\n\t[tooltipMessage]=\"tooltipMessage\"\r\n\t[submitted]=\"submitted\"\r\n></error-message>\r\n", styles: [".sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;width:16px;font-size:16px;text-align:center;right:10px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.bold{color:#000;font-weight:700}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.was-validated .form-control:invalid,.form-control.is-invalid{background-image:none;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.form-control:focus,.form-control:active{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.errorMessageComponent, selector: "error-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "component", type: i6.tooltipMessageComponent, selector: "tooltip-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i8.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] }); }
375
+ ], viewQueries: [{ propertyName: "inputText", first: true, predicate: ["inputText"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n\t><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n\t<span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n\t<span *ngIf=\"labelInfo\">\r\n\t\t<i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n\t</span>\r\n</label>\r\n<div\r\n\t[class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t[class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n>\r\n\t<div class=\"d-flex\">\r\n\t\t<div class=\"w-100 position-relative\">\r\n\t\t\t<tooltip-message\r\n\t\t\t\t[label]=\"label\"\r\n\t\t\t\t[controls]=\"controls\"\r\n\t\t\t\t[validatorMessage]=\"validatorMessage\"\r\n\t\t\t\t[tooltipMessage]=\"tooltipMessage\"\r\n\t\t\t\t[submitted]=\"submitted\"\r\n\t\t\t></tooltip-message>\r\n\t\t\t<input\r\n\t\t\t\t#inputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tclass=\"form-control form-control-sm text-end\"\r\n\t\t\t\t[class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t\t\t\t[(ngModel)]=\"value\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[readonly]=\"readonly\"\r\n\t\t\t\t[mask]=\"format\"\r\n\t\t\t\t[thousandSeparator]=\"disableThousandSeparator ? '' : ','\"\r\n\t\t\t\t(blur)=\"onBlur($any($event.target).value)\"\r\n\t\t\t\t(input)=\"onInput($any($event.target).value)\"\r\n\t\t\t\t(focusout)=\"onFocusOut($any($event.target).value)\"\r\n\t\t\t\t[attr.autocomplete]=\"autocomplete\"\r\n\t\t\t\t[placeholder]=\"placeholder\"\r\n\t\t\t\t(focus)=\"onFocus($any($event.target).value)\"\r\n\t\t\t\t[attr.maxLength]=\"maxLength\"\r\n\t\t\t\t(keyup.enter)=\"enterKeyUp()\"\r\n\t\t\t\t(keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n\t\t\t\t[ngClass]=\"setNgClass\"\r\n\t\t\t\t[class.bold]=\"bold\"\r\n\t\t\t\t[allowNegativeNumbers]=\"allowNegativeNumbers\"\r\n\t\t\t\t[leadZero]=\"!allowNegativeNumbers\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t\t<div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n\t\t\t<button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n\t\t\t\t<i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[more-buttons]\"></ng-content>\r\n\t</div>\r\n</div>\r\n<error-message\r\n\t[label]=\"label\"\r\n\t[controls]=\"controls\"\r\n\t[validatorMessage]=\"validatorMessage\"\r\n\t[tooltipMessage]=\"tooltipMessage\"\r\n\t[submitted]=\"submitted\"\r\n></error-message>\r\n", styles: [".sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;width:16px;font-size:16px;text-align:center;right:10px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.bold{color:#000;font-weight:700}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.was-validated .form-control:invalid,.form-control.is-invalid{background-image:none;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.form-control:focus,.form-control:active{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.errorMessageComponent, selector: "error-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "component", type: i6.tooltipMessageComponent, selector: "tooltip-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i8.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] }); }
370
376
  }
371
377
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputNumberComponent, decorators: [{
372
378
  type: Component,
@@ -381,7 +387,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
381
387
  useExisting: forwardRef(() => InputNumberComponent),
382
388
  multi: true
383
389
  }
384
- ], template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n\t><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n\t<span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n\t<span *ngIf=\"labelInfo\">\r\n\t\t<i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n\t</span>\r\n</label>\r\n<div\r\n\t[class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t[class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n>\r\n\t<div class=\"d-flex\">\r\n\t\t<div class=\"w-100 position-relative\">\r\n\t\t\t<tooltip-message\r\n\t\t\t\t[label]=\"label\"\r\n\t\t\t\t[controls]=\"controls\"\r\n\t\t\t\t[validatorMessage]=\"validatorMessage\"\r\n\t\t\t\t[tooltipMessage]=\"tooltipMessage\"\r\n\t\t\t\t[submitted]=\"submitted\"\r\n\t\t\t></tooltip-message>\r\n\t\t\t<input\r\n\t\t\t\t#inputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tclass=\"form-control form-control-sm text-end\"\r\n\t\t\t\t[class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t\t\t\t[(ngModel)]=\"value\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[readonly]=\"readonly\"\r\n\t\t\t\t[mask]=\"format\"\r\n\t\t\t\tthousandSeparator=\",\"\r\n\t\t\t\t(blur)=\"onBlur($any($event.target).value)\"\r\n\t\t\t\t(input)=\"onInput($any($event.target).value)\"\r\n\t\t\t\t(focusout)=\"onFocusOut($any($event.target).value)\"\r\n\t\t\t\t[attr.autocomplete]=\"autocomplete\"\r\n\t\t\t\t[placeholder]=\"placeholder\"\r\n\t\t\t\t(focus)=\"onFocus($any($event.target).value)\"\r\n\t\t\t\t[attr.maxLength]=\"maxLength\"\r\n\t\t\t\t(keyup.enter)=\"enterKeyUp()\"\r\n\t\t\t\t(keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n\t\t\t\t[ngClass]=\"setNgClass\"\r\n\t\t\t\t[class.bold]=\"bold\"\r\n\t\t\t\t[allowNegativeNumbers]=\"allowNegativeNumbers\"\r\n\t\t\t\t[leadZero]=\"!allowNegativeNumbers\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t\t<div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n\t\t\t<button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n\t\t\t\t<i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[more-buttons]\"></ng-content>\r\n\t</div>\r\n</div>\r\n<error-message\r\n\t[label]=\"label\"\r\n\t[controls]=\"controls\"\r\n\t[validatorMessage]=\"validatorMessage\"\r\n\t[tooltipMessage]=\"tooltipMessage\"\r\n\t[submitted]=\"submitted\"\r\n></error-message>\r\n", styles: [".sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;width:16px;font-size:16px;text-align:center;right:10px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.bold{color:#000;font-weight:700}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.was-validated .form-control:invalid,.form-control.is-invalid{background-image:none;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.form-control:focus,.form-control:active{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a!important}\n"] }]
390
+ ], template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n\t><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n\t<span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n\t<span *ngIf=\"labelInfo\">\r\n\t\t<i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n\t</span>\r\n</label>\r\n<div\r\n\t[class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t[class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n>\r\n\t<div class=\"d-flex\">\r\n\t\t<div class=\"w-100 position-relative\">\r\n\t\t\t<tooltip-message\r\n\t\t\t\t[label]=\"label\"\r\n\t\t\t\t[controls]=\"controls\"\r\n\t\t\t\t[validatorMessage]=\"validatorMessage\"\r\n\t\t\t\t[tooltipMessage]=\"tooltipMessage\"\r\n\t\t\t\t[submitted]=\"submitted\"\r\n\t\t\t></tooltip-message>\r\n\t\t\t<input\r\n\t\t\t\t#inputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tclass=\"form-control form-control-sm text-end\"\r\n\t\t\t\t[class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t\t\t\t[(ngModel)]=\"value\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[readonly]=\"readonly\"\r\n\t\t\t\t[mask]=\"format\"\r\n\t\t\t\t[thousandSeparator]=\"disableThousandSeparator ? '' : ','\"\r\n\t\t\t\t(blur)=\"onBlur($any($event.target).value)\"\r\n\t\t\t\t(input)=\"onInput($any($event.target).value)\"\r\n\t\t\t\t(focusout)=\"onFocusOut($any($event.target).value)\"\r\n\t\t\t\t[attr.autocomplete]=\"autocomplete\"\r\n\t\t\t\t[placeholder]=\"placeholder\"\r\n\t\t\t\t(focus)=\"onFocus($any($event.target).value)\"\r\n\t\t\t\t[attr.maxLength]=\"maxLength\"\r\n\t\t\t\t(keyup.enter)=\"enterKeyUp()\"\r\n\t\t\t\t(keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n\t\t\t\t[ngClass]=\"setNgClass\"\r\n\t\t\t\t[class.bold]=\"bold\"\r\n\t\t\t\t[allowNegativeNumbers]=\"allowNegativeNumbers\"\r\n\t\t\t\t[leadZero]=\"!allowNegativeNumbers\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t\t<div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n\t\t\t<button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n\t\t\t\t<i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[more-buttons]\"></ng-content>\r\n\t</div>\r\n</div>\r\n<error-message\r\n\t[label]=\"label\"\r\n\t[controls]=\"controls\"\r\n\t[validatorMessage]=\"validatorMessage\"\r\n\t[tooltipMessage]=\"tooltipMessage\"\r\n\t[submitted]=\"submitted\"\r\n></error-message>\r\n", styles: [".sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;width:16px;font-size:16px;text-align:center;right:10px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.bold{color:#000;font-weight:700}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.was-validated .form-control:invalid,.form-control.is-invalid{background-image:none;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.form-control:focus,.form-control:active{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a!important}\n"] }]
385
391
  }], ctorParameters: () => [{ type: i1.MessageUtilService }, { type: i2.InputNumberService }, { type: i0.Renderer2 }], propDecorators: { showLabel: [{
386
392
  type: Input
387
393
  }], label: [{
@@ -430,6 +436,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
430
436
  type: Input
431
437
  }], allowNegativeNumbers: [{
432
438
  type: Input
439
+ }], disableThousandSeparator: [{
440
+ type: Input
433
441
  }], onNext: [{
434
442
  type: Output
435
443
  }], onBack: [{
@@ -448,4 +456,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
448
456
  type: ViewChild,
449
457
  args: ['inputText']
450
458
  }] } });
451
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2lucHV0LW51bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVOLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTixhQUFhLEVBQ2IsaUJBQWlCLEVBRWpCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7QUFvQnJFLE1BQU0sT0FBTyxvQkFBb0I7SUEwTGhDLFlBQ1Msa0JBQXNDLEVBQ3RDLGtCQUFzQyxFQUN0QyxPQUFrQjtRQUZsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQTVMM0I7Ozs7V0FJRztRQUNNLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFbkM7Ozs7V0FJRztRQUNNLFVBQUssR0FBUSxJQUFJLENBQUM7UUFFM0I7Ozs7V0FJRztRQUNNLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFFcEM7Ozs7V0FJRztRQUNNLGlCQUFZLEdBQVcsOEJBQThCLENBQUM7UUFFL0Q7Ozs7V0FJRztRQUNNLFNBQUksR0FBWSxLQUFLLENBQUM7UUFFL0I7Ozs7V0FJRztRQUNNLGFBQVEsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUUv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QUk7c0JBQWIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ2lCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0QWZ0ZXJWaWV3SW5pdCxcclxuXHRDb21wb25lbnQsXHJcblx0RWxlbWVudFJlZixcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0Zm9yd2FyZFJlZixcclxuXHRJbnB1dCxcclxuXHRPbkNoYW5nZXMsXHJcblx0T25Jbml0LFxyXG5cdE91dHB1dCxcclxuXHRSZW5kZXJlcjIsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuXHRBYnN0cmFjdENvbnRyb2wsXHJcblx0Q29udHJvbFZhbHVlQWNjZXNzb3IsXHJcblx0TkdfVkFMSURBVE9SUyxcclxuXHROR19WQUxVRV9BQ0NFU1NPUixcclxuXHRWYWxpZGF0aW9uRXJyb3JzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJbnB1dE51bWJlclNlcnZpY2UgfSBmcm9tICcuL2lucHV0LW51bWJlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2hhcmVkQ29tcG9uZW50c1V0aWwgfSBmcm9tICcuLi91dGlscy9TaGFyZWRDb21wb25lbnRzVXRpbCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VVdGlsU2VydmljZSB9IGZyb20gJy4uL3V0aWxzL21lc3NhZ2UtdXRpbC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnaW5wdXQtbnVtYmVyJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50LnNjc3MnXSxcclxuXHRwcm92aWRlcnM6IFtcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0TnVtYmVyQ29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWVcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0TnVtYmVyQ29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWVcclxuXHRcdH1cclxuXHRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dE51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIENvbnRyb2xhIGxhIHZpc3VhbGl6YWNpw7NuIGRlbCB0ZXh0byBzdXBlcmlvciAobGFiZWwpXHJcblx0ICogQGRlZmF1bHQgdHJ1ZVxyXG5cdCAqIEB0eXBlIGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBzaG93TGFiZWw6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBUZXh0byBhIG1vc3RyYXIgY29tbyBldGlxdWV0YSBkZWwgY2FtcG9cclxuXHQgKiBAZGVmYXVsdCBudWxsXHJcblx0ICogQHR5cGUgYW55XHJcblx0ICovXHJcblx0QElucHV0KCkgbGFiZWw6IGFueSA9IG51bGw7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIEhhYmlsaXRhIGVsIGJvdMOzbiBwYXJhIGFjdGl2YXIgZWwgY2FtcG9cclxuXHQgKiBAZGVmYXVsdCBmYWxzZVxyXG5cdCAqIEB0eXBlIGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBidG5FbmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gVmFsb3IgcGFyYSBlbCBhdHJpYnV0byBhdXRvY29tcGxldGUgZGVsIGlucHV0XHJcblx0ICogQGRlZmF1bHQgXCJuby1hdXRvY29tcGxldGUtaW5wdXQtbnVtYmVyXCJcclxuXHQgKiBAdHlwZSBzdHJpbmdcclxuXHQgKi9cclxuXHRASW5wdXQoKSBhdXRvY29tcGxldGU6IHN0cmluZyA9ICduby1hdXRvY29tcGxldGUtaW5wdXQtbnVtYmVyJztcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gQXBsaWNhIGVzdGlsbyBuZWdyaXRhIGFsIHRleHRvXHJcblx0ICogQGRlZmF1bHQgZmFsc2VcclxuXHQgKiBAdHlwZSBib29sZWFuXHJcblx0ICovXHJcblx0QElucHV0KCkgYm9sZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBOw7ptZXJvIGRlIGRlY2ltYWxlcyBhIG1vc3RyYXIgKC0xIHBhcmEgbm8gZXNwZWNpZmljYXIpXHJcblx0ICogQGRlZmF1bHQgLTFcclxuXHQgKiBAdHlwZSBudW1iZXJcclxuXHQgKi9cclxuXHRASW5wdXQoKSBkZWNpbWFsczogbnVtYmVyID0gLTE7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIEZvcm1hdGVhIHZhbG9yZXMgdmFjw61vcyBjb21vIGNlcm9cclxuXHQgKiBAZGVmYXVsdCBmYWxzZVxyXG5cdCAqIEB0eXBlIGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBmb3JtYXRDZXJvOiBib29sZWFuID0gZmFsc2U7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIExvbmdpdHVkIG3DoXhpbWEgcGVybWl0aWRhIHBhcmEgZWwgbsO6bWVyb1xyXG5cdCAqIEBkZWZhdWx0IG51bGxcclxuXHQgKiBAdHlwZSBhbnlcclxuXHQgKi9cclxuXHRASW5wdXQoKSBtYXhMZW5ndGg6IGFueSA9IG51bGw7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIFJlZmVyZW5jaWEgYWwgc2lndWllbnRlIGNvbnRyb2wgcGFyYSBuYXZlZ2FjacOzblxyXG5cdCAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG5cdCAqIEB0eXBlIGFueVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIG5leHQ6IGFueTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNpYSBhbCBjb250cm9sIGFsdGVybmF0aXZvIGN1YW5kbyBlbCBzaWd1aWVudGUgZXN0w6EgZGVzaGFiaWxpdGFkb1xyXG5cdCAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG5cdCAqIEB0eXBlIGFueVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIG5leHRJc0Rpc2FibGU6IGFueTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNpYSBhbCBjb250cm9sIGFudGVyaW9yIHBhcmEgbmF2ZWdhY2nDs25cclxuXHQgKiBAZGVmYXVsdCB1bmRlZmluZWRcclxuXHQgKiBAdHlwZSBhbnlcclxuXHQgKi9cclxuXHRASW5wdXQoKSBiYWNrOiBhbnk7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIFJlZmVyZW5jaWEgYWwgY29udHJvbCBhbHRlcm5hdGl2byBjdWFuZG8gZWwgYW50ZXJpb3IgZXN0w6EgZGVzaGFiaWxpdGFkb1xyXG5cdCAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG5cdCAqIEB0eXBlIGFueVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIGJhY2tJc0Rpc2FibGU6IGFueTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gSW5kaWNhIHNpIGVsIGNhbXBvIGVzIG9ibGlnYXRvcmlvXHJcblx0ICogQGRlZmF1bHQgZmFsc2VcclxuXHQgKiBAdHlwZSBib29sZWFuXHJcblx0ICovXHJcblx0QElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gRGVzaGFiaWxpdGEgZWwgY29udHJvbFxyXG5cdCAqIEBkZWZhdWx0IGZhbHNlXHJcblx0ICogQHR5cGUgYm9vbGVhblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIEVzdGFibGVjZSBlbCBjb250cm9sIGNvbW8gc29sbyBsZWN0dXJhXHJcblx0ICogQGRlZmF1bHQgZmFsc2VcclxuXHQgKiBAdHlwZSBib29sZWFuXHJcblx0ICovXHJcblx0QElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gTXVlc3RyYSBtZW5zYWplcyBkZSB2YWxpZGFjacOzblxyXG5cdCAqIEBkZWZhdWx0IGZhbHNlXHJcblx0ICogQHR5cGUgYm9vbGVhblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIHZhbGlkYXRvck1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gTXVlc3RyYSBtZW5zYWplcyBkZSBheXVkYSBjb21vIHRvb2x0aXBzXHJcblx0ICogQGRlZmF1bHQgdHJ1ZVxyXG5cdCAqIEB0eXBlIGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKSB0b29sdGlwTWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIEluZGljYSBzaSBlbCBmb3JtdWxhcmlvIGhhIHNpZG8gZW52aWFkbyBwYXJhIG1vc3RyYXIgdmFsaWRhY2lvbmVzXHJcblx0ICogQGRlZmF1bHQgdHJ1ZVxyXG5cdCAqIEB0eXBlIGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBIYWJpbGl0YSBpbmZvcm1hY2nDs24gYWRpY2lvbmFsIHBhcmEgbGEgZXRpcXVldGFcclxuXHQgKiBAZGVmYXVsdCBmYWxzZVxyXG5cdCAqIEB0eXBlIGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBsYWJlbEluZm86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gVGV4dG8gaW5mb3JtYXRpdm8gYWRpY2lvbmFsIHBhcmEgbGEgZXRpcXVldGFcclxuXHQgKiBAZGVmYXVsdCBcIlwiXHJcblx0ICogQHR5cGUgc3RyaW5nXHJcblx0ICovXHJcblx0QElucHV0KCkgdGV4dExhYmVsSW5mbzogc3RyaW5nID0gJyc7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIE11ZXN0cmEgYWxlcnRhcyBkZSB2YWxpZGFjacOzblxyXG5cdCAqIEBkZWZhdWx0IGZhbHNlXHJcblx0ICogQHR5cGUgYm9vbGVhblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIHZhbGlkYXRvckFsZXJ0OiBib29sZWFuID0gZmFsc2U7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIENsYXNlcyBDU1MgYWRpY2lvbmFsZXMgcGFyYSBlbCBjb21wb25lbnRlXHJcblx0ICogQGRlZmF1bHQgXCJcIlxyXG5cdCAqIEB0eXBlIHN0cmluZ1xyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIHNldE5nQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBUZXh0byBkZSBwbGFjZWhvbGRlciBwYXJhIGVsIGlucHV0XHJcblx0ICogQGRlZmF1bHQgXCJcIlxyXG5cdCAqIEB0eXBlIHN0cmluZ1xyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gUGVybWl0ZSB2YWxvcmVzIG5lZ2F0aXZvc1xyXG5cdCAqIEBkZWZhdWx0IGZhbHNlXHJcblx0ICogQHR5cGUgYm9vbGVhblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIGFsbG93TmVnYXRpdmVOdW1iZXJzOiBib29sZWFuID0gZmFsc2U7XHJcblx0QE91dHB1dCgpIG9uTmV4dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uQmFjazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvbmZvY3Vzb3V0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAVmlld0NoaWxkKCdpbnB1dFRleHQnKSBpbnB1dFRleHQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuXHRzaGFyZWRDb21wb25lbnRzVXRpbCA9IG5ldyBTaGFyZWRDb21wb25lbnRzVXRpbCgpO1xyXG5cclxuXHRmb3JtYXQgPSAnc2VwYXJhdG9yJztcclxuXHJcblx0Y29udHJvbHM6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsO1xyXG5cdHZhbHVlOiBhbnk7XHJcblx0dmFsdWVFbWl0OiBhbnk7XHJcblx0X2luaXRWYWx1ZSA9IGZhbHNlO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbWVzc2FnZVV0aWxTZXJ2aWNlOiBNZXNzYWdlVXRpbFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGlucHV0TnVtYmVyU2VydmljZTogSW5wdXROdW1iZXJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfcmVuZGVyOiBSZW5kZXJlcjJcclxuXHQpIHtcclxuXHRcdHRoaXMuZGVjaW1hbHMgPSB0aGlzLmlucHV0TnVtYmVyU2VydmljZS5nZXREZWNpbWFscygpO1xyXG5cdFx0dGhpcy5mb3JtYXRDZXJvID0gdGhpcy5pbnB1dE51bWJlclNlcnZpY2UuZ2V0Rm9ybWF0Q2VybygpO1xyXG5cdFx0dGhpcy5idG5FbmFibGUgPSB0aGlzLmlucHV0TnVtYmVyU2VydmljZS5nZXRCdG5FbmFibGUoKTtcclxuXHRcdHRoaXMuYm9sZCA9IHRoaXMuaW5wdXROdW1iZXJTZXJ2aWNlLmdldEJvbGQoKTtcclxuXHRcdHRoaXMudmFsaWRhdG9yTWVzc2FnZSA9IHRoaXMuaW5wdXROdW1iZXJTZXJ2aWNlLmdldFZhbGlkYXRvck1lc3NhZ2UoKTtcclxuXHRcdHRoaXMudG9vbHRpcE1lc3NhZ2UgPSB0aGlzLmlucHV0TnVtYmVyU2VydmljZS5nZXRUb29sdGlwTWVzc2FnZSgpO1xyXG5cdFx0dGhpcy5zdWJtaXR0ZWQgPSB0aGlzLmlucHV0TnVtYmVyU2VydmljZS5nZXRTdWJtaXR0ZWQoKTtcclxuXHRcdHRoaXMudmFsaWRhdG9yQWxlcnQgPSB0aGlzLmlucHV0TnVtYmVyU2VydmljZS5nZXRWYWxpZGF0b3JBbGVydCgpO1xyXG5cdH1cclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cdFx0aWYgKGNoYW5nZXNbJ3N1Ym1pdHRlZCddKSB7XHJcblx0XHRcdGlmICh0aGlzLmNvbnRyb2xzICE9IG51bGwgJiYgY2hhbmdlc1snc3VibWl0dGVkJ10uY3VycmVudFZhbHVlKSB7XHJcblx0XHRcdFx0dGhpcy5jb250cm9scy5tYXJrQXNEaXJ0eSgpO1xyXG5cdFx0XHRcdHRoaXMuY29udHJvbHMubWFya0FzVG91Y2hlZCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdGlmICh0aGlzLmRlY2ltYWxzICE9IC0xKSB7XHJcblx0XHRcdHRoaXMuZm9ybWF0ID0gJ3NlcGFyYXRvcicgKyAnLicgKyB0aGlzLmRlY2ltYWxzLnRvU3RyaW5nKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmZvcm1hdCA9ICdzZXBhcmF0b3InO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cclxuXHJcblx0b25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcclxuXHRvblZhbGlkYXRpb25DaGFuZ2UgPSAoKSA9PiB7fTtcclxuXHRvblRvdWNoID0gKCkgPT4ge307XHJcblx0Zm9jdXMgPSAoKSA9PiB7XHJcblx0XHR0aGlzLmlucHV0VGV4dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcblx0XHR0aGlzLmlucHV0VGV4dC5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xyXG5cdH07XHJcblxyXG5cdG9uQmx1cih2YWx1ZTogYW55KSB7XHJcblx0XHR0aGlzLm9uVG91Y2goKTtcclxuXHRcdGlmICgodmFsdWUgPT0gJycgfHwgdmFsdWUgPT0gbnVsbCkgJiYgdGhpcy5mb3JtYXRDZXJvKSB7XHJcblx0XHRcdHZhbHVlID0gMDtcclxuXHRcdH1cclxuXHRcdGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIodmFsdWUpO1xyXG5cclxuXHRcdGlmICh0aGlzLnZhbHVlICE9PSBuZXdWYWx1ZSkge1xyXG5cdFx0XHR0aGlzLnZhbHVlID0gbmV3VmFsdWU7XHJcblx0XHRcdHRoaXMub25DaGFuZ2UodGhpcy5lbWl0VmFsdWUobmV3VmFsdWUpKTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBpZiAobmV3VmFsdWUpIHtcclxuXHRcdHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcblx0XHR0aGlzLmJsdXIuZW1pdCh0aGlzLmVtaXRWYWx1ZShuZXdWYWx1ZSkpO1xyXG5cdFx0Ly8gfVxyXG5cdH1cclxuXHJcblx0b25Gb2N1cyhldnQ6IGFueSkge1xyXG5cdFx0dGhpcy5pbnB1dFRleHQubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcclxuXHRcdHRoaXMub25mb2N1cy5lbWl0KGV2dCk7XHJcblx0fVxyXG5cclxuXHRvbklucHV0KGV2dDogYW55KSB7XHJcblx0XHR0aGlzLm9uVG91Y2goKTtcclxuXHRcdHRoaXMub25DaGFuZ2UodGhpcy5lbWl0VmFsdWUoZXZ0KSk7XHJcblx0XHR0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG5cdFx0dGhpcy5jaGFuZ2UuZW1pdCh0aGlzLmVtaXRWYWx1ZShldnQpKTtcclxuXHRcdHRoaXMub25jaGFuZ2UuZW1pdCh0aGlzLmVtaXRWYWx1ZShldnQpKTtcclxuXHR9XHJcblxyXG5cdHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG5cdFx0aWYgKHZhbHVlICE9IG51bGwpIHtcclxuXHRcdFx0dGhpcy52YWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnZhbHVlID09PSAnTmFOJykge1xyXG5cdFx0XHRcdGlmICh0aGlzLmNvbnRyb2xzKSB7XHJcblx0XHRcdFx0XHR0aGlzLl9yZW5kZXIuc2V0UHJvcGVydHkodGhpcy5jb250cm9scywgJ3ZhbHVlJywgbnVsbCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcignTm90IGEgbnVtYmVyJyk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmICh0aGlzLmNvbnRyb2xzKSB7XHJcblx0XHRcdFx0dGhpcy5fcmVuZGVyLnNldFByb3BlcnR5KHRoaXMuY29udHJvbHMsICd2YWx1ZScsIE51bWJlcih0aGlzLnZhbHVlKSk7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMudmFsdWUgPSBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcblx0XHR0aGlzLm9uQ2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcblx0XHR0aGlzLm9uVG91Y2ggPSBmbjtcclxuXHR9XHJcblxyXG5cdHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0dGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcblx0fVxyXG5cclxuXHR2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgYW55IHtcclxuXHRcdHRoaXMuY29udHJvbHMgPSBjb250cm9sO1xyXG5cclxuXHRcdGlmICghdGhpcy5faW5pdFZhbHVlKSB7XHJcblx0XHRcdGlmICh0aGlzLnZhbHVlID09PSAnTmFOJykge1xyXG5cdFx0XHRcdHRoaXMuX3JlbmRlci5zZXRQcm9wZXJ0eSh0aGlzLmNvbnRyb2xzLCAndmFsdWUnLCBudWxsKTtcclxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIG51bWJlcicpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAodGhpcy52YWx1ZSAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdHRoaXMuX3JlbmRlci5zZXRQcm9wZXJ0eSh0aGlzLmNvbnRyb2xzLCAndmFsdWUnLCBOdW1iZXIodGhpcy52YWx1ZSkpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuX2luaXRWYWx1ZSA9IHRydWU7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRyZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlPyhmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG5cdFx0dGhpcy5vblZhbGlkYXRpb25DaGFuZ2UgPSBmbjtcclxuXHR9XHJcblxyXG5cdGZvcm1hdE51bWJlcih2YWx1ZTogYW55KSB7XHJcblx0XHRpZiAodmFsdWUgIT0gbnVsbCkge1xyXG5cdFx0XHR2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5kZWNpbWFscyAhPSBudWxsICYmIHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT0gJycpIHtcclxuXHRcdFx0aWYgKHRoaXMuZGVjaW1hbHMgPiAwKSB7XHJcblx0XHRcdFx0cmV0dXJuIE51bWJlcih2YWx1ZS5yZXBsYWNlQWxsKCcsJywgJycpKS50b0ZpeGVkKHRoaXMuZGVjaW1hbHMpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHJldHVybiBOdW1iZXIodmFsdWUucmVwbGFjZUFsbCgnLCcsICcnKSkudG9GaXhlZCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPSAnJykge1xyXG5cdFx0XHRcdHJldHVybiBOdW1iZXIodmFsdWUucmVwbGFjZUFsbCgnLCcsICcnKSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGVtaXRWYWx1ZSh2YWx1ZTogYW55KSB7XHJcblx0XHRpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPSAnJykge1xyXG5cdFx0XHRpZiAodGhpcy5kZWNpbWFscyAhPSBudWxsKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuZGVjaW1hbHMgPiAwKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gTnVtYmVyKE51bWJlcih2YWx1ZS5yZXBsYWNlQWxsKCcsJywgJycpKS50b0ZpeGVkKHRoaXMuZGVjaW1hbHMpKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cmV0dXJuIE51bWJlcihOdW1iZXIodmFsdWUucmVwbGFjZUFsbCgnLCcsICcnKSkudG9GaXhlZCgpKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0cmV0dXJuIE51bWJlcih2YWx1ZS5yZXBsYWNlQWxsKCcsJywgJycpKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRlbnRlcktleVVwKCkge1xyXG5cdFx0aWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcblx0XHRcdGxldCB2YWxpZGF0b3IgPSB0aGlzLnNoYXJlZENvbXBvbmVudHNVdGlsLnN0b3BCeVZhbGlkYXRvcih0aGlzLmNvbnRyb2xzLCB0aGlzLnZhbGlkYXRvckFsZXJ0LCB0aGlzLmxhYmVsKTtcclxuXHRcdFx0aWYgKHZhbGlkYXRvci5lcnJvcikge1xyXG5cdFx0XHRcdHRoaXMubWVzc2FnZVV0aWxTZXJ2aWNlLmdldE1lc3NhZ2VFcnJvcignMDAwMDQ2JywgJ0Vycm9yJywgdmFsaWRhdG9yLm1lc3NhZ2UpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMubmV4dCAhPSB1bmRlZmluZWQpIHtcclxuXHRcdFx0aWYgKHRoaXMubmV4dC5kaXNhYmxlZCB8fCB0aGlzLm5leHQucmVhZG9ubHkpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5uZXh0SXNEaXNhYmxlLmZvY3VzKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMubmV4dC5mb2N1cygpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdHRoaXMubmV4dElzRGlzYWJsZS5mb2N1cygpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMub25OZXh0LmVtaXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YXJyb3dVcEtleVVwKCkge1xyXG5cdFx0aWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcblx0XHRcdGxldCB2YWxpZGF0b3IgPSB0aGlzLnNoYXJlZENvbXBvbmVudHNVdGlsLnN0b3BCeVZhbGlkYXRvcih0aGlzLmNvbnRyb2xzLCB0aGlzLnZhbGlkYXRvckFsZXJ0LCB0aGlzLmxhYmVsKTtcclxuXHRcdFx0aWYgKHZhbGlkYXRvci5lcnJvcikge1xyXG5cdFx0XHRcdHRoaXMubWVzc2FnZVV0aWxTZXJ2aWNlLmdldE1lc3NhZ2VFcnJvcignMDAwMDQ2JywgJ0Vycm9yJywgdmFsaWRhdG9yLm1lc3NhZ2UpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuYmFjayAhPSB1bmRlZmluZWQpIHtcclxuXHRcdFx0aWYgKHRoaXMuYmFjay5kaXNhYmxlZCB8fCB0aGlzLmJhY2sucmVhZG9ubHkpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5iYWNrSXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5iYWNrSXNEaXNhYmxlLmZvY3VzKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuYmFjay5mb2N1cygpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAodGhpcy5iYWNrSXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdHRoaXMuYmFja0lzRGlzYWJsZS5mb2N1cygpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMub25CYWNrLmVtaXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25Gb2N1c091dChldnQ6IGFueSkge1xyXG5cdFx0dGhpcy5vbmZvY3Vzb3V0LmVtaXQoZXZ0KTtcclxuXHRcdGlmICh0aGlzLmJ0bkVuYWJsZSkge1xyXG5cdFx0XHR0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNsaWNrRW5hYmxlKCkge1xyXG5cdFx0dGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG5cdFx0dGhpcy5yZWFkb25seSA9IGZhbHNlO1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdHRoaXMuZm9jdXMoKTtcclxuXHRcdH0sIDE1MCk7XHJcblx0fVxyXG59XHJcbiIsIjxsYWJlbCAqbmdJZj1cImxhYmVsICE9IG51bGwgJiYgbGFiZWwgIT0gJycgJiYgc2hvd0xhYmVsXCIgY2xhc3M9XCJkLWZsZXggc3VtYXgtbGFiZWwgbWItMCBwLTBcIlxyXG5cdD48c3BhbiBbdGl0bGVdPVwibGFiZWxcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzXCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcblx0PHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiIGNsYXNzPVwibXMtMVwiIFtjbGFzcy50ZXh0LWRhbmdlcl09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGxcIj4gKjwvc3Bhbj5cclxuXHQ8c3BhbiAqbmdJZj1cImxhYmVsSW5mb1wiPlxyXG5cdFx0PGkgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGUgdGV4dC1pbmZvIG1zLTJcIiBbbWF0VG9vbHRpcF09XCJ0ZXh0TGFiZWxJbmZvXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctaW5mb1wiPjwvaT5cclxuXHQ8L3NwYW4+XHJcbjwvbGFiZWw+XHJcbjxkaXZcclxuXHRbY2xhc3MuaW5wdXQtaWNvbl09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuXHRbY2xhc3MucmlnaHRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiXHJcbj5cclxuXHQ8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwidy0xMDAgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuXHRcdFx0PHRvb2x0aXAtbWVzc2FnZVxyXG5cdFx0XHRcdFtsYWJlbF09XCJsYWJlbFwiXHJcblx0XHRcdFx0W2NvbnRyb2xzXT1cImNvbnRyb2xzXCJcclxuXHRcdFx0XHRbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuXHRcdFx0XHRbdG9vbHRpcE1lc3NhZ2VdPVwidG9vbHRpcE1lc3NhZ2VcIlxyXG5cdFx0XHRcdFtzdWJtaXR0ZWRdPVwic3VibWl0dGVkXCJcclxuXHRcdFx0PjwvdG9vbHRpcC1tZXNzYWdlPlxyXG5cdFx0XHQ8aW5wdXRcclxuXHRcdFx0XHQjaW5wdXRUZXh0XHJcblx0XHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRcdGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbSB0ZXh0LWVuZFwiXHJcblx0XHRcdFx0W2NsYXNzLmlzLWludmFsaWRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiXHJcblx0XHRcdFx0WyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcblx0XHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuXHRcdFx0XHRbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG5cdFx0XHRcdFttYXNrXT1cImZvcm1hdFwiXHJcblx0XHRcdFx0dGhvdXNhbmRTZXBhcmF0b3I9XCIsXCJcclxuXHRcdFx0XHQoYmx1cik9XCJvbkJsdXIoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG5cdFx0XHRcdChpbnB1dCk9XCJvbklucHV0KCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcclxuXHRcdFx0XHQoZm9jdXNvdXQpPVwib25Gb2N1c091dCgkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXHJcblx0XHRcdFx0W2F0dHIuYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXHJcblx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuXHRcdFx0XHQoZm9jdXMpPVwib25Gb2N1cygkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXHJcblx0XHRcdFx0W2F0dHIubWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXHJcblx0XHRcdFx0KGtleXVwLmVudGVyKT1cImVudGVyS2V5VXAoKVwiXHJcblx0XHRcdFx0KGtleXVwLkFycm93VXApPVwiYXJyb3dVcEtleVVwKClcIlxyXG5cdFx0XHRcdFtuZ0NsYXNzXT1cInNldE5nQ2xhc3NcIlxyXG5cdFx0XHRcdFtjbGFzcy5ib2xkXT1cImJvbGRcIlxyXG5cdFx0XHRcdFthbGxvd05lZ2F0aXZlTnVtYmVyc109XCJhbGxvd05lZ2F0aXZlTnVtYmVyc1wiXHJcblx0XHRcdFx0W2xlYWRaZXJvXT1cIiFhbGxvd05lZ2F0aXZlTnVtYmVyc1wiXHJcblx0XHRcdC8+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxkaXYgY2xhc3M9XCJiZC1oaWdobGlnaHRcIiAqbmdJZj1cImJ0bkVuYWJsZVwiPlxyXG5cdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4taW5mbyBwLTAgcm91bmRlZC0wIGgtMTAwXCIgKGNsaWNrKT1cImNsaWNrRW5hYmxlKClcIj5cclxuXHRcdFx0XHQ8aSBjbGFzcz1cImZhIGZhLWNoZWNrIHRleHQtd2hpdGUgcHgtMVwiIFttYXRUb29sdGlwXT1cIidIYWJpbGl0YXInXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctaW5mb1wiPjwvaT5cclxuXHRcdFx0PC9idXR0b24+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIlttb3JlLWJ1dHRvbnNdXCI+PC9uZy1jb250ZW50PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuPGVycm9yLW1lc3NhZ2VcclxuXHRbbGFiZWxdPVwibGFiZWxcIlxyXG5cdFtjb250cm9sc109XCJjb250cm9sc1wiXHJcblx0W3ZhbGlkYXRvck1lc3NhZ2VdPVwidmFsaWRhdG9yTWVzc2FnZVwiXHJcblx0W3Rvb2x0aXBNZXNzYWdlXT1cInRvb2x0aXBNZXNzYWdlXCJcclxuXHRbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiXHJcbj48L2Vycm9yLW1lc3NhZ2U+XHJcbiJdfQ==
459
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvaW5wdXQtbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2lucHV0LW51bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVOLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTixhQUFhLEVBQ2IsaUJBQWlCLEVBRWpCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7QUFvQnJFLE1BQU0sT0FBTyxvQkFBb0I7SUFrTWhDLFlBQ1Msa0JBQXNDLEVBQ3RDLGtCQUFzQyxFQUN0QyxPQUFrQjtRQUZsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQXBNM0I7Ozs7V0FJRztRQUNNLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFbkM7Ozs7V0FJRztRQUNNLFVBQUssR0FBUSxJQUFJLENBQUM7UUFFM0I7Ozs7V0FJRztRQUNNLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFFcEM7Ozs7V0FJRztRQUNNLGlCQUFZLEdBQVcsOEJBQThCLENBQUM7UUFFL0Q7Ozs7V0FJRztRQUNNLFNBQUksR0FBWSxLQUFLLENBQUM7UUFFL0I7Ozs7V0FJRztRQUNNLGFBQVEsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUUv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TTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ2lCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0QWZ0ZXJWaWV3SW5pdCxcclxuXHRDb21wb25lbnQsXHJcblx0RWxlbWVudFJlZixcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0Zm9yd2FyZFJlZixcclxuXHRJbnB1dCxcclxuXHRPbkNoYW5nZXMsXHJcblx0T25Jbml0LFxyXG5cdE91dHB1dCxcclxuXHRSZW5kZXJlcjIsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuXHRBYnN0cmFjdENvbnRyb2wsXHJcblx0Q29udHJvbFZhbHVlQWNjZXNzb3IsXHJcblx0TkdfVkFMSURBVE9SUyxcclxuXHROR19WQUxVRV9BQ0NFU1NPUixcclxuXHRWYWxpZGF0aW9uRXJyb3JzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJbnB1dE51bWJlclNlcnZpY2UgfSBmcm9tICcuL2lucHV0LW51bWJlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2hhcmVkQ29tcG9uZW50c1V0aWwgfSBmcm9tICcuLi91dGlscy9TaGFyZWRDb21wb25lbnRzVXRpbCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VVdGlsU2VydmljZSB9IGZyb20gJy4uL3V0aWxzL21lc3NhZ2UtdXRpbC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnaW5wdXQtbnVtYmVyJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50LnNjc3MnXSxcclxuXHRwcm92aWRlcnM6IFtcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0TnVtYmVyQ29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWVcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0TnVtYmVyQ29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWVcclxuXHRcdH1cclxuXHRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dE51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIENvbnRyb2xhIGxhIHZpc3VhbGl6YWNpw7NuIGRlbCB0ZXh0byBzdXBlcmlvciAobGFiZWwpXHJcblx0ICogQGRlZmF1bHQgdHJ1ZVxyXG5cdCAqIEB0eXBlIGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBzaG93TGFiZWw6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBUZXh0byBhIG1vc3RyYXIgY29tbyBldGlxdWV0YSBkZWwgY2FtcG9cclxuXHQgKiBAZGVmYXVsdCBudWxsXHJcblx0ICogQHR5cGUgYW55XHJcblx0ICovXHJcblx0QElucHV0KCkgbGFiZWw6IGFueSA9IG51bGw7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIEhhYmlsaXRhIGVsIGJvdMOzbiBwYXJhIGFjdGl2YXIgZWwgY2FtcG9cclxuXHQgKiBAZGVmYXVsdCBmYWxzZVxyXG5cdCAqIEB0eXBlIGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBidG5FbmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gVmFsb3IgcGFyYSBlbCBhdHJpYnV0byBhdXRvY29tcGxldGUgZGVsIGlucHV0XHJcblx0ICogQGRlZmF1bHQgXCJuby1hdXRvY29tcGxldGUtaW5wdXQtbnVtYmVyXCJcclxuXHQgKiBAdHlwZSBzdHJpbmdcclxuXHQgKi9cclxuXHRASW5wdXQoKSBhdXRvY29tcGxldGU6IHN0cmluZyA9ICduby1hdXRvY29tcGxldGUtaW5wdXQtbnVtYmVyJztcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gQXBsaWNhIGVzdGlsbyBuZWdyaXRhIGFsIHRleHRvXHJcblx0ICogQGRlZmF1bHQgZmFsc2VcclxuXHQgKiBAdHlwZSBib29sZWFuXHJcblx0ICovXHJcblx0QElucHV0KCkgYm9sZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBOw7ptZXJvIGRlIGRlY2ltYWxlcyBhIG1vc3RyYXIgKC0xIHBhcmEgbm8gZXNwZWNpZmljYXIpXHJcblx0ICogQGRlZmF1bHQgLTFcclxuXHQgKiBAdHlwZSBudW1iZXJcclxuXHQgKi9cclxuXHRASW5wdXQoKSBkZWNpbWFsczogbnVtYmVyID0gLTE7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIEZvcm1hdGVhIHZhbG9yZXMgdmFjw61vcyBjb21vIGNlcm9cclxuXHQgKiBAZGVmYXVsdCBmYWxzZVxyXG5cdCAqIEB0eXBlIGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBmb3JtYXRDZXJvOiBib29sZWFuID0gZmFsc2U7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIExvbmdpdHVkIG3DoXhpbWEgcGVybWl0aWRhIHBhcmEgZWwgbsO6bWVyb1xyXG5cdCAqIEBkZWZhdWx0IG51bGxcclxuXHQgKiBAdHlwZSBhbnlcclxuXHQgKi9cclxuXHRASW5wdXQoKSBtYXhMZW5ndGg6IGFueSA9IG51bGw7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIFJlZmVyZW5jaWEgYWwgc2lndWllbnRlIGNvbnRyb2wgcGFyYSBuYXZlZ2FjacOzblxyXG5cdCAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG5cdCAqIEB0eXBlIGFueVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIG5leHQ6IGFueTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNpYSBhbCBjb250cm9sIGFsdGVybmF0aXZvIGN1YW5kbyBlbCBzaWd1aWVudGUgZXN0w6EgZGVzaGFiaWxpdGFkb1xyXG5cdCAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG5cdCAqIEB0eXBlIGFueVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIG5leHRJc0Rpc2FibGU6IGFueTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNpYSBhbCBjb250cm9sIGFudGVyaW9yIHBhcmEgbmF2ZWdhY2nDs25cclxuXHQgKiBAZGVmYXVsdCB1bmRlZmluZWRcclxuXHQgKiBAdHlwZSBhbnlcclxuXHQgKi9cclxuXHRASW5wdXQoKSBiYWNrOiBhbnk7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIFJlZmVyZW5jaWEgYWwgY29udHJvbCBhbHRlcm5hdGl2byBjdWFuZG8gZWwgYW50ZXJpb3IgZXN0w6EgZGVzaGFiaWxpdGFkb1xyXG5cdCAqIEBkZWZhdWx0IHVuZGVmaW5lZFxyXG5cdCAqIEB0eXBlIGFueVxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIGJhY2tJc0Rpc2FibGU6IGFueTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gSW5kaWNhIHNpIGVsIGNhbXBvIGVzIG9ibGlnYXRvcmlvXHJcblx0ICogQGRlZmF1bHQgZmFsc2VcclxuXHQgKiBAdHlwZSBib29sZWFuXHJcblx0ICovXHJcblx0QElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gRGVzaGFiaWxpdGEgZWwgY29udHJvbFxyXG5cdCAqIEBkZWZhdWx0IGZhbHNlXHJcblx0ICogQHR5cGUgYm9vbGVhblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIEVzdGFibGVjZSBlbCBjb250cm9sIGNvbW8gc29sbyBsZWN0dXJhXHJcblx0ICogQGRlZmF1bHQgZmFsc2VcclxuXHQgKiBAdHlwZSBib29sZWFuXHJcblx0ICovXHJcblx0QElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gTXVlc3RyYSBtZW5zYWplcyBkZSB2YWxpZGFjacOzblxyXG5cdCAqIEBkZWZhdWx0IGZhbHNlXHJcblx0ICogQHR5cGUgYm9vbGVhblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIHZhbGlkYXRvck1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gTXVlc3RyYSBtZW5zYWplcyBkZSBheXVkYSBjb21vIHRvb2x0aXBzXHJcblx0ICogQGRlZmF1bHQgdHJ1ZVxyXG5cdCAqIEB0eXBlIGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKSB0b29sdGlwTWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIEluZGljYSBzaSBlbCBmb3JtdWxhcmlvIGhhIHNpZG8gZW52aWFkbyBwYXJhIG1vc3RyYXIgdmFsaWRhY2lvbmVzXHJcblx0ICogQGRlZmF1bHQgdHJ1ZVxyXG5cdCAqIEB0eXBlIGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBIYWJpbGl0YSBpbmZvcm1hY2nDs24gYWRpY2lvbmFsIHBhcmEgbGEgZXRpcXVldGFcclxuXHQgKiBAZGVmYXVsdCBmYWxzZVxyXG5cdCAqIEB0eXBlIGJvb2xlYW5cclxuXHQgKi9cclxuXHRASW5wdXQoKSBsYWJlbEluZm86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gVGV4dG8gaW5mb3JtYXRpdm8gYWRpY2lvbmFsIHBhcmEgbGEgZXRpcXVldGFcclxuXHQgKiBAZGVmYXVsdCBcIlwiXHJcblx0ICogQHR5cGUgc3RyaW5nXHJcblx0ICovXHJcblx0QElucHV0KCkgdGV4dExhYmVsSW5mbzogc3RyaW5nID0gJyc7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIE11ZXN0cmEgYWxlcnRhcyBkZSB2YWxpZGFjacOzblxyXG5cdCAqIEBkZWZhdWx0IGZhbHNlXHJcblx0ICogQHR5cGUgYm9vbGVhblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIHZhbGlkYXRvckFsZXJ0OiBib29sZWFuID0gZmFsc2U7XHJcblx0XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uIENsYXNlcyBDU1MgYWRpY2lvbmFsZXMgcGFyYSBlbCBjb21wb25lbnRlXHJcblx0ICogQGRlZmF1bHQgXCJcIlxyXG5cdCAqIEB0eXBlIHN0cmluZ1xyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIHNldE5nQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvbiBUZXh0byBkZSBwbGFjZWhvbGRlciBwYXJhIGVsIGlucHV0XHJcblx0ICogQGRlZmF1bHQgXCJcIlxyXG5cdCAqIEB0eXBlIHN0cmluZ1xyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuXHRcclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb24gUGVybWl0ZSB2YWxvcmVzIG5lZ2F0aXZvc1xyXG5cdCAqIEBkZWZhdWx0IGZhbHNlXHJcblx0ICogQHR5cGUgYm9vbGVhblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpIGFsbG93TmVnYXRpdmVOdW1iZXJzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBEZXNoYWJpbGl0YSBlbCBzZXBhcmFkb3IgZGUgbWlsZXNcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNhYmxlVGhvdXNhbmRTZXBhcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0QE91dHB1dCgpIG9uTmV4dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uQmFjazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvbmZvY3Vzb3V0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAVmlld0NoaWxkKCdpbnB1dFRleHQnKSBpbnB1dFRleHQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuXHRzaGFyZWRDb21wb25lbnRzVXRpbCA9IG5ldyBTaGFyZWRDb21wb25lbnRzVXRpbCgpO1xyXG5cclxuXHRmb3JtYXQgPSAnc2VwYXJhdG9yJztcclxuXHJcblx0Y29udHJvbHM6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsO1xyXG5cdHZhbHVlOiBhbnk7XHJcblx0dmFsdWVFbWl0OiBhbnk7XHJcblx0X2luaXRWYWx1ZSA9IGZhbHNlO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbWVzc2FnZVV0aWxTZXJ2aWNlOiBNZXNzYWdlVXRpbFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGlucHV0TnVtYmVyU2VydmljZTogSW5wdXROdW1iZXJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfcmVuZGVyOiBSZW5kZXJlcjJcclxuXHQpIHtcclxuXHRcdHRoaXMuZGVjaW1hbHMgPSB0aGlzLmlucHV0TnVtYmVyU2VydmljZS5nZXREZWNpbWFscygpO1xyXG5cdFx0dGhpcy5mb3JtYXRDZXJvID0gdGhpcy5pbnB1dE51bWJlclNlcnZpY2UuZ2V0Rm9ybWF0Q2VybygpO1xyXG5cdFx0dGhpcy5idG5FbmFibGUgPSB0aGlzLmlucHV0TnVtYmVyU2VydmljZS5nZXRCdG5FbmFibGUoKTtcclxuXHRcdHRoaXMuYm9sZCA9IHRoaXMuaW5wdXROdW1iZXJTZXJ2aWNlLmdldEJvbGQoKTtcclxuXHRcdHRoaXMudmFsaWRhdG9yTWVzc2FnZSA9IHRoaXMuaW5wdXROdW1iZXJTZXJ2aWNlLmdldFZhbGlkYXRvck1lc3NhZ2UoKTtcclxuXHRcdHRoaXMudG9vbHRpcE1lc3NhZ2UgPSB0aGlzLmlucHV0TnVtYmVyU2VydmljZS5nZXRUb29sdGlwTWVzc2FnZSgpO1xyXG5cdFx0dGhpcy5zdWJtaXR0ZWQgPSB0aGlzLmlucHV0TnVtYmVyU2VydmljZS5nZXRTdWJtaXR0ZWQoKTtcclxuXHRcdHRoaXMudmFsaWRhdG9yQWxlcnQgPSB0aGlzLmlucHV0TnVtYmVyU2VydmljZS5nZXRWYWxpZGF0b3JBbGVydCgpO1xyXG5cdH1cclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cdFx0aWYgKGNoYW5nZXNbJ3N1Ym1pdHRlZCddKSB7XHJcblx0XHRcdGlmICh0aGlzLmNvbnRyb2xzICE9IG51bGwgJiYgY2hhbmdlc1snc3VibWl0dGVkJ10uY3VycmVudFZhbHVlKSB7XHJcblx0XHRcdFx0dGhpcy5jb250cm9scy5tYXJrQXNEaXJ0eSgpO1xyXG5cdFx0XHRcdHRoaXMuY29udHJvbHMubWFya0FzVG91Y2hlZCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdGlmICh0aGlzLmRlY2ltYWxzICE9IC0xKSB7XHJcblx0XHRcdHRoaXMuZm9ybWF0ID0gJ3NlcGFyYXRvcicgKyAnLicgKyB0aGlzLmRlY2ltYWxzLnRvU3RyaW5nKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmZvcm1hdCA9ICdzZXBhcmF0b3InO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cclxuXHJcblx0b25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcclxuXHRvblZhbGlkYXRpb25DaGFuZ2UgPSAoKSA9PiB7fTtcclxuXHRvblRvdWNoID0gKCkgPT4ge307XHJcblx0Zm9jdXMgPSAoKSA9PiB7XHJcblx0XHR0aGlzLmlucHV0VGV4dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcblx0XHR0aGlzLmlucHV0VGV4dC5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xyXG5cdH07XHJcblxyXG5cdG9uQmx1cih2YWx1ZTogYW55KSB7XHJcblx0XHR0aGlzLm9uVG91Y2goKTtcclxuXHRcdGlmICgodmFsdWUgPT0gJycgfHwgdmFsdWUgPT0gbnVsbCkgJiYgdGhpcy5mb3JtYXRDZXJvKSB7XHJcblx0XHRcdHZhbHVlID0gMDtcclxuXHRcdH1cclxuXHRcdGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtYXROdW1iZXIodmFsdWUpO1xyXG5cclxuXHRcdGlmICh0aGlzLnZhbHVlICE9PSBuZXdWYWx1ZSkge1xyXG5cdFx0XHR0aGlzLnZhbHVlID0gbmV3VmFsdWU7XHJcblx0XHRcdHRoaXMub25DaGFuZ2UodGhpcy5lbWl0VmFsdWUobmV3VmFsdWUpKTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBpZiAobmV3VmFsdWUpIHtcclxuXHRcdHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcblx0XHR0aGlzLmJsdXIuZW1pdCh0aGlzLmVtaXRWYWx1ZShuZXdWYWx1ZSkpO1xyXG5cdFx0Ly8gfVxyXG5cdH1cclxuXHJcblx0b25Gb2N1cyhldnQ6IGFueSkge1xyXG5cdFx0dGhpcy5pbnB1dFRleHQubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcclxuXHRcdHRoaXMub25mb2N1cy5lbWl0KGV2dCk7XHJcblx0fVxyXG5cclxuXHRvbklucHV0KGV2dDogYW55KSB7XHJcblx0XHR0aGlzLm9uVG91Y2goKTtcclxuXHRcdHRoaXMub25DaGFuZ2UodGhpcy5lbWl0VmFsdWUoZXZ0KSk7XHJcblx0XHR0aGlzLm9uVmFsaWRhdGlvbkNoYW5nZSgpO1xyXG5cdFx0dGhpcy5jaGFuZ2UuZW1pdCh0aGlzLmVtaXRWYWx1ZShldnQpKTtcclxuXHRcdHRoaXMub25jaGFuZ2UuZW1pdCh0aGlzLmVtaXRWYWx1ZShldnQpKTtcclxuXHR9XHJcblxyXG5cdHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG5cdFx0aWYgKHZhbHVlICE9IG51bGwpIHtcclxuXHRcdFx0dGhpcy52YWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnZhbHVlID09PSAnTmFOJykge1xyXG5cdFx0XHRcdGlmICh0aGlzLmNvbnRyb2xzKSB7XHJcblx0XHRcdFx0XHR0aGlzLl9yZW5kZXIuc2V0UHJvcGVydHkodGhpcy5jb250cm9scywgJ3ZhbHVlJywgbnVsbCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcignTm90IGEgbnVtYmVyJyk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmICh0aGlzLmNvbnRyb2xzKSB7XHJcblx0XHRcdFx0dGhpcy5fcmVuZGVyLnNldFByb3BlcnR5KHRoaXMuY29udHJvbHMsICd2YWx1ZScsIE51bWJlcih0aGlzLnZhbHVlKSk7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMudmFsdWUgPSBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcblx0XHR0aGlzLm9uQ2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcblx0XHR0aGlzLm9uVG91Y2ggPSBmbjtcclxuXHR9XHJcblxyXG5cdHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0dGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcblx0fVxyXG5cclxuXHR2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgYW55IHtcclxuXHRcdHRoaXMuY29udHJvbHMgPSBjb250cm9sO1xyXG5cclxuXHRcdGlmICghdGhpcy5faW5pdFZhbHVlKSB7XHJcblx0XHRcdGlmICh0aGlzLnZhbHVlID09PSAnTmFOJykge1xyXG5cdFx0XHRcdHRoaXMuX3JlbmRlci5zZXRQcm9wZXJ0eSh0aGlzLmNvbnRyb2xzLCAndmFsdWUnLCBudWxsKTtcclxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIG51bWJlcicpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAodGhpcy52YWx1ZSAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdHRoaXMuX3JlbmRlci5zZXRQcm9wZXJ0eSh0aGlzLmNvbnRyb2xzLCAndmFsdWUnLCBOdW1iZXIodGhpcy52YWx1ZSkpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuX2luaXRWYWx1ZSA9IHRydWU7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRyZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlPyhmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG5cdFx0dGhpcy5vblZhbGlkYXRpb25DaGFuZ2UgPSBmbjtcclxuXHR9XHJcblxyXG5cdGZvcm1hdE51bWJlcih2YWx1ZTogYW55KSB7XHJcblx0XHRpZiAodmFsdWUgIT0gbnVsbCkge1xyXG5cdFx0XHR2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5kZWNpbWFscyAhPSBudWxsICYmIHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT0gJycpIHtcclxuXHRcdFx0aWYgKHRoaXMuZGVjaW1hbHMgPiAwKSB7XHJcblx0XHRcdFx0cmV0dXJuIE51bWJlcih2YWx1ZS5yZXBsYWNlQWxsKCcsJywgJycpKS50b0ZpeGVkKHRoaXMuZGVjaW1hbHMpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHJldHVybiBOdW1iZXIodmFsdWUucmVwbGFjZUFsbCgnLCcsICcnKSkudG9GaXhlZCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPSAnJykge1xyXG5cdFx0XHRcdHJldHVybiBOdW1iZXIodmFsdWUucmVwbGFjZUFsbCgnLCcsICcnKSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGVtaXRWYWx1ZSh2YWx1ZTogYW55KSB7XHJcblx0XHRpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPSAnJykge1xyXG5cdFx0XHRpZiAodGhpcy5kZWNpbWFscyAhPSBudWxsKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuZGVjaW1hbHMgPiAwKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gTnVtYmVyKE51bWJlcih2YWx1ZS5yZXBsYWNlQWxsKCcsJywgJycpKS50b0ZpeGVkKHRoaXMuZGVjaW1hbHMpKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cmV0dXJuIE51bWJlcihOdW1iZXIodmFsdWUucmVwbGFjZUFsbCgnLCcsICcnKSkudG9GaXhlZCgpKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0cmV0dXJuIE51bWJlcih2YWx1ZS5yZXBsYWNlQWxsKCcsJywgJycpKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRlbnRlcktleVVwKCkge1xyXG5cdFx0aWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcblx0XHRcdGxldCB2YWxpZGF0b3IgPSB0aGlzLnNoYXJlZENvbXBvbmVudHNVdGlsLnN0b3BCeVZhbGlkYXRvcih0aGlzLmNvbnRyb2xzLCB0aGlzLnZhbGlkYXRvckFsZXJ0LCB0aGlzLmxhYmVsKTtcclxuXHRcdFx0aWYgKHZhbGlkYXRvci5lcnJvcikge1xyXG5cdFx0XHRcdHRoaXMubWVzc2FnZVV0aWxTZXJ2aWNlLmdldE1lc3NhZ2VFcnJvcignMDAwMDQ2JywgJ0Vycm9yJywgdmFsaWRhdG9yLm1lc3NhZ2UpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMubmV4dCAhPSB1bmRlZmluZWQpIHtcclxuXHRcdFx0aWYgKHRoaXMubmV4dC5kaXNhYmxlZCB8fCB0aGlzLm5leHQucmVhZG9ubHkpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5uZXh0SXNEaXNhYmxlLmZvY3VzKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMubmV4dC5mb2N1cygpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdHRoaXMubmV4dElzRGlzYWJsZS5mb2N1cygpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMub25OZXh0LmVtaXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YXJyb3dVcEtleVVwKCkge1xyXG5cdFx0aWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcblx0XHRcdGxldCB2YWxpZGF0b3IgPSB0aGlzLnNoYXJlZENvbXBvbmVudHNVdGlsLnN0b3BCeVZhbGlkYXRvcih0aGlzLmNvbnRyb2xzLCB0aGlzLnZhbGlkYXRvckFsZXJ0LCB0aGlzLmxhYmVsKTtcclxuXHRcdFx0aWYgKHZhbGlkYXRvci5lcnJvcikge1xyXG5cdFx0XHRcdHRoaXMubWVzc2FnZVV0aWxTZXJ2aWNlLmdldE1lc3NhZ2VFcnJvcignMDAwMDQ2JywgJ0Vycm9yJywgdmFsaWRhdG9yLm1lc3NhZ2UpO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuYmFjayAhPSB1bmRlZmluZWQpIHtcclxuXHRcdFx0aWYgKHRoaXMuYmFjay5kaXNhYmxlZCB8fCB0aGlzLmJhY2sucmVhZG9ubHkpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5iYWNrSXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5iYWNrSXNEaXNhYmxlLmZvY3VzKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuYmFjay5mb2N1cygpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAodGhpcy5iYWNrSXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdHRoaXMuYmFja0lzRGlzYWJsZS5mb2N1cygpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMub25CYWNrLmVtaXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25Gb2N1c091dChldnQ6IGFueSkge1xyXG5cdFx0dGhpcy5vbmZvY3Vzb3V0LmVtaXQoZXZ0KTtcclxuXHRcdGlmICh0aGlzLmJ0bkVuYWJsZSkge1xyXG5cdFx0XHR0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNsaWNrRW5hYmxlKCkge1xyXG5cdFx0dGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG5cdFx0dGhpcy5yZWFkb25seSA9IGZhbHNlO1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdHRoaXMuZm9jdXMoKTtcclxuXHRcdH0sIDE1MCk7XHJcblx0fVxyXG59XHJcbiIsIjxsYWJlbCAqbmdJZj1cImxhYmVsICE9IG51bGwgJiYgbGFiZWwgIT0gJycgJiYgc2hvd0xhYmVsXCIgY2xhc3M9XCJkLWZsZXggc3VtYXgtbGFiZWwgbWItMCBwLTBcIlxyXG5cdD48c3BhbiBbdGl0bGVdPVwibGFiZWxcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzXCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcblx0PHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiIGNsYXNzPVwibXMtMVwiIFtjbGFzcy50ZXh0LWRhbmdlcl09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGxcIj4gKjwvc3Bhbj5cclxuXHQ8c3BhbiAqbmdJZj1cImxhYmVsSW5mb1wiPlxyXG5cdFx0PGkgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGUgdGV4dC1pbmZvIG1zLTJcIiBbbWF0VG9vbHRpcF09XCJ0ZXh0TGFiZWxJbmZvXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctaW5mb1wiPjwvaT5cclxuXHQ8L3NwYW4+XHJcbjwvbGFiZWw+XHJcbjxkaXZcclxuXHRbY2xhc3MuaW5wdXQtaWNvbl09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuXHRbY2xhc3MucmlnaHRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiXHJcbj5cclxuXHQ8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwidy0xMDAgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuXHRcdFx0PHRvb2x0aXAtbWVzc2FnZVxyXG5cdFx0XHRcdFtsYWJlbF09XCJsYWJlbFwiXHJcblx0XHRcdFx0W2NvbnRyb2xzXT1cImNvbnRyb2xzXCJcclxuXHRcdFx0XHRbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuXHRcdFx0XHRbdG9vbHRpcE1lc3NhZ2VdPVwidG9vbHRpcE1lc3NhZ2VcIlxyXG5cdFx0XHRcdFtzdWJtaXR0ZWRdPVwic3VibWl0dGVkXCJcclxuXHRcdFx0PjwvdG9vbHRpcC1tZXNzYWdlPlxyXG5cdFx0XHQ8aW5wdXRcclxuXHRcdFx0XHQjaW5wdXRUZXh0XHJcblx0XHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRcdGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbSB0ZXh0LWVuZFwiXHJcblx0XHRcdFx0W2NsYXNzLmlzLWludmFsaWRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiXHJcblx0XHRcdFx0WyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcblx0XHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuXHRcdFx0XHRbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG5cdFx0XHRcdFttYXNrXT1cImZvcm1hdFwiXHJcblx0XHRcdFx0W3Rob3VzYW5kU2VwYXJhdG9yXT1cImRpc2FibGVUaG91c2FuZFNlcGFyYXRvciA/ICcnIDogJywnXCJcclxuXHRcdFx0XHQoYmx1cik9XCJvbkJsdXIoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG5cdFx0XHRcdChpbnB1dCk9XCJvbklucHV0KCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcclxuXHRcdFx0XHQoZm9jdXNvdXQpPVwib25Gb2N1c091dCgkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXHJcblx0XHRcdFx0W2F0dHIuYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXHJcblx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuXHRcdFx0XHQoZm9jdXMpPVwib25Gb2N1cygkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXHJcblx0XHRcdFx0W2F0dHIubWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXHJcblx0XHRcdFx0KGtleXVwLmVudGVyKT1cImVudGVyS2V5VXAoKVwiXHJcblx0XHRcdFx0KGtleXVwLkFycm93VXApPVwiYXJyb3dVcEtleVVwKClcIlxyXG5cdFx0XHRcdFtuZ0NsYXNzXT1cInNldE5nQ2xhc3NcIlxyXG5cdFx0XHRcdFtjbGFzcy5ib2xkXT1cImJvbGRcIlxyXG5cdFx0XHRcdFthbGxvd05lZ2F0aXZlTnVtYmVyc109XCJhbGxvd05lZ2F0aXZlTnVtYmVyc1wiXHJcblx0XHRcdFx0W2xlYWRaZXJvXT1cIiFhbGxvd05lZ2F0aXZlTnVtYmVyc1wiXHJcblx0XHRcdC8+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxkaXYgY2xhc3M9XCJiZC1oaWdobGlnaHRcIiAqbmdJZj1cImJ0bkVuYWJsZVwiPlxyXG5cdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4taW5mbyBwLTAgcm91bmRlZC0wIGgtMTAwXCIgKGNsaWNrKT1cImNsaWNrRW5hYmxlKClcIj5cclxuXHRcdFx0XHQ8aSBjbGFzcz1cImZhIGZhLWNoZWNrIHRleHQtd2hpdGUgcHgtMVwiIFttYXRUb29sdGlwXT1cIidIYWJpbGl0YXInXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctaW5mb1wiPjwvaT5cclxuXHRcdFx0PC9idXR0b24+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIlttb3JlLWJ1dHRvbnNdXCI+PC9uZy1jb250ZW50PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuPGVycm9yLW1lc3NhZ2VcclxuXHRbbGFiZWxdPVwibGFiZWxcIlxyXG5cdFtjb250cm9sc109XCJjb250cm9sc1wiXHJcblx0W3ZhbGlkYXRvck1lc3NhZ2VdPVwidmFsaWRhdG9yTWVzc2FnZVwiXHJcblx0W3Rvb2x0aXBNZXNzYWdlXT1cInRvb2x0aXBNZXNzYWdlXCJcclxuXHRbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiXHJcbj48L2Vycm9yLW1lc3NhZ2U+XHJcbiJdfQ==
@@ -132,7 +132,7 @@ export class ContainerSharedComponent {
132
132
  this.params.api?.stopEditing();
133
133
  }
134
134
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ContainerSharedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
135
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ContainerSharedComponent, selector: "container-shared-component", viewQueries: [{ propertyName: "control", first: true, predicate: ["control"], descendants: true }], ngImport: i0, template: "<div [ngStyle]=\"{'width': width}\" class=\"position-relative row\">\r\n\t<div *ngIf=\"typeControl==='ng-select-simple'\" class=\"col-12\">\r\n\t\t<ng-select-simple\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[clearable]=\"clearable\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control\r\n\t\t\t[items]=\"items\">\r\n\t\t</ng-select-simple>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-text'\" class=\"col-12\">\r\n\t\t<input-text\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[inputMask]=\"inputMask\"\r\n\t\t\t[textRight]=\"textRight\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t(keypress)=\"detec($event)\"\r\n\t\t\t#control>\r\n\t\t</input-text>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-number'\" class=\"col-12\">\r\n\t\t<input-number\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[formatCero]=\"formatCero\"\r\n\t\t\t[maxLength]=\"maxLength\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[decimals]=\"decimals\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t#control>\r\n\t\t</input-number>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-picker'\" class=\"col-12\">\r\n\t\t<date-picker\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t</date-picker>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-time-picker-editable'\" class=\"col-12\">\r\n\t\t<date-time-picker-editable\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t\t></date-time-picker-editable\r\n\t\t>\r\n\t</div>\r\n</div>\r\n", styles: [".ag-theme-balham .ag-cell.ag-cell-inline-editing{height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.NgSelectSimpleComponent, selector: "ng-select-simple", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "openWhenFocus", "searchBy", "markFirstItem", "markWhenHaveOneItem", "submitted", "setNgClass", "searchable", "validatorAlert", "upperCase", "templateLabel", "appendTo", "items", "loading", "loadingText", "clearAllText", "notFoundText", "markFirst", "clearable", "clearOnBackspace", "virtualScroll", "openOnEnter", "refresh", "isRefreshDisabled", "search", "redirect", "searchParams", "labelInfo", "textLabelInfo", "urlRedirect", "titleRedirect", "isRedirectDisabled"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onrefresh", "onsearch"] }, { kind: "component", type: i4.InputTextComponent, selector: "input-text", inputs: ["format", "type", "showLabel", "label", "btnEnable", "autocomplete", "bold", "inputMask", "showMaskTyped", "next", "nextIsDisable", "back", "backIsDisable", "required", "textRight", "disabled", "readonly", "validatorMessage", "tooltipMessage", "maxLength", "submitted", "validatorAlert", "setNgClass", "patterns", "placeholder", "labelInfo", "textLabelInfo", "controlCharClearReplace", "replaceRegex", "clearRegex"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onchange", "onfocusout"] }, { kind: "component", type: i5.InputNumberComponent, selector: "input-number", inputs: ["showLabel", "label", "btnEnable", "autocomplete", "bold", "decimals", "formatCero", "maxLength", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "submitted", "labelInfo", "textLabelInfo", "validatorAlert", "setNgClass", "placeholder", "allowNegativeNumbers"], outputs: ["onNext", "onBack", "change", "onchange", "blur", "onfocus", "onfocusout"] }, { kind: "component", type: i6.DatePickerComponent, selector: "date-picker", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "noAutoCompleteNull", "readonly", "validatorMessage", "tooltipMessage", "validatorAlert", "submitted", "labelInfo", "textLabelInfo", "minDate", "maxDate", "invalid", "focusInitial", "disabled", "restrictInputLength"], outputs: ["onNext", "onBack", "input", "onchange", "blur"] }, { kind: "component", type: i7.DateTimePickerEditableComponent, selector: "date-time-picker-editable", inputs: ["label", "showLabel", "readonly", "required", "validatorMessage", "tooltipMessage", "submitted", "format", "next", "nextIsDisable", "labelInfo", "textLabelInfo", "back", "backIsDisable", "openWhenFocus", "goNextWhenSelect", "clearable", "autoCompleteHours", "autoComplete", "disabled"], outputs: ["onNext", "onBack"] }] }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ContainerSharedComponent, selector: "container-shared-component", viewQueries: [{ propertyName: "control", first: true, predicate: ["control"], descendants: true }], ngImport: i0, template: "<div [ngStyle]=\"{'width': width}\" class=\"position-relative row\">\r\n\t<div *ngIf=\"typeControl==='ng-select-simple'\" class=\"col-12\">\r\n\t\t<ng-select-simple\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[clearable]=\"clearable\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control\r\n\t\t\t[items]=\"items\">\r\n\t\t</ng-select-simple>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-text'\" class=\"col-12\">\r\n\t\t<input-text\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[inputMask]=\"inputMask\"\r\n\t\t\t[textRight]=\"textRight\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t(keypress)=\"detec($event)\"\r\n\t\t\t#control>\r\n\t\t</input-text>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-number'\" class=\"col-12\">\r\n\t\t<input-number\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[formatCero]=\"formatCero\"\r\n\t\t\t[maxLength]=\"maxLength\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[decimals]=\"decimals\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t#control>\r\n\t\t</input-number>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-picker'\" class=\"col-12\">\r\n\t\t<date-picker\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t</date-picker>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-time-picker-editable'\" class=\"col-12\">\r\n\t\t<date-time-picker-editable\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t\t></date-time-picker-editable\r\n\t\t>\r\n\t</div>\r\n</div>\r\n", styles: [".ag-theme-balham .ag-cell.ag-cell-inline-editing{height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.NgSelectSimpleComponent, selector: "ng-select-simple", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "openWhenFocus", "searchBy", "markFirstItem", "markWhenHaveOneItem", "submitted", "setNgClass", "searchable", "validatorAlert", "upperCase", "templateLabel", "appendTo", "items", "loading", "loadingText", "clearAllText", "notFoundText", "markFirst", "clearable", "clearOnBackspace", "virtualScroll", "openOnEnter", "refresh", "isRefreshDisabled", "search", "redirect", "searchParams", "labelInfo", "textLabelInfo", "urlRedirect", "titleRedirect", "isRedirectDisabled"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onrefresh", "onsearch"] }, { kind: "component", type: i4.InputTextComponent, selector: "input-text", inputs: ["format", "type", "showLabel", "label", "btnEnable", "autocomplete", "bold", "inputMask", "showMaskTyped", "next", "nextIsDisable", "back", "backIsDisable", "required", "textRight", "disabled", "readonly", "validatorMessage", "tooltipMessage", "maxLength", "submitted", "validatorAlert", "setNgClass", "patterns", "placeholder", "labelInfo", "textLabelInfo", "controlCharClearReplace", "replaceRegex", "clearRegex"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onchange", "onfocusout"] }, { kind: "component", type: i5.InputNumberComponent, selector: "input-number", inputs: ["showLabel", "label", "btnEnable", "autocomplete", "bold", "decimals", "formatCero", "maxLength", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "submitted", "labelInfo", "textLabelInfo", "validatorAlert", "setNgClass", "placeholder", "allowNegativeNumbers", "disableThousandSeparator"], outputs: ["onNext", "onBack", "change", "onchange", "blur", "onfocus", "onfocusout"] }, { kind: "component", type: i6.DatePickerComponent, selector: "date-picker", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "noAutoCompleteNull", "readonly", "validatorMessage", "tooltipMessage", "validatorAlert", "submitted", "labelInfo", "textLabelInfo", "minDate", "maxDate", "invalid", "focusInitial", "disabled", "restrictInputLength"], outputs: ["onNext", "onBack", "input", "onchange", "blur"] }, { kind: "component", type: i7.DateTimePickerEditableComponent, selector: "date-time-picker-editable", inputs: ["label", "showLabel", "readonly", "required", "validatorMessage", "tooltipMessage", "submitted", "format", "next", "nextIsDisable", "labelInfo", "textLabelInfo", "back", "backIsDisable", "openWhenFocus", "goNextWhenSelect", "clearable", "autoCompleteHours", "autoComplete", "disabled"], outputs: ["onNext", "onBack"] }] }); }
136
136
  }
137
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ContainerSharedComponent, decorators: [{
138
138
  type: Component,
@@ -3147,6 +3147,12 @@ class InputNumberComponent {
3147
3147
  * @type boolean
3148
3148
  */
3149
3149
  this.allowNegativeNumbers = false;
3150
+ /**
3151
+ * @description Deshabilita el separador de miles
3152
+ * @default false
3153
+ * @type boolean
3154
+ */
3155
+ this.disableThousandSeparator = false;
3150
3156
  this.onNext = new EventEmitter();
3151
3157
  this.onBack = new EventEmitter();
3152
3158
  this.change = new EventEmitter();
@@ -3367,7 +3373,7 @@ class InputNumberComponent {
3367
3373
  }, 150);
3368
3374
  }
3369
3375
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputNumberComponent, deps: [{ token: MessageUtilService }, { token: InputNumberService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
3370
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: InputNumberComponent, selector: "input-number", inputs: { showLabel: "showLabel", label: "label", btnEnable: "btnEnable", autocomplete: "autocomplete", bold: "bold", decimals: "decimals", formatCero: "formatCero", maxLength: "maxLength", next: "next", nextIsDisable: "nextIsDisable", back: "back", backIsDisable: "backIsDisable", required: "required", disabled: "disabled", readonly: "readonly", validatorMessage: "validatorMessage", tooltipMessage: "tooltipMessage", submitted: "submitted", labelInfo: "labelInfo", textLabelInfo: "textLabelInfo", validatorAlert: "validatorAlert", setNgClass: "setNgClass", placeholder: "placeholder", allowNegativeNumbers: "allowNegativeNumbers" }, outputs: { onNext: "onNext", onBack: "onBack", change: "change", onchange: "onchange", blur: "blur", onfocus: "onfocus", onfocusout: "onfocusout" }, providers: [
3376
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: InputNumberComponent, selector: "input-number", inputs: { showLabel: "showLabel", label: "label", btnEnable: "btnEnable", autocomplete: "autocomplete", bold: "bold", decimals: "decimals", formatCero: "formatCero", maxLength: "maxLength", next: "next", nextIsDisable: "nextIsDisable", back: "back", backIsDisable: "backIsDisable", required: "required", disabled: "disabled", readonly: "readonly", validatorMessage: "validatorMessage", tooltipMessage: "tooltipMessage", submitted: "submitted", labelInfo: "labelInfo", textLabelInfo: "textLabelInfo", validatorAlert: "validatorAlert", setNgClass: "setNgClass", placeholder: "placeholder", allowNegativeNumbers: "allowNegativeNumbers", disableThousandSeparator: "disableThousandSeparator" }, outputs: { onNext: "onNext", onBack: "onBack", change: "change", onchange: "onchange", blur: "blur", onfocus: "onfocus", onfocusout: "onfocusout" }, providers: [
3371
3377
  {
3372
3378
  provide: NG_VALUE_ACCESSOR,
3373
3379
  useExisting: forwardRef(() => InputNumberComponent),
@@ -3378,7 +3384,7 @@ class InputNumberComponent {
3378
3384
  useExisting: forwardRef(() => InputNumberComponent),
3379
3385
  multi: true
3380
3386
  }
3381
- ], viewQueries: [{ propertyName: "inputText", first: true, predicate: ["inputText"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n\t><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n\t<span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n\t<span *ngIf=\"labelInfo\">\r\n\t\t<i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n\t</span>\r\n</label>\r\n<div\r\n\t[class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t[class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n>\r\n\t<div class=\"d-flex\">\r\n\t\t<div class=\"w-100 position-relative\">\r\n\t\t\t<tooltip-message\r\n\t\t\t\t[label]=\"label\"\r\n\t\t\t\t[controls]=\"controls\"\r\n\t\t\t\t[validatorMessage]=\"validatorMessage\"\r\n\t\t\t\t[tooltipMessage]=\"tooltipMessage\"\r\n\t\t\t\t[submitted]=\"submitted\"\r\n\t\t\t></tooltip-message>\r\n\t\t\t<input\r\n\t\t\t\t#inputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tclass=\"form-control form-control-sm text-end\"\r\n\t\t\t\t[class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t\t\t\t[(ngModel)]=\"value\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[readonly]=\"readonly\"\r\n\t\t\t\t[mask]=\"format\"\r\n\t\t\t\tthousandSeparator=\",\"\r\n\t\t\t\t(blur)=\"onBlur($any($event.target).value)\"\r\n\t\t\t\t(input)=\"onInput($any($event.target).value)\"\r\n\t\t\t\t(focusout)=\"onFocusOut($any($event.target).value)\"\r\n\t\t\t\t[attr.autocomplete]=\"autocomplete\"\r\n\t\t\t\t[placeholder]=\"placeholder\"\r\n\t\t\t\t(focus)=\"onFocus($any($event.target).value)\"\r\n\t\t\t\t[attr.maxLength]=\"maxLength\"\r\n\t\t\t\t(keyup.enter)=\"enterKeyUp()\"\r\n\t\t\t\t(keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n\t\t\t\t[ngClass]=\"setNgClass\"\r\n\t\t\t\t[class.bold]=\"bold\"\r\n\t\t\t\t[allowNegativeNumbers]=\"allowNegativeNumbers\"\r\n\t\t\t\t[leadZero]=\"!allowNegativeNumbers\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t\t<div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n\t\t\t<button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n\t\t\t\t<i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[more-buttons]\"></ng-content>\r\n\t</div>\r\n</div>\r\n<error-message\r\n\t[label]=\"label\"\r\n\t[controls]=\"controls\"\r\n\t[validatorMessage]=\"validatorMessage\"\r\n\t[tooltipMessage]=\"tooltipMessage\"\r\n\t[submitted]=\"submitted\"\r\n></error-message>\r\n", styles: [".sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;width:16px;font-size:16px;text-align:center;right:10px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.bold{color:#000;font-weight:700}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.was-validated .form-control:invalid,.form-control.is-invalid{background-image:none;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.form-control:focus,.form-control:active{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a!important}\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: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: errorMessageComponent, selector: "error-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "component", type: tooltipMessageComponent, selector: "tooltip-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i8.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] }); }
3387
+ ], viewQueries: [{ propertyName: "inputText", first: true, predicate: ["inputText"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n\t><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n\t<span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n\t<span *ngIf=\"labelInfo\">\r\n\t\t<i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n\t</span>\r\n</label>\r\n<div\r\n\t[class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t[class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n>\r\n\t<div class=\"d-flex\">\r\n\t\t<div class=\"w-100 position-relative\">\r\n\t\t\t<tooltip-message\r\n\t\t\t\t[label]=\"label\"\r\n\t\t\t\t[controls]=\"controls\"\r\n\t\t\t\t[validatorMessage]=\"validatorMessage\"\r\n\t\t\t\t[tooltipMessage]=\"tooltipMessage\"\r\n\t\t\t\t[submitted]=\"submitted\"\r\n\t\t\t></tooltip-message>\r\n\t\t\t<input\r\n\t\t\t\t#inputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tclass=\"form-control form-control-sm text-end\"\r\n\t\t\t\t[class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t\t\t\t[(ngModel)]=\"value\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[readonly]=\"readonly\"\r\n\t\t\t\t[mask]=\"format\"\r\n\t\t\t\t[thousandSeparator]=\"disableThousandSeparator ? '' : ','\"\r\n\t\t\t\t(blur)=\"onBlur($any($event.target).value)\"\r\n\t\t\t\t(input)=\"onInput($any($event.target).value)\"\r\n\t\t\t\t(focusout)=\"onFocusOut($any($event.target).value)\"\r\n\t\t\t\t[attr.autocomplete]=\"autocomplete\"\r\n\t\t\t\t[placeholder]=\"placeholder\"\r\n\t\t\t\t(focus)=\"onFocus($any($event.target).value)\"\r\n\t\t\t\t[attr.maxLength]=\"maxLength\"\r\n\t\t\t\t(keyup.enter)=\"enterKeyUp()\"\r\n\t\t\t\t(keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n\t\t\t\t[ngClass]=\"setNgClass\"\r\n\t\t\t\t[class.bold]=\"bold\"\r\n\t\t\t\t[allowNegativeNumbers]=\"allowNegativeNumbers\"\r\n\t\t\t\t[leadZero]=\"!allowNegativeNumbers\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t\t<div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n\t\t\t<button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n\t\t\t\t<i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[more-buttons]\"></ng-content>\r\n\t</div>\r\n</div>\r\n<error-message\r\n\t[label]=\"label\"\r\n\t[controls]=\"controls\"\r\n\t[validatorMessage]=\"validatorMessage\"\r\n\t[tooltipMessage]=\"tooltipMessage\"\r\n\t[submitted]=\"submitted\"\r\n></error-message>\r\n", styles: [".sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;width:16px;font-size:16px;text-align:center;right:10px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.bold{color:#000;font-weight:700}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.was-validated .form-control:invalid,.form-control.is-invalid{background-image:none;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.form-control:focus,.form-control:active{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a!important}\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: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: errorMessageComponent, selector: "error-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "component", type: tooltipMessageComponent, selector: "tooltip-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i8.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] }); }
3382
3388
  }
3383
3389
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputNumberComponent, decorators: [{
3384
3390
  type: Component,
@@ -3393,7 +3399,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
3393
3399
  useExisting: forwardRef(() => InputNumberComponent),
3394
3400
  multi: true
3395
3401
  }
3396
- ], template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n\t><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n\t<span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n\t<span *ngIf=\"labelInfo\">\r\n\t\t<i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n\t</span>\r\n</label>\r\n<div\r\n\t[class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t[class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n>\r\n\t<div class=\"d-flex\">\r\n\t\t<div class=\"w-100 position-relative\">\r\n\t\t\t<tooltip-message\r\n\t\t\t\t[label]=\"label\"\r\n\t\t\t\t[controls]=\"controls\"\r\n\t\t\t\t[validatorMessage]=\"validatorMessage\"\r\n\t\t\t\t[tooltipMessage]=\"tooltipMessage\"\r\n\t\t\t\t[submitted]=\"submitted\"\r\n\t\t\t></tooltip-message>\r\n\t\t\t<input\r\n\t\t\t\t#inputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tclass=\"form-control form-control-sm text-end\"\r\n\t\t\t\t[class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t\t\t\t[(ngModel)]=\"value\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[readonly]=\"readonly\"\r\n\t\t\t\t[mask]=\"format\"\r\n\t\t\t\tthousandSeparator=\",\"\r\n\t\t\t\t(blur)=\"onBlur($any($event.target).value)\"\r\n\t\t\t\t(input)=\"onInput($any($event.target).value)\"\r\n\t\t\t\t(focusout)=\"onFocusOut($any($event.target).value)\"\r\n\t\t\t\t[attr.autocomplete]=\"autocomplete\"\r\n\t\t\t\t[placeholder]=\"placeholder\"\r\n\t\t\t\t(focus)=\"onFocus($any($event.target).value)\"\r\n\t\t\t\t[attr.maxLength]=\"maxLength\"\r\n\t\t\t\t(keyup.enter)=\"enterKeyUp()\"\r\n\t\t\t\t(keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n\t\t\t\t[ngClass]=\"setNgClass\"\r\n\t\t\t\t[class.bold]=\"bold\"\r\n\t\t\t\t[allowNegativeNumbers]=\"allowNegativeNumbers\"\r\n\t\t\t\t[leadZero]=\"!allowNegativeNumbers\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t\t<div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n\t\t\t<button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n\t\t\t\t<i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[more-buttons]\"></ng-content>\r\n\t</div>\r\n</div>\r\n<error-message\r\n\t[label]=\"label\"\r\n\t[controls]=\"controls\"\r\n\t[validatorMessage]=\"validatorMessage\"\r\n\t[tooltipMessage]=\"tooltipMessage\"\r\n\t[submitted]=\"submitted\"\r\n></error-message>\r\n", styles: [".sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;width:16px;font-size:16px;text-align:center;right:10px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.bold{color:#000;font-weight:700}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.was-validated .form-control:invalid,.form-control.is-invalid{background-image:none;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.form-control:focus,.form-control:active{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a!important}\n"] }]
3402
+ ], template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n\t><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n\t<span *ngIf=\"required\" class=\"ms-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n\t<span *ngIf=\"labelInfo\">\r\n\t\t<i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n\t</span>\r\n</label>\r\n<div\r\n\t[class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t[class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n>\r\n\t<div class=\"d-flex\">\r\n\t\t<div class=\"w-100 position-relative\">\r\n\t\t\t<tooltip-message\r\n\t\t\t\t[label]=\"label\"\r\n\t\t\t\t[controls]=\"controls\"\r\n\t\t\t\t[validatorMessage]=\"validatorMessage\"\r\n\t\t\t\t[tooltipMessage]=\"tooltipMessage\"\r\n\t\t\t\t[submitted]=\"submitted\"\r\n\t\t\t></tooltip-message>\r\n\t\t\t<input\r\n\t\t\t\t#inputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tclass=\"form-control form-control-sm text-end\"\r\n\t\t\t\t[class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n\t\t\t\t[(ngModel)]=\"value\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[readonly]=\"readonly\"\r\n\t\t\t\t[mask]=\"format\"\r\n\t\t\t\t[thousandSeparator]=\"disableThousandSeparator ? '' : ','\"\r\n\t\t\t\t(blur)=\"onBlur($any($event.target).value)\"\r\n\t\t\t\t(input)=\"onInput($any($event.target).value)\"\r\n\t\t\t\t(focusout)=\"onFocusOut($any($event.target).value)\"\r\n\t\t\t\t[attr.autocomplete]=\"autocomplete\"\r\n\t\t\t\t[placeholder]=\"placeholder\"\r\n\t\t\t\t(focus)=\"onFocus($any($event.target).value)\"\r\n\t\t\t\t[attr.maxLength]=\"maxLength\"\r\n\t\t\t\t(keyup.enter)=\"enterKeyUp()\"\r\n\t\t\t\t(keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n\t\t\t\t[ngClass]=\"setNgClass\"\r\n\t\t\t\t[class.bold]=\"bold\"\r\n\t\t\t\t[allowNegativeNumbers]=\"allowNegativeNumbers\"\r\n\t\t\t\t[leadZero]=\"!allowNegativeNumbers\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t\t<div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n\t\t\t<button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n\t\t\t\t<i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[more-buttons]\"></ng-content>\r\n\t</div>\r\n</div>\r\n<error-message\r\n\t[label]=\"label\"\r\n\t[controls]=\"controls\"\r\n\t[validatorMessage]=\"validatorMessage\"\r\n\t[tooltipMessage]=\"tooltipMessage\"\r\n\t[submitted]=\"submitted\"\r\n></error-message>\r\n", styles: [".sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;width:16px;font-size:16px;text-align:center;right:10px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.bold{color:#000;font-weight:700}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.was-validated .form-control:invalid,.form-control.is-invalid{background-image:none;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.form-control:focus,.form-control:active{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a!important}\n"] }]
3397
3403
  }], ctorParameters: () => [{ type: MessageUtilService }, { type: InputNumberService }, { type: i0.Renderer2 }], propDecorators: { showLabel: [{
3398
3404
  type: Input
3399
3405
  }], label: [{
@@ -3442,6 +3448,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
3442
3448
  type: Input
3443
3449
  }], allowNegativeNumbers: [{
3444
3450
  type: Input
3451
+ }], disableThousandSeparator: [{
3452
+ type: Input
3445
3453
  }], onNext: [{
3446
3454
  type: Output
3447
3455
  }], onBack: [{
@@ -6256,7 +6264,7 @@ class ContainerSharedComponent {
6256
6264
  this.params.api?.stopEditing();
6257
6265
  }
6258
6266
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ContainerSharedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6259
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ContainerSharedComponent, selector: "container-shared-component", viewQueries: [{ propertyName: "control", first: true, predicate: ["control"], descendants: true }], ngImport: i0, template: "<div [ngStyle]=\"{'width': width}\" class=\"position-relative row\">\r\n\t<div *ngIf=\"typeControl==='ng-select-simple'\" class=\"col-12\">\r\n\t\t<ng-select-simple\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[clearable]=\"clearable\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control\r\n\t\t\t[items]=\"items\">\r\n\t\t</ng-select-simple>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-text'\" class=\"col-12\">\r\n\t\t<input-text\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[inputMask]=\"inputMask\"\r\n\t\t\t[textRight]=\"textRight\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t(keypress)=\"detec($event)\"\r\n\t\t\t#control>\r\n\t\t</input-text>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-number'\" class=\"col-12\">\r\n\t\t<input-number\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[formatCero]=\"formatCero\"\r\n\t\t\t[maxLength]=\"maxLength\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[decimals]=\"decimals\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t#control>\r\n\t\t</input-number>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-picker'\" class=\"col-12\">\r\n\t\t<date-picker\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t</date-picker>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-time-picker-editable'\" class=\"col-12\">\r\n\t\t<date-time-picker-editable\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t\t></date-time-picker-editable\r\n\t\t>\r\n\t</div>\r\n</div>\r\n", styles: [".ag-theme-balham .ag-cell.ag-cell-inline-editing{height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: NgSelectSimpleComponent, selector: "ng-select-simple", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "openWhenFocus", "searchBy", "markFirstItem", "markWhenHaveOneItem", "submitted", "setNgClass", "searchable", "validatorAlert", "upperCase", "templateLabel", "appendTo", "items", "loading", "loadingText", "clearAllText", "notFoundText", "markFirst", "clearable", "clearOnBackspace", "virtualScroll", "openOnEnter", "refresh", "isRefreshDisabled", "search", "redirect", "searchParams", "labelInfo", "textLabelInfo", "urlRedirect", "titleRedirect", "isRedirectDisabled"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onrefresh", "onsearch"] }, { kind: "component", type: InputTextComponent, selector: "input-text", inputs: ["format", "type", "showLabel", "label", "btnEnable", "autocomplete", "bold", "inputMask", "showMaskTyped", "next", "nextIsDisable", "back", "backIsDisable", "required", "textRight", "disabled", "readonly", "validatorMessage", "tooltipMessage", "maxLength", "submitted", "validatorAlert", "setNgClass", "patterns", "placeholder", "labelInfo", "textLabelInfo", "controlCharClearReplace", "replaceRegex", "clearRegex"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onchange", "onfocusout"] }, { kind: "component", type: InputNumberComponent, selector: "input-number", inputs: ["showLabel", "label", "btnEnable", "autocomplete", "bold", "decimals", "formatCero", "maxLength", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "submitted", "labelInfo", "textLabelInfo", "validatorAlert", "setNgClass", "placeholder", "allowNegativeNumbers"], outputs: ["onNext", "onBack", "change", "onchange", "blur", "onfocus", "onfocusout"] }, { kind: "component", type: DatePickerComponent, selector: "date-picker", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "noAutoCompleteNull", "readonly", "validatorMessage", "tooltipMessage", "validatorAlert", "submitted", "labelInfo", "textLabelInfo", "minDate", "maxDate", "invalid", "focusInitial", "disabled", "restrictInputLength"], outputs: ["onNext", "onBack", "input", "onchange", "blur"] }, { kind: "component", type: DateTimePickerEditableComponent, selector: "date-time-picker-editable", inputs: ["label", "showLabel", "readonly", "required", "validatorMessage", "tooltipMessage", "submitted", "format", "next", "nextIsDisable", "labelInfo", "textLabelInfo", "back", "backIsDisable", "openWhenFocus", "goNextWhenSelect", "clearable", "autoCompleteHours", "autoComplete", "disabled"], outputs: ["onNext", "onBack"] }] }); }
6267
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: ContainerSharedComponent, selector: "container-shared-component", viewQueries: [{ propertyName: "control", first: true, predicate: ["control"], descendants: true }], ngImport: i0, template: "<div [ngStyle]=\"{'width': width}\" class=\"position-relative row\">\r\n\t<div *ngIf=\"typeControl==='ng-select-simple'\" class=\"col-12\">\r\n\t\t<ng-select-simple\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[clearable]=\"clearable\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control\r\n\t\t\t[items]=\"items\">\r\n\t\t</ng-select-simple>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-text'\" class=\"col-12\">\r\n\t\t<input-text\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[inputMask]=\"inputMask\"\r\n\t\t\t[textRight]=\"textRight\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t(keypress)=\"detec($event)\"\r\n\t\t\t#control>\r\n\t\t</input-text>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='input-number'\" class=\"col-12\">\r\n\t\t<input-number\r\n\t\t\t(blur)=\"onFocusOut()\"\r\n\t\t\t[formatCero]=\"formatCero\"\r\n\t\t\t[maxLength]=\"maxLength\"\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[decimals]=\"decimals\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t#control>\r\n\t\t</input-number>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-picker'\" class=\"col-12\">\r\n\t\t<date-picker\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t</date-picker>\r\n\t</div>\r\n\t<div *ngIf=\"typeControl==='date-time-picker-editable'\" class=\"col-12\">\r\n\t\t<date-time-picker-editable\r\n\t\t\t[showLabel]=\"false\"\r\n\t\t\t[label]=\"label\"\r\n\t\t\t[required]=\"required\"\r\n\t\t\t[formControl]=\"formControl\"\r\n\t\t\t[tooltipMessage]=\"true\"\r\n\t\t\t[validatorMessage]=\"false\"\r\n\t\t\t#control>\r\n\t\t\t></date-time-picker-editable\r\n\t\t>\r\n\t</div>\r\n</div>\r\n", styles: [".ag-theme-balham .ag-cell.ag-cell-inline-editing{height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: NgSelectSimpleComponent, selector: "ng-select-simple", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "openWhenFocus", "searchBy", "markFirstItem", "markWhenHaveOneItem", "submitted", "setNgClass", "searchable", "validatorAlert", "upperCase", "templateLabel", "appendTo", "items", "loading", "loadingText", "clearAllText", "notFoundText", "markFirst", "clearable", "clearOnBackspace", "virtualScroll", "openOnEnter", "refresh", "isRefreshDisabled", "search", "redirect", "searchParams", "labelInfo", "textLabelInfo", "urlRedirect", "titleRedirect", "isRedirectDisabled"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onrefresh", "onsearch"] }, { kind: "component", type: InputTextComponent, selector: "input-text", inputs: ["format", "type", "showLabel", "label", "btnEnable", "autocomplete", "bold", "inputMask", "showMaskTyped", "next", "nextIsDisable", "back", "backIsDisable", "required", "textRight", "disabled", "readonly", "validatorMessage", "tooltipMessage", "maxLength", "submitted", "validatorAlert", "setNgClass", "patterns", "placeholder", "labelInfo", "textLabelInfo", "controlCharClearReplace", "replaceRegex", "clearRegex"], outputs: ["onNext", "onBack", "change", "blur", "onfocus", "onchange", "onfocusout"] }, { kind: "component", type: InputNumberComponent, selector: "input-number", inputs: ["showLabel", "label", "btnEnable", "autocomplete", "bold", "decimals", "formatCero", "maxLength", "next", "nextIsDisable", "back", "backIsDisable", "required", "disabled", "readonly", "validatorMessage", "tooltipMessage", "submitted", "labelInfo", "textLabelInfo", "validatorAlert", "setNgClass", "placeholder", "allowNegativeNumbers", "disableThousandSeparator"], outputs: ["onNext", "onBack", "change", "onchange", "blur", "onfocus", "onfocusout"] }, { kind: "component", type: DatePickerComponent, selector: "date-picker", inputs: ["showLabel", "label", "autocomplete", "next", "nextIsDisable", "back", "backIsDisable", "required", "noAutoCompleteNull", "readonly", "validatorMessage", "tooltipMessage", "validatorAlert", "submitted", "labelInfo", "textLabelInfo", "minDate", "maxDate", "invalid", "focusInitial", "disabled", "restrictInputLength"], outputs: ["onNext", "onBack", "input", "onchange", "blur"] }, { kind: "component", type: DateTimePickerEditableComponent, selector: "date-time-picker-editable", inputs: ["label", "showLabel", "readonly", "required", "validatorMessage", "tooltipMessage", "submitted", "format", "next", "nextIsDisable", "labelInfo", "textLabelInfo", "back", "backIsDisable", "openWhenFocus", "goNextWhenSelect", "clearable", "autoCompleteHours", "autoComplete", "disabled"], outputs: ["onNext", "onBack"] }] }); }
6260
6268
  }
6261
6269
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ContainerSharedComponent, decorators: [{
6262
6270
  type: Component,