@taiga-ui/kit 3.33.1-dev.main-1fa4789 → 3.34.0-dev.main-23baa20
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/bundles/taiga-ui-kit-components-input-count.umd.js +6 -24
- package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
- package/bundles/taiga-ui-kit-components-input-number.umd.js +68 -95
- package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
- package/components/input-count/input-count.component.d.ts +0 -3
- package/components/input-number/input-number.component.d.ts +7 -6
- package/components/input-number/input-number.module.d.ts +4 -4
- package/esm2015/components/input-count/input-count.component.js +5 -18
- package/esm2015/components/input-number/input-number.component.js +47 -73
- package/esm2015/components/input-number/input-number.module.js +6 -9
- package/fesm2015/taiga-ui-kit-components-input-count.js +4 -17
- package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
- package/fesm2015/taiga-ui-kit-components-input-number.js +51 -79
- package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,16 +1,19 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
3
|
import { InjectionToken, ChangeDetectorRef, Component, ChangeDetectionStrategy, Optional, Self, Inject, ViewChild, Input, ContentChildren, HostListener, Directive, NgModule } from '@angular/core';
|
|
3
4
|
import * as i6 from '@angular/forms';
|
|
4
5
|
import { NgControl } from '@angular/forms';
|
|
5
|
-
import
|
|
6
|
-
import { AbstractTuiNullableControl, EMPTY_QUERY, tuiClamp, TUI_IS_IOS, tuiAsFocusableItemAccessor, tuiAsControl,
|
|
6
|
+
import { maskitoParseNumber, maskitoNumberOptionsGenerator } from '@maskito/kit';
|
|
7
|
+
import { AbstractTuiNullableControl, EMPTY_QUERY, tuiClamp, CHAR_HYPHEN, CHAR_MINUS, TUI_IS_IOS, tuiAsFocusableItemAccessor, tuiAsControl, tuiPure } from '@taiga-ui/cdk';
|
|
7
8
|
import * as i1 from '@taiga-ui/core';
|
|
8
|
-
import {
|
|
9
|
-
import * as
|
|
9
|
+
import { TUI_DECIMAL_SYMBOLS, tuiGetFractionPartPadded, tuiFormatNumber, TUI_NUMBER_FORMAT, TuiPrimitiveTextfieldComponent, AbstractTuiTextfieldHost, tuiAsTextfieldHost, TuiPrimitiveTextfieldModule, TuiTextfieldControllerModule, TuiButtonModule, TuiTextfieldComponent } from '@taiga-ui/core';
|
|
10
|
+
import * as i5 from '@tinkoff/ng-polymorpheus';
|
|
10
11
|
import { PolymorpheusOutletDirective, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
|
|
11
12
|
import * as i2 from '@taiga-ui/kit/directives';
|
|
12
|
-
import {
|
|
13
|
-
import * as i3 from '@angular
|
|
13
|
+
import { TuiValueAccessorModule } from '@taiga-ui/kit/directives';
|
|
14
|
+
import * as i3 from '@maskito/angular';
|
|
15
|
+
import { MaskitoModule } from '@maskito/angular';
|
|
16
|
+
import * as i4 from '@angular/common';
|
|
14
17
|
import { CommonModule } from '@angular/common';
|
|
15
18
|
|
|
16
19
|
/** Default values for the input number options. */
|
|
@@ -54,19 +57,6 @@ class TuiInputNumberComponent extends AbstractTuiNullableControl {
|
|
|
54
57
|
/** @deprecated use `tuiTextfieldPostfix` from {@link TuiTextfieldControllerModule} instead */
|
|
55
58
|
this.postfix = '';
|
|
56
59
|
this.polymorpheusValueContent = EMPTY_QUERY;
|
|
57
|
-
this.mask = (allowNegative, decimal, decimalLimit, nativeFocusableElement) => ({
|
|
58
|
-
mask: tuiCreateNumberMask({
|
|
59
|
-
allowNegative,
|
|
60
|
-
decimalLimit,
|
|
61
|
-
allowDecimal: decimal !== 'never',
|
|
62
|
-
requireDecimal: decimal === 'always',
|
|
63
|
-
decimalSymbol: this.numberFormat.decimalSeparator,
|
|
64
|
-
thousandSymbol: this.numberFormat.thousandSeparator,
|
|
65
|
-
autoCorrectDecimalSymbol: tuiEnableAutoCorrectDecimalSymbol(this.numberFormat),
|
|
66
|
-
}),
|
|
67
|
-
pipe: tuiCreateAutoCorrectedNumberPipe(decimal === 'always' ? decimalLimit : 0, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator, nativeFocusableElement, allowNegative, this.isIOS),
|
|
68
|
-
guide: false,
|
|
69
|
-
});
|
|
70
60
|
}
|
|
71
61
|
get nativeFocusableElement() {
|
|
72
62
|
return !this.primitiveTextfield || this.computedDisabled
|
|
@@ -94,13 +84,10 @@ class TuiInputNumberComponent extends AbstractTuiNullableControl {
|
|
|
94
84
|
return DEFAULT_MAX_LENGTH + precision + takeThousand;
|
|
95
85
|
}
|
|
96
86
|
get formattedValue() {
|
|
97
|
-
return this.getFormattedValue(this.value || 0);
|
|
87
|
+
return this.value !== null ? this.getFormattedValue(this.value || 0) : '';
|
|
98
88
|
}
|
|
99
89
|
get computedValue() {
|
|
100
|
-
|
|
101
|
-
return this.nativeValue;
|
|
102
|
-
}
|
|
103
|
-
return this.value === null ? '' : this.formattedValue;
|
|
90
|
+
return this.focused ? this.nativeValue : this.formattedValue;
|
|
104
91
|
}
|
|
105
92
|
get canDecrement() {
|
|
106
93
|
return this.interactive && (this.value || 0) > this.min;
|
|
@@ -108,6 +95,9 @@ class TuiInputNumberComponent extends AbstractTuiNullableControl {
|
|
|
108
95
|
get canIncrement() {
|
|
109
96
|
return this.interactive && (this.value || 0) < this.max;
|
|
110
97
|
}
|
|
98
|
+
get mask() {
|
|
99
|
+
return this.calculateMask(this.precision, this.decimal, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator, this.min, this.max);
|
|
100
|
+
}
|
|
111
101
|
onArrow(step) {
|
|
112
102
|
if (!step) {
|
|
113
103
|
return;
|
|
@@ -115,48 +105,26 @@ class TuiInputNumberComponent extends AbstractTuiNullableControl {
|
|
|
115
105
|
this.value = tuiClamp((this.value || 0) + step, this.min, this.max);
|
|
116
106
|
this.nativeValue = this.formattedValue;
|
|
117
107
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const decimal = this.nativeValue.split(this.numberFormat.decimalSeparator)[1] || '';
|
|
121
|
-
const { nativeFocusableElement } = this;
|
|
122
|
-
if (decimal.length < this.precision ||
|
|
123
|
-
!nativeFocusableElement ||
|
|
124
|
-
!nativeFocusableElement.selectionStart ||
|
|
125
|
-
this.nativeValue[nativeFocusableElement.selectionStart] !== '0') {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
event.preventDefault();
|
|
129
|
-
nativeFocusableElement.selectionStart++;
|
|
130
|
-
}
|
|
131
|
-
onValueChange(value) {
|
|
108
|
+
onValueChange(nativeValue) {
|
|
109
|
+
const parsedValue = maskitoParseNumber(nativeValue, this.numberFormat.decimalSeparator);
|
|
132
110
|
this.unfinishedValue = null;
|
|
133
|
-
if (
|
|
111
|
+
if (Number.isNaN(parsedValue)) {
|
|
134
112
|
this.value = null;
|
|
135
113
|
return;
|
|
136
114
|
}
|
|
137
115
|
if (this.isNativeValueNotFinished) {
|
|
138
|
-
this.unfinishedValue =
|
|
116
|
+
this.unfinishedValue = nativeValue;
|
|
139
117
|
return;
|
|
140
118
|
}
|
|
141
|
-
|
|
142
|
-
if (capped === null || Number.isNaN(capped)) {
|
|
119
|
+
if (parsedValue < this.min || parsedValue > this.max) {
|
|
143
120
|
return;
|
|
144
121
|
}
|
|
145
|
-
this.value =
|
|
146
|
-
if (capped !==
|
|
147
|
-
tuiMaskedNumberStringToNumber(value, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator)) {
|
|
148
|
-
this.nativeValue = this.formattedValue;
|
|
149
|
-
}
|
|
122
|
+
this.value = parsedValue;
|
|
150
123
|
}
|
|
124
|
+
// TODO: delete this method after fix: https://github.com/Tinkoff/maskito/issues/330
|
|
151
125
|
onKeyDown(event) {
|
|
152
|
-
if (
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
if (this.decimal === 'never') {
|
|
156
|
-
event.preventDefault();
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
if (this.nativeValue.includes(this.numberFormat.decimalSeparator)) {
|
|
126
|
+
if (TUI_DECIMAL_SYMBOLS.includes(event.key) &&
|
|
127
|
+
this.nativeValue.includes(this.numberFormat.decimalSeparator)) {
|
|
160
128
|
event.preventDefault();
|
|
161
129
|
this.setCaretAfterComma();
|
|
162
130
|
}
|
|
@@ -167,14 +135,14 @@ class TuiInputNumberComponent extends AbstractTuiNullableControl {
|
|
|
167
135
|
return;
|
|
168
136
|
}
|
|
169
137
|
const nativeNumberValue = this.unfinishedValue
|
|
170
|
-
?
|
|
138
|
+
? maskitoParseNumber(this.unfinishedValue, this.numberFormat.decimalSeparator)
|
|
171
139
|
: this.nativeNumberValue;
|
|
172
140
|
this.unfinishedValue = null;
|
|
173
141
|
if (Number.isNaN(nativeNumberValue)) {
|
|
174
142
|
this.clear();
|
|
175
143
|
return;
|
|
176
144
|
}
|
|
177
|
-
this.value =
|
|
145
|
+
this.value = nativeNumberValue;
|
|
178
146
|
this.nativeValue = this.formattedValue;
|
|
179
147
|
}
|
|
180
148
|
getFormattedValue(value) {
|
|
@@ -189,7 +157,7 @@ class TuiInputNumberComponent extends AbstractTuiNullableControl {
|
|
|
189
157
|
if (this.focused && this.decimal !== 'always') {
|
|
190
158
|
decimalLimit = fraction.length;
|
|
191
159
|
}
|
|
192
|
-
return tuiFormatNumber(value, Object.assign(Object.assign({}, this.numberFormat), { decimalLimit }));
|
|
160
|
+
return tuiFormatNumber(value, Object.assign(Object.assign({}, this.numberFormat), { decimalLimit })).replace(CHAR_HYPHEN, CHAR_MINUS);
|
|
193
161
|
}
|
|
194
162
|
get isNativeValueNotFinished() {
|
|
195
163
|
const nativeNumberValue = this.nativeNumberValue;
|
|
@@ -207,21 +175,28 @@ class TuiInputNumberComponent extends AbstractTuiNullableControl {
|
|
|
207
175
|
this.primitiveTextfield.value = value;
|
|
208
176
|
this.nativeFocusableElement.value = value;
|
|
209
177
|
}
|
|
178
|
+
writeValue(value) {
|
|
179
|
+
super.writeValue(value);
|
|
180
|
+
this.nativeValue = this.formattedValue;
|
|
181
|
+
}
|
|
210
182
|
get nativeNumberValue() {
|
|
211
|
-
return
|
|
183
|
+
return maskitoParseNumber(this.nativeValue, this.numberFormat.decimalSeparator);
|
|
184
|
+
}
|
|
185
|
+
calculateMask(precision, decimalMode, decimalSeparator, thousandSeparator, min, max) {
|
|
186
|
+
return maskitoNumberOptionsGenerator({
|
|
187
|
+
decimalSeparator,
|
|
188
|
+
thousandSeparator,
|
|
189
|
+
min,
|
|
190
|
+
max,
|
|
191
|
+
precision: decimalMode === 'never' ? 0 : precision,
|
|
192
|
+
decimalZeroPadding: decimalMode === 'always',
|
|
193
|
+
});
|
|
212
194
|
}
|
|
213
195
|
clear() {
|
|
214
196
|
this.nativeValue = '';
|
|
215
197
|
this.value = null;
|
|
216
198
|
}
|
|
217
|
-
|
|
218
|
-
const value = tuiMaskedNumberStringToNumber(inputValue, this.numberFormat.decimalSeparator, this.numberFormat.thousandSeparator);
|
|
219
|
-
const capped = value < 0
|
|
220
|
-
? Math.max(Math.max(this.min, Number.MIN_SAFE_INTEGER), value)
|
|
221
|
-
: Math.min(value, Math.min(this.max, Number.MAX_SAFE_INTEGER));
|
|
222
|
-
const ineligibleValue = Number.isNaN(capped) || capped < this.min || capped > this.max;
|
|
223
|
-
return ineligibleValue ? null : capped;
|
|
224
|
-
}
|
|
199
|
+
// TODO: delete this method after fix: https://github.com/Tinkoff/maskito/issues/330
|
|
225
200
|
setCaretAfterComma() {
|
|
226
201
|
if (!this.nativeFocusableElement) {
|
|
227
202
|
return;
|
|
@@ -231,10 +206,13 @@ class TuiInputNumberComponent extends AbstractTuiNullableControl {
|
|
|
231
206
|
}
|
|
232
207
|
}
|
|
233
208
|
TuiInputNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputNumberComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_INPUT_NUMBER_OPTIONS }, { token: TUI_NUMBER_FORMAT }, { token: TUI_IS_IOS }], target: i0.ɵɵFactoryTarget.Component });
|
|
234
|
-
TuiInputNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputNumberComponent, selector: "tui-input-number", inputs: { min: "min", max: "max", decimal: "decimal", precision: "precision", step: "step", prefix: "prefix", postfix: "postfix" }, host: { listeners: { "keydown.arrowDown": "onArrow(-step)", "keydown.arrowUp": "onArrow(step)"
|
|
209
|
+
TuiInputNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiInputNumberComponent, selector: "tui-input-number", inputs: { min: "min", max: "max", decimal: "decimal", precision: "precision", step: "step", prefix: "prefix", postfix: "postfix" }, host: { listeners: { "keydown.arrowDown": "onArrow(-step)", "keydown.arrowUp": "onArrow(step)" } }, providers: [
|
|
235
210
|
tuiAsFocusableItemAccessor(TuiInputNumberComponent),
|
|
236
211
|
tuiAsControl(TuiInputNumberComponent),
|
|
237
|
-
], queries: [{ propertyName: "polymorpheusValueContent", predicate: PolymorpheusOutletDirective, descendants: true }], viewQueries: [{ propertyName: "primitiveTextfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-primitive-textfield\n #textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [
|
|
212
|
+
], queries: [{ propertyName: "polymorpheusValueContent", predicate: PolymorpheusOutletDirective, descendants: true }], viewQueries: [{ propertyName: "primitiveTextfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-primitive-textfield\n #textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [maskito]=\"mask\"\n [value]=\"computedValue\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix\"\n [focusable]=\"focusable\"\n (valueChange)=\"onValueChange($event)\"\n (focusedChange)=\"onFocused($event)\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n <div\n *ngIf=\"polymorpheusValueContent.length\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value-content\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text\">\n {{ text }}\n </ng-container>\n </div>\n</tui-primitive-textfield>\n\n<section\n *ngIf=\"step\"\n class=\"t-buttons\"\n>\n <button\n tuiIconButton\n type=\"button\"\n size=\"s\"\n class=\"t-button\"\n [icon]=\"options.icons.up\"\n [appearance]=\"textfield.appearance\"\n [disabled]=\"!canIncrement\"\n [focusable]=\"false\"\n (mousedown.prevent)=\"nativeFocusableElement?.focus()\"\n (click.prevent)=\"onArrow(step)\"\n >\n +\n </button>\n <button\n tuiIconButton\n type=\"button\"\n size=\"s\"\n class=\"t-button\"\n [icon]=\"options.icons.down\"\n [appearance]=\"textfield.appearance\"\n [disabled]=\"!canDecrement\"\n [focusable]=\"false\"\n (mousedown.prevent)=\"nativeFocusableElement?.focus()\"\n (click.prevent)=\"onArrow(-step)\"\n >\n -\n </button>\n</section>\n\n<ng-container *ngIf=\"polymorpheusValueContent.changes | async\"></ng-container>\n\n<ng-template #valueContent>\n <ng-content select=\"tuiContent\"></ng-content>\n</ng-template>\n", styles: [":host{display:flex;border-radius:var(--tui-radius-m);text-align:left}.t-textfield{flex:1;max-width:100%;border-radius:inherit;text-align:inherit}.t-textfield:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.t-value-content{width:100%}.t-buttons{display:flex;flex-direction:column;align-items:stretch;margin-left:.125rem}[data-size=s]+.t-buttons{flex-direction:row-reverse}[data-size=s]+.t-buttons .t-button:first-child{margin:0 0 0 .125rem;border-radius:0 var(--tui-radius-m) var(--tui-radius-m) 0}[data-size=s]+.t-buttons .t-button:last-child{border-radius:0}[data-size=m]+.t-buttons .t-button{width:calc(var(--tui-height-m) * .75)}[data-size=l]+.t-buttons .t-button{width:calc(var(--tui-height-l) * .75)}.t-button{display:flex;flex:1;height:auto}.t-button:first-child{margin-bottom:.125rem;border-radius:0 var(--tui-radius-m) 0 0}.t-button:last-child{border-radius:0 0 var(--tui-radius-m)}\n"], components: [{ type: i1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }, { type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], directives: [{ type: i1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i2.TuiValueAccessorDirective, selector: "[tuiValueAccessor]" }, { type: i3.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
213
|
+
__decorate([
|
|
214
|
+
tuiPure
|
|
215
|
+
], TuiInputNumberComponent.prototype, "calculateMask", null);
|
|
238
216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputNumberComponent, decorators: [{
|
|
239
217
|
type: Component,
|
|
240
218
|
args: [{
|
|
@@ -292,10 +270,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
292
270
|
}, {
|
|
293
271
|
type: HostListener,
|
|
294
272
|
args: ['keydown.arrowUp', ['step']]
|
|
295
|
-
}],
|
|
296
|
-
type: HostListener,
|
|
297
|
-
args: ['keydown.0', ['$event']]
|
|
298
|
-
}] } });
|
|
273
|
+
}], calculateMask: [] } });
|
|
299
274
|
|
|
300
275
|
class TuiInputNumberDirective extends AbstractTuiTextfieldHost {
|
|
301
276
|
get value() {
|
|
@@ -326,8 +301,7 @@ class TuiInputNumberModule {
|
|
|
326
301
|
}
|
|
327
302
|
TuiInputNumberModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
328
303
|
TuiInputNumberModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputNumberModule, declarations: [TuiInputNumberComponent, TuiInputNumberDirective], imports: [CommonModule,
|
|
329
|
-
|
|
330
|
-
TuiMapperPipeModule,
|
|
304
|
+
MaskitoModule,
|
|
331
305
|
TuiPrimitiveTextfieldModule,
|
|
332
306
|
TuiTextfieldControllerModule,
|
|
333
307
|
TuiValueAccessorModule,
|
|
@@ -335,8 +309,7 @@ TuiInputNumberModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ve
|
|
|
335
309
|
TuiButtonModule], exports: [TuiInputNumberComponent, TuiInputNumberDirective, TuiTextfieldComponent] });
|
|
336
310
|
TuiInputNumberModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiInputNumberModule, imports: [[
|
|
337
311
|
CommonModule,
|
|
338
|
-
|
|
339
|
-
TuiMapperPipeModule,
|
|
312
|
+
MaskitoModule,
|
|
340
313
|
TuiPrimitiveTextfieldModule,
|
|
341
314
|
TuiTextfieldControllerModule,
|
|
342
315
|
TuiValueAccessorModule,
|
|
@@ -348,8 +321,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
348
321
|
args: [{
|
|
349
322
|
imports: [
|
|
350
323
|
CommonModule,
|
|
351
|
-
|
|
352
|
-
TuiMapperPipeModule,
|
|
324
|
+
MaskitoModule,
|
|
353
325
|
TuiPrimitiveTextfieldModule,
|
|
354
326
|
TuiTextfieldControllerModule,
|
|
355
327
|
TuiValueAccessorModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-input-number.js","sources":["../../../projects/kit/components/input-number/input-number-options.ts","../../../projects/kit/components/input-number/input-number.component.ts","../../../projects/kit/components/input-number/input-number.template.html","../../../projects/kit/components/input-number/input-number.directive.ts","../../../projects/kit/components/input-number/input-number.module.ts","../../../projects/kit/components/input-number/taiga-ui-kit-components-input-number.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiDecimal} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiInputNumberOptions {\n readonly icons: Readonly<{\n up: PolymorpheusContent;\n down: PolymorpheusContent;\n }>;\n readonly min: number;\n readonly max: number;\n readonly step: number;\n readonly decimal: TuiDecimal;\n readonly precision: number;\n}\n\n/** Default values for the input number options. */\nexport const TUI_INPUT_NUMBER_DEFAULT_OPTIONS: TuiInputNumberOptions = {\n icons: {\n up: `tuiIconPlus`,\n down: `tuiIconMinus`,\n },\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER,\n step: 0,\n decimal: `not-zero`,\n precision: 2,\n};\n\n/**\n * Default parameters for input count component\n */\nexport const TUI_INPUT_NUMBER_OPTIONS = new InjectionToken<TuiInputNumberOptions>(\n `[TUI_INPUT_NUMBER_OPTIONS]`,\n {\n factory: () => TUI_INPUT_NUMBER_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiInputNumberOptionsProvider: (\n options: Partial<TuiInputNumberOptions>,\n) => ValueProvider = (options: Partial<TuiInputNumberOptions>) => ({\n provide: TUI_INPUT_NUMBER_OPTIONS,\n useValue: {...TUI_INPUT_NUMBER_DEFAULT_OPTIONS, ...options},\n});\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n HostListener,\n Inject,\n Input,\n Optional,\n QueryList,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {\n AbstractTuiNullableControl,\n EMPTY_QUERY,\n TUI_IS_IOS,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n tuiClamp,\n TuiFocusableElementAccessor,\n TuiInputMode,\n TuiMapper,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DECIMAL_SYMBOLS,\n TUI_NUMBER_FORMAT,\n tuiCreateAutoCorrectedNumberPipe,\n tuiCreateNumberMask,\n TuiDecimal,\n tuiEnableAutoCorrectDecimalSymbol,\n tuiFormatNumber,\n tuiGetFractionPartPadded,\n tuiMaskedMoneyValueIsEmpty,\n tuiMaskedNumberStringToNumber,\n TuiNumberFormatSettings,\n TuiPrimitiveTextfieldComponent,\n TuiTextMaskOptions,\n} from '@taiga-ui/core';\nimport {PolymorpheusOutletDirective} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_INPUT_NUMBER_OPTIONS, TuiInputNumberOptions} from './input-number-options';\n\nconst DEFAULT_MAX_LENGTH = 18;\n\n@Component({\n selector: 'tui-input-number',\n templateUrl: './input-number.template.html',\n styleUrls: ['./input-number.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputNumberComponent),\n tuiAsControl(TuiInputNumberComponent),\n ],\n})\nexport class TuiInputNumberComponent\n extends AbstractTuiNullableControl<number>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly primitiveTextfield?: TuiPrimitiveTextfieldComponent;\n\n private unfinishedValue: string | null = '';\n\n @Input()\n min = this.options.min;\n\n @Input()\n max = this.options.max;\n\n @Input()\n decimal = this.options.decimal;\n\n @Input()\n precision = this.options.precision;\n\n @Input()\n step = this.options.step;\n\n /** @deprecated use `tuiTextfieldPrefix` from {@link TuiTextfieldControllerModule} instead */\n @Input()\n prefix = '';\n\n /** @deprecated use `tuiTextfieldPostfix` from {@link TuiTextfieldControllerModule} instead */\n @Input()\n postfix = '';\n\n @ContentChildren(PolymorpheusOutletDirective, {descendants: true})\n readonly polymorpheusValueContent: QueryList<unknown> = EMPTY_QUERY;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef)\n cdr: ChangeDetectorRef,\n @Inject(TUI_INPUT_NUMBER_OPTIONS)\n readonly options: TuiInputNumberOptions,\n @Inject(TUI_NUMBER_FORMAT)\n private readonly numberFormat: TuiNumberFormatSettings,\n @Inject(TUI_IS_IOS) private readonly isIOS: boolean,\n ) {\n super(control, cdr);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return !this.primitiveTextfield || this.computedDisabled\n ? null\n : this.primitiveTextfield.nativeFocusableElement;\n }\n\n get focused(): boolean {\n return !!this.primitiveTextfield && this.primitiveTextfield.focused;\n }\n\n get isNegativeAllowed(): boolean {\n return this.min < 0;\n }\n\n get inputMode(): TuiInputMode {\n if (this.isIOS && this.isNegativeAllowed) {\n // iPhone does not have minus sign if inputMode is equal to 'numeric' / 'decimal'\n return 'text';\n }\n\n return this.decimal === 'never' ? 'numeric' : 'decimal';\n }\n\n get calculatedMaxLength(): number {\n const decimalPart =\n this.decimal !== 'never' &&\n this.nativeValue.includes(this.numberFormat.decimalSeparator);\n const precision = decimalPart ? Math.min(this.precision + 1, 20) : 0;\n const takeThousand = this.numberFormat.thousandSeparator.repeat(5).length;\n\n return DEFAULT_MAX_LENGTH + precision + takeThousand;\n }\n\n get formattedValue(): string {\n return this.getFormattedValue(this.value || 0);\n }\n\n get computedValue(): string {\n if (this.focused) {\n return this.nativeValue;\n }\n\n return this.value === null ? '' : this.formattedValue;\n }\n\n get canDecrement(): boolean {\n return this.interactive && (this.value || 0) > this.min;\n }\n\n get canIncrement(): boolean {\n return this.interactive && (this.value || 0) < this.max;\n }\n\n @HostListener('keydown.arrowDown', ['-step'])\n @HostListener('keydown.arrowUp', ['step'])\n onArrow(step: number | null): void {\n if (!step) {\n return;\n }\n\n this.value = tuiClamp((this.value || 0) + step, this.min, this.max);\n this.nativeValue = this.formattedValue;\n }\n\n // TODO: Review if it's still necessary with maskito\n @HostListener('keydown.0', ['$event'])\n onZero(event: KeyboardEvent): void {\n const decimal =\n this.nativeValue.split(this.numberFormat.decimalSeparator)[1] || '';\n const {nativeFocusableElement} = this;\n\n if (\n decimal.length < this.precision ||\n !nativeFocusableElement ||\n !nativeFocusableElement.selectionStart ||\n this.nativeValue[nativeFocusableElement.selectionStart] !== '0'\n ) {\n return;\n }\n\n event.preventDefault();\n nativeFocusableElement.selectionStart++;\n }\n\n mask: TuiMapper<boolean, TuiTextMaskOptions> = (\n allowNegative: boolean,\n decimal: TuiDecimal,\n decimalLimit: number,\n nativeFocusableElement: HTMLInputElement | null,\n ) => ({\n mask: tuiCreateNumberMask({\n allowNegative,\n decimalLimit,\n allowDecimal: decimal !== 'never',\n requireDecimal: decimal === 'always',\n decimalSymbol: this.numberFormat.decimalSeparator,\n thousandSymbol: this.numberFormat.thousandSeparator,\n autoCorrectDecimalSymbol: tuiEnableAutoCorrectDecimalSymbol(\n this.numberFormat,\n ),\n }),\n pipe: tuiCreateAutoCorrectedNumberPipe(\n decimal === 'always' ? decimalLimit : 0,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n nativeFocusableElement,\n allowNegative,\n this.isIOS,\n ),\n guide: false,\n });\n\n onValueChange(value: string): void {\n this.unfinishedValue = null;\n\n if (tuiMaskedMoneyValueIsEmpty(value)) {\n this.value = null;\n\n return;\n }\n\n if (this.isNativeValueNotFinished) {\n this.unfinishedValue = value;\n\n return;\n }\n\n const capped = this.absoluteCapInputValue(value);\n\n if (capped === null || Number.isNaN(capped)) {\n return;\n }\n\n this.value = capped;\n\n if (\n capped !==\n tuiMaskedNumberStringToNumber(\n value,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n )\n ) {\n this.nativeValue = this.formattedValue;\n }\n }\n\n onKeyDown(event: KeyboardEvent): void {\n if (!TUI_DECIMAL_SYMBOLS.includes(event.key)) {\n return;\n }\n\n if (this.decimal === 'never') {\n event.preventDefault();\n\n return;\n }\n\n if (this.nativeValue.includes(this.numberFormat.decimalSeparator)) {\n event.preventDefault();\n this.setCaretAfterComma();\n }\n }\n\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n\n if (focused) {\n return;\n }\n\n const nativeNumberValue = this.unfinishedValue\n ? tuiMaskedNumberStringToNumber(\n this.unfinishedValue,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n )\n : this.nativeNumberValue;\n\n this.unfinishedValue = null;\n\n if (Number.isNaN(nativeNumberValue)) {\n this.clear();\n\n return;\n }\n\n this.value = Math.min(this.max, Math.max(this.min, nativeNumberValue));\n this.nativeValue = this.formattedValue;\n }\n\n getFormattedValue(value: number): string {\n const absValue = Math.abs(value);\n const hasFraction = absValue % 1 > 0;\n let decimalLimit =\n this.decimal === 'always' || (hasFraction && this.decimal !== 'never')\n ? this.precision\n : 0;\n\n const fraction = hasFraction\n ? tuiGetFractionPartPadded(value, this.precision)\n : '';\n\n if (this.focused && this.decimal !== 'always') {\n decimalLimit = fraction.length;\n }\n\n return tuiFormatNumber(value, {\n ...this.numberFormat,\n decimalLimit,\n });\n }\n\n private get isNativeValueNotFinished(): boolean {\n const nativeNumberValue = this.nativeNumberValue;\n\n return nativeNumberValue < 0\n ? nativeNumberValue > this.max\n : nativeNumberValue < this.min;\n }\n\n get nativeValue(): string {\n return this.nativeFocusableElement ? this.nativeFocusableElement.value : '';\n }\n\n set nativeValue(value: string) {\n if (!this.primitiveTextfield || !this.nativeFocusableElement) {\n return;\n }\n\n this.primitiveTextfield.value = value;\n this.nativeFocusableElement.value = value;\n }\n\n private get nativeNumberValue(): number {\n return tuiMaskedNumberStringToNumber(\n this.nativeValue,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n }\n\n private clear(): void {\n this.nativeValue = '';\n this.value = null;\n }\n\n private absoluteCapInputValue(inputValue: string): number | null {\n const value = tuiMaskedNumberStringToNumber(\n inputValue,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n );\n const capped =\n value < 0\n ? Math.max(Math.max(this.min, Number.MIN_SAFE_INTEGER), value)\n : Math.min(value, Math.min(this.max, Number.MAX_SAFE_INTEGER));\n const ineligibleValue =\n Number.isNaN(capped) || capped < this.min || capped > this.max;\n\n return ineligibleValue ? null : capped;\n }\n\n private setCaretAfterComma(): void {\n if (!this.nativeFocusableElement) {\n return;\n }\n\n const afterCommaPosition = this.nativeValue.length - this.precision;\n\n this.nativeFocusableElement.setSelectionRange(\n afterCommaPosition,\n afterCommaPosition,\n );\n }\n}\n","<tui-primitive-textfield\n #textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [textMask]=\"isNegativeAllowed | tuiMapper : mask : decimal : precision : nativeFocusableElement\"\n [value]=\"computedValue\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix\"\n [focusable]=\"focusable\"\n (valueChange)=\"onValueChange($event)\"\n (focusedChange)=\"onFocused($event)\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n <div\n *ngIf=\"polymorpheusValueContent.length\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value-content\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text\">\n {{ text }}\n </ng-container>\n </div>\n</tui-primitive-textfield>\n\n<section\n *ngIf=\"step\"\n class=\"t-buttons\"\n>\n <button\n tuiIconButton\n type=\"button\"\n size=\"s\"\n class=\"t-button\"\n [icon]=\"options.icons.up\"\n [appearance]=\"textfield.appearance\"\n [disabled]=\"!canIncrement\"\n [focusable]=\"false\"\n (mousedown.prevent)=\"nativeFocusableElement?.focus()\"\n (click.prevent)=\"onArrow(step)\"\n >\n +\n </button>\n <button\n tuiIconButton\n type=\"button\"\n size=\"s\"\n class=\"t-button\"\n [icon]=\"options.icons.down\"\n [appearance]=\"textfield.appearance\"\n [disabled]=\"!canDecrement\"\n [focusable]=\"false\"\n (mousedown.prevent)=\"nativeFocusableElement?.focus()\"\n (click.prevent)=\"onArrow(-step)\"\n >\n -\n </button>\n</section>\n\n<ng-container *ngIf=\"polymorpheusValueContent.changes | async\"></ng-container>\n\n<ng-template #valueContent>\n <ng-content select=\"tuiContent\"></ng-content>\n</ng-template>\n","import {Directive, DoCheck} from '@angular/core';\nimport {AbstractTuiTextfieldHost, tuiAsTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiInputNumberComponent} from './input-number.component';\n\n@Directive({\n selector: 'tui-input-number',\n providers: [tuiAsTextfieldHost(TuiInputNumberDirective)],\n})\nexport class TuiInputNumberDirective\n extends AbstractTuiTextfieldHost<TuiInputNumberComponent>\n implements DoCheck\n{\n input?: HTMLInputElement;\n\n override get value(): string {\n return this.host.computedValue;\n }\n\n onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n\n ngDoCheck(): void {\n if (!this.host.nativeFocusableElement) {\n return;\n }\n\n this.host.nativeFocusableElement.maxLength = this.host.calculatedMaxLength;\n this.host.nativeFocusableElement.inputMode = this.host.inputMode;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiMapperPipeModule} from '@taiga-ui/cdk';\nimport {\n TuiButtonModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TextMaskModule, TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputNumberComponent} from './input-number.component';\nimport {TuiInputNumberDirective} from './input-number.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TextMaskModule,\n TuiMapperPipeModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n PolymorpheusModule,\n TuiButtonModule,\n ],\n declarations: [TuiInputNumberComponent, TuiInputNumberDirective],\n exports: [TuiInputNumberComponent, TuiInputNumberDirective, TuiTextfieldComponent],\n})\nexport class TuiInputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-input-number.js","sources":["../../../projects/kit/components/input-number/input-number-options.ts","../../../projects/kit/components/input-number/input-number.component.ts","../../../projects/kit/components/input-number/input-number.template.html","../../../projects/kit/components/input-number/input-number.directive.ts","../../../projects/kit/components/input-number/input-number.module.ts","../../../projects/kit/components/input-number/taiga-ui-kit-components-input-number.ts"],"sourcesContent":["import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiDecimal} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiInputNumberOptions {\n readonly icons: Readonly<{\n up: PolymorpheusContent;\n down: PolymorpheusContent;\n }>;\n readonly min: number;\n readonly max: number;\n readonly step: number;\n readonly decimal: TuiDecimal;\n readonly precision: number;\n}\n\n/** Default values for the input number options. */\nexport const TUI_INPUT_NUMBER_DEFAULT_OPTIONS: TuiInputNumberOptions = {\n icons: {\n up: `tuiIconPlus`,\n down: `tuiIconMinus`,\n },\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER,\n step: 0,\n decimal: `not-zero`,\n precision: 2,\n};\n\n/**\n * Default parameters for input count component\n */\nexport const TUI_INPUT_NUMBER_OPTIONS = new InjectionToken<TuiInputNumberOptions>(\n `[TUI_INPUT_NUMBER_OPTIONS]`,\n {\n factory: () => TUI_INPUT_NUMBER_DEFAULT_OPTIONS,\n },\n);\n\nexport const tuiInputNumberOptionsProvider: (\n options: Partial<TuiInputNumberOptions>,\n) => ValueProvider = (options: Partial<TuiInputNumberOptions>) => ({\n provide: TUI_INPUT_NUMBER_OPTIONS,\n useValue: {...TUI_INPUT_NUMBER_DEFAULT_OPTIONS, ...options},\n});\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n HostListener,\n Inject,\n Input,\n Optional,\n QueryList,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {MaskitoOptions} from '@maskito/core';\nimport {maskitoNumberOptionsGenerator, maskitoParseNumber} from '@maskito/kit';\nimport {\n AbstractTuiNullableControl,\n CHAR_HYPHEN,\n CHAR_MINUS,\n EMPTY_QUERY,\n TUI_IS_IOS,\n tuiAsControl,\n tuiAsFocusableItemAccessor,\n tuiClamp,\n TuiFocusableElementAccessor,\n TuiInputMode,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_DECIMAL_SYMBOLS,\n TUI_NUMBER_FORMAT,\n TuiDecimal,\n tuiFormatNumber,\n tuiGetFractionPartPadded,\n TuiNumberFormatSettings,\n TuiPrimitiveTextfieldComponent,\n} from '@taiga-ui/core';\nimport {PolymorpheusOutletDirective} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_INPUT_NUMBER_OPTIONS, TuiInputNumberOptions} from './input-number-options';\n\nconst DEFAULT_MAX_LENGTH = 18;\n\n@Component({\n selector: 'tui-input-number',\n templateUrl: './input-number.template.html',\n styleUrls: ['./input-number.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputNumberComponent),\n tuiAsControl(TuiInputNumberComponent),\n ],\n})\nexport class TuiInputNumberComponent\n extends AbstractTuiNullableControl<number>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly primitiveTextfield?: TuiPrimitiveTextfieldComponent;\n\n private unfinishedValue: string | null = '';\n\n @Input()\n min = this.options.min;\n\n @Input()\n max = this.options.max;\n\n @Input()\n decimal = this.options.decimal;\n\n @Input()\n precision = this.options.precision;\n\n @Input()\n step = this.options.step;\n\n /** @deprecated use `tuiTextfieldPrefix` from {@link TuiTextfieldControllerModule} instead */\n @Input()\n prefix = '';\n\n /** @deprecated use `tuiTextfieldPostfix` from {@link TuiTextfieldControllerModule} instead */\n @Input()\n postfix = '';\n\n @ContentChildren(PolymorpheusOutletDirective, {descendants: true})\n readonly polymorpheusValueContent: QueryList<unknown> = EMPTY_QUERY;\n\n constructor(\n @Optional()\n @Self()\n @Inject(NgControl)\n control: NgControl | null,\n @Inject(ChangeDetectorRef)\n cdr: ChangeDetectorRef,\n @Inject(TUI_INPUT_NUMBER_OPTIONS)\n readonly options: TuiInputNumberOptions,\n @Inject(TUI_NUMBER_FORMAT)\n private readonly numberFormat: TuiNumberFormatSettings,\n @Inject(TUI_IS_IOS) private readonly isIOS: boolean,\n ) {\n super(control, cdr);\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n return !this.primitiveTextfield || this.computedDisabled\n ? null\n : this.primitiveTextfield.nativeFocusableElement;\n }\n\n get focused(): boolean {\n return !!this.primitiveTextfield && this.primitiveTextfield.focused;\n }\n\n get isNegativeAllowed(): boolean {\n return this.min < 0;\n }\n\n get inputMode(): TuiInputMode {\n if (this.isIOS && this.isNegativeAllowed) {\n // iPhone does not have minus sign if inputMode is equal to 'numeric' / 'decimal'\n return 'text';\n }\n\n return this.decimal === 'never' ? 'numeric' : 'decimal';\n }\n\n get calculatedMaxLength(): number {\n const decimalPart =\n this.decimal !== 'never' &&\n this.nativeValue.includes(this.numberFormat.decimalSeparator);\n const precision = decimalPart ? Math.min(this.precision + 1, 20) : 0;\n const takeThousand = this.numberFormat.thousandSeparator.repeat(5).length;\n\n return DEFAULT_MAX_LENGTH + precision + takeThousand;\n }\n\n get formattedValue(): string {\n return this.value !== null ? this.getFormattedValue(this.value || 0) : '';\n }\n\n get computedValue(): string {\n return this.focused ? this.nativeValue : this.formattedValue;\n }\n\n get canDecrement(): boolean {\n return this.interactive && (this.value || 0) > this.min;\n }\n\n get canIncrement(): boolean {\n return this.interactive && (this.value || 0) < this.max;\n }\n\n get mask(): MaskitoOptions {\n return this.calculateMask(\n this.precision,\n this.decimal,\n this.numberFormat.decimalSeparator,\n this.numberFormat.thousandSeparator,\n this.min,\n this.max,\n );\n }\n\n @HostListener('keydown.arrowDown', ['-step'])\n @HostListener('keydown.arrowUp', ['step'])\n onArrow(step: number | null): void {\n if (!step) {\n return;\n }\n\n this.value = tuiClamp((this.value || 0) + step, this.min, this.max);\n this.nativeValue = this.formattedValue;\n }\n\n onValueChange(nativeValue: string): void {\n const parsedValue = maskitoParseNumber(\n nativeValue,\n this.numberFormat.decimalSeparator,\n );\n\n this.unfinishedValue = null;\n\n if (Number.isNaN(parsedValue)) {\n this.value = null;\n\n return;\n }\n\n if (this.isNativeValueNotFinished) {\n this.unfinishedValue = nativeValue;\n\n return;\n }\n\n if (parsedValue < this.min || parsedValue > this.max) {\n return;\n }\n\n this.value = parsedValue;\n }\n\n // TODO: delete this method after fix: https://github.com/Tinkoff/maskito/issues/330\n onKeyDown(event: KeyboardEvent): void {\n if (\n TUI_DECIMAL_SYMBOLS.includes(event.key) &&\n this.nativeValue.includes(this.numberFormat.decimalSeparator)\n ) {\n event.preventDefault();\n this.setCaretAfterComma();\n }\n }\n\n onFocused(focused: boolean): void {\n this.updateFocused(focused);\n\n if (focused) {\n return;\n }\n\n const nativeNumberValue = this.unfinishedValue\n ? maskitoParseNumber(this.unfinishedValue, this.numberFormat.decimalSeparator)\n : this.nativeNumberValue;\n\n this.unfinishedValue = null;\n\n if (Number.isNaN(nativeNumberValue)) {\n this.clear();\n\n return;\n }\n\n this.value = nativeNumberValue;\n this.nativeValue = this.formattedValue;\n }\n\n getFormattedValue(value: number): string {\n const absValue = Math.abs(value);\n const hasFraction = absValue % 1 > 0;\n let decimalLimit =\n this.decimal === 'always' || (hasFraction && this.decimal !== 'never')\n ? this.precision\n : 0;\n\n const fraction = hasFraction\n ? tuiGetFractionPartPadded(value, this.precision)\n : '';\n\n if (this.focused && this.decimal !== 'always') {\n decimalLimit = fraction.length;\n }\n\n return tuiFormatNumber(value, {\n ...this.numberFormat,\n decimalLimit,\n }).replace(CHAR_HYPHEN, CHAR_MINUS);\n }\n\n private get isNativeValueNotFinished(): boolean {\n const nativeNumberValue = this.nativeNumberValue;\n\n return nativeNumberValue < 0\n ? nativeNumberValue > this.max\n : nativeNumberValue < this.min;\n }\n\n get nativeValue(): string {\n return this.nativeFocusableElement ? this.nativeFocusableElement.value : '';\n }\n\n set nativeValue(value: string) {\n if (!this.primitiveTextfield || !this.nativeFocusableElement) {\n return;\n }\n\n this.primitiveTextfield.value = value;\n this.nativeFocusableElement.value = value;\n }\n\n override writeValue(value: number | null): void {\n super.writeValue(value);\n this.nativeValue = this.formattedValue;\n }\n\n private get nativeNumberValue(): number {\n return maskitoParseNumber(this.nativeValue, this.numberFormat.decimalSeparator);\n }\n\n @tuiPure\n private calculateMask(\n precision: number,\n decimalMode: TuiDecimal,\n decimalSeparator: string,\n thousandSeparator: string,\n min: number,\n max: number,\n ): MaskitoOptions {\n return maskitoNumberOptionsGenerator({\n decimalSeparator,\n thousandSeparator,\n min,\n max,\n precision: decimalMode === 'never' ? 0 : precision,\n decimalZeroPadding: decimalMode === 'always',\n });\n }\n\n private clear(): void {\n this.nativeValue = '';\n this.value = null;\n }\n\n // TODO: delete this method after fix: https://github.com/Tinkoff/maskito/issues/330\n private setCaretAfterComma(): void {\n if (!this.nativeFocusableElement) {\n return;\n }\n\n const afterCommaPosition = this.nativeValue.length - this.precision;\n\n this.nativeFocusableElement.setSelectionRange(\n afterCommaPosition,\n afterCommaPosition,\n );\n }\n}\n","<tui-primitive-textfield\n #textfield\n tuiValueAccessor\n class=\"t-textfield\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoActive]=\"pseudoActive\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [disabled]=\"computedDisabled\"\n [maskito]=\"mask\"\n [value]=\"computedValue\"\n [prefix]=\"prefix\"\n [postfix]=\"postfix\"\n [focusable]=\"focusable\"\n (valueChange)=\"onValueChange($event)\"\n (focusedChange)=\"onFocused($event)\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content></ng-content>\n <ng-content\n select=\"input\"\n ngProjectAs=\"input\"\n ></ng-content>\n <div\n *ngIf=\"polymorpheusValueContent.length\"\n ngProjectAs=\"tuiContent\"\n class=\"t-value-content\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text\">\n {{ text }}\n </ng-container>\n </div>\n</tui-primitive-textfield>\n\n<section\n *ngIf=\"step\"\n class=\"t-buttons\"\n>\n <button\n tuiIconButton\n type=\"button\"\n size=\"s\"\n class=\"t-button\"\n [icon]=\"options.icons.up\"\n [appearance]=\"textfield.appearance\"\n [disabled]=\"!canIncrement\"\n [focusable]=\"false\"\n (mousedown.prevent)=\"nativeFocusableElement?.focus()\"\n (click.prevent)=\"onArrow(step)\"\n >\n +\n </button>\n <button\n tuiIconButton\n type=\"button\"\n size=\"s\"\n class=\"t-button\"\n [icon]=\"options.icons.down\"\n [appearance]=\"textfield.appearance\"\n [disabled]=\"!canDecrement\"\n [focusable]=\"false\"\n (mousedown.prevent)=\"nativeFocusableElement?.focus()\"\n (click.prevent)=\"onArrow(-step)\"\n >\n -\n </button>\n</section>\n\n<ng-container *ngIf=\"polymorpheusValueContent.changes | async\"></ng-container>\n\n<ng-template #valueContent>\n <ng-content select=\"tuiContent\"></ng-content>\n</ng-template>\n","import {Directive, DoCheck} from '@angular/core';\nimport {AbstractTuiTextfieldHost, tuiAsTextfieldHost} from '@taiga-ui/core';\n\nimport {TuiInputNumberComponent} from './input-number.component';\n\n@Directive({\n selector: 'tui-input-number',\n providers: [tuiAsTextfieldHost(TuiInputNumberDirective)],\n})\nexport class TuiInputNumberDirective\n extends AbstractTuiTextfieldHost<TuiInputNumberComponent>\n implements DoCheck\n{\n input?: HTMLInputElement;\n\n override get value(): string {\n return this.host.computedValue;\n }\n\n onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n\n ngDoCheck(): void {\n if (!this.host.nativeFocusableElement) {\n return;\n }\n\n this.host.nativeFocusableElement.maxLength = this.host.calculatedMaxLength;\n this.host.nativeFocusableElement.inputMode = this.host.inputMode;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MaskitoModule} from '@maskito/angular';\nimport {\n TuiButtonModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiValueAccessorModule} from '@taiga-ui/kit/directives';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiInputNumberComponent} from './input-number.component';\nimport {TuiInputNumberDirective} from './input-number.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n MaskitoModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiValueAccessorModule,\n PolymorpheusModule,\n TuiButtonModule,\n ],\n declarations: [TuiInputNumberComponent, TuiInputNumberDirective],\n exports: [TuiInputNumberComponent, TuiInputNumberDirective, TuiTextfieldComponent],\n})\nexport class TuiInputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/kit",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.34.0-dev.main-23baa20",
|
|
4
4
|
"description": "Taiga UI Angular main components kit",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"@maskito/angular": "1.1.0",
|
|
17
17
|
"@maskito/core": "1.1.0",
|
|
18
18
|
"@maskito/kit": "1.1.0",
|
|
19
|
-
"@ng-web-apis/intersection-observer": "3.0
|
|
19
|
+
"@ng-web-apis/intersection-observer": "3.1.0",
|
|
20
20
|
"text-mask-core": "5.1.2",
|
|
21
21
|
"tslib": ">=2.0.0"
|
|
22
22
|
},
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
"@angular/core": ">=12.0.0",
|
|
26
26
|
"@angular/forms": ">=12.0.0",
|
|
27
27
|
"@angular/router": ">=12.0.0",
|
|
28
|
-
"@ng-web-apis/common": ">=
|
|
29
|
-
"@ng-web-apis/mutation-observer": ">=
|
|
30
|
-
"@ng-web-apis/resize-observer": ">=
|
|
31
|
-
"@taiga-ui/cdk": ">=3.
|
|
32
|
-
"@taiga-ui/core": ">=3.
|
|
33
|
-
"@taiga-ui/i18n": ">=3.
|
|
28
|
+
"@ng-web-apis/common": ">=3.0.0",
|
|
29
|
+
"@ng-web-apis/mutation-observer": ">=3.0.0",
|
|
30
|
+
"@ng-web-apis/resize-observer": ">=3.0.0",
|
|
31
|
+
"@taiga-ui/cdk": ">=3.34.0",
|
|
32
|
+
"@taiga-ui/core": ">=3.34.0",
|
|
33
|
+
"@taiga-ui/i18n": ">=3.34.0",
|
|
34
34
|
"@tinkoff/ng-polymorpheus": ">=4.0.0",
|
|
35
35
|
"rxjs": ">=6.0.0"
|
|
36
36
|
},
|