ngx-vector-components 3.4.0 → 3.4.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.
@@ -1,6 +1,5 @@
1
- import { Component, Input } from '@angular/core';
2
- import { Subscription } from 'rxjs';
3
- import { StringUtil } from '../../../utils';
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { InputNumber } from 'primeng/inputnumber';
4
3
  import * as i0 from "@angular/core";
5
4
  import * as i1 from "primeng/inputnumber";
6
5
  import * as i2 from "@angular/common";
@@ -14,25 +13,12 @@ export class CurrencyFieldComponent {
14
13
  this.rounded = false;
15
14
  this.isBankingField = false;
16
15
  this.inputClassName = '';
17
- this.lastInvertedIndexTyped = 0;
18
- this.subscription = new Subscription();
19
16
  }
20
- set control(_control) {
21
- this._control = _control;
22
- if (this.control.value) {
23
- this.lastInvertedIndexTyped = `${this.control.value}`.length;
24
- }
25
- this.subscription.add(this.control.valueChanges.subscribe((value) => {
26
- if (value) {
27
- this.lastInvertedIndexTyped = `${value}`.length;
28
- }
29
- }));
30
- }
31
- get control() {
32
- return this._control;
33
- }
34
- ngOnDestroy() {
35
- this.subscription.unsubscribe();
17
+ ngAfterViewInit() {
18
+ const inputElement = this.inputElement?.el.nativeElement.querySelector('input');
19
+ inputElement.addEventListener('select', () => {
20
+ inputElement.selectionStart = inputElement.selectionEnd;
21
+ }, false);
36
22
  }
37
23
  getInputNgClass() {
38
24
  return { outlined: this.outlined, rounded: this.rounded, [this.inputClassName]: !!this.inputClassName };
@@ -43,61 +29,30 @@ export class CurrencyFieldComponent {
43
29
  target?.setSelectionRange(selectionIndex, selectionIndex);
44
30
  }
45
31
  inputNextChar($event) {
46
- this.focusLastIndex($event);
47
32
  const target = $event.target;
33
+ const valueTyped = $event.key;
34
+ let newValue = target.value.replace('R$ ', '').replace(/[\.,]/g, '');
48
35
  const isDeleteOrBackspace = ['Delete', 'Backspace'].includes($event.key);
49
36
  if (isDeleteOrBackspace) {
50
- this.lastInvertedIndexTyped--;
51
- target.value = target.value.substr(0, target.value.length - 1);
52
- if (target.value === '') {
53
- this.lastInvertedIndexTyped = 0;
54
- target.value = '0,00';
55
- return;
56
- }
37
+ newValue = newValue.substring(0, newValue.length - 1).padStart(3, '0');
57
38
  }
58
- let valueTyped = $event.key;
59
- if (!isNaN(+valueTyped) || isDeleteOrBackspace) {
60
- if (target.value === '0,00' && +valueTyped === 0) {
61
- return;
62
- }
63
- if (isDeleteOrBackspace) {
64
- valueTyped = '';
65
- }
66
- let i = 0;
67
- const reversedPreviousValue = StringUtil.revertString(target.value.replace(/[^0-9]/g, ''));
68
- const newValue = StringUtil.revertString(StringUtil.revertString(this.lastInvertedIndexTyped >= 3 ? `${target.value}${valueTyped}`.replace(/[0-9]/g, '#') : '#,##').replace(/#/g, () => {
69
- let returnValue = '0';
70
- if (isDeleteOrBackspace) {
71
- returnValue = reversedPreviousValue[i];
72
- }
73
- else {
74
- if (i === 0) {
75
- returnValue = `${valueTyped}`;
76
- }
77
- else {
78
- returnValue = reversedPreviousValue[i - 1] || '0';
79
- }
80
- }
81
- i++;
82
- return returnValue;
83
- }));
84
- const newValueOnlyNumbers = newValue.replace(/[^0-9]/g, '');
85
- target.value = Number(`${newValueOnlyNumbers.substring(0, newValueOnlyNumbers.length - 2)}.${newValueOnlyNumbers.substr(newValueOnlyNumbers.length - 2)}`).toLocaleString('pt-BR', {
86
- currency: 'BRL',
87
- minimumFractionDigits: 2,
88
- maximumFractionDigits: 2,
89
- });
90
- if (!isNaN(+valueTyped)) {
91
- this.lastInvertedIndexTyped++;
92
- }
39
+ else if (!isNaN(+valueTyped)) {
40
+ newValue += valueTyped;
41
+ newValue = `${+newValue}`.padStart(3, '0');
93
42
  }
43
+ target.value = `R$ ${Number(`${newValue.substring(0, newValue.length - 2)}.${newValue.substring(newValue.length - 2, newValue.length)}`).toLocaleString('pt-BR', {
44
+ currency: 'BRL',
45
+ minimumFractionDigits: 2,
46
+ maximumFractionDigits: 2,
47
+ })}`;
48
+ this.focusLastIndex($event);
94
49
  }
95
50
  clearValue() {
96
51
  this.control.setValue(0);
97
52
  }
98
53
  }
99
54
  CurrencyFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
100
- CurrencyFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CurrencyFieldComponent, selector: "vector-currency-field", inputs: { minValue: "minValue", maxValue: "maxValue", placeholder: "placeholder", control: "control", outlined: "outlined", rounded: "rounded", label: "label", isBankingField: "isBankingField", inputClassName: "inputClassName" }, ngImport: i0, template: "<div [ngClass]=\"{ 'input-container': outlined, 'value-input-container': !outlined, rounded: rounded }\">\r\n <div class=\"inner-container\">\r\n <label *ngIf=\"label\">{{ label }}</label>\r\n <div class=\"input\">\r\n <span *ngIf=\"!outlined\">R$ </span>\r\n <div class=\"value-input\">\r\n <p-inputNumber\r\n class=\"currency-input\"\r\n [ngClass]=\"getInputNgClass()\"\r\n [formControl]=\"control\"\r\n mode=\"decimal\"\r\n [minFractionDigits]=\"2\"\r\n [maxFractionDigits]=\"2\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [prefix]=\"outlined ? 'R$ ' : ''\"\r\n (click)=\"isBankingField ? focusLastIndex($event) : null\"\r\n (onKeyDown)=\"isBankingField ? inputNextChar($event) : null\"\r\n ></p-inputNumber>\r\n </div>\r\n </div>\r\n </div>\r\n <span *ngIf=\"rounded\" class=\"clear-value\" (click)=\"clearValue()\"><i class=\"pi pi-times\"></i></span>\r\n</div>\r\n", styles: [".value-input-container{padding:5px 20px;display:flex;align-items:center;justify-content:space-between}.value-input-container:focus-within{border:2px solid var(--theme-dark)}.value-input-container:not(.rounded) span{font-size:2em}.value-input-container label{color:var(--gray-dark);font-size:13px}.value-input-container span{font-weight:700;color:var(--theme-dark)}.value-input-container .input{display:flex;align-items:center}.value-input-container .input .value-input{margin:0 4px;flex:1}.rounded:not(.currency-input){padding:0 25px;background-color:#fff;border-radius:16px}.rounded span{font-size:1em}.rounded input{font-size:1rem}.rounded .clear-value{padding:5px 5px 0;border-radius:20px}.rounded .clear-value:hover{background-color:var(--gray-medium)}\n"], components: [{ type: i1.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
55
+ CurrencyFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CurrencyFieldComponent, selector: "vector-currency-field", inputs: { minValue: "minValue", maxValue: "maxValue", placeholder: "placeholder", control: "control", outlined: "outlined", rounded: "rounded", label: "label", isBankingField: "isBankingField", inputClassName: "inputClassName" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: InputNumber, descendants: true }], ngImport: i0, template: "<div [ngClass]=\"{ 'input-container': outlined, 'value-input-container': !outlined, rounded: rounded }\">\r\n <div class=\"inner-container\">\r\n <label *ngIf=\"label\">{{ label }}</label>\r\n <div class=\"input\">\r\n <span *ngIf=\"!outlined\">R$ </span>\r\n <div class=\"value-input\">\r\n <p-inputNumber\r\n class=\"currency-input\"\r\n [ngClass]=\"getInputNgClass()\"\r\n [formControl]=\"control\"\r\n mode=\"decimal\"\r\n [minFractionDigits]=\"2\"\r\n [maxFractionDigits]=\"2\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [prefix]=\"outlined ? 'R$ ' : ''\"\r\n (click)=\"isBankingField ? focusLastIndex($event) : null\"\r\n (onKeyDown)=\"isBankingField ? inputNextChar($event) : null\"\r\n ></p-inputNumber>\r\n </div>\r\n </div>\r\n </div>\r\n <span *ngIf=\"rounded\" class=\"clear-value\" (click)=\"clearValue()\"><i class=\"pi pi-times\"></i></span>\r\n</div>\r\n", styles: [".value-input-container{padding:5px 20px;display:flex;align-items:center;justify-content:space-between}.value-input-container:focus-within{border:2px solid var(--theme-dark)}.value-input-container:not(.rounded) span{font-size:2em}.value-input-container label{color:var(--gray-dark);font-size:13px}.value-input-container span{font-weight:700;color:var(--theme-dark)}.value-input-container .input{display:flex;align-items:center}.value-input-container .input .value-input{margin:0 4px;flex:1}.rounded:not(.currency-input){padding:0 25px;background-color:#fff;border-radius:16px}.rounded span{font-size:1em}.rounded input{font-size:1rem}.rounded .clear-value{padding:5px 5px 0;border-radius:20px}.rounded .clear-value:hover{background-color:var(--gray-medium)}\n"], components: [{ type: i1.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
101
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyFieldComponent, decorators: [{
102
57
  type: Component,
103
58
  args: [{ selector: 'vector-currency-field', template: "<div [ngClass]=\"{ 'input-container': outlined, 'value-input-container': !outlined, rounded: rounded }\">\r\n <div class=\"inner-container\">\r\n <label *ngIf=\"label\">{{ label }}</label>\r\n <div class=\"input\">\r\n <span *ngIf=\"!outlined\">R$ </span>\r\n <div class=\"value-input\">\r\n <p-inputNumber\r\n class=\"currency-input\"\r\n [ngClass]=\"getInputNgClass()\"\r\n [formControl]=\"control\"\r\n mode=\"decimal\"\r\n [minFractionDigits]=\"2\"\r\n [maxFractionDigits]=\"2\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [prefix]=\"outlined ? 'R$ ' : ''\"\r\n (click)=\"isBankingField ? focusLastIndex($event) : null\"\r\n (onKeyDown)=\"isBankingField ? inputNextChar($event) : null\"\r\n ></p-inputNumber>\r\n </div>\r\n </div>\r\n </div>\r\n <span *ngIf=\"rounded\" class=\"clear-value\" (click)=\"clearValue()\"><i class=\"pi pi-times\"></i></span>\r\n</div>\r\n", styles: [".value-input-container{padding:5px 20px;display:flex;align-items:center;justify-content:space-between}.value-input-container:focus-within{border:2px solid var(--theme-dark)}.value-input-container:not(.rounded) span{font-size:2em}.value-input-container label{color:var(--gray-dark);font-size:13px}.value-input-container span{font-weight:700;color:var(--theme-dark)}.value-input-container .input{display:flex;align-items:center}.value-input-container .input .value-input{margin:0 4px;flex:1}.rounded:not(.currency-input){padding:0 25px;background-color:#fff;border-radius:16px}.rounded span{font-size:1em}.rounded input{font-size:1rem}.rounded .clear-value{padding:5px 5px 0;border-radius:20px}.rounded .clear-value:hover{background-color:var(--gray-medium)}\n"] }]
@@ -119,5 +74,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
119
74
  type: Input
120
75
  }], inputClassName: [{
121
76
  type: Input
77
+ }], inputElement: [{
78
+ type: ViewChild,
79
+ args: [InputNumber]
122
80
  }] } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvY3VycmVuY3ktZmllbGQvY3VycmVuY3ktZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvY3VycmVuY3ktZmllbGQvY3VycmVuY3ktZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBTzVDLE1BQU0sT0FBTyxzQkFBc0I7SUFMbkM7UUFPUyxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRWIsYUFBUSxHQUFHLFNBQVMsQ0FBQztRQUVyQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQWlCekIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBSWhCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRWhDLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBT25CLDJCQUFzQixHQUFHLENBQUMsQ0FBQztRQUMzQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7S0ErRTNDO0lBL0dDLElBQ0ksT0FBTyxDQUFDLFFBQWE7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUN0QixJQUFJLENBQUMsc0JBQXNCLEdB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Q0FBQzs7bUhBckhVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLG1TQ1RuQywyL0JBd0JBOzJGRGZhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSx1QkFBdUI7OEJBTTFCLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsV0FBVztzQkFEakIsS0FBSztnQkFHRixPQUFPO3NCQURWLEtBQUs7Z0JBZ0JDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxPQUFPO3NCQURiLEtBQUs7Z0JBR0MsS0FBSztzQkFEWCxLQUFLO2dCQUdDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3RyaW5nVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndmVjdG9yLWN1cnJlbmN5LWZpZWxkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VycmVuY3ktZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtaW5WYWx1ZSA9IDA7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbWF4VmFsdWUgPSA5OTk5OTk5OTk7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNvbnRyb2woX2NvbnRyb2w6IGFueSkge1xyXG4gICAgdGhpcy5fY29udHJvbCA9IF9jb250cm9sO1xyXG4gICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmxhc3RJbnZlcnRlZEluZGV4VHlwZWQgPSBgJHt0aGlzLmNvbnRyb2wudmFsdWV9YC5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5sYXN0SW52ZXJ0ZWRJbmRleFR5cGVkID0gYCR7dmFsdWV9YC5sZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgb3V0bGluZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByb3VuZGVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWw/OiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNCYW5raW5nRmllbGQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpbnB1dENsYXNzTmFtZSA9ICcnO1xyXG5cclxuICBnZXQgY29udHJvbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY29udHJvbDogYW55O1xyXG4gIHByaXZhdGUgbGFzdEludmVydGVkSW5kZXhUeXBlZCA9IDA7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJbnB1dE5nQ2xhc3MoKSB7XHJcbiAgICByZXR1cm4geyBvdXRsaW5lZDogdGhpcy5vdXRsaW5lZCwgcm91bmRlZDogdGhpcy5yb3VuZGVkLCBbdGhpcy5pbnB1dENsYXNzTmFtZV06ICEhdGhpcy5pbnB1dENsYXNzTmFtZSB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZvY3VzTGFzdEluZGV4KCRldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRhcmdldCA9ICRldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IHNlbGVjdGlvbkluZGV4ID0gdGFyZ2V0Py52YWx1ZS5sZW5ndGggfHwgMDtcclxuICAgIHRhcmdldD8uc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uSW5kZXgsIHNlbGVjdGlvbkluZGV4KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnB1dE5leHRDaGFyKCRldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1c0xhc3RJbmRleCgkZXZlbnQpO1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gJGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgaXNEZWxldGVPckJhY2tzcGFjZSA9IFsnRGVsZXRlJywgJ0JhY2tzcGFjZSddLmluY2x1ZGVzKCRldmVudC5rZXkpO1xyXG4gICAgaWYgKGlzRGVsZXRlT3JCYWNrc3BhY2UpIHtcclxuICAgICAgdGhpcy5sYXN0SW52ZXJ0ZWRJbmRleFR5cGVkLS07XHJcbiAgICAgIHRhcmdldC52YWx1ZSA9IHRhcmdldC52YWx1ZS5zdWJzdHIoMCwgdGFyZ2V0LnZhbHVlLmxlbmd0aCAtIDEpO1xyXG4gICAgICBpZiAodGFyZ2V0LnZhbHVlID09PSAnJykge1xyXG4gICAgICAgIHRoaXMubGFzdEludmVydGVkSW5kZXhUeXBlZCA9IDA7XHJcbiAgICAgICAgdGFyZ2V0LnZhbHVlID0gJzAsMDAnO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IHZhbHVlVHlwZWQgPSAkZXZlbnQua2V5O1xyXG4gICAgaWYgKCFpc05hTigrdmFsdWVUeXBlZCkgfHwgaXNEZWxldGVPckJhY2tzcGFjZSkge1xyXG4gICAgICBpZiAodGFyZ2V0LnZhbHVlID09PSAnMCwwMCcgJiYgK3ZhbHVlVHlwZWQgPT09IDApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpc0RlbGV0ZU9yQmFja3NwYWNlKSB7XHJcbiAgICAgICAgdmFsdWVUeXBlZCA9ICcnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgaSA9IDA7XHJcbiAgICAgIGNvbnN0IHJldmVyc2VkUHJldmlvdXNWYWx1ZSA9IFN0cmluZ1V0aWwucmV2ZXJ0U3RyaW5nKHRhcmdldC52YWx1ZS5yZXBsYWNlKC9bXjAtOV0vZywgJycpKTtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBTdHJpbmdVdGlsLnJldmVydFN0cmluZyhcclxuICAgICAgICBTdHJpbmdVdGlsLnJldmVydFN0cmluZyhcclxuICAgICAgICAgIHRoaXMubGFzdEludmVydGVkSW5kZXhUeXBlZCA+PSAzID8gYCR7dGFyZ2V0LnZhbHVlfSR7dmFsdWVUeXBlZH1gLnJlcGxhY2UoL1swLTldL2csICcjJykgOiAnIywjIydcclxuICAgICAgICApLnJlcGxhY2UoLyMvZywgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHJldHVyblZhbHVlID0gJzAnO1xyXG4gICAgICAgICAgaWYgKGlzRGVsZXRlT3JCYWNrc3BhY2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSByZXZlcnNlZFByZXZpb3VzVmFsdWVbaV07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgIHJldHVyblZhbHVlID0gYCR7dmFsdWVUeXBlZH1gO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVyblZhbHVlID0gcmV2ZXJzZWRQcmV2aW91c1ZhbHVlW2kgLSAxXSB8fCAnMCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpKys7XHJcbiAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgY29uc3QgbmV3VmFsdWVPbmx5TnVtYmVycyA9IG5ld1ZhbHVlLnJlcGxhY2UoL1teMC05XS9nLCAnJyk7XHJcbiAgICAgIHRhcmdldC52YWx1ZSA9IE51bWJlcihcclxuICAgICAgICBgJHtuZXdWYWx1ZU9ubHlOdW1iZXJzLnN1YnN0cmluZygwLCBuZXdWYWx1ZU9ubHlOdW1iZXJzLmxlbmd0aCAtIDIpfS4ke25ld1ZhbHVlT25seU51bWJlcnMuc3Vic3RyKFxyXG4gICAgICAgICAgbmV3VmFsdWVPbmx5TnVtYmVycy5sZW5ndGggLSAyXHJcbiAgICAgICAgKX1gXHJcbiAgICAgICkudG9Mb2NhbGVTdHJpbmcoJ3B0LUJSJywge1xyXG4gICAgICAgIGN1cnJlbmN5OiAnQlJMJyxcclxuICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsXHJcbiAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyLFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCFpc05hTigrdmFsdWVUeXBlZCkpIHtcclxuICAgICAgICB0aGlzLmxhc3RJbnZlcnRlZEluZGV4VHlwZWQrKztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyVmFsdWUoKSB7XHJcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoMCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW25nQ2xhc3NdPVwieyAnaW5wdXQtY29udGFpbmVyJzogb3V0bGluZWQsICd2YWx1ZS1pbnB1dC1jb250YWluZXInOiAhb3V0bGluZWQsIHJvdW5kZWQ6IHJvdW5kZWQgfVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpbm5lci1jb250YWluZXJcIj5cclxuICAgIDxsYWJlbCAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0XCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiIW91dGxpbmVkXCI+UiQgPC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWUtaW5wdXRcIj5cclxuICAgICAgICA8cC1pbnB1dE51bWJlclxyXG4gICAgICAgICAgY2xhc3M9XCJjdXJyZW5jeS1pbnB1dFwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJnZXRJbnB1dE5nQ2xhc3MoKVwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgICAgICBtb2RlPVwiZGVjaW1hbFwiXHJcbiAgICAgICAgICBbbWluRnJhY3Rpb25EaWdpdHNdPVwiMlwiXHJcbiAgICAgICAgICBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiMlwiXHJcbiAgICAgICAgICBbbWluXT1cIm1pblZhbHVlXCJcclxuICAgICAgICAgIFttYXhdPVwibWF4VmFsdWVcIlxyXG4gICAgICAgICAgW3ByZWZpeF09XCJvdXRsaW5lZCA/ICdSJCAnIDogJydcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImlzQmFua2luZ0ZpZWxkID8gZm9jdXNMYXN0SW5kZXgoJGV2ZW50KSA6IG51bGxcIlxyXG4gICAgICAgICAgKG9uS2V5RG93bik9XCJpc0JhbmtpbmdGaWVsZCA/IGlucHV0TmV4dENoYXIoJGV2ZW50KSA6IG51bGxcIlxyXG4gICAgICAgID48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPHNwYW4gKm5nSWY9XCJyb3VuZGVkXCIgY2xhc3M9XCJjbGVhci12YWx1ZVwiIChjbGljayk9XCJjbGVhclZhbHVlKClcIj48aSBjbGFzcz1cInBpIHBpLXRpbWVzXCI+PC9pPjwvc3Bhbj5cclxuPC9kaXY+XHJcbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvY3VycmVuY3ktZmllbGQvY3VycmVuY3ktZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvY3VycmVuY3ktZmllbGQvY3VycmVuY3ktZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBT2xELE1BQU0sT0FBTyxzQkFBc0I7SUFMbkM7UUFPUyxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRWIsYUFBUSxHQUFHLFNBQVMsQ0FBQztRQUVyQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUl6QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFJaEIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFFaEMsbUJBQWMsR0FBRyxFQUFFLENBQUM7S0FrRDVCO0lBN0NDLGVBQWU7UUFDYixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hGLFlBQVksQ0FBQyxnQkFBZ0IsQ0FDM0IsUUFBUSxFQUNSLEdBQUcsRUFBRTtZQUNILFlBQVksQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUMxRCxDQUFDLEVBQ0QsS0FBSyxDQUNOLENBQUM7SUFDSixDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxRyxDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQWE7UUFDakMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQTBCLENBQUM7UUFDakQsTUFBTSxjQUFjLEdBQUcsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLGFBQWEsQ0FBQyxNQUFxQjtRQUN4QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBMEIsQ0FBQztRQUNqRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzlCLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RSxJQUFJLG1CQUFtQixFQUFFO1lBQ3ZCLFFBQVEsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDeEU7YUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDOUIsUUFBUSxJQUFJLFVBQVUsQ0FBQztZQUN2QixRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDNUM7UUFDRCxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sTUFBTSxDQUN6QixHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDNUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO1lBQ3hCLFFBQVEsRUFBRSxLQUFLO1lBQ2YscUJBQXFCLEVBQUUsQ0FBQztZQUN4QixxQkFBcUIsRUFBRSxDQUFDO1NBQ3pCLENBQUMsRUFBRSxDQUFDO1FBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7O21IQW5FVSxzQkFBc0I7dUdBQXRCLHNCQUFzQixpVkFvQnRCLFdBQVcsZ0RDNUJ4QiwyL0JBd0JBOzJGRGhCYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsdUJBQXVCOzhCQU0xQixRQUFRO3NCQURkLEtBQUs7Z0JBR0MsUUFBUTtzQkFEZCxLQUFLO2dCQUdDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBR0MsT0FBTztzQkFEYixLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyxPQUFPO3NCQURiLEtBQUs7Z0JBR0MsS0FBSztzQkFEWCxLQUFLO2dCQUdDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFJRSxZQUFZO3NCQURuQixTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW5wdXROdW1iZXIgfSBmcm9tICdwcmltZW5nL2lucHV0bnVtYmVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndmVjdG9yLWN1cnJlbmN5LWZpZWxkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VycmVuY3ktZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbWluVmFsdWUgPSAwO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1heFZhbHVlID0gOTk5OTk5OTk5O1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb250cm9sOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgb3V0bGluZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByb3VuZGVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWw/OiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNCYW5raW5nRmllbGQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpbnB1dENsYXNzTmFtZSA9ICcnO1xyXG5cclxuICBAVmlld0NoaWxkKElucHV0TnVtYmVyKVxyXG4gIHByaXZhdGUgaW5wdXRFbGVtZW50PzogSW5wdXROdW1iZXI7XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuaW5wdXRFbGVtZW50Py5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XHJcbiAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcclxuICAgICAgJ3NlbGVjdCcsXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICBpbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPSBpbnB1dEVsZW1lbnQuc2VsZWN0aW9uRW5kO1xyXG4gICAgICB9LFxyXG4gICAgICBmYWxzZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJbnB1dE5nQ2xhc3MoKSB7XHJcbiAgICByZXR1cm4geyBvdXRsaW5lZDogdGhpcy5vdXRsaW5lZCwgcm91bmRlZDogdGhpcy5yb3VuZGVkLCBbdGhpcy5pbnB1dENsYXNzTmFtZV06ICEhdGhpcy5pbnB1dENsYXNzTmFtZSB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZvY3VzTGFzdEluZGV4KCRldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRhcmdldCA9ICRldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IHNlbGVjdGlvbkluZGV4ID0gdGFyZ2V0Py52YWx1ZS5sZW5ndGggfHwgMDtcclxuICAgIHRhcmdldD8uc2V0U2VsZWN0aW9uUmFuZ2Uoc2VsZWN0aW9uSW5kZXgsIHNlbGVjdGlvbkluZGV4KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnB1dE5leHRDaGFyKCRldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gJGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgdmFsdWVUeXBlZCA9ICRldmVudC5rZXk7XHJcbiAgICBsZXQgbmV3VmFsdWUgPSB0YXJnZXQudmFsdWUucmVwbGFjZSgnUiQgJywgJycpLnJlcGxhY2UoL1tcXC4sXS9nLCAnJyk7XHJcbiAgICBjb25zdCBpc0RlbGV0ZU9yQmFja3NwYWNlID0gWydEZWxldGUnLCAnQmFja3NwYWNlJ10uaW5jbHVkZXMoJGV2ZW50LmtleSk7XHJcbiAgICBpZiAoaXNEZWxldGVPckJhY2tzcGFjZSkge1xyXG4gICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlLnN1YnN0cmluZygwLCBuZXdWYWx1ZS5sZW5ndGggLSAxKS5wYWRTdGFydCgzLCAnMCcpO1xyXG4gICAgfSBlbHNlIGlmICghaXNOYU4oK3ZhbHVlVHlwZWQpKSB7XHJcbiAgICAgIG5ld1ZhbHVlICs9IHZhbHVlVHlwZWQ7XHJcbiAgICAgIG5ld1ZhbHVlID0gYCR7K25ld1ZhbHVlfWAucGFkU3RhcnQoMywgJzAnKTtcclxuICAgIH1cclxuICAgIHRhcmdldC52YWx1ZSA9IGBSJCAke051bWJlcihcclxuICAgICAgYCR7bmV3VmFsdWUuc3Vic3RyaW5nKDAsIG5ld1ZhbHVlLmxlbmd0aCAtIDIpfS4ke25ld1ZhbHVlLnN1YnN0cmluZyhuZXdWYWx1ZS5sZW5ndGggLSAyLCBuZXdWYWx1ZS5sZW5ndGgpfWBcclxuICAgICkudG9Mb2NhbGVTdHJpbmcoJ3B0LUJSJywge1xyXG4gICAgICBjdXJyZW5jeTogJ0JSTCcsXHJcbiAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMixcclxuICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyLFxyXG4gICAgfSl9YDtcclxuICAgIHRoaXMuZm9jdXNMYXN0SW5kZXgoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhclZhbHVlKCkge1xyXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKDApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInsgJ2lucHV0LWNvbnRhaW5lcic6IG91dGxpbmVkLCAndmFsdWUtaW5wdXQtY29udGFpbmVyJzogIW91dGxpbmVkLCByb3VuZGVkOiByb3VuZGVkIH1cIj5cclxuICA8ZGl2IGNsYXNzPVwiaW5uZXItY29udGFpbmVyXCI+XHJcbiAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dFwiPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIiFvdXRsaW5lZFwiPlIkIDwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlLWlucHV0XCI+XHJcbiAgICAgICAgPHAtaW5wdXROdW1iZXJcclxuICAgICAgICAgIGNsYXNzPVwiY3VycmVuY3ktaW5wdXRcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0SW5wdXROZ0NsYXNzKClcIlxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgbW9kZT1cImRlY2ltYWxcIlxyXG4gICAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIlxyXG4gICAgICAgICAgW21heEZyYWN0aW9uRGlnaXRzXT1cIjJcIlxyXG4gICAgICAgICAgW21pbl09XCJtaW5WYWx1ZVwiXHJcbiAgICAgICAgICBbbWF4XT1cIm1heFZhbHVlXCJcclxuICAgICAgICAgIFtwcmVmaXhdPVwib3V0bGluZWQgPyAnUiQgJyA6ICcnXCJcclxuICAgICAgICAgIChjbGljayk9XCJpc0JhbmtpbmdGaWVsZCA/IGZvY3VzTGFzdEluZGV4KCRldmVudCkgOiBudWxsXCJcclxuICAgICAgICAgIChvbktleURvd24pPVwiaXNCYW5raW5nRmllbGQgPyBpbnB1dE5leHRDaGFyKCRldmVudCkgOiBudWxsXCJcclxuICAgICAgICA+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxzcGFuICpuZ0lmPVwicm91bmRlZFwiIGNsYXNzPVwiY2xlYXItdmFsdWVcIiAoY2xpY2spPVwiY2xlYXJWYWx1ZSgpXCI+PGkgY2xhc3M9XCJwaSBwaS10aW1lc1wiPjwvaT48L3NwYW4+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -26,7 +26,7 @@ import { FileUploadModule } from 'primeng/fileupload';
26
26
  import * as i2$5 from 'primeng/inputmask';
27
27
  import { InputMaskModule } from 'primeng/inputmask';
28
28
  import * as i1$5 from 'primeng/inputnumber';
29
- import { InputNumberModule } from 'primeng/inputnumber';
29
+ import { InputNumber, InputNumberModule } from 'primeng/inputnumber';
30
30
  import * as i6 from 'primeng/inputtext';
31
31
  import { InputTextModule } from 'primeng/inputtext';
32
32
  import * as i2$7 from 'primeng/inputtextarea';
@@ -1572,25 +1572,13 @@ class CurrencyFieldComponent {
1572
1572
  this.rounded = false;
1573
1573
  this.isBankingField = false;
1574
1574
  this.inputClassName = '';
1575
- this.lastInvertedIndexTyped = 0;
1576
- this.subscription = new Subscription();
1577
- }
1578
- set control(_control) {
1579
- this._control = _control;
1580
- if (this.control.value) {
1581
- this.lastInvertedIndexTyped = `${this.control.value}`.length;
1582
- }
1583
- this.subscription.add(this.control.valueChanges.subscribe((value) => {
1584
- if (value) {
1585
- this.lastInvertedIndexTyped = `${value}`.length;
1586
- }
1587
- }));
1588
1575
  }
1589
- get control() {
1590
- return this._control;
1591
- }
1592
- ngOnDestroy() {
1593
- this.subscription.unsubscribe();
1576
+ ngAfterViewInit() {
1577
+ var _a;
1578
+ const inputElement = (_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.el.nativeElement.querySelector('input');
1579
+ inputElement.addEventListener('select', () => {
1580
+ inputElement.selectionStart = inputElement.selectionEnd;
1581
+ }, false);
1594
1582
  }
1595
1583
  getInputNgClass() {
1596
1584
  return { outlined: this.outlined, rounded: this.rounded, [this.inputClassName]: !!this.inputClassName };
@@ -1601,61 +1589,30 @@ class CurrencyFieldComponent {
1601
1589
  target === null || target === void 0 ? void 0 : target.setSelectionRange(selectionIndex, selectionIndex);
1602
1590
  }
1603
1591
  inputNextChar($event) {
1604
- this.focusLastIndex($event);
1605
1592
  const target = $event.target;
1593
+ const valueTyped = $event.key;
1594
+ let newValue = target.value.replace('R$ ', '').replace(/[\.,]/g, '');
1606
1595
  const isDeleteOrBackspace = ['Delete', 'Backspace'].includes($event.key);
1607
1596
  if (isDeleteOrBackspace) {
1608
- this.lastInvertedIndexTyped--;
1609
- target.value = target.value.substr(0, target.value.length - 1);
1610
- if (target.value === '') {
1611
- this.lastInvertedIndexTyped = 0;
1612
- target.value = '0,00';
1613
- return;
1614
- }
1615
- }
1616
- let valueTyped = $event.key;
1617
- if (!isNaN(+valueTyped) || isDeleteOrBackspace) {
1618
- if (target.value === '0,00' && +valueTyped === 0) {
1619
- return;
1620
- }
1621
- if (isDeleteOrBackspace) {
1622
- valueTyped = '';
1623
- }
1624
- let i = 0;
1625
- const reversedPreviousValue = StringUtil.revertString(target.value.replace(/[^0-9]/g, ''));
1626
- const newValue = StringUtil.revertString(StringUtil.revertString(this.lastInvertedIndexTyped >= 3 ? `${target.value}${valueTyped}`.replace(/[0-9]/g, '#') : '#,##').replace(/#/g, () => {
1627
- let returnValue = '0';
1628
- if (isDeleteOrBackspace) {
1629
- returnValue = reversedPreviousValue[i];
1630
- }
1631
- else {
1632
- if (i === 0) {
1633
- returnValue = `${valueTyped}`;
1634
- }
1635
- else {
1636
- returnValue = reversedPreviousValue[i - 1] || '0';
1637
- }
1638
- }
1639
- i++;
1640
- return returnValue;
1641
- }));
1642
- const newValueOnlyNumbers = newValue.replace(/[^0-9]/g, '');
1643
- target.value = Number(`${newValueOnlyNumbers.substring(0, newValueOnlyNumbers.length - 2)}.${newValueOnlyNumbers.substr(newValueOnlyNumbers.length - 2)}`).toLocaleString('pt-BR', {
1644
- currency: 'BRL',
1645
- minimumFractionDigits: 2,
1646
- maximumFractionDigits: 2,
1647
- });
1648
- if (!isNaN(+valueTyped)) {
1649
- this.lastInvertedIndexTyped++;
1650
- }
1597
+ newValue = newValue.substring(0, newValue.length - 1).padStart(3, '0');
1651
1598
  }
1599
+ else if (!isNaN(+valueTyped)) {
1600
+ newValue += valueTyped;
1601
+ newValue = `${+newValue}`.padStart(3, '0');
1602
+ }
1603
+ target.value = `R$ ${Number(`${newValue.substring(0, newValue.length - 2)}.${newValue.substring(newValue.length - 2, newValue.length)}`).toLocaleString('pt-BR', {
1604
+ currency: 'BRL',
1605
+ minimumFractionDigits: 2,
1606
+ maximumFractionDigits: 2,
1607
+ })}`;
1608
+ this.focusLastIndex($event);
1652
1609
  }
1653
1610
  clearValue() {
1654
1611
  this.control.setValue(0);
1655
1612
  }
1656
1613
  }
1657
1614
  CurrencyFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1658
- CurrencyFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CurrencyFieldComponent, selector: "vector-currency-field", inputs: { minValue: "minValue", maxValue: "maxValue", placeholder: "placeholder", control: "control", outlined: "outlined", rounded: "rounded", label: "label", isBankingField: "isBankingField", inputClassName: "inputClassName" }, ngImport: i0, template: "<div [ngClass]=\"{ 'input-container': outlined, 'value-input-container': !outlined, rounded: rounded }\">\r\n <div class=\"inner-container\">\r\n <label *ngIf=\"label\">{{ label }}</label>\r\n <div class=\"input\">\r\n <span *ngIf=\"!outlined\">R$ </span>\r\n <div class=\"value-input\">\r\n <p-inputNumber\r\n class=\"currency-input\"\r\n [ngClass]=\"getInputNgClass()\"\r\n [formControl]=\"control\"\r\n mode=\"decimal\"\r\n [minFractionDigits]=\"2\"\r\n [maxFractionDigits]=\"2\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [prefix]=\"outlined ? 'R$ ' : ''\"\r\n (click)=\"isBankingField ? focusLastIndex($event) : null\"\r\n (onKeyDown)=\"isBankingField ? inputNextChar($event) : null\"\r\n ></p-inputNumber>\r\n </div>\r\n </div>\r\n </div>\r\n <span *ngIf=\"rounded\" class=\"clear-value\" (click)=\"clearValue()\"><i class=\"pi pi-times\"></i></span>\r\n</div>\r\n", styles: [".value-input-container{padding:5px 20px;display:flex;align-items:center;justify-content:space-between}.value-input-container:focus-within{border:2px solid var(--theme-dark)}.value-input-container:not(.rounded) span{font-size:2em}.value-input-container label{color:var(--gray-dark);font-size:13px}.value-input-container span{font-weight:700;color:var(--theme-dark)}.value-input-container .input{display:flex;align-items:center}.value-input-container .input .value-input{margin:0 4px;flex:1}.rounded:not(.currency-input){padding:0 25px;background-color:#fff;border-radius:16px}.rounded span{font-size:1em}.rounded input{font-size:1rem}.rounded .clear-value{padding:5px 5px 0;border-radius:20px}.rounded .clear-value:hover{background-color:var(--gray-medium)}\n"], components: [{ type: i1$5.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
1615
+ CurrencyFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CurrencyFieldComponent, selector: "vector-currency-field", inputs: { minValue: "minValue", maxValue: "maxValue", placeholder: "placeholder", control: "control", outlined: "outlined", rounded: "rounded", label: "label", isBankingField: "isBankingField", inputClassName: "inputClassName" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: InputNumber, descendants: true }], ngImport: i0, template: "<div [ngClass]=\"{ 'input-container': outlined, 'value-input-container': !outlined, rounded: rounded }\">\r\n <div class=\"inner-container\">\r\n <label *ngIf=\"label\">{{ label }}</label>\r\n <div class=\"input\">\r\n <span *ngIf=\"!outlined\">R$ </span>\r\n <div class=\"value-input\">\r\n <p-inputNumber\r\n class=\"currency-input\"\r\n [ngClass]=\"getInputNgClass()\"\r\n [formControl]=\"control\"\r\n mode=\"decimal\"\r\n [minFractionDigits]=\"2\"\r\n [maxFractionDigits]=\"2\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [prefix]=\"outlined ? 'R$ ' : ''\"\r\n (click)=\"isBankingField ? focusLastIndex($event) : null\"\r\n (onKeyDown)=\"isBankingField ? inputNextChar($event) : null\"\r\n ></p-inputNumber>\r\n </div>\r\n </div>\r\n </div>\r\n <span *ngIf=\"rounded\" class=\"clear-value\" (click)=\"clearValue()\"><i class=\"pi pi-times\"></i></span>\r\n</div>\r\n", styles: [".value-input-container{padding:5px 20px;display:flex;align-items:center;justify-content:space-between}.value-input-container:focus-within{border:2px solid var(--theme-dark)}.value-input-container:not(.rounded) span{font-size:2em}.value-input-container label{color:var(--gray-dark);font-size:13px}.value-input-container span{font-weight:700;color:var(--theme-dark)}.value-input-container .input{display:flex;align-items:center}.value-input-container .input .value-input{margin:0 4px;flex:1}.rounded:not(.currency-input){padding:0 25px;background-color:#fff;border-radius:16px}.rounded span{font-size:1em}.rounded input{font-size:1rem}.rounded .clear-value{padding:5px 5px 0;border-radius:20px}.rounded .clear-value:hover{background-color:var(--gray-medium)}\n"], components: [{ type: i1$5.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
1659
1616
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyFieldComponent, decorators: [{
1660
1617
  type: Component,
1661
1618
  args: [{ selector: 'vector-currency-field', template: "<div [ngClass]=\"{ 'input-container': outlined, 'value-input-container': !outlined, rounded: rounded }\">\r\n <div class=\"inner-container\">\r\n <label *ngIf=\"label\">{{ label }}</label>\r\n <div class=\"input\">\r\n <span *ngIf=\"!outlined\">R$ </span>\r\n <div class=\"value-input\">\r\n <p-inputNumber\r\n class=\"currency-input\"\r\n [ngClass]=\"getInputNgClass()\"\r\n [formControl]=\"control\"\r\n mode=\"decimal\"\r\n [minFractionDigits]=\"2\"\r\n [maxFractionDigits]=\"2\"\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n [prefix]=\"outlined ? 'R$ ' : ''\"\r\n (click)=\"isBankingField ? focusLastIndex($event) : null\"\r\n (onKeyDown)=\"isBankingField ? inputNextChar($event) : null\"\r\n ></p-inputNumber>\r\n </div>\r\n </div>\r\n </div>\r\n <span *ngIf=\"rounded\" class=\"clear-value\" (click)=\"clearValue()\"><i class=\"pi pi-times\"></i></span>\r\n</div>\r\n", styles: [".value-input-container{padding:5px 20px;display:flex;align-items:center;justify-content:space-between}.value-input-container:focus-within{border:2px solid var(--theme-dark)}.value-input-container:not(.rounded) span{font-size:2em}.value-input-container label{color:var(--gray-dark);font-size:13px}.value-input-container span{font-weight:700;color:var(--theme-dark)}.value-input-container .input{display:flex;align-items:center}.value-input-container .input .value-input{margin:0 4px;flex:1}.rounded:not(.currency-input){padding:0 25px;background-color:#fff;border-radius:16px}.rounded span{font-size:1em}.rounded input{font-size:1rem}.rounded .clear-value{padding:5px 5px 0;border-radius:20px}.rounded .clear-value:hover{background-color:var(--gray-medium)}\n"] }]
@@ -1677,6 +1634,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
1677
1634
  type: Input
1678
1635
  }], inputClassName: [{
1679
1636
  type: Input
1637
+ }], inputElement: [{
1638
+ type: ViewChild,
1639
+ args: [InputNumber]
1680
1640
  }] } });
1681
1641
 
1682
1642
  class TextFieldComponent {