@progress/kendo-angular-inputs 18.1.0-develop.1 → 18.1.0-develop.11
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/common/utils.d.ts +4 -0
- package/directives.d.ts +7 -1
- package/esm2022/colorpicker/color-contrast-svg.component.mjs +1 -1
- package/esm2022/common/utils.mjs +4 -0
- package/esm2022/directives.mjs +10 -0
- package/esm2022/index.mjs +3 -0
- package/esm2022/inputs.module.mjs +4 -2
- package/esm2022/otpinput/localization/custom-messages.component.mjs +43 -0
- package/esm2022/otpinput/localization/localized-textbox-messages.directive.mjs +39 -0
- package/esm2022/otpinput/localization/messages.mjs +34 -0
- package/esm2022/otpinput/models/otpinput-type.mjs +5 -0
- package/esm2022/otpinput/models/separator-icon.mjs +5 -0
- package/esm2022/otpinput/otpinput-separator.component.mjs +83 -0
- package/esm2022/otpinput/otpinput.component.mjs +900 -0
- package/esm2022/package-metadata.mjs +2 -2
- package/fesm2022/progress-kendo-angular-inputs.mjs +1150 -85
- package/index.d.ts +4 -0
- package/inputs.module.d.ts +3 -1
- package/otpinput/localization/custom-messages.component.d.ts +17 -0
- package/otpinput/localization/localized-textbox-messages.directive.d.ts +16 -0
- package/otpinput/localization/messages.d.ts +24 -0
- package/otpinput/models/otpinput-type.d.ts +10 -0
- package/otpinput/models/separator-icon.d.ts +12 -0
- package/otpinput/otpinput-separator.component.d.ts +25 -0
- package/otpinput/otpinput.component.d.ts +287 -0
- package/package.json +10 -10
|
@@ -108,6 +108,10 @@ const getStylingClasses = (componentType, stylingOption, previousValue, newValue
|
|
|
108
108
|
* Used to differentiate between the Radio and CheckBox components in their base class.
|
|
109
109
|
*/
|
|
110
110
|
const COMPONENT_TYPE = new InjectionToken('TYPE_TOKEN');
|
|
111
|
+
/**
|
|
112
|
+
* @hidden
|
|
113
|
+
*/
|
|
114
|
+
const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`{\\s*${name}\\s*}`, 'g'), value);
|
|
111
115
|
|
|
112
116
|
/**
|
|
113
117
|
* @hidden
|
|
@@ -547,8 +551,8 @@ const packageMetadata = {
|
|
|
547
551
|
productName: 'Kendo UI for Angular',
|
|
548
552
|
productCode: 'KENDOUIANGULAR',
|
|
549
553
|
productCodes: ['KENDOUIANGULAR'],
|
|
550
|
-
publishDate:
|
|
551
|
-
version: '18.1.0-develop.
|
|
554
|
+
publishDate: 1738662336,
|
|
555
|
+
version: '18.1.0-develop.11',
|
|
552
556
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
553
557
|
};
|
|
554
558
|
|
|
@@ -2468,7 +2472,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2468
2472
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
|
|
2469
2473
|
|
|
2470
2474
|
const FOCUSED$5 = 'k-focus';
|
|
2471
|
-
const DEFAULT_SIZE$
|
|
2475
|
+
const DEFAULT_SIZE$a = 'medium';
|
|
2472
2476
|
const DEFAULT_THUMB_ROUNDED = 'full';
|
|
2473
2477
|
const DEFAULT_TRACK_ROUNDED = 'full';
|
|
2474
2478
|
/**
|
|
@@ -2534,7 +2538,7 @@ class SwitchComponent {
|
|
|
2534
2538
|
* * `none`
|
|
2535
2539
|
*/
|
|
2536
2540
|
set size(size) {
|
|
2537
|
-
const newSize = size ? size : DEFAULT_SIZE$
|
|
2541
|
+
const newSize = size ? size : DEFAULT_SIZE$a;
|
|
2538
2542
|
this.handleClasses(newSize, 'size');
|
|
2539
2543
|
this._size = newSize;
|
|
2540
2544
|
}
|
|
@@ -3811,9 +3815,9 @@ const PARSABLE_DEFAULTS = {
|
|
|
3811
3815
|
step: 1
|
|
3812
3816
|
};
|
|
3813
3817
|
const FOCUSED$4 = 'k-focus';
|
|
3814
|
-
const DEFAULT_SIZE$
|
|
3815
|
-
const DEFAULT_ROUNDED$
|
|
3816
|
-
const DEFAULT_FILL_MODE$
|
|
3818
|
+
const DEFAULT_SIZE$9 = 'medium';
|
|
3819
|
+
const DEFAULT_ROUNDED$8 = 'medium';
|
|
3820
|
+
const DEFAULT_FILL_MODE$6 = 'solid';
|
|
3817
3821
|
/**
|
|
3818
3822
|
* Represents the [Kendo UI NumericTextBox component for Angular]({% slug overview_numerictextbox %}).
|
|
3819
3823
|
*/
|
|
@@ -3940,7 +3944,7 @@ class NumericTextBoxComponent {
|
|
|
3940
3944
|
* * `none`
|
|
3941
3945
|
*/
|
|
3942
3946
|
set size(size) {
|
|
3943
|
-
const newSize = size ? size : DEFAULT_SIZE$
|
|
3947
|
+
const newSize = size ? size : DEFAULT_SIZE$9;
|
|
3944
3948
|
this.handleClasses(newSize, 'size');
|
|
3945
3949
|
this._size = newSize;
|
|
3946
3950
|
}
|
|
@@ -3957,7 +3961,7 @@ class NumericTextBoxComponent {
|
|
|
3957
3961
|
* * `none`
|
|
3958
3962
|
*/
|
|
3959
3963
|
set rounded(rounded) {
|
|
3960
|
-
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$
|
|
3964
|
+
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$8;
|
|
3961
3965
|
this.handleClasses(newRounded, 'rounded');
|
|
3962
3966
|
this._rounded = newRounded;
|
|
3963
3967
|
}
|
|
@@ -3974,7 +3978,7 @@ class NumericTextBoxComponent {
|
|
|
3974
3978
|
* * `none`
|
|
3975
3979
|
*/
|
|
3976
3980
|
set fillMode(fillMode) {
|
|
3977
|
-
const newFillMode = fillMode ? fillMode : DEFAULT_FILL_MODE$
|
|
3981
|
+
const newFillMode = fillMode ? fillMode : DEFAULT_FILL_MODE$6;
|
|
3978
3982
|
this.handleClasses(newFillMode, 'fillMode');
|
|
3979
3983
|
this._fillMode = newFillMode;
|
|
3980
3984
|
}
|
|
@@ -5546,9 +5550,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
5546
5550
|
|
|
5547
5551
|
const resolvedPromise = Promise.resolve(null);
|
|
5548
5552
|
const FOCUSED$3 = 'k-focus';
|
|
5549
|
-
const DEFAULT_SIZE$
|
|
5550
|
-
const DEFAULT_ROUNDED$
|
|
5551
|
-
const DEFAULT_FILL_MODE$
|
|
5553
|
+
const DEFAULT_SIZE$8 = 'medium';
|
|
5554
|
+
const DEFAULT_ROUNDED$7 = 'medium';
|
|
5555
|
+
const DEFAULT_FILL_MODE$5 = 'solid';
|
|
5552
5556
|
/**
|
|
5553
5557
|
* Represents the [Kendo UI MaskedTextBox component for Angular]({% slug overview_maskedtextbox %}).
|
|
5554
5558
|
*
|
|
@@ -5606,7 +5610,7 @@ class MaskedTextBoxComponent {
|
|
|
5606
5610
|
* * `none`
|
|
5607
5611
|
*/
|
|
5608
5612
|
set size(size) {
|
|
5609
|
-
const newSize = size ? size : DEFAULT_SIZE$
|
|
5613
|
+
const newSize = size ? size : DEFAULT_SIZE$8;
|
|
5610
5614
|
this.handleClasses(newSize, 'size');
|
|
5611
5615
|
this._size = newSize;
|
|
5612
5616
|
}
|
|
@@ -5623,7 +5627,7 @@ class MaskedTextBoxComponent {
|
|
|
5623
5627
|
* * `none`
|
|
5624
5628
|
*/
|
|
5625
5629
|
set rounded(rounded) {
|
|
5626
|
-
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$
|
|
5630
|
+
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$7;
|
|
5627
5631
|
this.handleClasses(newRounded, 'rounded');
|
|
5628
5632
|
this._rounded = newRounded;
|
|
5629
5633
|
}
|
|
@@ -5640,7 +5644,7 @@ class MaskedTextBoxComponent {
|
|
|
5640
5644
|
* * `none`
|
|
5641
5645
|
*/
|
|
5642
5646
|
set fillMode(fillMode) {
|
|
5643
|
-
const newFillMode = fillMode ? fillMode : DEFAULT_FILL_MODE$
|
|
5647
|
+
const newFillMode = fillMode ? fillMode : DEFAULT_FILL_MODE$5;
|
|
5644
5648
|
this.handleClasses(newFillMode, 'fillMode');
|
|
5645
5649
|
this._fillMode = newFillMode;
|
|
5646
5650
|
}
|
|
@@ -6429,7 +6433,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
6429
6433
|
}] } });
|
|
6430
6434
|
|
|
6431
6435
|
const FOCUSED$2 = 'k-focus';
|
|
6432
|
-
const DEFAULT_SIZE$
|
|
6436
|
+
const DEFAULT_SIZE$7 = 'medium';
|
|
6433
6437
|
/**
|
|
6434
6438
|
* @hidden
|
|
6435
6439
|
*/
|
|
@@ -6489,7 +6493,7 @@ class RadioCheckBoxBase {
|
|
|
6489
6493
|
* * `none`
|
|
6490
6494
|
*/
|
|
6491
6495
|
set size(size) {
|
|
6492
|
-
const newSize = size ? size : DEFAULT_SIZE$
|
|
6496
|
+
const newSize = size ? size : DEFAULT_SIZE$7;
|
|
6493
6497
|
this.handleClasses(newSize, 'size');
|
|
6494
6498
|
this._size = newSize;
|
|
6495
6499
|
}
|
|
@@ -6653,7 +6657,7 @@ class RadioCheckBoxBase {
|
|
|
6653
6657
|
ngChange = (_) => { };
|
|
6654
6658
|
ngTouched = () => { };
|
|
6655
6659
|
_isFocused = false;
|
|
6656
|
-
_size = DEFAULT_SIZE$
|
|
6660
|
+
_size = DEFAULT_SIZE$7;
|
|
6657
6661
|
constructor(componentType, hostElement, renderer, cdr, ngZone, injector) {
|
|
6658
6662
|
this.componentType = componentType;
|
|
6659
6663
|
this.hostElement = hostElement;
|
|
@@ -6722,7 +6726,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
6722
6726
|
args: ['input', { static: true }]
|
|
6723
6727
|
}] } });
|
|
6724
6728
|
|
|
6725
|
-
const DEFAULT_ROUNDED$
|
|
6729
|
+
const DEFAULT_ROUNDED$6 = 'medium';
|
|
6726
6730
|
class CheckBoxComponent extends RadioCheckBoxBase {
|
|
6727
6731
|
renderer;
|
|
6728
6732
|
hostElement;
|
|
@@ -6758,7 +6762,7 @@ class CheckBoxComponent extends RadioCheckBoxBase {
|
|
|
6758
6762
|
* * `none`
|
|
6759
6763
|
*/
|
|
6760
6764
|
set rounded(rounded) {
|
|
6761
|
-
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$
|
|
6765
|
+
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$6;
|
|
6762
6766
|
this.handleClasses(newRounded, 'rounded');
|
|
6763
6767
|
this._rounded = newRounded;
|
|
6764
6768
|
}
|
|
@@ -6799,7 +6803,7 @@ class CheckBoxComponent extends RadioCheckBoxBase {
|
|
|
6799
6803
|
'aria-invalid': this.isControlInvalid
|
|
6800
6804
|
};
|
|
6801
6805
|
}
|
|
6802
|
-
_rounded = DEFAULT_ROUNDED$
|
|
6806
|
+
_rounded = DEFAULT_ROUNDED$6;
|
|
6803
6807
|
_checkedState = false;
|
|
6804
6808
|
constructor(renderer, hostElement, cdr, ngZone, injector) {
|
|
6805
6809
|
super('checkbox', hostElement, renderer, cdr, ngZone, injector);
|
|
@@ -6933,8 +6937,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
6933
6937
|
type: Output
|
|
6934
6938
|
}] } });
|
|
6935
6939
|
|
|
6936
|
-
const DEFAULT_SIZE$
|
|
6937
|
-
const DEFAULT_ROUNDED$
|
|
6940
|
+
const DEFAULT_SIZE$6 = 'medium';
|
|
6941
|
+
const DEFAULT_ROUNDED$5 = 'medium';
|
|
6938
6942
|
/**
|
|
6939
6943
|
* Represents the directive that renders the [Kendo UI CheckBox]({% slug overview_checkbox %}) input component.
|
|
6940
6944
|
* The directive is placed on input type="checkbox" elements.
|
|
@@ -6959,7 +6963,7 @@ class CheckBoxDirective {
|
|
|
6959
6963
|
* * `none`
|
|
6960
6964
|
*/
|
|
6961
6965
|
set size(size) {
|
|
6962
|
-
const newSize = size ? size : DEFAULT_SIZE$
|
|
6966
|
+
const newSize = size ? size : DEFAULT_SIZE$6;
|
|
6963
6967
|
this.handleClasses(newSize, 'size');
|
|
6964
6968
|
this._size = newSize;
|
|
6965
6969
|
}
|
|
@@ -6977,7 +6981,7 @@ class CheckBoxDirective {
|
|
|
6977
6981
|
* * `none`
|
|
6978
6982
|
*/
|
|
6979
6983
|
set rounded(rounded) {
|
|
6980
|
-
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$
|
|
6984
|
+
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$5;
|
|
6981
6985
|
this.handleClasses(newRounded, 'rounded');
|
|
6982
6986
|
this._rounded = newRounded;
|
|
6983
6987
|
}
|
|
@@ -8072,7 +8076,7 @@ class ColorContrastSvgComponent {
|
|
|
8072
8076
|
}
|
|
8073
8077
|
findValue(contrast, saturation, low, high, comparer) {
|
|
8074
8078
|
const mid = (low + high) / 2;
|
|
8075
|
-
const hsva =
|
|
8079
|
+
const hsva = { ...this.hsva.value, s: saturation / this.metrics.width, v: 1 - mid / this.metrics.height };
|
|
8076
8080
|
const currentContrast = getContrastFromTwoRGBAs(getRGBA(getColorFromHSV(hsva)), getRGBA(this.backgroundColor || ''));
|
|
8077
8081
|
if (low + 0.5 > high) {
|
|
8078
8082
|
if (currentContrast < contrast + 1 && currentContrast > contrast - 1) {
|
|
@@ -11314,9 +11318,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
11314
11318
|
|
|
11315
11319
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
11316
11320
|
const DOM_FOCUS_EVENTS = ['focus', 'blur'];
|
|
11317
|
-
const DEFAULT_SIZE$
|
|
11318
|
-
const DEFAULT_ROUNDED$
|
|
11319
|
-
const DEFAULT_FILL_MODE$
|
|
11321
|
+
const DEFAULT_SIZE$5 = 'medium';
|
|
11322
|
+
const DEFAULT_ROUNDED$4 = 'medium';
|
|
11323
|
+
const DEFAULT_FILL_MODE$4 = 'solid';
|
|
11320
11324
|
/**
|
|
11321
11325
|
* @hidden
|
|
11322
11326
|
*/
|
|
@@ -11520,7 +11524,7 @@ class ColorPickerComponent {
|
|
|
11520
11524
|
* * `none`
|
|
11521
11525
|
*/
|
|
11522
11526
|
set size(size) {
|
|
11523
|
-
const newSize = size ? size : DEFAULT_SIZE$
|
|
11527
|
+
const newSize = size ? size : DEFAULT_SIZE$5;
|
|
11524
11528
|
this.handleClasses(newSize, 'size');
|
|
11525
11529
|
this._size = newSize;
|
|
11526
11530
|
}
|
|
@@ -11539,7 +11543,7 @@ class ColorPickerComponent {
|
|
|
11539
11543
|
* * `none`
|
|
11540
11544
|
*/
|
|
11541
11545
|
set rounded(rounded) {
|
|
11542
|
-
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$
|
|
11546
|
+
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$4;
|
|
11543
11547
|
this.handleClasses(newRounded, 'rounded');
|
|
11544
11548
|
this._rounded = newRounded;
|
|
11545
11549
|
}
|
|
@@ -11557,7 +11561,7 @@ class ColorPickerComponent {
|
|
|
11557
11561
|
* * `none`
|
|
11558
11562
|
*/
|
|
11559
11563
|
set fillMode(fillMode) {
|
|
11560
|
-
const newFillMode = fillMode ? fillMode : DEFAULT_FILL_MODE$
|
|
11564
|
+
const newFillMode = fillMode ? fillMode : DEFAULT_FILL_MODE$4;
|
|
11561
11565
|
this.handleClasses(newFillMode, 'fillMode');
|
|
11562
11566
|
this._fillMode = newFillMode;
|
|
11563
11567
|
}
|
|
@@ -13056,7 +13060,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
13056
13060
|
type: Output
|
|
13057
13061
|
}] } });
|
|
13058
13062
|
|
|
13059
|
-
const DEFAULT_SIZE$
|
|
13063
|
+
const DEFAULT_SIZE$4 = 'medium';
|
|
13060
13064
|
/**
|
|
13061
13065
|
* Represents the directive that renders the [Kendo UI RadioButton]({% slug overview_checkbox %}) input component.
|
|
13062
13066
|
* The directive is placed on input type="radio" elements.
|
|
@@ -13080,7 +13084,7 @@ class RadioButtonDirective {
|
|
|
13080
13084
|
* * `none`
|
|
13081
13085
|
*/
|
|
13082
13086
|
set size(size) {
|
|
13083
|
-
const newSize = size ? size : DEFAULT_SIZE$
|
|
13087
|
+
const newSize = size ? size : DEFAULT_SIZE$4;
|
|
13084
13088
|
this.handleClasses(newSize, 'size');
|
|
13085
13089
|
this._size = newSize;
|
|
13086
13090
|
}
|
|
@@ -14075,9 +14079,9 @@ const noop = () => { };
|
|
|
14075
14079
|
let _id = 0;
|
|
14076
14080
|
const nextId = () => 'k-signature-focusable-' + _id++;
|
|
14077
14081
|
const FOCUSED_CLASS = 'k-focus';
|
|
14078
|
-
const DEFAULT_SIZE$
|
|
14079
|
-
const DEFAULT_ROUNDED$
|
|
14080
|
-
const DEFAULT_FILL_MODE$
|
|
14082
|
+
const DEFAULT_SIZE$3 = 'medium';
|
|
14083
|
+
const DEFAULT_ROUNDED$3 = 'medium';
|
|
14084
|
+
const DEFAULT_FILL_MODE$3 = 'solid';
|
|
14081
14085
|
const DEFAULT_POPUP_SCALE = 3;
|
|
14082
14086
|
const DEFAULT_EXPORT_SCALE = 2;
|
|
14083
14087
|
const DEFAULT_COLOR = '#000000';
|
|
@@ -14170,7 +14174,7 @@ class SignatureComponent {
|
|
|
14170
14174
|
* * `large`
|
|
14171
14175
|
* * `none`
|
|
14172
14176
|
*/
|
|
14173
|
-
size = DEFAULT_SIZE$
|
|
14177
|
+
size = DEFAULT_SIZE$3;
|
|
14174
14178
|
/**
|
|
14175
14179
|
* The `rounded` property specifies the border radius of the signature
|
|
14176
14180
|
* ([see example](slug:appearance_signature#rounded-corners)).
|
|
@@ -14182,7 +14186,7 @@ class SignatureComponent {
|
|
|
14182
14186
|
* * `full` (not supported by the Signature)
|
|
14183
14187
|
* * `none`
|
|
14184
14188
|
*/
|
|
14185
|
-
rounded = DEFAULT_ROUNDED$
|
|
14189
|
+
rounded = DEFAULT_ROUNDED$3;
|
|
14186
14190
|
/**
|
|
14187
14191
|
* The `fillMode` property specifies the background and border styles of the signature
|
|
14188
14192
|
* ([see example](slug:appearance_signature#toc-fill-mode)).
|
|
@@ -14193,7 +14197,7 @@ class SignatureComponent {
|
|
|
14193
14197
|
* * `outline`
|
|
14194
14198
|
* * `none`
|
|
14195
14199
|
*/
|
|
14196
|
-
fillMode = DEFAULT_FILL_MODE$
|
|
14200
|
+
fillMode = DEFAULT_FILL_MODE$3;
|
|
14197
14201
|
/**
|
|
14198
14202
|
* The stroke color of the signature.
|
|
14199
14203
|
*
|
|
@@ -14585,9 +14589,9 @@ class SignatureComponent {
|
|
|
14585
14589
|
const classList = this.element.nativeElement.classList;
|
|
14586
14590
|
this.hostClasses.forEach(([name]) => classList.remove(name));
|
|
14587
14591
|
this.hostClasses = [
|
|
14588
|
-
[`k-signature-${SIZE_MAP[this.size || DEFAULT_SIZE$
|
|
14589
|
-
[`k-input-${this.fillMode || DEFAULT_FILL_MODE$
|
|
14590
|
-
[`k-rounded-${ROUNDED_MAP[this.rounded || DEFAULT_ROUNDED$
|
|
14592
|
+
[`k-signature-${SIZE_MAP[this.size || DEFAULT_SIZE$3]}`, !isNone(this.size)],
|
|
14593
|
+
[`k-input-${this.fillMode || DEFAULT_FILL_MODE$3}`, !isNone(this.fillMode)],
|
|
14594
|
+
[`k-rounded-${ROUNDED_MAP[this.rounded || DEFAULT_ROUNDED$3]}`, !isNone(this.rounded)]
|
|
14591
14595
|
];
|
|
14592
14596
|
this.hostClasses.forEach(([name, enabled]) => classList.toggle(name, enabled));
|
|
14593
14597
|
}
|
|
@@ -15366,9 +15370,9 @@ const resizeClasses = {
|
|
|
15366
15370
|
'auto': 'k-resize-none'
|
|
15367
15371
|
};
|
|
15368
15372
|
const FOCUSED$1 = 'k-focus';
|
|
15369
|
-
const DEFAULT_SIZE$
|
|
15370
|
-
const DEFAULT_ROUNDED$
|
|
15371
|
-
const DEFAULT_FILL_MODE$
|
|
15373
|
+
const DEFAULT_SIZE$2 = 'medium';
|
|
15374
|
+
const DEFAULT_ROUNDED$2 = 'medium';
|
|
15375
|
+
const DEFAULT_FILL_MODE$2 = 'solid';
|
|
15372
15376
|
/**
|
|
15373
15377
|
* Represents the [Kendo UI TextArea component for Angular]({% slug overview_textarea %}).
|
|
15374
15378
|
*/
|
|
@@ -15495,7 +15499,7 @@ class TextAreaComponent extends TextFieldsBase {
|
|
|
15495
15499
|
* * `none`
|
|
15496
15500
|
*/
|
|
15497
15501
|
set size(size) {
|
|
15498
|
-
const newSize = size ? size : DEFAULT_SIZE$
|
|
15502
|
+
const newSize = size ? size : DEFAULT_SIZE$2;
|
|
15499
15503
|
this.handleClasses(newSize, 'size');
|
|
15500
15504
|
this._size = newSize;
|
|
15501
15505
|
}
|
|
@@ -15513,7 +15517,7 @@ class TextAreaComponent extends TextFieldsBase {
|
|
|
15513
15517
|
* * `none`
|
|
15514
15518
|
*/
|
|
15515
15519
|
set rounded(rounded) {
|
|
15516
|
-
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$
|
|
15520
|
+
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$2;
|
|
15517
15521
|
this.handleClasses(newRounded, 'rounded');
|
|
15518
15522
|
this._rounded = newRounded;
|
|
15519
15523
|
}
|
|
@@ -15531,7 +15535,7 @@ class TextAreaComponent extends TextFieldsBase {
|
|
|
15531
15535
|
* * `none`
|
|
15532
15536
|
*/
|
|
15533
15537
|
set fillMode(fillMode) {
|
|
15534
|
-
const newFillMode = fillMode ? fillMode : DEFAULT_FILL_MODE$
|
|
15538
|
+
const newFillMode = fillMode ? fillMode : DEFAULT_FILL_MODE$2;
|
|
15535
15539
|
this.handleClasses(newFillMode, 'fillMode');
|
|
15536
15540
|
this._fillMode = newFillMode;
|
|
15537
15541
|
}
|
|
@@ -16289,9 +16293,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
16289
16293
|
|
|
16290
16294
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
16291
16295
|
const FOCUSED = 'k-focus';
|
|
16292
|
-
const DEFAULT_SIZE = 'medium';
|
|
16293
|
-
const DEFAULT_ROUNDED = 'medium';
|
|
16294
|
-
const DEFAULT_FILL_MODE = 'solid';
|
|
16296
|
+
const DEFAULT_SIZE$1 = 'medium';
|
|
16297
|
+
const DEFAULT_ROUNDED$1 = 'medium';
|
|
16298
|
+
const DEFAULT_FILL_MODE$1 = 'solid';
|
|
16295
16299
|
const iconsMap = { checkIcon, exclamationCircleIcon, xIcon };
|
|
16296
16300
|
class TextBoxComponent {
|
|
16297
16301
|
localizationService;
|
|
@@ -16405,7 +16409,7 @@ class TextBoxComponent {
|
|
|
16405
16409
|
* * `none`
|
|
16406
16410
|
*/
|
|
16407
16411
|
set size(size) {
|
|
16408
|
-
const newSize = size ? size : DEFAULT_SIZE;
|
|
16412
|
+
const newSize = size ? size : DEFAULT_SIZE$1;
|
|
16409
16413
|
this.handleClasses(newSize, 'size');
|
|
16410
16414
|
this._size = newSize;
|
|
16411
16415
|
}
|
|
@@ -16424,7 +16428,7 @@ class TextBoxComponent {
|
|
|
16424
16428
|
* * `none`
|
|
16425
16429
|
*/
|
|
16426
16430
|
set rounded(rounded) {
|
|
16427
|
-
const newRounded = rounded ? rounded : DEFAULT_ROUNDED;
|
|
16431
|
+
const newRounded = rounded ? rounded : DEFAULT_ROUNDED$1;
|
|
16428
16432
|
this.handleClasses(newRounded, 'rounded');
|
|
16429
16433
|
this._rounded = newRounded;
|
|
16430
16434
|
}
|
|
@@ -16442,7 +16446,7 @@ class TextBoxComponent {
|
|
|
16442
16446
|
* * `none`
|
|
16443
16447
|
*/
|
|
16444
16448
|
set fillMode(fillMode) {
|
|
16445
|
-
const newFillMode = fillMode ? fillMode : DEFAULT_FILL_MODE;
|
|
16449
|
+
const newFillMode = fillMode ? fillMode : DEFAULT_FILL_MODE$1;
|
|
16446
16450
|
this.handleClasses(newFillMode, 'fillMode');
|
|
16447
16451
|
this._fillMode = newFillMode;
|
|
16448
16452
|
}
|
|
@@ -17247,37 +17251,1097 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17247
17251
|
}] } });
|
|
17248
17252
|
|
|
17249
17253
|
/**
|
|
17250
|
-
*
|
|
17254
|
+
* @hidden
|
|
17251
17255
|
*/
|
|
17252
|
-
|
|
17253
|
-
|
|
17254
|
-
|
|
17255
|
-
|
|
17256
|
-
|
|
17257
|
-
|
|
17258
|
-
|
|
17259
|
-
|
|
17260
|
-
|
|
17261
|
-
|
|
17262
|
-
|
|
17256
|
+
class OTPInputSeparatorComponent {
|
|
17257
|
+
set separator(otpSeparator) {
|
|
17258
|
+
this._separator = otpSeparator;
|
|
17259
|
+
this.clearSeparator();
|
|
17260
|
+
if (!isPresent$1(otpSeparator)) {
|
|
17261
|
+
return;
|
|
17262
|
+
}
|
|
17263
|
+
if (typeof otpSeparator === 'string') {
|
|
17264
|
+
this.hasText = true;
|
|
17265
|
+
return;
|
|
17266
|
+
}
|
|
17267
|
+
if (typeof otpSeparator.value !== 'string') {
|
|
17268
|
+
this.hasSVGIcon = otpSeparator?.type === 'svgIcon';
|
|
17269
|
+
this.separatorSVGIcon = otpSeparator.value;
|
|
17270
|
+
return;
|
|
17271
|
+
}
|
|
17272
|
+
this.hasIconClass = otpSeparator?.type === 'iconClass';
|
|
17273
|
+
this.hasFontIcon = otpSeparator?.type === 'fontIcon';
|
|
17274
|
+
this.separatorIconString = otpSeparator.value;
|
|
17275
|
+
}
|
|
17276
|
+
get separator() {
|
|
17277
|
+
return this._separator;
|
|
17278
|
+
}
|
|
17279
|
+
wrapperClass = true;
|
|
17280
|
+
hasText;
|
|
17281
|
+
hasIconClass;
|
|
17282
|
+
hasSVGIcon;
|
|
17283
|
+
hasFontIcon;
|
|
17284
|
+
separatorIconString;
|
|
17285
|
+
separatorSVGIcon;
|
|
17286
|
+
_separator;
|
|
17287
|
+
clearSeparator() {
|
|
17288
|
+
this.hasText = false;
|
|
17289
|
+
this.hasFontIcon = false;
|
|
17290
|
+
this.hasIconClass = false;
|
|
17291
|
+
this.hasSVGIcon = false;
|
|
17292
|
+
}
|
|
17293
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OTPInputSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17294
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OTPInputSeparatorComponent, isStandalone: true, selector: "kendo-otpinput-separator", inputs: { separator: "separator" }, host: { properties: { "class.k-otp-separator": "this.wrapperClass" } }, exportAs: ["kendoOTPInputSeparator"], ngImport: i0, template: `
|
|
17295
|
+
<ng-container *ngIf="hasText">{{this.separator}}</ng-container>
|
|
17296
|
+
<span *ngIf="hasIconClass" [ngClass]="separatorIconString"></span>
|
|
17297
|
+
<kendo-icon-wrapper
|
|
17298
|
+
*ngIf="hasFontIcon || hasSVGIcon"
|
|
17299
|
+
[name]="separatorIconString"
|
|
17300
|
+
[svgIcon]="separatorSVGIcon"
|
|
17301
|
+
></kendo-icon-wrapper>
|
|
17302
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
17303
|
+
}
|
|
17304
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OTPInputSeparatorComponent, decorators: [{
|
|
17305
|
+
type: Component,
|
|
17306
|
+
args: [{
|
|
17307
|
+
exportAs: 'kendoOTPInputSeparator',
|
|
17308
|
+
selector: 'kendo-otpinput-separator',
|
|
17309
|
+
template: `
|
|
17310
|
+
<ng-container *ngIf="hasText">{{this.separator}}</ng-container>
|
|
17311
|
+
<span *ngIf="hasIconClass" [ngClass]="separatorIconString"></span>
|
|
17312
|
+
<kendo-icon-wrapper
|
|
17313
|
+
*ngIf="hasFontIcon || hasSVGIcon"
|
|
17314
|
+
[name]="separatorIconString"
|
|
17315
|
+
[svgIcon]="separatorSVGIcon"
|
|
17316
|
+
></kendo-icon-wrapper>
|
|
17317
|
+
`,
|
|
17318
|
+
standalone: true,
|
|
17319
|
+
imports: [NgIf, NgClass, IconWrapperComponent]
|
|
17320
|
+
}]
|
|
17321
|
+
}], propDecorators: { separator: [{
|
|
17322
|
+
type: Input
|
|
17323
|
+
}], wrapperClass: [{
|
|
17324
|
+
type: HostBinding,
|
|
17325
|
+
args: ['class.k-otp-separator']
|
|
17326
|
+
}] } });
|
|
17327
|
+
|
|
17263
17328
|
/**
|
|
17264
|
-
*
|
|
17329
|
+
* @hidden
|
|
17265
17330
|
*/
|
|
17266
|
-
|
|
17267
|
-
|
|
17268
|
-
|
|
17269
|
-
|
|
17270
|
-
|
|
17271
|
-
|
|
17272
|
-
|
|
17331
|
+
class OTPInputMessages extends ComponentMessages {
|
|
17332
|
+
/**
|
|
17333
|
+
* The aria-label of the OTP Input. Follows the pattern **Input {currentInput} of {totalInputs}, current value {value}** by default.
|
|
17334
|
+
* Тhe default label text when the current input is 1, and the total number of inputs is 4 will be
|
|
17335
|
+
* **Input 1 of 4, current value null**.
|
|
17336
|
+
*
|
|
17337
|
+
* The message consists of several parts - the current input number, the total number of inputs, the current value and a localizable string.
|
|
17338
|
+
* To allow for reordering its parts, the `ariaLabel` input accepts a string with placeholders for the current input,
|
|
17339
|
+
* total number of inputs and current value. The `{currentInput}`, `{totalInputs}` and `{currentValue}` placeholders will be
|
|
17340
|
+
* replaced internally with the respective actual values.
|
|
17341
|
+
*/
|
|
17342
|
+
ariaLabel;
|
|
17343
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OTPInputMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
17344
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: OTPInputMessages, selector: "kendo-otpinput-messages-base", inputs: { ariaLabel: "ariaLabel" }, usesInheritance: true, ngImport: i0 });
|
|
17345
|
+
}
|
|
17346
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OTPInputMessages, decorators: [{
|
|
17347
|
+
type: Directive,
|
|
17348
|
+
args: [{
|
|
17349
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
17350
|
+
selector: 'kendo-otpinput-messages-base'
|
|
17351
|
+
}]
|
|
17352
|
+
}], propDecorators: { ariaLabel: [{
|
|
17353
|
+
type: Input
|
|
17354
|
+
}] } });
|
|
17355
|
+
|
|
17273
17356
|
/**
|
|
17274
|
-
*
|
|
17357
|
+
* @hidden
|
|
17275
17358
|
*/
|
|
17276
|
-
|
|
17277
|
-
|
|
17278
|
-
|
|
17279
|
-
|
|
17280
|
-
|
|
17359
|
+
class LocalizedOTPInputMessagesDirective extends OTPInputMessages {
|
|
17360
|
+
service;
|
|
17361
|
+
constructor(service) {
|
|
17362
|
+
super();
|
|
17363
|
+
this.service = service;
|
|
17364
|
+
}
|
|
17365
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedOTPInputMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
17366
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: LocalizedOTPInputMessagesDirective, isStandalone: true, selector: "[kendoOTPInputLocalizedMessages]", providers: [
|
|
17367
|
+
{
|
|
17368
|
+
provide: OTPInputMessages,
|
|
17369
|
+
useExisting: forwardRef(() => LocalizedOTPInputMessagesDirective)
|
|
17370
|
+
}
|
|
17371
|
+
], usesInheritance: true, ngImport: i0 });
|
|
17372
|
+
}
|
|
17373
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedOTPInputMessagesDirective, decorators: [{
|
|
17374
|
+
type: Directive,
|
|
17375
|
+
args: [{
|
|
17376
|
+
providers: [
|
|
17377
|
+
{
|
|
17378
|
+
provide: OTPInputMessages,
|
|
17379
|
+
useExisting: forwardRef(() => LocalizedOTPInputMessagesDirective)
|
|
17380
|
+
}
|
|
17381
|
+
],
|
|
17382
|
+
selector: '[kendoOTPInputLocalizedMessages]',
|
|
17383
|
+
standalone: true
|
|
17384
|
+
}]
|
|
17385
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
|
|
17386
|
+
|
|
17387
|
+
const DEFAULT_SIZE = 'medium';
|
|
17388
|
+
const DEFAULT_ROUNDED = 'medium';
|
|
17389
|
+
const DEFAULT_FILL_MODE = 'solid';
|
|
17390
|
+
const DEFAULT_OTPINPUT_LENGTH = 4;
|
|
17391
|
+
class OTPInputComponent {
|
|
17392
|
+
hostElement;
|
|
17393
|
+
cdr;
|
|
17394
|
+
injector;
|
|
17395
|
+
renderer;
|
|
17396
|
+
localizationService;
|
|
17397
|
+
zone;
|
|
17398
|
+
/**
|
|
17399
|
+
* Configures the total number of input fields.
|
|
17400
|
+
*
|
|
17401
|
+
* @default 4
|
|
17402
|
+
*/
|
|
17403
|
+
set length(value) {
|
|
17404
|
+
if (value < 1 || this._length === value) {
|
|
17405
|
+
return;
|
|
17406
|
+
}
|
|
17407
|
+
this._length = value;
|
|
17408
|
+
this.inputsArray = new Array(this._length);
|
|
17409
|
+
}
|
|
17410
|
+
get length() {
|
|
17411
|
+
return this._length;
|
|
17412
|
+
}
|
|
17413
|
+
/**
|
|
17414
|
+
* Configures the input type.
|
|
17415
|
+
*
|
|
17416
|
+
* * The possible values are:
|
|
17417
|
+
* * `text` (default)
|
|
17418
|
+
* * `number`
|
|
17419
|
+
* * `password`
|
|
17420
|
+
*
|
|
17421
|
+
* @default 'text'
|
|
17422
|
+
*/
|
|
17423
|
+
type = 'text';
|
|
17424
|
+
/**
|
|
17425
|
+
* Configures whether the input fields are separate or adjacent to each other.
|
|
17426
|
+
*
|
|
17427
|
+
* @default true
|
|
17428
|
+
*/
|
|
17429
|
+
spacing = true;
|
|
17430
|
+
/**
|
|
17431
|
+
* Adds a separator between groups of input fields.
|
|
17432
|
+
*
|
|
17433
|
+
* > The configuration can only be applied when `groupLength` is set.
|
|
17434
|
+
*/
|
|
17435
|
+
separator;
|
|
17436
|
+
/**
|
|
17437
|
+
* Configures whether the component is enabled or disabled.
|
|
17438
|
+
*
|
|
17439
|
+
* @default false
|
|
17440
|
+
*/
|
|
17441
|
+
disabled = false;
|
|
17442
|
+
/**
|
|
17443
|
+
* Configures whether the component is readonly.
|
|
17444
|
+
*
|
|
17445
|
+
* @default false
|
|
17446
|
+
*/
|
|
17447
|
+
readonly = false;
|
|
17448
|
+
/**
|
|
17449
|
+
* Configures the placeholder of the input fields.
|
|
17450
|
+
*/
|
|
17451
|
+
placeholder;
|
|
17452
|
+
/**
|
|
17453
|
+
* Configures the length of the groups. If `groupLength` is a number, all groups will have the same length. If it's an array, each group can have a different length.
|
|
17454
|
+
*/
|
|
17455
|
+
get groupLength() {
|
|
17456
|
+
return this._groupLength;
|
|
17457
|
+
}
|
|
17458
|
+
set groupLength(length) {
|
|
17459
|
+
const isNumber = typeof length === 'number';
|
|
17460
|
+
if (this._groupLength === length ||
|
|
17461
|
+
isPresent$1(length) &&
|
|
17462
|
+
((isNumber && (length < 1 || length > this.length)) ||
|
|
17463
|
+
(!isNumber && !this.isValidGroupArray(length)))) {
|
|
17464
|
+
return;
|
|
17465
|
+
}
|
|
17466
|
+
if (!isPresent$1(length)) {
|
|
17467
|
+
this.clearGroups();
|
|
17468
|
+
}
|
|
17469
|
+
else if (isNumber) {
|
|
17470
|
+
this.populateGroupArray(length);
|
|
17471
|
+
}
|
|
17472
|
+
else {
|
|
17473
|
+
this.groupLengthArray = length;
|
|
17474
|
+
if (!this.spacing) {
|
|
17475
|
+
this.adjacentGroups = this.groupLengthArray;
|
|
17476
|
+
}
|
|
17477
|
+
}
|
|
17478
|
+
this._groupLength = length;
|
|
17479
|
+
this.populateSeparatorPosititons();
|
|
17480
|
+
}
|
|
17481
|
+
/**
|
|
17482
|
+
* Configures the value of the component. Unfilled input fields are represented with space.
|
|
17483
|
+
*/
|
|
17484
|
+
get value() {
|
|
17485
|
+
return this._value;
|
|
17486
|
+
}
|
|
17487
|
+
set value(input) {
|
|
17488
|
+
if (this._value === input ||
|
|
17489
|
+
(this.type === 'number' && isPresent$1(input) && !this.isValidNumber(input))) {
|
|
17490
|
+
return;
|
|
17491
|
+
}
|
|
17492
|
+
if (!isPresent$1(input)) {
|
|
17493
|
+
this.clearInputValues();
|
|
17494
|
+
this._value = null;
|
|
17495
|
+
}
|
|
17496
|
+
else {
|
|
17497
|
+
this._value = input.slice(0, this.length);
|
|
17498
|
+
if (!this.inputFieldValueChanged) {
|
|
17499
|
+
this.fillInputs(input, 0, true);
|
|
17500
|
+
}
|
|
17501
|
+
}
|
|
17502
|
+
if (this.inputAttributes) {
|
|
17503
|
+
this.setInputAttributes();
|
|
17504
|
+
}
|
|
17505
|
+
else {
|
|
17506
|
+
this.setDefaultAttributes();
|
|
17507
|
+
}
|
|
17508
|
+
}
|
|
17509
|
+
/**
|
|
17510
|
+
* The `size` property specifies the padding of the input fields.
|
|
17511
|
+
*
|
|
17512
|
+
* The possible values are:
|
|
17513
|
+
* * `small`
|
|
17514
|
+
* * `medium` (default)
|
|
17515
|
+
* * `large`
|
|
17516
|
+
* * `none`
|
|
17517
|
+
*/
|
|
17518
|
+
set size(size) {
|
|
17519
|
+
const newSize = size || DEFAULT_SIZE;
|
|
17520
|
+
const elem = this.hostElement.nativeElement;
|
|
17521
|
+
this.renderer.removeClass(elem, `k-otp-${SIZE_MAP[this._size]}`);
|
|
17522
|
+
this.renderer.addClass(elem, `k-otp-${SIZE_MAP[newSize]}`);
|
|
17523
|
+
this._size = newSize;
|
|
17524
|
+
}
|
|
17525
|
+
get size() {
|
|
17526
|
+
return this._size;
|
|
17527
|
+
}
|
|
17528
|
+
/**
|
|
17529
|
+
* The `rounded` property specifies the border radius of the OTP Input.
|
|
17530
|
+
*
|
|
17531
|
+
* The possible values are:
|
|
17532
|
+
* * `small`
|
|
17533
|
+
* * `medium` (default)
|
|
17534
|
+
* * `large`
|
|
17535
|
+
* * `full`
|
|
17536
|
+
* * `none`
|
|
17537
|
+
*/
|
|
17538
|
+
set rounded(rounded) {
|
|
17539
|
+
this._rounded = rounded || DEFAULT_ROUNDED;
|
|
17540
|
+
}
|
|
17541
|
+
get rounded() {
|
|
17542
|
+
return this._rounded;
|
|
17543
|
+
}
|
|
17544
|
+
/**
|
|
17545
|
+
* The `fillMode` property specifies the background and border styles of the OTP Input.
|
|
17546
|
+
*
|
|
17547
|
+
* The possible values are:
|
|
17548
|
+
* * `flat`
|
|
17549
|
+
* * `solid` (default)
|
|
17550
|
+
* * `outline`
|
|
17551
|
+
* * `none`
|
|
17552
|
+
*/
|
|
17553
|
+
set fillMode(fillMode) {
|
|
17554
|
+
const newFillMode = fillMode || DEFAULT_FILL_MODE;
|
|
17555
|
+
this.setGroupFillMode(newFillMode, this._fillMode);
|
|
17556
|
+
this._fillMode = newFillMode;
|
|
17557
|
+
}
|
|
17558
|
+
get fillMode() {
|
|
17559
|
+
return this._fillMode;
|
|
17560
|
+
}
|
|
17561
|
+
/**
|
|
17562
|
+
* Sets the HTML attributes of the inner focusable input element. Attributes which are essential for certain component functionalities cannot be changed.
|
|
17563
|
+
*/
|
|
17564
|
+
set inputAttributes(attributes) {
|
|
17565
|
+
this._inputAttributes = attributes;
|
|
17566
|
+
this.parsedAttributes = this.inputAttributes ?
|
|
17567
|
+
{ ...this.defaultAttributes, ...this.inputAttributes } :
|
|
17568
|
+
this.inputAttributes;
|
|
17569
|
+
this.setInputAttributes();
|
|
17570
|
+
}
|
|
17571
|
+
get inputAttributes() {
|
|
17572
|
+
return this._inputAttributes;
|
|
17573
|
+
}
|
|
17574
|
+
/**
|
|
17575
|
+
* Fires each time the value is changed by the user—
|
|
17576
|
+
* When the value of the component is programmatically changed to `ngModel` or `formControl`
|
|
17577
|
+
* through its API or form binding, the `valueChange` event is not triggered because it
|
|
17578
|
+
* might cause a mix-up with the built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.
|
|
17579
|
+
*/
|
|
17580
|
+
valueChange = new EventEmitter();
|
|
17581
|
+
/**
|
|
17582
|
+
* Fires when the length of the trimmed value is equal to `length`.
|
|
17583
|
+
*/
|
|
17584
|
+
inputFinish = new EventEmitter();
|
|
17585
|
+
/**
|
|
17586
|
+
* Fires each time the user focuses the OTP Input.
|
|
17587
|
+
*/
|
|
17588
|
+
onFocus = new EventEmitter();
|
|
17589
|
+
/**
|
|
17590
|
+
* Fires each time the user blurs the OTP Input.
|
|
17591
|
+
*/
|
|
17592
|
+
onBlur = new EventEmitter();
|
|
17593
|
+
wrapperClass = true;
|
|
17594
|
+
get invalidClass() {
|
|
17595
|
+
return this.isControlInvalid;
|
|
17596
|
+
}
|
|
17597
|
+
direction;
|
|
17598
|
+
role = 'group';
|
|
17599
|
+
/**
|
|
17600
|
+
* @hidden
|
|
17601
|
+
*/
|
|
17602
|
+
inputFields;
|
|
17603
|
+
/**
|
|
17604
|
+
* @hidden
|
|
17605
|
+
*/
|
|
17606
|
+
set inputGroups(elements) {
|
|
17607
|
+
this._inputGroups = elements;
|
|
17608
|
+
this.setGroupFillMode(this.fillMode);
|
|
17609
|
+
}
|
|
17610
|
+
get inputGroups() {
|
|
17611
|
+
return this._inputGroups;
|
|
17612
|
+
}
|
|
17613
|
+
/**
|
|
17614
|
+
* @hidden
|
|
17615
|
+
*/
|
|
17616
|
+
groupLengthArray;
|
|
17617
|
+
/**
|
|
17618
|
+
* @hidden
|
|
17619
|
+
*/
|
|
17620
|
+
inputsArray;
|
|
17621
|
+
/**
|
|
17622
|
+
* @hidden
|
|
17623
|
+
*/
|
|
17624
|
+
inputsValues = [].constructor(DEFAULT_OTPINPUT_LENGTH);
|
|
17625
|
+
/**
|
|
17626
|
+
* @hidden
|
|
17627
|
+
*/
|
|
17628
|
+
adjacentGroups;
|
|
17629
|
+
_length = DEFAULT_OTPINPUT_LENGTH;
|
|
17630
|
+
_groupLength;
|
|
17631
|
+
_inputGroups;
|
|
17632
|
+
separatorPositions = new Set();
|
|
17633
|
+
_value = null;
|
|
17634
|
+
_size = DEFAULT_SIZE;
|
|
17635
|
+
_rounded = DEFAULT_ROUNDED;
|
|
17636
|
+
_fillMode = DEFAULT_FILL_MODE;
|
|
17637
|
+
_isFocused = false;
|
|
17638
|
+
focusChangedProgrammatically = false;
|
|
17639
|
+
inputFieldValueChanged = false;
|
|
17640
|
+
focusedInput;
|
|
17641
|
+
_inputAttributes;
|
|
17642
|
+
parsedAttributes = {};
|
|
17643
|
+
get defaultAttributes() {
|
|
17644
|
+
return {
|
|
17645
|
+
autocomplete: 'off'
|
|
17646
|
+
};
|
|
17647
|
+
}
|
|
17648
|
+
subscriptions;
|
|
17649
|
+
ngChange = (_) => { };
|
|
17650
|
+
ngTouched = () => { };
|
|
17651
|
+
constructor(hostElement, cdr, injector, renderer, localizationService, zone) {
|
|
17652
|
+
this.hostElement = hostElement;
|
|
17653
|
+
this.cdr = cdr;
|
|
17654
|
+
this.injector = injector;
|
|
17655
|
+
this.renderer = renderer;
|
|
17656
|
+
this.localizationService = localizationService;
|
|
17657
|
+
this.zone = zone;
|
|
17658
|
+
this.direction = localizationService.rtl ? 'rtl' : 'ltr';
|
|
17659
|
+
}
|
|
17660
|
+
ngOnInit() {
|
|
17661
|
+
this.inputsArray = Array.from({ length: this._length });
|
|
17662
|
+
this.subscriptions = this.localizationService.changes.subscribe(({ rtl }) => {
|
|
17663
|
+
this.direction = rtl ? 'rtl' : 'ltr';
|
|
17664
|
+
});
|
|
17665
|
+
this.zone.runOutsideAngular(() => {
|
|
17666
|
+
this.subscriptions.add(this.renderer.listen(this.hostElement.nativeElement, 'paste', this.handlePaste.bind(this)));
|
|
17667
|
+
this.subscriptions.add(this.renderer.listen(this.hostElement.nativeElement, 'keydown', this.handleKeydown.bind(this)));
|
|
17668
|
+
});
|
|
17669
|
+
}
|
|
17670
|
+
ngAfterViewInit() {
|
|
17671
|
+
this.subscriptions.add(this.inputFields.changes.subscribe(this.handleInputChanges.bind(this)));
|
|
17672
|
+
this.handleInputChanges();
|
|
17673
|
+
this.renderer.addClass(this.hostElement.nativeElement, `k-otp-${SIZE_MAP[this._size]}`);
|
|
17674
|
+
this.setGroupFillMode(this.fillMode);
|
|
17675
|
+
this.zone.onStable.pipe(take(1)).subscribe(() => {
|
|
17676
|
+
this.fillInputs(this.value);
|
|
17677
|
+
});
|
|
17678
|
+
}
|
|
17679
|
+
ngOnChanges(changes) {
|
|
17680
|
+
if (changes.length) {
|
|
17681
|
+
if (typeof this.groupLength === 'number') {
|
|
17682
|
+
this.populateGroupArray(this.groupLength);
|
|
17683
|
+
}
|
|
17684
|
+
this.populateSeparatorPosititons();
|
|
17685
|
+
}
|
|
17686
|
+
if (changes.spacing) {
|
|
17687
|
+
if (this.spacing === true) {
|
|
17688
|
+
this.adjacentGroups = null;
|
|
17689
|
+
}
|
|
17690
|
+
else {
|
|
17691
|
+
this.adjacentGroups = this.groupLengthArray ?? [this.length];
|
|
17692
|
+
}
|
|
17693
|
+
}
|
|
17694
|
+
if (changes.type && this.type === 'number') {
|
|
17695
|
+
if (isPresent$1(this.value) && !this.isValidNumber(this.value)) {
|
|
17696
|
+
this.value = null;
|
|
17697
|
+
}
|
|
17698
|
+
}
|
|
17699
|
+
}
|
|
17700
|
+
ngOnDestroy() {
|
|
17701
|
+
this.subscriptions.unsubscribe();
|
|
17702
|
+
}
|
|
17703
|
+
/**
|
|
17704
|
+
* @hidden
|
|
17705
|
+
*/
|
|
17706
|
+
get formControl() {
|
|
17707
|
+
const ngControl = this.injector.get(NgControl, null);
|
|
17708
|
+
return ngControl?.control || null;
|
|
17709
|
+
}
|
|
17710
|
+
/**
|
|
17711
|
+
* @hidden
|
|
17712
|
+
*/
|
|
17713
|
+
writeValue(value) {
|
|
17714
|
+
this.value = value;
|
|
17715
|
+
}
|
|
17716
|
+
/**
|
|
17717
|
+
* @hidden
|
|
17718
|
+
*/
|
|
17719
|
+
registerOnChange(fn) {
|
|
17720
|
+
this.ngChange = fn;
|
|
17721
|
+
}
|
|
17722
|
+
/**
|
|
17723
|
+
* @hidden
|
|
17724
|
+
*/
|
|
17725
|
+
registerOnTouched(fn) {
|
|
17726
|
+
this.ngTouched = fn;
|
|
17727
|
+
}
|
|
17728
|
+
/**
|
|
17729
|
+
* @hidden
|
|
17730
|
+
*/
|
|
17731
|
+
setDisabledState(isDisabled) {
|
|
17732
|
+
this.cdr.markForCheck();
|
|
17733
|
+
this.disabled = isDisabled;
|
|
17734
|
+
}
|
|
17735
|
+
/**
|
|
17736
|
+
* @hidden
|
|
17737
|
+
*/
|
|
17738
|
+
get isControlInvalid() {
|
|
17739
|
+
return this.formControl?.touched && this.formControl.invalid;
|
|
17740
|
+
}
|
|
17741
|
+
/**
|
|
17742
|
+
* @hidden
|
|
17743
|
+
*/
|
|
17744
|
+
get isFocused() {
|
|
17745
|
+
return this._isFocused;
|
|
17746
|
+
}
|
|
17747
|
+
/**
|
|
17748
|
+
* @hidden
|
|
17749
|
+
*/
|
|
17750
|
+
set isFocused(value) {
|
|
17751
|
+
if (this._isFocused !== value && this.hostElement) {
|
|
17752
|
+
this._isFocused = value;
|
|
17753
|
+
}
|
|
17754
|
+
}
|
|
17755
|
+
/**
|
|
17756
|
+
* @hidden
|
|
17757
|
+
*/
|
|
17758
|
+
get hasGroups() {
|
|
17759
|
+
if (!this.spacing && isPresent$1(this.groupLength)) {
|
|
17760
|
+
return true;
|
|
17761
|
+
}
|
|
17762
|
+
}
|
|
17763
|
+
/**
|
|
17764
|
+
* @hidden
|
|
17765
|
+
*/
|
|
17766
|
+
showGroupSeparator(index) {
|
|
17767
|
+
return this.separator && this.groupLengthArray && index < this.groupLengthArray.length - 1;
|
|
17768
|
+
}
|
|
17769
|
+
/**
|
|
17770
|
+
* @hidden
|
|
17771
|
+
*/
|
|
17772
|
+
showSeparator(index) {
|
|
17773
|
+
return this.separator && this.groupLength ? this.separatorPositions.has(index) : false;
|
|
17774
|
+
}
|
|
17775
|
+
/**
|
|
17776
|
+
* @hidden
|
|
17777
|
+
*/
|
|
17778
|
+
handleValueChange(index, groupIndex) {
|
|
17779
|
+
this.inputFieldValueChanged = true;
|
|
17780
|
+
if (groupIndex) {
|
|
17781
|
+
index = this.getIndexByGroup(groupIndex, index);
|
|
17782
|
+
}
|
|
17783
|
+
let newValue = '';
|
|
17784
|
+
this.inputFields.forEach((input) => newValue = newValue.concat(input.value?.toString() || " "));
|
|
17785
|
+
if (!areSame(this.value, newValue)) {
|
|
17786
|
+
this.value = newValue;
|
|
17787
|
+
this.ngChange(newValue);
|
|
17788
|
+
this.valueChange.emit(newValue);
|
|
17789
|
+
}
|
|
17790
|
+
this.inputFieldValueChanged = false;
|
|
17791
|
+
if (this.value && this.value.trim().length === this.length) {
|
|
17792
|
+
this.inputFinish.emit(this.value);
|
|
17793
|
+
}
|
|
17794
|
+
if (isPresent$1(index) && isPresent$1(this.inputFields?.get(index).value)) {
|
|
17795
|
+
this.focusNext();
|
|
17796
|
+
}
|
|
17797
|
+
}
|
|
17798
|
+
/**
|
|
17799
|
+
* @hidden
|
|
17800
|
+
*/
|
|
17801
|
+
handleInputFocus(index, groupIndex) {
|
|
17802
|
+
if (this.focusChangedProgrammatically) {
|
|
17803
|
+
return;
|
|
17804
|
+
}
|
|
17805
|
+
if (groupIndex) {
|
|
17806
|
+
index = this.getIndexByGroup(groupIndex, index);
|
|
17807
|
+
}
|
|
17808
|
+
this.focusedInput = index;
|
|
17809
|
+
}
|
|
17810
|
+
/**
|
|
17811
|
+
* @hidden
|
|
17812
|
+
*/
|
|
17813
|
+
handleInput(event, index, groupIndex) {
|
|
17814
|
+
if (this.type === 'number' && !this.isValidNumber(event?.data)) {
|
|
17815
|
+
const inputIndex = groupIndex ? this.getIndexByGroup(groupIndex, index) : index;
|
|
17816
|
+
this.inputFields.get(inputIndex).value = null;
|
|
17817
|
+
this.showInvalidInput(inputIndex);
|
|
17818
|
+
return;
|
|
17819
|
+
}
|
|
17820
|
+
this.handleValueChange(index, groupIndex);
|
|
17821
|
+
}
|
|
17822
|
+
/**
|
|
17823
|
+
* @hidden
|
|
17824
|
+
*/
|
|
17825
|
+
fillInputs(text, start = 0, replaceLast = false) {
|
|
17826
|
+
if (!isPresent$1(text)) {
|
|
17827
|
+
return;
|
|
17828
|
+
}
|
|
17829
|
+
let charCounter = 0;
|
|
17830
|
+
this.inputFields?.forEach((otpInput, i) => {
|
|
17831
|
+
if (i < start) {
|
|
17832
|
+
return;
|
|
17833
|
+
}
|
|
17834
|
+
if (charCounter < text.length) {
|
|
17835
|
+
if (text[charCounter] === ' ') {
|
|
17836
|
+
otpInput.value = null;
|
|
17837
|
+
}
|
|
17838
|
+
else {
|
|
17839
|
+
otpInput.value = text[charCounter];
|
|
17840
|
+
}
|
|
17841
|
+
charCounter++;
|
|
17842
|
+
}
|
|
17843
|
+
else if (replaceLast) {
|
|
17844
|
+
otpInput.value = null;
|
|
17845
|
+
}
|
|
17846
|
+
});
|
|
17847
|
+
}
|
|
17848
|
+
/**
|
|
17849
|
+
* Focuses the OTP Input.
|
|
17850
|
+
*/
|
|
17851
|
+
focus(index) {
|
|
17852
|
+
if (!this.inputFields || index < 0 || index >= this.length) {
|
|
17853
|
+
return;
|
|
17854
|
+
}
|
|
17855
|
+
this.focusChangedProgrammatically = true;
|
|
17856
|
+
this.isFocused = true;
|
|
17857
|
+
this.inputFields.get(index || 0).focus();
|
|
17858
|
+
this.focusedInput = index || 0;
|
|
17859
|
+
this.focusChangedProgrammatically = false;
|
|
17860
|
+
}
|
|
17861
|
+
/**
|
|
17862
|
+
* Blurs the OTP Input.
|
|
17863
|
+
*/
|
|
17864
|
+
blur() {
|
|
17865
|
+
this.focusChangedProgrammatically = true;
|
|
17866
|
+
const isFocusedElement = this.hostElement.nativeElement.querySelector(':focus');
|
|
17867
|
+
if (isFocusedElement) {
|
|
17868
|
+
isFocusedElement.blur();
|
|
17869
|
+
}
|
|
17870
|
+
this.isFocused = false;
|
|
17871
|
+
this.focusChangedProgrammatically = false;
|
|
17872
|
+
}
|
|
17873
|
+
/**
|
|
17874
|
+
* @hidden
|
|
17875
|
+
*/
|
|
17876
|
+
handleFocus() {
|
|
17877
|
+
this.zone.run(() => {
|
|
17878
|
+
if (!this.focusChangedProgrammatically && hasObservers(this.onFocus)) {
|
|
17879
|
+
this.onFocus.emit();
|
|
17880
|
+
}
|
|
17881
|
+
this.isFocused = true;
|
|
17882
|
+
});
|
|
17883
|
+
}
|
|
17884
|
+
/**
|
|
17885
|
+
* @hidden
|
|
17886
|
+
*/
|
|
17887
|
+
handleBlur() {
|
|
17888
|
+
this.zone.run(() => {
|
|
17889
|
+
if (!this.focusChangedProgrammatically) {
|
|
17890
|
+
this.ngTouched();
|
|
17891
|
+
this.onBlur.emit();
|
|
17892
|
+
}
|
|
17893
|
+
this.isFocused = false;
|
|
17894
|
+
});
|
|
17895
|
+
}
|
|
17896
|
+
getIndexByGroup(groupIndex, itemIndex) {
|
|
17897
|
+
return this.groupLengthArray.slice(0, groupIndex).reduce((sum, current) => sum + current, 0) + itemIndex;
|
|
17898
|
+
}
|
|
17899
|
+
focusNext() {
|
|
17900
|
+
if (!this.inputFields || this.focusedInput === this.length - 1) {
|
|
17901
|
+
return;
|
|
17902
|
+
}
|
|
17903
|
+
this.focusChangedProgrammatically = true;
|
|
17904
|
+
this.isFocused = true;
|
|
17905
|
+
this.inputFields.get(this.focusedInput).blur();
|
|
17906
|
+
this.inputFields.get(this.focusedInput + 1).focus();
|
|
17907
|
+
this.focusedInput++;
|
|
17908
|
+
this.focusChangedProgrammatically = false;
|
|
17909
|
+
}
|
|
17910
|
+
focusPrevious() {
|
|
17911
|
+
if (!this.inputFields || this.focusedInput === 0) {
|
|
17912
|
+
return;
|
|
17913
|
+
}
|
|
17914
|
+
this.focusChangedProgrammatically = true;
|
|
17915
|
+
this.isFocused = true;
|
|
17916
|
+
this.inputFields.get(this.focusedInput).blur();
|
|
17917
|
+
this.inputFields.get(this.focusedInput - 1).focus();
|
|
17918
|
+
this.focusedInput--;
|
|
17919
|
+
this.focusChangedProgrammatically = false;
|
|
17920
|
+
}
|
|
17921
|
+
handlePaste(event) {
|
|
17922
|
+
event.preventDefault();
|
|
17923
|
+
const text = event.clipboardData.getData('text').trim();
|
|
17924
|
+
if (text === '') {
|
|
17925
|
+
return;
|
|
17926
|
+
}
|
|
17927
|
+
if (this.type === 'number' && !this.isValidNumber(text)) {
|
|
17928
|
+
this.showInvalidInput(this.focusedInput);
|
|
17929
|
+
return;
|
|
17930
|
+
}
|
|
17931
|
+
this.inputFieldValueChanged = true;
|
|
17932
|
+
this.fillInputs(text, this.focusedInput);
|
|
17933
|
+
this.handleValueChange();
|
|
17934
|
+
this.inputFieldValueChanged = false;
|
|
17935
|
+
const focusedInput = this.focusedInput + text.length < this.inputFields?.length ?
|
|
17936
|
+
this.focusedInput + text.length :
|
|
17937
|
+
this.inputFields.length - 1;
|
|
17938
|
+
this.inputFields.get(this.focusedInput).blur();
|
|
17939
|
+
this.focusedInput = focusedInput;
|
|
17940
|
+
this.inputFields.get(this.focusedInput).focus();
|
|
17941
|
+
}
|
|
17942
|
+
handleKeydown(event) {
|
|
17943
|
+
if (event.keyCode === Keys.ArrowRight) {
|
|
17944
|
+
event.preventDefault();
|
|
17945
|
+
this.direction === 'ltr' ? this.focusNext() : this.focusPrevious();
|
|
17946
|
+
}
|
|
17947
|
+
if (event.keyCode === Keys.ArrowLeft) {
|
|
17948
|
+
event.preventDefault();
|
|
17949
|
+
this.direction === 'ltr' ? this.focusPrevious() : this.focusNext();
|
|
17950
|
+
}
|
|
17951
|
+
if (event.keyCode === Keys.Backspace) {
|
|
17952
|
+
event.preventDefault();
|
|
17953
|
+
this.inputFields.get(this.focusedInput).value = null;
|
|
17954
|
+
this.handleValueChange();
|
|
17955
|
+
this.focusPrevious();
|
|
17956
|
+
}
|
|
17957
|
+
if (event.keyCode === Keys.Delete) {
|
|
17958
|
+
event.preventDefault();
|
|
17959
|
+
this.inputFields.get(this.focusedInput).value = null;
|
|
17960
|
+
this.handleValueChange();
|
|
17961
|
+
}
|
|
17962
|
+
}
|
|
17963
|
+
isValidGroupArray(groups) {
|
|
17964
|
+
if (!isPresent$1(groups)) {
|
|
17965
|
+
return;
|
|
17966
|
+
}
|
|
17967
|
+
const sum = groups.reduce((sum, current) => sum + current, 0);
|
|
17968
|
+
return sum === this.length;
|
|
17969
|
+
}
|
|
17970
|
+
populateGroupArray(length) {
|
|
17971
|
+
const groupsCount = Math.floor(this.length / length);
|
|
17972
|
+
const remainder = this.length % length;
|
|
17973
|
+
const result = Array(groupsCount).fill(length);
|
|
17974
|
+
if (remainder > 0) {
|
|
17975
|
+
result.push(remainder);
|
|
17976
|
+
}
|
|
17977
|
+
this.groupLengthArray = [...result];
|
|
17978
|
+
// groups with spacing shouldn't be wrapped in `k-input-group`
|
|
17979
|
+
if (!this.spacing) {
|
|
17980
|
+
this.adjacentGroups = [...this.groupLengthArray];
|
|
17981
|
+
}
|
|
17982
|
+
}
|
|
17983
|
+
populateSeparatorPosititons() {
|
|
17984
|
+
let itemIndex = 0;
|
|
17985
|
+
this.separatorPositions.clear();
|
|
17986
|
+
if (!isPresent$1(this.groupLengthArray)) {
|
|
17987
|
+
return;
|
|
17988
|
+
}
|
|
17989
|
+
for (let i = 0; i < this.groupLengthArray.length - 1; i++) {
|
|
17990
|
+
itemIndex += this.groupLengthArray[i];
|
|
17991
|
+
this.separatorPositions.add(itemIndex - 1);
|
|
17992
|
+
}
|
|
17993
|
+
}
|
|
17994
|
+
clearGroups() {
|
|
17995
|
+
this.groupLengthArray = null;
|
|
17996
|
+
if (!this.spacing) {
|
|
17997
|
+
this.adjacentGroups = [this.length];
|
|
17998
|
+
}
|
|
17999
|
+
else {
|
|
18000
|
+
this.adjacentGroups = null;
|
|
18001
|
+
}
|
|
18002
|
+
this.separatorPositions.clear();
|
|
18003
|
+
}
|
|
18004
|
+
clearInputValues() {
|
|
18005
|
+
this.inputFields?.forEach((input) => input.value = null);
|
|
18006
|
+
}
|
|
18007
|
+
handleInputChanges() {
|
|
18008
|
+
this.zone.onStable.pipe(take(1)).subscribe(() => {
|
|
18009
|
+
this.fillInputs(this.value?.trim());
|
|
18010
|
+
if (this.inputAttributes) {
|
|
18011
|
+
this.setInputAttributes();
|
|
18012
|
+
}
|
|
18013
|
+
else {
|
|
18014
|
+
this.setDefaultAttributes();
|
|
18015
|
+
}
|
|
18016
|
+
this.cdr.detectChanges();
|
|
18017
|
+
});
|
|
18018
|
+
}
|
|
18019
|
+
setGroupFillMode(fillMode, previousFillMode) {
|
|
18020
|
+
this.inputGroups?.forEach(element => {
|
|
18021
|
+
if (previousFillMode !== 'none') {
|
|
18022
|
+
this.renderer.removeClass(element.nativeElement, `k-input-group-${previousFillMode}`);
|
|
18023
|
+
}
|
|
18024
|
+
if (fillMode !== 'none') {
|
|
18025
|
+
this.renderer.addClass(element.nativeElement, `k-input-group-${fillMode}`);
|
|
18026
|
+
}
|
|
18027
|
+
});
|
|
18028
|
+
}
|
|
18029
|
+
setInputAttributes() {
|
|
18030
|
+
this.inputFields?.forEach((input, index) => {
|
|
18031
|
+
if (!this.parsedAttributes || !this.parsedAttributes?.['aria-label']) {
|
|
18032
|
+
input.inputAttributes = { ...this.parsedAttributes, 'aria-label': this.ariaLabel(index) };
|
|
18033
|
+
}
|
|
18034
|
+
else {
|
|
18035
|
+
input.inputAttributes = this.parsedAttributes;
|
|
18036
|
+
}
|
|
18037
|
+
});
|
|
18038
|
+
}
|
|
18039
|
+
setDefaultAttributes() {
|
|
18040
|
+
this.inputFields?.forEach((input, index) => {
|
|
18041
|
+
input.inputAttributes = {
|
|
18042
|
+
autocomplete: 'off',
|
|
18043
|
+
'aria-label': this.ariaLabel(index)
|
|
18044
|
+
};
|
|
18045
|
+
});
|
|
18046
|
+
}
|
|
18047
|
+
ariaLabel(index) {
|
|
18048
|
+
const localizationMsg = this.localizationService.get('ariaLabel') || '';
|
|
18049
|
+
return replaceMessagePlaceholder(replaceMessagePlaceholder(replaceMessagePlaceholder(localizationMsg, 'currentInput', (index + 1).toString()), 'totalInputs', this.length.toString()), 'value', this.value);
|
|
18050
|
+
}
|
|
18051
|
+
isValidNumber(value) {
|
|
18052
|
+
if (!isPresent$1(value)) {
|
|
18053
|
+
return;
|
|
18054
|
+
}
|
|
18055
|
+
const trimmedValue = value.trim();
|
|
18056
|
+
return trimmedValue !== '' &&
|
|
18057
|
+
trimmedValue !== 'Infinity' &&
|
|
18058
|
+
trimmedValue !== '-Infinity' &&
|
|
18059
|
+
!isNaN(Number(trimmedValue));
|
|
18060
|
+
}
|
|
18061
|
+
showInvalidInput(index) {
|
|
18062
|
+
const inputElement = this.inputFields.get(index).hostElement.nativeElement;
|
|
18063
|
+
this.renderer.addClass(inputElement, 'k-invalid');
|
|
18064
|
+
this.zone.runOutsideAngular(() => {
|
|
18065
|
+
setTimeout(() => {
|
|
18066
|
+
if (!this.isControlInvalid && inputElement) {
|
|
18067
|
+
this.renderer.removeClass(inputElement, 'k-invalid');
|
|
18068
|
+
}
|
|
18069
|
+
}, 300);
|
|
18070
|
+
});
|
|
18071
|
+
}
|
|
18072
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OTPInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
18073
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OTPInputComponent, isStandalone: true, selector: "kendo-otpinput", inputs: { length: "length", type: "type", spacing: "spacing", separator: "separator", disabled: "disabled", readonly: "readonly", placeholder: "placeholder", groupLength: "groupLength", value: "value", size: "size", rounded: "rounded", fillMode: "fillMode", inputAttributes: "inputAttributes" }, outputs: { valueChange: "valueChange", inputFinish: "inputFinish", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-otp": "this.wrapperClass", "class.k-invalid": "this.invalidClass", "attr.dir": "this.direction", "attr.role": "this.role" } }, providers: [
|
|
18074
|
+
LocalizationService,
|
|
18075
|
+
{ provide: L10N_PREFIX, useValue: 'kendo.otpinput' },
|
|
18076
|
+
{
|
|
18077
|
+
provide: NG_VALUE_ACCESSOR,
|
|
18078
|
+
useExisting: forwardRef(() => OTPInputComponent),
|
|
18079
|
+
multi: true
|
|
18080
|
+
},
|
|
18081
|
+
{ provide: KendoInput, useExisting: forwardRef(() => OTPInputComponent) }
|
|
18082
|
+
], viewQueries: [{ propertyName: "inputFields", predicate: TextBoxComponent, descendants: true }, { propertyName: "inputGroups", predicate: ["inputGroup"], descendants: true }], exportAs: ["kendoOTPInput"], usesOnChanges: true, ngImport: i0, template: `
|
|
18083
|
+
<ng-container kendoOTPInputLocalizedMessages
|
|
18084
|
+
i18n-ariaLabel="kendo.otpinput.ariaLabel|The value of the aria-label attribute of the input fields."
|
|
18085
|
+
ariaLabel="{{ 'Input {currentInput} of {totalInputs}, current value {value}' }}"
|
|
18086
|
+
></ng-container>
|
|
18087
|
+
<ng-container
|
|
18088
|
+
kendoInputSharedEvents
|
|
18089
|
+
[hostElement]="hostElement"
|
|
18090
|
+
[(isFocused)]="isFocused"
|
|
18091
|
+
(handleBlur)="handleBlur()"
|
|
18092
|
+
(onFocus)="handleFocus()"
|
|
18093
|
+
>
|
|
18094
|
+
<ng-container *ngIf="spacing; else groups">
|
|
18095
|
+
<ng-container *ngFor="let input of inputsArray; let i = index">
|
|
18096
|
+
<kendo-textbox
|
|
18097
|
+
class="k-otp-input"
|
|
18098
|
+
[class.k-invalid]="isControlInvalid"
|
|
18099
|
+
[selectOnFocus]="true"
|
|
18100
|
+
[maxlength]="1"
|
|
18101
|
+
[type]="type !== 'number' ? type : null"
|
|
18102
|
+
[placeholder]="placeholder"
|
|
18103
|
+
[size]="size"
|
|
18104
|
+
[rounded]="rounded"
|
|
18105
|
+
[fillMode]="fillMode"
|
|
18106
|
+
[disabled]="disabled"
|
|
18107
|
+
[readonly]="readonly"
|
|
18108
|
+
(focus)="handleInputFocus(i)"
|
|
18109
|
+
(input)="handleInput($event, i)"
|
|
18110
|
+
></kendo-textbox>
|
|
18111
|
+
<kendo-otpinput-separator *ngIf="showSeparator(i)" [separator]="separator"></kendo-otpinput-separator>
|
|
18112
|
+
</ng-container>
|
|
18113
|
+
</ng-container>
|
|
18114
|
+
<ng-template #groups>
|
|
18115
|
+
<ng-container *ngFor="let group of adjacentGroups; let i = index">
|
|
18116
|
+
<div #inputGroup class="k-input-group">
|
|
18117
|
+
<kendo-textbox
|
|
18118
|
+
*ngFor="let input of [].constructor(group); let j = index"
|
|
18119
|
+
class="k-otp-input"
|
|
18120
|
+
[class.k-invalid]="isControlInvalid"
|
|
18121
|
+
[selectOnFocus]="true"
|
|
18122
|
+
[maxlength]="1"
|
|
18123
|
+
[type]="type !== 'number' ? type : null"
|
|
18124
|
+
[placeholder]="placeholder"
|
|
18125
|
+
[size]="size"
|
|
18126
|
+
[rounded]="rounded"
|
|
18127
|
+
[fillMode]="fillMode"
|
|
18128
|
+
[disabled]="disabled"
|
|
18129
|
+
[readonly]="readonly"
|
|
18130
|
+
(focus)="handleInputFocus(j, i)"
|
|
18131
|
+
(input)="handleInput($event, j, i)"
|
|
18132
|
+
></kendo-textbox>
|
|
18133
|
+
</div>
|
|
18134
|
+
<kendo-otpinput-separator *ngIf="showGroupSeparator(i)" [separator]="separator"></kendo-otpinput-separator>
|
|
18135
|
+
</ng-container>
|
|
18136
|
+
</ng-template>
|
|
18137
|
+
<ng-container>
|
|
18138
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "component", type: OTPInputSeparatorComponent, selector: "kendo-otpinput-separator", inputs: ["separator"], exportAs: ["kendoOTPInputSeparator"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: LocalizedOTPInputMessagesDirective, selector: "[kendoOTPInputLocalizedMessages]" }] });
|
|
18139
|
+
}
|
|
18140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OTPInputComponent, decorators: [{
|
|
18141
|
+
type: Component,
|
|
18142
|
+
args: [{
|
|
18143
|
+
exportAs: 'kendoOTPInput',
|
|
18144
|
+
providers: [
|
|
18145
|
+
LocalizationService,
|
|
18146
|
+
{ provide: L10N_PREFIX, useValue: 'kendo.otpinput' },
|
|
18147
|
+
{
|
|
18148
|
+
provide: NG_VALUE_ACCESSOR,
|
|
18149
|
+
useExisting: forwardRef(() => OTPInputComponent),
|
|
18150
|
+
multi: true
|
|
18151
|
+
},
|
|
18152
|
+
{ provide: KendoInput, useExisting: forwardRef(() => OTPInputComponent) }
|
|
18153
|
+
],
|
|
18154
|
+
selector: 'kendo-otpinput',
|
|
18155
|
+
template: `
|
|
18156
|
+
<ng-container kendoOTPInputLocalizedMessages
|
|
18157
|
+
i18n-ariaLabel="kendo.otpinput.ariaLabel|The value of the aria-label attribute of the input fields."
|
|
18158
|
+
ariaLabel="{{ 'Input {currentInput} of {totalInputs}, current value {value}' }}"
|
|
18159
|
+
></ng-container>
|
|
18160
|
+
<ng-container
|
|
18161
|
+
kendoInputSharedEvents
|
|
18162
|
+
[hostElement]="hostElement"
|
|
18163
|
+
[(isFocused)]="isFocused"
|
|
18164
|
+
(handleBlur)="handleBlur()"
|
|
18165
|
+
(onFocus)="handleFocus()"
|
|
18166
|
+
>
|
|
18167
|
+
<ng-container *ngIf="spacing; else groups">
|
|
18168
|
+
<ng-container *ngFor="let input of inputsArray; let i = index">
|
|
18169
|
+
<kendo-textbox
|
|
18170
|
+
class="k-otp-input"
|
|
18171
|
+
[class.k-invalid]="isControlInvalid"
|
|
18172
|
+
[selectOnFocus]="true"
|
|
18173
|
+
[maxlength]="1"
|
|
18174
|
+
[type]="type !== 'number' ? type : null"
|
|
18175
|
+
[placeholder]="placeholder"
|
|
18176
|
+
[size]="size"
|
|
18177
|
+
[rounded]="rounded"
|
|
18178
|
+
[fillMode]="fillMode"
|
|
18179
|
+
[disabled]="disabled"
|
|
18180
|
+
[readonly]="readonly"
|
|
18181
|
+
(focus)="handleInputFocus(i)"
|
|
18182
|
+
(input)="handleInput($event, i)"
|
|
18183
|
+
></kendo-textbox>
|
|
18184
|
+
<kendo-otpinput-separator *ngIf="showSeparator(i)" [separator]="separator"></kendo-otpinput-separator>
|
|
18185
|
+
</ng-container>
|
|
18186
|
+
</ng-container>
|
|
18187
|
+
<ng-template #groups>
|
|
18188
|
+
<ng-container *ngFor="let group of adjacentGroups; let i = index">
|
|
18189
|
+
<div #inputGroup class="k-input-group">
|
|
18190
|
+
<kendo-textbox
|
|
18191
|
+
*ngFor="let input of [].constructor(group); let j = index"
|
|
18192
|
+
class="k-otp-input"
|
|
18193
|
+
[class.k-invalid]="isControlInvalid"
|
|
18194
|
+
[selectOnFocus]="true"
|
|
18195
|
+
[maxlength]="1"
|
|
18196
|
+
[type]="type !== 'number' ? type : null"
|
|
18197
|
+
[placeholder]="placeholder"
|
|
18198
|
+
[size]="size"
|
|
18199
|
+
[rounded]="rounded"
|
|
18200
|
+
[fillMode]="fillMode"
|
|
18201
|
+
[disabled]="disabled"
|
|
18202
|
+
[readonly]="readonly"
|
|
18203
|
+
(focus)="handleInputFocus(j, i)"
|
|
18204
|
+
(input)="handleInput($event, j, i)"
|
|
18205
|
+
></kendo-textbox>
|
|
18206
|
+
</div>
|
|
18207
|
+
<kendo-otpinput-separator *ngIf="showGroupSeparator(i)" [separator]="separator"></kendo-otpinput-separator>
|
|
18208
|
+
</ng-container>
|
|
18209
|
+
</ng-template>
|
|
18210
|
+
<ng-container>
|
|
18211
|
+
`,
|
|
18212
|
+
standalone: true,
|
|
18213
|
+
imports: [SharedInputEventsDirective, TextBoxComponent, OTPInputSeparatorComponent, NgFor, NgIf, LocalizedOTPInputMessagesDirective]
|
|
18214
|
+
}]
|
|
18215
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i0.NgZone }]; }, propDecorators: { length: [{
|
|
18216
|
+
type: Input
|
|
18217
|
+
}], type: [{
|
|
18218
|
+
type: Input
|
|
18219
|
+
}], spacing: [{
|
|
18220
|
+
type: Input
|
|
18221
|
+
}], separator: [{
|
|
18222
|
+
type: Input
|
|
18223
|
+
}], disabled: [{
|
|
18224
|
+
type: Input
|
|
18225
|
+
}], readonly: [{
|
|
18226
|
+
type: Input
|
|
18227
|
+
}], placeholder: [{
|
|
18228
|
+
type: Input
|
|
18229
|
+
}], groupLength: [{
|
|
18230
|
+
type: Input
|
|
18231
|
+
}], value: [{
|
|
18232
|
+
type: Input
|
|
18233
|
+
}], size: [{
|
|
18234
|
+
type: Input
|
|
18235
|
+
}], rounded: [{
|
|
18236
|
+
type: Input
|
|
18237
|
+
}], fillMode: [{
|
|
18238
|
+
type: Input
|
|
18239
|
+
}], inputAttributes: [{
|
|
18240
|
+
type: Input
|
|
18241
|
+
}], valueChange: [{
|
|
18242
|
+
type: Output
|
|
18243
|
+
}], inputFinish: [{
|
|
18244
|
+
type: Output
|
|
18245
|
+
}], onFocus: [{
|
|
18246
|
+
type: Output,
|
|
18247
|
+
args: ['focus']
|
|
18248
|
+
}], onBlur: [{
|
|
18249
|
+
type: Output,
|
|
18250
|
+
args: ['blur']
|
|
18251
|
+
}], wrapperClass: [{
|
|
18252
|
+
type: HostBinding,
|
|
18253
|
+
args: ['class.k-otp']
|
|
18254
|
+
}], invalidClass: [{
|
|
18255
|
+
type: HostBinding,
|
|
18256
|
+
args: ['class.k-invalid']
|
|
18257
|
+
}], direction: [{
|
|
18258
|
+
type: HostBinding,
|
|
18259
|
+
args: ['attr.dir']
|
|
18260
|
+
}], role: [{
|
|
18261
|
+
type: HostBinding,
|
|
18262
|
+
args: ['attr.role']
|
|
18263
|
+
}], inputFields: [{
|
|
18264
|
+
type: ViewChildren,
|
|
18265
|
+
args: [TextBoxComponent]
|
|
18266
|
+
}], inputGroups: [{
|
|
18267
|
+
type: ViewChildren,
|
|
18268
|
+
args: ['inputGroup']
|
|
18269
|
+
}] } });
|
|
18270
|
+
|
|
18271
|
+
/**
|
|
18272
|
+
* Custom component messages override default component messages.
|
|
18273
|
+
*/
|
|
18274
|
+
class OTPInputCustomMessagesComponent extends OTPInputMessages {
|
|
18275
|
+
service;
|
|
18276
|
+
constructor(service) {
|
|
18277
|
+
super();
|
|
18278
|
+
this.service = service;
|
|
18279
|
+
}
|
|
18280
|
+
get override() {
|
|
18281
|
+
return true;
|
|
18282
|
+
}
|
|
18283
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OTPInputCustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
18284
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OTPInputCustomMessagesComponent, isStandalone: true, selector: "kendo-otpinput-messages", providers: [
|
|
18285
|
+
{
|
|
18286
|
+
provide: OTPInputMessages,
|
|
18287
|
+
useExisting: forwardRef(() => OTPInputCustomMessagesComponent)
|
|
18288
|
+
}
|
|
18289
|
+
], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
18290
|
+
}
|
|
18291
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OTPInputCustomMessagesComponent, decorators: [{
|
|
18292
|
+
type: Component,
|
|
18293
|
+
args: [{
|
|
18294
|
+
providers: [
|
|
18295
|
+
{
|
|
18296
|
+
provide: OTPInputMessages,
|
|
18297
|
+
useExisting: forwardRef(() => OTPInputCustomMessagesComponent)
|
|
18298
|
+
}
|
|
18299
|
+
],
|
|
18300
|
+
selector: 'kendo-otpinput-messages',
|
|
18301
|
+
template: ``,
|
|
18302
|
+
standalone: true
|
|
18303
|
+
}]
|
|
18304
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
|
|
18305
|
+
|
|
18306
|
+
/**
|
|
18307
|
+
* Utility array that contains all `TextBox` related components and directives
|
|
18308
|
+
*/
|
|
18309
|
+
const KENDO_TEXTBOX = [
|
|
18310
|
+
TextBoxDirective,
|
|
18311
|
+
TextBoxComponent,
|
|
18312
|
+
InputSeparatorComponent,
|
|
18313
|
+
TextBoxSuffixTemplateDirective,
|
|
18314
|
+
TextBoxPrefixTemplateDirective,
|
|
18315
|
+
TextBoxCustomMessagesComponent,
|
|
18316
|
+
PrefixTemplateDirective,
|
|
18317
|
+
SuffixTemplateDirective,
|
|
18318
|
+
SeparatorComponent
|
|
18319
|
+
];
|
|
18320
|
+
/**
|
|
18321
|
+
* Utility array that contains all `NumericTextBox` related components and directives
|
|
18322
|
+
*/
|
|
18323
|
+
const KENDO_NUMERICTEXTBOX = [
|
|
18324
|
+
NumericTextBoxComponent,
|
|
18325
|
+
NumericTextBoxCustomMessagesComponent,
|
|
18326
|
+
PrefixTemplateDirective,
|
|
18327
|
+
SuffixTemplateDirective,
|
|
18328
|
+
SeparatorComponent
|
|
18329
|
+
];
|
|
18330
|
+
/**
|
|
18331
|
+
* Utility array that contains all `MaskedTextBox` related components and directives
|
|
18332
|
+
*/
|
|
18333
|
+
const KENDO_MASKEDTEXTBOX = [
|
|
18334
|
+
MaskedTextBoxComponent,
|
|
18335
|
+
PrefixTemplateDirective,
|
|
18336
|
+
SuffixTemplateDirective,
|
|
18337
|
+
SeparatorComponent
|
|
18338
|
+
];
|
|
18339
|
+
/**
|
|
18340
|
+
* Utility array that contains all `OTP` related components and directives
|
|
18341
|
+
*/
|
|
18342
|
+
const KENDO_OTPINPUT = [
|
|
18343
|
+
OTPInputComponent,
|
|
18344
|
+
OTPInputCustomMessagesComponent
|
|
17281
18345
|
];
|
|
17282
18346
|
/**
|
|
17283
18347
|
* Utility array that contains all `TextArea` related components and directives
|
|
@@ -17398,6 +18462,7 @@ const KENDO_INPUTS = [
|
|
|
17398
18462
|
...KENDO_FLATCOLORPICKER,
|
|
17399
18463
|
...KENDO_COLORGRADIENT,
|
|
17400
18464
|
...KENDO_COLORPALETTE,
|
|
18465
|
+
...KENDO_OTPINPUT
|
|
17401
18466
|
];
|
|
17402
18467
|
|
|
17403
18468
|
//IMPORTANT: NgModule export kept for backwards compatibility
|
|
@@ -17435,8 +18500,8 @@ const KENDO_INPUTS = [
|
|
|
17435
18500
|
*/
|
|
17436
18501
|
class InputsModule {
|
|
17437
18502
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17438
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, imports: [TextBoxDirective, TextBoxComponent, InputSeparatorComponent, TextBoxSuffixTemplateDirective, TextBoxPrefixTemplateDirective, TextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, MaskedTextBoxComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, TextAreaComponent, TextAreaDirective, TextAreaPrefixComponent, TextAreaSuffixComponent, i7.SeparatorComponent, CheckBoxComponent, CheckBoxDirective, RadioButtonComponent, RadioButtonDirective, SwitchComponent, SwitchCustomMessagesComponent, FormFieldComponent, HintComponent, ErrorComponent, SliderComponent, SliderCustomMessagesComponent, LabelTemplateDirective, RangeSliderComponent, RangeSliderCustomMessagesComponent, LabelTemplateDirective, RatingComponent, RatingItemTemplateDirective, RatingHoveredItemTemplateDirective, RatingSelectedItemTemplateDirective, SignatureComponent, SignatureCustomMessagesComponent, ColorPickerComponent, ColorPickerCustomMessagesComponent, FlatColorPickerComponent, ColorPickerCustomMessagesComponent, ColorGradientComponent, ColorPickerCustomMessagesComponent, ColorPaletteComponent, ColorPickerCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent], exports: [TextBoxDirective, TextBoxComponent, InputSeparatorComponent, TextBoxSuffixTemplateDirective, TextBoxPrefixTemplateDirective, TextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, MaskedTextBoxComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, TextAreaComponent, TextAreaDirective, TextAreaPrefixComponent, TextAreaSuffixComponent, i7.SeparatorComponent, CheckBoxComponent, CheckBoxDirective, RadioButtonComponent, RadioButtonDirective, SwitchComponent, SwitchCustomMessagesComponent, FormFieldComponent, HintComponent, ErrorComponent, SliderComponent, SliderCustomMessagesComponent, LabelTemplateDirective, RangeSliderComponent, RangeSliderCustomMessagesComponent, LabelTemplateDirective, RatingComponent, RatingItemTemplateDirective, RatingHoveredItemTemplateDirective, RatingSelectedItemTemplateDirective, SignatureComponent, SignatureCustomMessagesComponent, ColorPickerComponent, ColorPickerCustomMessagesComponent, FlatColorPickerComponent, ColorPickerCustomMessagesComponent, ColorGradientComponent, ColorPickerCustomMessagesComponent, ColorPaletteComponent, ColorPickerCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent] });
|
|
17439
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, providers: [IconsService, PopupService, ResizeBatchService, DialogContainerService, DialogService, WindowService, WindowContainerService], imports: [TextBoxComponent, i7.SeparatorComponent, NumericTextBoxComponent, i7.SeparatorComponent, i7.SeparatorComponent, i7.SeparatorComponent, SliderComponent, RangeSliderComponent, RatingComponent, SignatureComponent, ColorPickerComponent, FlatColorPickerComponent, ColorGradientComponent, i7.SeparatorComponent] });
|
|
18503
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, imports: [TextBoxDirective, TextBoxComponent, InputSeparatorComponent, TextBoxSuffixTemplateDirective, TextBoxPrefixTemplateDirective, TextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, MaskedTextBoxComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, TextAreaComponent, TextAreaDirective, TextAreaPrefixComponent, TextAreaSuffixComponent, i7.SeparatorComponent, CheckBoxComponent, CheckBoxDirective, RadioButtonComponent, RadioButtonDirective, SwitchComponent, SwitchCustomMessagesComponent, FormFieldComponent, HintComponent, ErrorComponent, SliderComponent, SliderCustomMessagesComponent, LabelTemplateDirective, RangeSliderComponent, RangeSliderCustomMessagesComponent, LabelTemplateDirective, RatingComponent, RatingItemTemplateDirective, RatingHoveredItemTemplateDirective, RatingSelectedItemTemplateDirective, SignatureComponent, SignatureCustomMessagesComponent, ColorPickerComponent, ColorPickerCustomMessagesComponent, FlatColorPickerComponent, ColorPickerCustomMessagesComponent, ColorGradientComponent, ColorPickerCustomMessagesComponent, ColorPaletteComponent, ColorPickerCustomMessagesComponent, OTPInputComponent, OTPInputCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent], exports: [TextBoxDirective, TextBoxComponent, InputSeparatorComponent, TextBoxSuffixTemplateDirective, TextBoxPrefixTemplateDirective, TextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, MaskedTextBoxComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, TextAreaComponent, TextAreaDirective, TextAreaPrefixComponent, TextAreaSuffixComponent, i7.SeparatorComponent, CheckBoxComponent, CheckBoxDirective, RadioButtonComponent, RadioButtonDirective, SwitchComponent, SwitchCustomMessagesComponent, FormFieldComponent, HintComponent, ErrorComponent, SliderComponent, SliderCustomMessagesComponent, LabelTemplateDirective, RangeSliderComponent, RangeSliderCustomMessagesComponent, LabelTemplateDirective, RatingComponent, RatingItemTemplateDirective, RatingHoveredItemTemplateDirective, RatingSelectedItemTemplateDirective, SignatureComponent, SignatureCustomMessagesComponent, ColorPickerComponent, ColorPickerCustomMessagesComponent, FlatColorPickerComponent, ColorPickerCustomMessagesComponent, ColorGradientComponent, ColorPickerCustomMessagesComponent, ColorPaletteComponent, ColorPickerCustomMessagesComponent, OTPInputComponent, OTPInputCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent] });
|
|
18504
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, providers: [IconsService, PopupService, ResizeBatchService, DialogContainerService, DialogService, WindowService, WindowContainerService], imports: [TextBoxComponent, i7.SeparatorComponent, NumericTextBoxComponent, i7.SeparatorComponent, i7.SeparatorComponent, i7.SeparatorComponent, SliderComponent, RangeSliderComponent, RatingComponent, SignatureComponent, ColorPickerComponent, FlatColorPickerComponent, ColorGradientComponent, OTPInputComponent, i7.SeparatorComponent] });
|
|
17440
18505
|
}
|
|
17441
18506
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, decorators: [{
|
|
17442
18507
|
type: NgModule,
|
|
@@ -18039,5 +19104,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
18039
19104
|
* Generated bundle index. Do not edit.
|
|
18040
19105
|
*/
|
|
18041
19106
|
|
|
18042
|
-
export { ActiveColorClickEvent, CheckBoxComponent, CheckBoxDirective, CheckBoxModule, ColorGradientComponent, ColorPaletteComponent, ColorPickerCancelEvent, ColorPickerCloseEvent, ColorPickerComponent, ColorPickerCustomMessagesComponent, ColorPickerModule, ColorPickerOpenEvent, ErrorComponent, FlatColorPickerComponent, FormFieldComponent, FormFieldModule, HintComponent, InputSeparatorComponent, InputsModule, KENDO_CHECKBOX, KENDO_COLORGRADIENT, KENDO_COLORPALETTE, KENDO_COLORPICKER, KENDO_FLATCOLORPICKER, KENDO_FORMFIELD, KENDO_INPUTS, KENDO_MASKEDTEXTBOX, KENDO_NUMERICTEXTBOX, KENDO_RADIOBUTTON, KENDO_RANGESLIDER, KENDO_RATING, KENDO_SIGNATURE, KENDO_SLIDER, KENDO_SWITCH, KENDO_TEXTAREA, KENDO_TEXTBOX, LabelTemplateDirective, LocalizedColorPickerMessagesDirective, LocalizedNumericTextBoxMessagesDirective, LocalizedRangeSliderMessagesDirective, LocalizedSignatureMessagesDirective, LocalizedSliderMessagesDirective, LocalizedSwitchMessagesDirective, LocalizedTextBoxMessagesDirective, MaskedTextBoxComponent, MaskedTextBoxModule, MaskingService, NumericLabelDirective, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, NumericTextBoxModule, RadioButtonComponent, RadioButtonDirective, RadioButtonModule, RangeSliderComponent, RangeSliderCustomMessagesComponent, RangeSliderModule, RatingComponent, RatingHoveredItemTemplateDirective, RatingItemTemplateDirective, RatingModule, RatingSelectedItemTemplateDirective, SignatureCloseEvent, SignatureComponent, SignatureCustomMessagesComponent, SignatureMessages, SignatureModule, SignatureOpenEvent, SliderComponent, SliderCustomMessagesComponent, SliderModule, SliderTicksComponent, SwitchBlurEvent, SwitchComponent, SwitchCustomMessagesComponent, SwitchFocusEvent, SwitchModule, TextAreaComponent, TextAreaDirective, TextAreaModule, TextAreaPrefixComponent, TextAreaSuffixComponent, TextBoxComponent, TextBoxCustomMessagesComponent, TextBoxDirective, TextBoxModule, TextBoxPrefixTemplateDirective, TextBoxSuffixTemplateDirective };
|
|
19107
|
+
export { ActiveColorClickEvent, CheckBoxComponent, CheckBoxDirective, CheckBoxModule, ColorGradientComponent, ColorPaletteComponent, ColorPickerCancelEvent, ColorPickerCloseEvent, ColorPickerComponent, ColorPickerCustomMessagesComponent, ColorPickerModule, ColorPickerOpenEvent, ErrorComponent, FlatColorPickerComponent, FormFieldComponent, FormFieldModule, HintComponent, InputSeparatorComponent, InputsModule, KENDO_CHECKBOX, KENDO_COLORGRADIENT, KENDO_COLORPALETTE, KENDO_COLORPICKER, KENDO_FLATCOLORPICKER, KENDO_FORMFIELD, KENDO_INPUTS, KENDO_MASKEDTEXTBOX, KENDO_NUMERICTEXTBOX, KENDO_OTPINPUT, KENDO_RADIOBUTTON, KENDO_RANGESLIDER, KENDO_RATING, KENDO_SIGNATURE, KENDO_SLIDER, KENDO_SWITCH, KENDO_TEXTAREA, KENDO_TEXTBOX, LabelTemplateDirective, LocalizedColorPickerMessagesDirective, LocalizedNumericTextBoxMessagesDirective, LocalizedRangeSliderMessagesDirective, LocalizedSignatureMessagesDirective, LocalizedSliderMessagesDirective, LocalizedSwitchMessagesDirective, LocalizedTextBoxMessagesDirective, MaskedTextBoxComponent, MaskedTextBoxModule, MaskingService, NumericLabelDirective, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, NumericTextBoxModule, OTPInputComponent, OTPInputCustomMessagesComponent, RadioButtonComponent, RadioButtonDirective, RadioButtonModule, RangeSliderComponent, RangeSliderCustomMessagesComponent, RangeSliderModule, RatingComponent, RatingHoveredItemTemplateDirective, RatingItemTemplateDirective, RatingModule, RatingSelectedItemTemplateDirective, SignatureCloseEvent, SignatureComponent, SignatureCustomMessagesComponent, SignatureMessages, SignatureModule, SignatureOpenEvent, SliderComponent, SliderCustomMessagesComponent, SliderModule, SliderTicksComponent, SwitchBlurEvent, SwitchComponent, SwitchCustomMessagesComponent, SwitchFocusEvent, SwitchModule, TextAreaComponent, TextAreaDirective, TextAreaModule, TextAreaPrefixComponent, TextAreaSuffixComponent, TextBoxComponent, TextBoxCustomMessagesComponent, TextBoxDirective, TextBoxModule, TextBoxPrefixTemplateDirective, TextBoxSuffixTemplateDirective };
|
|
18043
19108
|
|