@eui/components 18.2.10-snapshot-1741251940445 → 18.2.11-snapshot-1741271032186
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/dependencies.html +2 -2
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/eui-input-number/eui-input-number.component.mjs +115 -34
- package/esm2022/eui-input-number/eui-number-control.directive.mjs +11 -3
- package/eui-input-number/eui-input-number.component.d.ts +18 -2
- package/eui-input-number/eui-input-number.component.d.ts.map +1 -1
- package/eui-input-number/eui-number-control.directive.d.ts +6 -0
- package/eui-input-number/eui-number-control.directive.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-input-number.mjs +123 -34
- package/fesm2022/eui-components-eui-input-number.mjs.map +1 -1
- package/package.json +9 -9
@@ -59,12 +59,20 @@ export class EuiInputNumberDirective {
|
|
59
59
|
onTouched() {
|
60
60
|
// this.euiNumberComponent.isInvalid = this.control.invalid;
|
61
61
|
}
|
62
|
+
/**
|
63
|
+
* Handle the value changes of the input element and update the value of the
|
64
|
+
* directive and the form control. For large numbers, the value is a string.
|
65
|
+
*
|
66
|
+
* @param event
|
67
|
+
*/
|
62
68
|
valueChanges(event) {
|
63
69
|
const { target } = event;
|
64
70
|
this.euiNumberComponent['onValueChanged'](event);
|
65
|
-
|
71
|
+
// for large numbers, the value is a string
|
72
|
+
const length = target.rawValue.split('.')[0].length;
|
73
|
+
const numberCoerce = length > 15 ? target.rawValue : Number.parseFloat(target.rawValue);
|
66
74
|
if (this.value !== numberCoerce && this.onChange) {
|
67
|
-
this.onChange(isNaN(numberCoerce) ? null : numberCoerce);
|
75
|
+
this.onChange(length > 15 ? target.rawValue : (isNaN(numberCoerce) ? null : numberCoerce));
|
68
76
|
}
|
69
77
|
}
|
70
78
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiInputNumberDirective, deps: [{ token: i0.ElementRef }, { token: i1.EuiInputNumberComponent, optional: true }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
|
@@ -97,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
97
105
|
type: Inject,
|
98
106
|
args: [PLATFORM_ID]
|
99
107
|
}] }] });
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW51bWJlci1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1pbnB1dC1udW1iZXIvZXVpLW51bWJlci1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBRSxNQUFNLEVBQVUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxNQUFNLE1BQU0sV0FBVyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBWTdELE1BQU0sT0FBTyx1QkFBdUI7SUFPaEMsWUFDWSxVQUFzQixFQUNWLGtCQUEyQyxFQUNyQyxRQUFrQixFQUNmLFVBQW1CO1FBSHhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDVix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXlCO1FBQ3JDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFTO0lBQ2pELENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELG1IQUFtSDtJQUNuSCw4REFBOEQ7SUFDOUQsVUFBVSxDQUFDLEdBQVE7UUFDZixJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQW1CLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNILE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxJQUFJLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7WUFDNUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxJQUFJLGNBQXNCLENBQUM7UUFDM0Isb0JBQW9CO1FBQ3BCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxHQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQ3RHLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTTtnQkFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7WUFDOUMsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRixDQUFDO2FBQU0sQ0FBQztZQUNKLGNBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQztRQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxtSEFBbUg7SUFDbkgsOERBQThEO0lBQzlELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBUSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELG1IQUFtSDtJQUNuSCw4REFBOEQ7SUFDOUQsaUJBQWlCLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDbEQsQ0FBQztJQUVPLFNBQVM7UUFDYiw0REFBNEQ7SUFDaEUsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFLO1FBQ3RCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEQsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFlBQVksSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNMLENBQUM7K0dBNUVRLHVCQUF1QixtR0FVcEIsUUFBUSxhQUNSLFdBQVc7bUdBWGQsdUJBQXVCLG1JQVJyQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSjs7NEZBRVEsdUJBQXVCO2tCQVZuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwwR0FBMEc7b0JBQ3BILFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7aUJBQ0o7OzBCQVVRLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBJbmplY3QsIE9uSW5pdCwgT3B0aW9uYWwsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDbGVhdmVJbnN0YW5jZSwgRXVpSW5wdXROdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL2V1aS1pbnB1dC1udW1iZXIuY29tcG9uZW50JztcbmltcG9ydCBDbGVhdmUgZnJvbSAnY2xlYXZlLmpzJztcbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFtldWlJbnB1dE51bWJlcl1bZm9ybUNvbnRyb2xdLGlucHV0W2V1aUlucHV0TnVtYmVyXVtmb3JtQ29udHJvbE5hbWVdLGlucHV0W2V1aUlucHV0TnVtYmVyXVtuZ01vZGVsXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRXVpSW5wdXROdW1iZXJEaXJlY3RpdmUpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpSW5wdXROdW1iZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgICAvKiogaG9sZCBhIGNvcHkgb2YgdGhlIHZhbHVlICovXG4gICAgcHJpdmF0ZSB2YWx1ZTogbnVtYmVyO1xuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgb25DaGFuZ2U6ICh0OiBhbnkpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGV1aU51bWJlckNvbXBvbmVudDogRXVpSW5wdXROdW1iZXJDb21wb25lbnQsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IHVua25vd24sXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50Wydpbml0Q2xlYXZlJ10odGhpcy52YWx1ZUNoYW5nZXMuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2xlYXZlOiBDbGVhdmVJbnN0YW5jZSA9IG5ldyBDbGVhdmUodGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpLCB7IC4uLnRoaXMuZXVpTnVtYmVyQ29tcG9uZW50WydvcHRpb25zJ10gfSk7XG4gICAgICAgIGNsZWF2ZS5zZXRSYXdWYWx1ZShvYmopO1xuICAgICAgICBpZiAodGhpcy5ldWlOdW1iZXJDb21wb25lbnQuZmlsbEZyYWN0aW9uICYmIG9iaiAhPT0gJycgJiYgb2JqKSB7XG4gICAgICAgICAgICB0aGlzLmV1aU51bWJlckNvbXBvbmVudFsnYXBwbHlGcmFjdGlvbkZpbGwnXShvYmosIGNsZWF2ZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHZhbHVlT2ZFbGVtZW50OiBzdHJpbmc7XG4gICAgICAgIC8vIGZpbGwgbGVhZGluZyB6ZXJvXG4gICAgICAgIGlmICh0aGlzLmV1aU51bWJlckNvbXBvbmVudC5sZWFkaW5nWmVybykge1xuICAgICAgICAgICAgY29uc3Qgc2l6ZSA9XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlOdW1iZXJDb21wb25lbnQubGVhZGluZ1plcm8gPiB0aGlzLmV1aU51bWJlckNvbXBvbmVudC5kaWdpdHMgJiYgdGhpcy5ldWlOdW1iZXJDb21wb25lbnQuZGlnaXRzID4gMFxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50LmRpZ2l0c1xuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50LmxlYWRpbmdaZXJvO1xuICAgICAgICAgICAgdmFsdWVPZkVsZW1lbnQgPSB0aGlzLmV1aU51bWJlckNvbXBvbmVudFsncGFkWmVybyddKGNsZWF2ZS5nZXRGb3JtYXR0ZWRWYWx1ZSgpLCBzaXplKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlT2ZFbGVtZW50ID0gY2xlYXZlLmdldEZvcm1hdHRlZFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZU9mRWxlbWVudDtcbiAgICAgICAgdGhpcy52YWx1ZSA9IE51bWJlci5wYXJzZUZsb2F0KGNsZWF2ZS5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgY2xlYXZlLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9ICh0KTogdm9pZCA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdDtcbiAgICAgICAgICAgIGZuKHQpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldWlOdW1iZXJDb21wb25lbnQuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Ub3VjaGVkKCk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLmV1aU51bWJlckNvbXBvbmVudC5pc0ludmFsaWQgPSB0aGlzLmNvbnRyb2wuaW52YWxpZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbHVlQ2hhbmdlcyhldmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHRhcmdldCB9ID0gZXZlbnQ7XG5cbiAgICAgICAgdGhpcy5ldWlOdW1iZXJDb21wb25lbnRbJ29uVmFsdWVDaGFuZ2VkJ10oZXZlbnQpO1xuICAgICAgICBjb25zdCBudW1iZXJDb2VyY2UgPSBOdW1iZXIucGFyc2VGbG9hdCh0YXJnZXQucmF3VmFsdWUpO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAhPT0gbnVtYmVyQ29lcmNlICYmIHRoaXMub25DaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoaXNOYU4obnVtYmVyQ29lcmNlKSA/IG51bGwgOiBudW1iZXJDb2VyY2UpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW51bWJlci1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1pbnB1dC1udW1iZXIvZXVpLW51bWJlci1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBRSxNQUFNLEVBQVUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxNQUFNLE1BQU0sV0FBVyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBWTdELE1BQU0sT0FBTyx1QkFBdUI7SUFPaEMsWUFDWSxVQUFzQixFQUNWLGtCQUEyQyxFQUNyQyxRQUFrQixFQUNmLFVBQW1CO1FBSHhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDVix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXlCO1FBQ3JDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFTO0lBQ2pELENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELG1IQUFtSDtJQUNuSCw4REFBOEQ7SUFDOUQsVUFBVSxDQUFDLEdBQVE7UUFDZixJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQW1CLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJ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QUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDO0lBQ0wsQ0FBQzsrR0FwRlEsdUJBQXVCLG1HQVVwQixRQUFRLGFBQ1IsV0FBVzttR0FYZCx1QkFBdUIsbUlBUnJCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKOzs0RkFFUSx1QkFBdUI7a0JBVm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBHQUEwRztvQkFDcEgsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtpQkFDSjs7MEJBVVEsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxRQUFROzswQkFDZixNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEluamVjdCwgT25Jbml0LCBPcHRpb25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENsZWF2ZUluc3RhbmNlLCBFdWlJbnB1dE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vZXVpLWlucHV0LW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IENsZWF2ZSBmcm9tICdjbGVhdmUuanMnO1xuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2lucHV0W2V1aUlucHV0TnVtYmVyXVtmb3JtQ29udHJvbF0saW5wdXRbZXVpSW5wdXROdW1iZXJdW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbZXVpSW5wdXROdW1iZXJdW25nTW9kZWxdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFdWlJbnB1dE51bWJlckRpcmVjdGl2ZSksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlJbnB1dE51bWJlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICAgIC8qKiBob2xkIGEgY29weSBvZiB0aGUgdmFsdWUgKi9cbiAgICBwcml2YXRlIHZhbHVlOiBudW1iZXI7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKHQ6IGFueSkgPT4gdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZXVpTnVtYmVyQ29tcG9uZW50OiBFdWlJbnB1dE51bWJlckNvbXBvbmVudCxcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogdW5rbm93bixcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldWlOdW1iZXJDb21wb25lbnRbJ2luaXRDbGVhdmUnXSh0aGlzLnZhbHVlQ2hhbmdlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjbGVhdmU6IENsZWF2ZUluc3RhbmNlID0gbmV3IENsZWF2ZSh0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JyksIHsgLi4udGhpcy5ldWlOdW1iZXJDb21wb25lbnRbJ29wdGlvbnMnXSB9KTtcbiAgICAgICAgY2xlYXZlLnNldFJhd1ZhbHVlKG9iaik7XG4gICAgICAgIGlmICh0aGlzLmV1aU51bWJlckNvbXBvbmVudC5maWxsRnJhY3Rpb24gJiYgb2JqICE9PSAnJyAmJiBvYmopIHtcbiAgICAgICAgICAgIHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50WydhcHBseUZyYWN0aW9uRmlsbCddKG9iaiwgY2xlYXZlKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdmFsdWVPZkVsZW1lbnQ6IHN0cmluZztcbiAgICAgICAgLy8gZmlsbCBsZWFkaW5nIHplcm9cbiAgICAgICAgaWYgKHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50LmxlYWRpbmdaZXJvKSB7XG4gICAgICAgICAgICBjb25zdCBzaXplID1cbiAgICAgICAgICAgICAgICB0aGlzLmV1aU51bWJlckNvbXBvbmVudC5sZWFkaW5nWmVybyA+IHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50LmRpZ2l0cyAmJiB0aGlzLmV1aU51bWJlckNvbXBvbmVudC5kaWdpdHMgPiAwXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5ldWlOdW1iZXJDb21wb25lbnQuZGlnaXRzXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5ldWlOdW1iZXJDb21wb25lbnQubGVhZGluZ1plcm87XG4gICAgICAgICAgICB2YWx1ZU9mRWxlbWVudCA9IHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50WydwYWRaZXJvJ10oY2xlYXZlLmdldEZvcm1hdHRlZFZhbHVlKCksIHNpemUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWVPZkVsZW1lbnQgPSBjbGVhdmUuZ2V0Rm9ybWF0dGVkVmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlT2ZFbGVtZW50O1xuICAgICAgICB0aGlzLnZhbHVlID0gTnVtYmVyLnBhcnNlRmxvYXQoY2xlYXZlLmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICBjbGVhdmUuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gKHQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0O1xuICAgICAgICAgICAgZm4odCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmV1aU51bWJlckNvbXBvbmVudC5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblRvdWNoZWQoKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuZXVpTnVtYmVyQ29tcG9uZW50LmlzSW52YWxpZCA9IHRoaXMuY29udHJvbC5pbnZhbGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSB0aGUgdmFsdWUgY2hhbmdlcyBvZiB0aGUgaW5wdXQgZWxlbWVudCBhbmQgdXBkYXRlIHRoZSB2YWx1ZSBvZiB0aGVcbiAgICAgKiBkaXJlY3RpdmUgYW5kIHRoZSBmb3JtIGNvbnRyb2wuIEZvciBsYXJnZSBudW1iZXJzLCB0aGUgdmFsdWUgaXMgYSBzdHJpbmcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIHZhbHVlQ2hhbmdlcyhldmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHRhcmdldCB9ID0gZXZlbnQ7XG5cbiAgICAgICAgdGhpcy5ldWlOdW1iZXJDb21wb25lbnRbJ29uVmFsdWVDaGFuZ2VkJ10oZXZlbnQpO1xuICAgICAgICAvLyBmb3IgbGFyZ2UgbnVtYmVycywgdGhlIHZhbHVlIGlzIGEgc3RyaW5nXG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHRhcmdldC5yYXdWYWx1ZS5zcGxpdCgnLicpWzBdLmxlbmd0aFxuICAgICAgICBjb25zdCBudW1iZXJDb2VyY2UgPSBsZW5ndGggPiAxNSA/IHRhcmdldC5yYXdWYWx1ZSA6IE51bWJlci5wYXJzZUZsb2F0KHRhcmdldC5yYXdWYWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICE9PSBudW1iZXJDb2VyY2UgJiYgdGhpcy5vbkNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShsZW5ndGggPiAxNSA/IHRhcmdldC5yYXdWYWx1ZSA6IChpc05hTihudW1iZXJDb2VyY2UpID8gbnVsbCA6IG51bWJlckNvZXJjZSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { DoCheck, ElementRef, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges
|
1
|
+
import { DoCheck, ElementRef, Injector, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges } from '@angular/core';
|
2
2
|
import { LocaleService } from '@eui/core';
|
3
3
|
import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
|
4
4
|
import Cleave from 'cleave.js';
|
@@ -120,6 +120,7 @@ export declare class EuiInputNumberComponent extends InputDirective implements O
|
|
120
120
|
*
|
121
121
|
* @param value The formatted number you want to parse e.g. 111,888.22
|
122
122
|
* @param userPrevLocaleState Use previous locale state to parse the value. By default, is false
|
123
|
+
* @param replaceSymbol Replace the decimal symbol with a dot. By default, is false
|
123
124
|
* @private
|
124
125
|
*/
|
125
126
|
private parseNumber;
|
@@ -148,7 +149,7 @@ export declare class EuiInputNumberComponent extends InputDirective implements O
|
|
148
149
|
/**
|
149
150
|
* Decimal adjustment of a number.
|
150
151
|
*
|
151
|
-
* @param
|
152
|
+
* @param value The number or string representation of a number.
|
152
153
|
* @param exp The exponent (the 10 logarithm of the adjustment base).
|
153
154
|
* @returns The adjusted value.
|
154
155
|
*/
|
@@ -160,6 +161,21 @@ export declare class EuiInputNumberComponent extends InputDirective implements O
|
|
160
161
|
* @private
|
161
162
|
*/
|
162
163
|
private isDefined;
|
164
|
+
/**
|
165
|
+
* Check if the value is a valid number. Take into account the Big numbers
|
166
|
+
* more than 16 digits. Check if string contains only digits and dots.
|
167
|
+
* The number value must not be formatted.
|
168
|
+
* @param value the value to check
|
169
|
+
* @private
|
170
|
+
*/
|
171
|
+
private isItaNumber;
|
172
|
+
/**
|
173
|
+
* Parse the value to a number. For large numbers, the value is a string.
|
174
|
+
* The number value must not be formatted.
|
175
|
+
* @param value the value to parse
|
176
|
+
* @private
|
177
|
+
*/
|
178
|
+
private parseBigNumber;
|
163
179
|
static ɵfac: i0.ɵɵFactoryDeclaration<EuiInputNumberComponent, [null, null, { optional: true; }, null, null, null, null]>;
|
164
180
|
static ɵcmp: i0.ɵɵComponentDeclaration<EuiInputNumberComponent, "input[euiInputNumber]", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "leadingZero": { "alias": "leadingZero"; "required": false; }; "isInvalid": { "alias": "isInvalid"; "required": false; }; "fractionDigits": { "alias": "fractionDigits"; "required": false; }; "digits": { "alias": "digits"; "required": false; }; "fillFraction": { "alias": "fillFraction"; "required": false; }; "roundUp": { "alias": "roundUp"; "required": false; }; "noFormat": { "alias": "noFormat"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, never, false, [{ directive: typeof i1.EuiClearableDirective; inputs: { "euiClearable": "euiClearable"; "readonly": "readonly"; "disabled": "disabled"; }; outputs: {}; }, { directive: typeof i1.EuiLoadingDirective; inputs: { "euiLoading": "euiLoading"; "readonly": "readonly"; }; outputs: {}; }]>;
|
165
181
|
static ngAcceptInputType_min: unknown;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-input-number.component.d.ts","sourceRoot":"","sources":["../../eui-input-number/eui-input-number.component.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"eui-input-number.component.d.ts","sourceRoot":"","sources":["../../eui-input-number/eui-input-number.component.ts"],"names":[],"mappings":"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"}
|
@@ -17,6 +17,12 @@ export declare class EuiInputNumberDirective implements ControlValueAccessor, On
|
|
17
17
|
registerOnTouched(fn: any): void;
|
18
18
|
setDisabledState(isDisabled: boolean): void;
|
19
19
|
private onTouched;
|
20
|
+
/**
|
21
|
+
* Handle the value changes of the input element and update the value of the
|
22
|
+
* directive and the form control. For large numbers, the value is a string.
|
23
|
+
*
|
24
|
+
* @param event
|
25
|
+
*/
|
20
26
|
private valueChanges;
|
21
27
|
static ɵfac: i0.ɵɵFactoryDeclaration<EuiInputNumberDirective, [null, { optional: true; }, null, null]>;
|
22
28
|
static ɵdir: i0.ɵɵDirectiveDeclaration<EuiInputNumberDirective, "input[euiInputNumber][formControl],input[euiInputNumber][formControlName],input[euiInputNumber][ngModel]", never, {}, {}, never, never, false, never>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-number-control.directive.d.ts","sourceRoot":"","sources":["../../eui-input-number/eui-number-control.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAsB,MAAM,EAAyB,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAqB,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAkB,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;;AAIvF,qBAUa,uBAAwB,YAAW,oBAAoB,EAAE,MAAM;IAQpE,OAAO,CAAC,UAAU;IACN,OAAO,CAAC,kBAAkB;IACpB,OAAO,CAAC,QAAQ;IACb,OAAO,CAAC,UAAU;IAV3C,+BAA+B;IAC/B,OAAO,CAAC,KAAK,CAAS;IAGtB,OAAO,CAAC,QAAQ,CAAmB;gBAGvB,UAAU,EAAE,UAAU,EACV,kBAAkB,EAAE,uBAAuB,EACrC,QAAQ,EAAE,QAAQ,EACf,UAAU,EAAE,OAAO;IAGpD,QAAQ,IAAI,IAAI;IAMhB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IA2B1B,gBAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAS/B,iBAAiB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAIhC,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAI3C,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,YAAY;
|
1
|
+
{"version":3,"file":"eui-number-control.directive.d.ts","sourceRoot":"","sources":["../../eui-input-number/eui-number-control.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAsB,MAAM,EAAyB,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAqB,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAkB,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;;AAIvF,qBAUa,uBAAwB,YAAW,oBAAoB,EAAE,MAAM;IAQpE,OAAO,CAAC,UAAU;IACN,OAAO,CAAC,kBAAkB;IACpB,OAAO,CAAC,QAAQ;IACb,OAAO,CAAC,UAAU;IAV3C,+BAA+B;IAC/B,OAAO,CAAC,KAAK,CAAS;IAGtB,OAAO,CAAC,QAAQ,CAAmB;gBAGvB,UAAU,EAAE,UAAU,EACV,kBAAkB,EAAE,uBAAuB,EACrC,QAAQ,EAAE,QAAQ,EACf,UAAU,EAAE,OAAO;IAGpD,QAAQ,IAAI,IAAI;IAMhB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IA2B1B,gBAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAS/B,iBAAiB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAIhC,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAI3C,OAAO,CAAC,SAAS;IAIjB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;yCA1EX,uBAAuB;2CAAvB,uBAAuB;CAqFnC"}
|
@@ -131,8 +131,8 @@ class EuiInputNumberComponent extends InputDirective {
|
|
131
131
|
if (Object.hasOwn(changes, 'roundUp')) {
|
132
132
|
if (changes['roundUp'].currentValue > 0) {
|
133
133
|
if (this.cleaveInstance) {
|
134
|
-
let number =
|
135
|
-
number = this.decimalAdjust(number, this.roundUp
|
134
|
+
let number = this.parseNumber(this.cleaveInstance.getRawValue(), false, false);
|
135
|
+
number = this.decimalAdjust(number, this.roundUp);
|
136
136
|
this.cleaveInstance.setRawValue(number.toString());
|
137
137
|
}
|
138
138
|
}
|
@@ -141,7 +141,7 @@ class EuiInputNumberComponent extends InputDirective {
|
|
141
141
|
// parse number
|
142
142
|
const number = this.parseNumber(changes['placeholder'].currentValue?.toString() || undefined);
|
143
143
|
// set placeholder in case none is provided
|
144
|
-
this.setPlaceholderAttribute(
|
144
|
+
this.setPlaceholderAttribute(!this.isItaNumber(number.toString()) ? changes['placeholder'].currentValue : number);
|
145
145
|
}
|
146
146
|
}
|
147
147
|
ngOnDestroy() {
|
@@ -160,19 +160,19 @@ class EuiInputNumberComponent extends InputDirective {
|
|
160
160
|
// create a clone of cleaveInstance
|
161
161
|
const cloneInstance = new Cleave(div, { ...this.options, numeralDecimalScale: 8 });
|
162
162
|
cloneInstance.setRawValue(value.toString());
|
163
|
-
let number =
|
164
|
-
number = this.decimalAdjust(number, this.roundUp
|
165
|
-
if (
|
166
|
-
this.cleaveInstance.setRawValue(number.toString());
|
163
|
+
let number = this.parseNumber(cloneInstance.getRawValue(), false, false);
|
164
|
+
number = this.decimalAdjust(number, this.roundUp);
|
165
|
+
if (this.isItaNumber(number.toString())) {
|
167
166
|
// TODO: investigate in the future how can this be avoided
|
168
167
|
setTimeout(() => {
|
168
|
+
this.cleaveInstance.setRawValue(number.toString());
|
169
169
|
// this.writeValue(number.toString());
|
170
170
|
}, 0);
|
171
171
|
}
|
172
172
|
}
|
173
173
|
}
|
174
174
|
onKeyDown(e) {
|
175
|
-
// check if it's a single symbol and not Special like (Ctrl, backspace etc)
|
175
|
+
// check if it's a single symbol and not Special like (Ctrl, backspace etc.)
|
176
176
|
if (e?.key?.length <= 1 && !e.ctrlKey && !e.altKey && !e.metaKey) {
|
177
177
|
// stop event propagation if key pressed is not a number or locale character or minus sign
|
178
178
|
if (Number.isNaN(Number.parseInt(e.key, 10)) &&
|
@@ -219,8 +219,8 @@ class EuiInputNumberComponent extends InputDirective {
|
|
219
219
|
}
|
220
220
|
// in case round UP is enabled
|
221
221
|
if (this.roundUp > 0) {
|
222
|
-
const number =
|
223
|
-
this.cleaveInstance.setRawValue(this.decimalAdjust(number, this.roundUp
|
222
|
+
const number = this.parseNumber(this.cleaveInstance.getRawValue(), false, false);
|
223
|
+
this.cleaveInstance.setRawValue(this.decimalAdjust(number, this.roundUp).toString());
|
224
224
|
}
|
225
225
|
// in case min is set and value is less than min reset to the min value
|
226
226
|
if (this.min !== null && this.min !== undefined && Number.parseFloat(this.cleaveInstance.getRawValue()) < this.min) {
|
@@ -289,8 +289,8 @@ class EuiInputNumberComponent extends InputDirective {
|
|
289
289
|
opts.onValueChanged = onChangeCallback || this.onValueChanged.bind(this);
|
290
290
|
// in case round UP is enabled
|
291
291
|
if (this.roundUp > 0) {
|
292
|
-
const number =
|
293
|
-
this._elementRef.nativeElement.value = this.decimalAdjust(number, this.roundUp
|
292
|
+
const number = this.parseNumber(this._elementRef.nativeElement.value);
|
293
|
+
this._elementRef.nativeElement.value = this.decimalAdjust(number, this.roundUp);
|
294
294
|
}
|
295
295
|
// create the Cleave instance with the new or updated options
|
296
296
|
this.cleaveInstance = new Cleave(this._elementRef.nativeElement, opts);
|
@@ -331,7 +331,7 @@ class EuiInputNumberComponent extends InputDirective {
|
|
331
331
|
if (this.fillFraction) {
|
332
332
|
this.applyFractionFill(target.rawValue);
|
333
333
|
}
|
334
|
-
this.onChange(
|
334
|
+
this.onChange(this.parseNumber(target.rawValue, false, false));
|
335
335
|
// fill leading zero
|
336
336
|
if (this.leadingZero) {
|
337
337
|
const size = this.leadingZero > this.digits && this.digits > 0 ? this.digits : this.leadingZero;
|
@@ -400,9 +400,10 @@ class EuiInputNumberComponent extends InputDirective {
|
|
400
400
|
*
|
401
401
|
* @param value The formatted number you want to parse e.g. 111,888.22
|
402
402
|
* @param userPrevLocaleState Use previous locale state to parse the value. By default, is false
|
403
|
+
* @param replaceSymbol Replace the decimal symbol with a dot. By default, is false
|
403
404
|
* @private
|
404
405
|
*/
|
405
|
-
parseNumber(value, userPrevLocaleState = false) {
|
406
|
+
parseNumber(value, userPrevLocaleState = false, replaceSymbol = true) {
|
406
407
|
// locale state
|
407
408
|
const locale = userPrevLocaleState ? this.localeService?.previousLocale : this.localeService?.currentLocale || this.locale_id || 'en';
|
408
409
|
// get decimal and group symbols
|
@@ -410,7 +411,7 @@ class EuiInputNumberComponent extends InputDirective {
|
|
410
411
|
const groupSymbol = getLocaleNumberSymbol(locale, NumberSymbol.Group);
|
411
412
|
// replace symbols to parse number
|
412
413
|
const parsedNumber = value?.split(groupSymbol).join('').split(decimalSymbol).join('.');
|
413
|
-
return
|
414
|
+
return this.parseBigNumber(replaceSymbol ? parsedNumber : value);
|
414
415
|
}
|
415
416
|
/**
|
416
417
|
* Pad leading zero to the number
|
@@ -481,27 +482,85 @@ class EuiInputNumberComponent extends InputDirective {
|
|
481
482
|
/**
|
482
483
|
* Decimal adjustment of a number.
|
483
484
|
*
|
484
|
-
* @param
|
485
|
+
* @param value The number or string representation of a number.
|
485
486
|
* @param exp The exponent (the 10 logarithm of the adjustment base).
|
486
487
|
* @returns The adjusted value.
|
487
488
|
*/
|
488
489
|
decimalAdjust(value, exp) {
|
489
|
-
//
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
490
|
+
// Ensure exp is a number
|
491
|
+
exp = +Number(exp);
|
492
|
+
// Convert input to string if it's a number
|
493
|
+
const valueStr = typeof value === 'number' ? value.toString() : String(value);
|
494
|
+
// Handle empty or invalid inputs
|
495
|
+
if (!valueStr || isNaN(Number(valueStr))) {
|
496
|
+
return '';
|
497
|
+
}
|
498
|
+
try {
|
499
|
+
// Check if the value is negative
|
500
|
+
const isNegative = valueStr.startsWith('-');
|
501
|
+
// Get the absolute value string
|
502
|
+
const absoluteValueStr = isNegative ? valueStr.substring(1) : valueStr;
|
503
|
+
// Split the number into integer and decimal parts
|
504
|
+
const parts = absoluteValueStr.split('.');
|
505
|
+
let integerPart = parts[0] || '0'; // Default to '0' if empty
|
506
|
+
let decimalPart = parts.length > 1 ? parts[1] : '';
|
507
|
+
// If there's no decimal part and exp > 0, we should add zeros
|
508
|
+
if (decimalPart === '' && exp > 0) {
|
509
|
+
decimalPart = '0'.repeat(exp);
|
510
|
+
}
|
511
|
+
// Pad decimal part with zeros if needed
|
512
|
+
if (decimalPart.length < exp) {
|
513
|
+
decimalPart = decimalPart.padEnd(exp, '0');
|
514
|
+
}
|
515
|
+
// Determine if we need to round up
|
516
|
+
let roundUp = false;
|
517
|
+
if (decimalPart.length > exp) {
|
518
|
+
const nextDigit = parseInt(decimalPart.charAt(exp), 10);
|
519
|
+
roundUp = nextDigit >= 5;
|
520
|
+
}
|
521
|
+
// Trim the decimal part to the required precision
|
522
|
+
decimalPart = decimalPart.substring(0, exp);
|
523
|
+
// Handle rounding
|
524
|
+
if (roundUp) {
|
525
|
+
if (exp === 0) {
|
526
|
+
// If exp is 0, we need to round the integer part
|
527
|
+
integerPart = (BigInt(integerPart) + 1n).toString();
|
528
|
+
}
|
529
|
+
else {
|
530
|
+
// Create a number from the decimal part
|
531
|
+
let decimalNum = parseInt(decimalPart, 10);
|
532
|
+
// Add 1 to the decimal part
|
533
|
+
decimalNum += 1;
|
534
|
+
// Check if we need to carry over to the integer part
|
535
|
+
if (decimalNum.toString().length > exp) {
|
536
|
+
integerPart = (BigInt(integerPart) + 1n).toString();
|
537
|
+
decimalNum = 0;
|
538
|
+
}
|
539
|
+
// Convert back to string and pad with leading zeros if needed
|
540
|
+
decimalPart = decimalNum.toString().padStart(exp, '0');
|
541
|
+
}
|
542
|
+
}
|
543
|
+
// Combine the parts
|
544
|
+
let result;
|
545
|
+
if (exp > 0) {
|
546
|
+
// Remove trailing zeros if they're not significant
|
547
|
+
let trimmedDecimalPart = decimalPart;
|
548
|
+
while (trimmedDecimalPart.length > 0 && trimmedDecimalPart.charAt(trimmedDecimalPart.length - 1) === '0') {
|
549
|
+
trimmedDecimalPart = trimmedDecimalPart.substring(0, trimmedDecimalPart.length - 1);
|
550
|
+
}
|
551
|
+
result = trimmedDecimalPart.length > 0 ? `${integerPart}.${trimmedDecimalPart}` : integerPart;
|
552
|
+
}
|
553
|
+
else {
|
554
|
+
result = integerPart;
|
555
|
+
}
|
556
|
+
// Restore the negative sign if needed
|
557
|
+
return isNegative ? '-' + result : result;
|
558
|
+
}
|
559
|
+
catch (error) {
|
560
|
+
console.error('Error in decimalAdjust:', error);
|
561
|
+
// If there's an error, return a formatted original value or '0'
|
562
|
+
return valueStr || '0';
|
563
|
+
}
|
505
564
|
}
|
506
565
|
/**
|
507
566
|
* Checks whether a value is defined or not
|
@@ -513,6 +572,28 @@ class EuiInputNumberComponent extends InputDirective {
|
|
513
572
|
isDefined(value) {
|
514
573
|
return value !== undefined && value !== null;
|
515
574
|
}
|
575
|
+
/**
|
576
|
+
* Check if the value is a valid number. Take into account the Big numbers
|
577
|
+
* more than 16 digits. Check if string contains only digits and dots.
|
578
|
+
* The number value must not be formatted.
|
579
|
+
* @param value the value to check
|
580
|
+
* @private
|
581
|
+
*/
|
582
|
+
isItaNumber(value) {
|
583
|
+
const length = value?.split('.')[0].length;
|
584
|
+
return length > 15 ? /^\d+(\.\d+)?$/.test(value) : !isNaN(Number(value));
|
585
|
+
}
|
586
|
+
/**
|
587
|
+
* Parse the value to a number. For large numbers, the value is a string.
|
588
|
+
* The number value must not be formatted.
|
589
|
+
* @param value the value to parse
|
590
|
+
* @private
|
591
|
+
*/
|
592
|
+
parseBigNumber(value) {
|
593
|
+
// for large numbers, the value is a string
|
594
|
+
const length = value?.split('.')[0].length;
|
595
|
+
return length > 15 ? value : Number.parseFloat(value);
|
596
|
+
}
|
516
597
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiInputNumberComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.LocaleService, optional: true }, { token: LOCALE_ID }, { token: i0.Injector }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
|
517
598
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: EuiInputNumberComponent, selector: "input[euiInputNumber]", inputs: { min: ["min", "min", numberAttribute], max: ["max", "max", numberAttribute], leadingZero: ["leadingZero", "leadingZero", numberAttribute], isInvalid: "isInvalid", fractionDigits: "fractionDigits", digits: ["digits", "digits", numberAttribute], fillFraction: ["fillFraction", "fillFraction", booleanAttribute], roundUp: ["roundUp", "roundUp", numberAttribute], noFormat: ["noFormat", "noFormat", booleanAttribute], value: "value" }, host: { listeners: { "blur": "onTouched()", "paste": "onPaste($event)", "keydown": "onKeyDown($event)", "focusout": "onFocusout()" }, properties: { "class": "this.cssClasses", "attr.type": "this.type" } }, usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: i2.EuiClearableDirective, inputs: ["euiClearable", "euiClearable", "readonly", "readonly", "disabled", "disabled"] }, { directive: i2.EuiLoadingDirective, inputs: ["euiLoading", "euiLoading", "readonly", "readonly"] }], ngImport: i0, template: '', isInline: true, styles: [".eui-18 .eui-input-number{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--eui-f-m);appearance:none;background-color:var(--eui-c-white);border:1px solid var(--eui-c-neutral-lighter);border-radius:var(--eui-br-m);box-shadow:none;color:var(--eui-c-text);padding:calc(var(--eui-s-xs) - 1px) calc(var(--eui-s-m) - 1px);width:100%}.eui-18 .eui-input-number:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-input-number:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-input-number [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-input-number:not([hidden]){display:block}.eui-18 .eui-input-number::placeholder{color:var(--eui-c-neutral-lighter)!important;opacity:1}.eui-18 .eui-input-number[readonly]{background-color:transparent;border-color:transparent;box-shadow:none;height:inherit;padding-left:0;padding-right:0;pointer-events:none}.eui-18 .eui-input-number[readonly]+.eui-feedback-message,.eui-18 .eui-input-number[readonly]+.eui-input-maxlength{appearance:none;display:none}.eui-18 .eui-input-number[disabled]:not([readonly]),.eui-18 .eui-input-number--disabled:not([readonly]){background-color:var(--eui-c-neutral-bg-light)!important;border:1px solid var(--eui-c-neutral-lightest)!important;color:var(--eui-c-neutral-light);pointer-events:none}.eui-18 .eui-input-number--invalid,.eui-18 .eui-input-number--danger{border:1px solid var(--eui-c-danger)}.eui-18 .eui-input-number--clearable{padding-right:var(--eui-s-2xl)}.eui-18 .eui-input-number--clearable-icon{cursor:pointer;position:absolute;right:var(--eui-s-s);-webkit-user-select:none;user-select:none;visibility:visible}.eui-18 .eui-input-number--clearable-icon:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-input-number--clearable-icon:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-input-number--clearable-icon [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-input-number--clearable-icon>svg{fill:var(--eui-c-neutral-lighter)}.eui-18 .eui-input-number--clearable-icon>svg:hover{fill:var(--eui-c-danger)}.eui-18 .eui-input-number--loading{padding-right:var(--eui-s-2xl)}.eui-18 .eui-input-number--loading-icon{align-items:center;display:flex}.eui-18 .eui-input-number--loading-icon:after,.eui-18 .eui-input-number--loading-icon:before{content:\"\";height:var(--eui-s-l);position:absolute;right:var(--eui-s-s);width:var(--eui-s-l)}.eui-18 .eui-input-number--loading-icon:before{border:var(--eui-s-2xs) solid rgba(0,0,0,.35);border-radius:100%}.eui-18 .eui-input-number--loading-icon:after{animation:eui-loading .6s linear;animation-iteration-count:infinite;border-color:var(--eui-c-white) transparent transparent;border-radius:100%;border-style:solid;border-width:var(--eui-s-2xs);box-shadow:0 0 0 1px transparent}.eui-18 .eui-input-number--loading-icon--sm:after,.eui-18 .eui-input-number--loading-icon--sm:before{height:var(--eui-s-m);width:var(--eui-s-m)}@keyframes eui-loading{to{transform:rotate(360deg)}}.eui-18 .eui-input-number[readonly]{pointer-events:auto}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
518
599
|
}
|
@@ -640,12 +721,20 @@ class EuiInputNumberDirective {
|
|
640
721
|
onTouched() {
|
641
722
|
// this.euiNumberComponent.isInvalid = this.control.invalid;
|
642
723
|
}
|
724
|
+
/**
|
725
|
+
* Handle the value changes of the input element and update the value of the
|
726
|
+
* directive and the form control. For large numbers, the value is a string.
|
727
|
+
*
|
728
|
+
* @param event
|
729
|
+
*/
|
643
730
|
valueChanges(event) {
|
644
731
|
const { target } = event;
|
645
732
|
this.euiNumberComponent['onValueChanged'](event);
|
646
|
-
|
733
|
+
// for large numbers, the value is a string
|
734
|
+
const length = target.rawValue.split('.')[0].length;
|
735
|
+
const numberCoerce = length > 15 ? target.rawValue : Number.parseFloat(target.rawValue);
|
647
736
|
if (this.value !== numberCoerce && this.onChange) {
|
648
|
-
this.onChange(isNaN(numberCoerce) ? null : numberCoerce);
|
737
|
+
this.onChange(length > 15 ? target.rawValue : (isNaN(numberCoerce) ? null : numberCoerce));
|
649
738
|
}
|
650
739
|
}
|
651
740
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiInputNumberDirective, deps: [{ token: i0.ElementRef }, { token: EuiInputNumberComponent, optional: true }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
|