@unifylib/ui-lib 1.1.29 → 1.1.30
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.
|
@@ -5,6 +5,10 @@ export class DecimalOnlyDirective {
|
|
|
5
5
|
this.el = el;
|
|
6
6
|
}
|
|
7
7
|
onKeyDown(event) {
|
|
8
|
+
const input = this.el.nativeElement;
|
|
9
|
+
const value = input.value;
|
|
10
|
+
const start = input.selectionStart ?? 0;
|
|
11
|
+
const end = input.selectionEnd ?? 0;
|
|
8
12
|
if (event.ctrlKey ||
|
|
9
13
|
event.metaKey ||
|
|
10
14
|
event.altKey ||
|
|
@@ -12,7 +16,7 @@ export class DecimalOnlyDirective {
|
|
|
12
16
|
return;
|
|
13
17
|
}
|
|
14
18
|
if (event.key === '.') {
|
|
15
|
-
if (
|
|
19
|
+
if (value.includes('.') || start === 0 || start === value.length) {
|
|
16
20
|
event.preventDefault();
|
|
17
21
|
}
|
|
18
22
|
return;
|
|
@@ -21,14 +25,20 @@ export class DecimalOnlyDirective {
|
|
|
21
25
|
event.preventDefault();
|
|
22
26
|
}
|
|
23
27
|
}
|
|
28
|
+
onBlur() {
|
|
29
|
+
const input = this.el.nativeElement;
|
|
30
|
+
if (input.value.endsWith('.')) {
|
|
31
|
+
input.value = input.value.slice(0, -1);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
24
34
|
onPaste(event) {
|
|
25
35
|
const pasted = event.clipboardData?.getData('text') ?? '';
|
|
26
|
-
if (!/^\d
|
|
36
|
+
if (!/^\d+(\.\d+)?$/.test(pasted)) {
|
|
27
37
|
event.preventDefault();
|
|
28
38
|
}
|
|
29
39
|
}
|
|
30
40
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DecimalOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
31
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DecimalOnlyDirective, isStandalone: true, selector: "[numbersOnly]", host: { listeners: { "keydown": "onKeyDown($event)", "paste": "onPaste($event)" } }, ngImport: i0 }); }
|
|
41
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DecimalOnlyDirective, isStandalone: true, selector: "[numbersOnly]", host: { listeners: { "keydown": "onKeyDown($event)", "blur": "onBlur()", "paste": "onPaste($event)" } }, ngImport: i0 }); }
|
|
32
42
|
}
|
|
33
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DecimalOnlyDirective, decorators: [{
|
|
34
44
|
type: Directive,
|
|
@@ -39,8 +49,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
39
49
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onKeyDown: [{
|
|
40
50
|
type: HostListener,
|
|
41
51
|
args: ['keydown', ['$event']]
|
|
52
|
+
}], onBlur: [{
|
|
53
|
+
type: HostListener,
|
|
54
|
+
args: ['blur']
|
|
42
55
|
}], onPaste: [{
|
|
43
56
|
type: HostListener,
|
|
44
57
|
args: ['paste', ['$event']]
|
|
45
58
|
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnVtYmVyc09ubHlEaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtZm9ybS1jYW52YXMvTnVtYmVyc09ubHlEaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXBFLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFBb0IsRUFBZ0M7UUFBaEMsT0FBRSxHQUFGLEVBQUUsQ0FBOEI7SUFBRyxDQUFDO0lBR3hELFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1FBRXBDLElBQ0UsS0FBSyxDQUFDLE9BQU87WUFDYixLQUFLLENBQUMsT0FBTztZQUNiLEtBQUssQ0FBQyxNQUFNO1lBQ1osQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUM1RixDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDdEIsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN2QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFHRCxNQUFNO1FBQ0osTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDcEMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlCLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFHRCxPQUFPLENBQUMsS0FBcUI7UUFDM0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDOytHQTlDVSxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytFQU1DLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNkJuQyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTTtnQkFTcEIsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tudW1iZXJzT25seV0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIERlY2ltYWxPbmx5RGlyZWN0aXZlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pikge31cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IHZhbHVlID0gaW5wdXQudmFsdWU7XHJcbiAgICBjb25zdCBzdGFydCA9IGlucHV0LnNlbGVjdGlvblN0YXJ0ID8/IDA7XHJcbiAgICBjb25zdCBlbmQgPSBpbnB1dC5zZWxlY3Rpb25FbmQgPz8gMDtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIGV2ZW50LmN0cmxLZXkgfHxcclxuICAgICAgZXZlbnQubWV0YUtleSB8fFxyXG4gICAgICBldmVudC5hbHRLZXkgfHxcclxuICAgICAgWydCYWNrc3BhY2UnLCAnVGFiJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0JywgJ0RlbGV0ZScsICdIb21lJywgJ0VuZCddLmluY2x1ZGVzKGV2ZW50LmtleSlcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJy4nKSB7XHJcbiAgICAgIGlmICh2YWx1ZS5pbmNsdWRlcygnLicpIHx8IHN0YXJ0ID09PSAwIHx8IHN0YXJ0ID09PSB2YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZXZlbnQua2V5IDwgJzAnIHx8IGV2ZW50LmtleSA+ICc5Jykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXHJcbiAgb25CbHVyKCkge1xyXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoaW5wdXQudmFsdWUuZW5kc1dpdGgoJy4nKSkge1xyXG4gICAgICBpbnB1dC52YWx1ZSA9IGlucHV0LnZhbHVlLnNsaWNlKDAsIC0xKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3Bhc3RlJywgWyckZXZlbnQnXSlcclxuICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkge1xyXG4gICAgY29uc3QgcGFzdGVkID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dCcpID8/ICcnO1xyXG4gICAgaWYgKCEvXlxcZCsoXFwuXFxkKyk/JC8udGVzdChwYXN0ZWQpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1805,6 +1805,10 @@ class DecimalOnlyDirective {
|
|
|
1805
1805
|
this.el = el;
|
|
1806
1806
|
}
|
|
1807
1807
|
onKeyDown(event) {
|
|
1808
|
+
const input = this.el.nativeElement;
|
|
1809
|
+
const value = input.value;
|
|
1810
|
+
const start = input.selectionStart ?? 0;
|
|
1811
|
+
const end = input.selectionEnd ?? 0;
|
|
1808
1812
|
if (event.ctrlKey ||
|
|
1809
1813
|
event.metaKey ||
|
|
1810
1814
|
event.altKey ||
|
|
@@ -1812,7 +1816,7 @@ class DecimalOnlyDirective {
|
|
|
1812
1816
|
return;
|
|
1813
1817
|
}
|
|
1814
1818
|
if (event.key === '.') {
|
|
1815
|
-
if (
|
|
1819
|
+
if (value.includes('.') || start === 0 || start === value.length) {
|
|
1816
1820
|
event.preventDefault();
|
|
1817
1821
|
}
|
|
1818
1822
|
return;
|
|
@@ -1821,14 +1825,20 @@ class DecimalOnlyDirective {
|
|
|
1821
1825
|
event.preventDefault();
|
|
1822
1826
|
}
|
|
1823
1827
|
}
|
|
1828
|
+
onBlur() {
|
|
1829
|
+
const input = this.el.nativeElement;
|
|
1830
|
+
if (input.value.endsWith('.')) {
|
|
1831
|
+
input.value = input.value.slice(0, -1);
|
|
1832
|
+
}
|
|
1833
|
+
}
|
|
1824
1834
|
onPaste(event) {
|
|
1825
1835
|
const pasted = event.clipboardData?.getData('text') ?? '';
|
|
1826
|
-
if (!/^\d
|
|
1836
|
+
if (!/^\d+(\.\d+)?$/.test(pasted)) {
|
|
1827
1837
|
event.preventDefault();
|
|
1828
1838
|
}
|
|
1829
1839
|
}
|
|
1830
1840
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DecimalOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1831
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DecimalOnlyDirective, isStandalone: true, selector: "[numbersOnly]", host: { listeners: { "keydown": "onKeyDown($event)", "paste": "onPaste($event)" } }, ngImport: i0 }); }
|
|
1841
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DecimalOnlyDirective, isStandalone: true, selector: "[numbersOnly]", host: { listeners: { "keydown": "onKeyDown($event)", "blur": "onBlur()", "paste": "onPaste($event)" } }, ngImport: i0 }); }
|
|
1832
1842
|
}
|
|
1833
1843
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DecimalOnlyDirective, decorators: [{
|
|
1834
1844
|
type: Directive,
|
|
@@ -1839,6 +1849,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1839
1849
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onKeyDown: [{
|
|
1840
1850
|
type: HostListener,
|
|
1841
1851
|
args: ['keydown', ['$event']]
|
|
1852
|
+
}], onBlur: [{
|
|
1853
|
+
type: HostListener,
|
|
1854
|
+
args: ['blur']
|
|
1842
1855
|
}], onPaste: [{
|
|
1843
1856
|
type: HostListener,
|
|
1844
1857
|
args: ['paste', ['$event']]
|