@progress/kendo-angular-inputs 15.0.1 → 15.0.2-develop.10

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.
@@ -199,6 +199,8 @@ export class MaskedTextBoxComponent {
199
199
  this.handleClick = () => {
200
200
  if (this.focused && !this.focusClick) {
201
201
  this.focusClick = true;
202
+ }
203
+ if (this.promptPlaceholder === null || this.promptPlaceholder === '') {
202
204
  const { selectionStart, selectionEnd } = this.input.nativeElement;
203
205
  if (selectionStart === selectionEnd) {
204
206
  this.setFocusSelection();
@@ -217,10 +219,14 @@ export class MaskedTextBoxComponent {
217
219
  }
218
220
  if (hasObservers(this.onBlur)) {
219
221
  this.ngZone.run(() => {
220
- this.onTouched();
221
222
  this.onBlur.emit();
222
223
  });
223
224
  }
225
+ this.ngZone.run(() => {
226
+ if (this.control) {
227
+ this.control && !this.control.touched && this.onTouched();
228
+ }
229
+ });
224
230
  };
225
231
  /**
226
232
  * @hidden
@@ -229,7 +235,6 @@ export class MaskedTextBoxComponent {
229
235
  this.changeDetector.markForCheck();
230
236
  if (hasObservers(this.inputBlur) || requiresZoneOnBlur(this.control)) {
231
237
  this.ngZone.run(() => {
232
- this.onTouched();
233
238
  this.inputBlur.emit();
234
239
  });
235
240
  }
@@ -412,19 +417,19 @@ export class MaskedTextBoxComponent {
412
417
  */
413
418
  ngOnChanges(changes) {
414
419
  if (changes['value']) {
415
- this.value = this.normalizeValue();
420
+ this.value = this.normalizeValue(this.value);
416
421
  }
422
+ const next = this.extractChanges(changes);
423
+ this.updateService(next);
417
424
  if (!this.mask) {
418
425
  this.updateInput(this.value);
419
426
  return;
420
427
  }
421
- const next = this.extractChanges(changes);
422
- this.updateService(next);
423
428
  const maskedValue = this.service.maskRaw(this.value);
424
429
  this.updateInput(maskedValue, null, true);
425
430
  if (changes['includeLiterals'] || isChanged('promptPlaceholder', changes)) {
426
431
  resolvedPromise.then(() => {
427
- this.updateValueWithEvents(this.maskedValue);
432
+ this.updateValueWithEvents(this.maskedValue, false);
428
433
  });
429
434
  }
430
435
  }
@@ -436,7 +441,7 @@ export class MaskedTextBoxComponent {
436
441
  this.value = this.normalizeValue(value);
437
442
  this.updateInput(this.service.maskRaw(this.value));
438
443
  if (this.includeLiterals) {
439
- this.updateValue(this.maskedValue);
444
+ this.updateValue(this.maskedValue, false);
440
445
  }
441
446
  }
442
447
  /**
@@ -489,25 +494,27 @@ export class MaskedTextBoxComponent {
489
494
  * @hidden
490
495
  */
491
496
  get isControlInvalid() {
492
- return this.control && this.control.touched && !this.control.valid;
497
+ return this.control && this.control.touched && this.control.invalid;
493
498
  }
494
499
  /**
495
500
  * @hidden
496
501
  */
497
- updateValueWithEvents(maskedValue) {
498
- this.updateValue(maskedValue);
499
- if (hasObservers(this.valueChange)) {
502
+ updateValueWithEvents(maskedValue, callOnChange = true) {
503
+ const previousValue = this.value;
504
+ this.updateValue(maskedValue, callOnChange);
505
+ const valueChanged = this.value !== previousValue;
506
+ if (valueChanged && hasObservers(this.valueChange)) {
500
507
  this.valueChange.emit(this.value);
501
508
  }
502
509
  }
503
- updateValue(value) {
510
+ updateValue(value, callOnChange = true) {
504
511
  if (this.mask && !this.service.validationValue(value) && !this.includeLiterals) {
505
512
  this.value = '';
506
513
  }
507
514
  else {
508
515
  this.value = this.service.rawValue(value);
509
516
  }
510
- this.onChange(this.value);
517
+ callOnChange && this.onChange(this.value);
511
518
  }
512
519
  updateInput(maskedValue = '', selection, isFromOnChanges) {
513
520
  if (isFromOnChanges && maskedValue === this.maskedValue) {
@@ -573,7 +580,7 @@ export class MaskedTextBoxComponent {
573
580
  this.isFocused = value;
574
581
  }
575
582
  }
576
- normalizeValue(value = this.value) {
583
+ normalizeValue(value) {
577
584
  const present = isPresent(value);
578
585
  if (present && typeof value !== 'string') {
579
586
  if (isDevMode()) {
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-inputs',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1706874069,
13
- version: '15.0.1',
12
+ publishDate: 1708097669,
13
+ version: '15.0.2-develop.10',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -5,11 +5,11 @@
5
5
  /* eslint-disable @typescript-eslint/no-explicit-any */
6
6
  import { isJapanese } from './../shared/utils';
7
7
  import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
8
- import { Component, ElementRef, forwardRef, Input, Output, EventEmitter, HostBinding, ViewChild, NgZone, ChangeDetectorRef, Injector, ContentChild, Renderer2, ContentChildren, QueryList } from '@angular/core';
8
+ import { Component, ElementRef, forwardRef, Input, Output, EventEmitter, HostBinding, ViewChild, NgZone, ChangeDetectorRef, Injector, ContentChild, Renderer2 } from '@angular/core';
9
9
  import { validatePackage } from '@progress/kendo-licensing';
10
10
  import { packageMetadata } from '../package-metadata';
11
11
  import { invokeElementMethod } from '../common/dom-utils';
12
- import { areSame, requiresZoneOnBlur, getStylingClasses, isPresent } from '../common/utils';
12
+ import { areSame, requiresZoneOnBlur, getStylingClasses } from '../common/utils';
13
13
  import { guid, hasObservers, KendoInput, isSafari, SuffixTemplateDirective, PrefixTemplateDirective } from '@progress/kendo-angular-common';
14
14
  import { TextBoxSuffixTemplateDirective } from './textbox-suffix.directive';
15
15
  import { TextBoxPrefixTemplateDirective } from './textbox-prefix.directive';
@@ -304,9 +304,8 @@ export class TextBoxComponent {
304
304
  });
305
305
  }
306
306
  ngAfterContentInit() {
307
- this.configureAdornments();
308
- this.subscriptions.add(this.textBoxPrefixTemplate.changes.subscribe(this.configureAdornments.bind(this)));
309
- this.subscriptions.add(this.textBoxSuffixTemplate.changes.subscribe(this.configureAdornments.bind(this)));
307
+ this.prefix = this.textBoxPrefixTemplate || this.prefixTemplate;
308
+ this.suffix = this.textBoxSuffixTemplate || this.suffixTemplate;
310
309
  }
311
310
  ngOnChanges(changes) {
312
311
  if (changes['disabled'] || changes['readonly'] || changes['value']) {
@@ -584,14 +583,6 @@ export class TextBoxComponent {
584
583
  this.renderer.addClass(elem, classes.toAdd);
585
584
  }
586
585
  }
587
- configureAdornments() {
588
- if (isPresent(this.textBoxPrefixTemplate.first)) {
589
- this.prefixTemplate = this.textBoxPrefixTemplate.first;
590
- }
591
- if (isPresent(this.textBoxSuffixTemplate.first)) {
592
- this.suffixTemplate = this.textBoxSuffixTemplate.first;
593
- }
594
- }
595
586
  }
596
587
  TextBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TextBoxComponent, deps: [{ token: i1.LocalizationService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
597
588
  TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TextBoxComponent, selector: "kendo-textbox", inputs: { focusableId: "focusableId", title: "title", type: "type", disabled: "disabled", readonly: "readonly", tabindex: "tabindex", value: "value", selectOnFocus: "selectOnFocus", showSuccessIcon: "showSuccessIcon", showErrorIcon: "showErrorIcon", clearButton: "clearButton", successIcon: "successIcon", successSvgIcon: "successSvgIcon", errorIcon: "errorIcon", errorSvgIcon: "errorSvgIcon", clearButtonIcon: "clearButtonIcon", clearButtonSvgIcon: "clearButtonSvgIcon", size: "size", rounded: "rounded", fillMode: "fillMode", tabIndex: "tabIndex", placeholder: "placeholder", maxlength: "maxlength" }, outputs: { valueChange: "valueChange", inputFocus: "inputFocus", inputBlur: "inputBlur", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-disabled": "this.disabledClass", "class.k-textbox": "this.hostClasses", "class.k-input": "this.hostClasses", "attr.dir": "this.direction" } }, providers: [
@@ -603,7 +594,7 @@ TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
603
594
  multi: true
604
595
  },
605
596
  { provide: KendoInput, useExisting: forwardRef(() => TextBoxComponent) }
606
- ], queries: [{ propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }, { propertyName: "textBoxSuffixTemplate", predicate: TextBoxSuffixTemplateDirective }, { propertyName: "textBoxPrefixTemplate", predicate: TextBoxPrefixTemplateDirective }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], exportAs: ["kendoTextBox"], usesOnChanges: true, ngImport: i0, template: `
597
+ ], queries: [{ propertyName: "textBoxSuffixTemplate", first: true, predicate: TextBoxSuffixTemplateDirective, descendants: true }, { propertyName: "textBoxPrefixTemplate", first: true, predicate: TextBoxPrefixTemplateDirective, descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], exportAs: ["kendoTextBox"], usesOnChanges: true, ngImport: i0, template: `
607
598
  <ng-container kendoTextBoxLocalizedMessages
608
599
  i18n-clear="kendo.textbox.clear|The title for the **Clear** button in the TextBox."
609
600
  clear="Clear">
@@ -616,11 +607,11 @@ TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
616
607
  (onFocus)="handleFocus()"
617
608
  [clearButtonClicked]="clearButtonClicked"
618
609
  >
619
- <span *ngIf="prefixTemplate" class="k-input-prefix k-input-prefix-horizontal">
620
- <ng-template [ngTemplateOutlet]="prefixTemplate?.templateRef">
610
+ <span *ngIf="prefix" class="k-input-prefix k-input-prefix-horizontal">
611
+ <ng-template [ngTemplateOutlet]="prefix?.templateRef">
621
612
  </ng-template>
622
613
  </span>
623
- <kendo-input-separator *ngIf="prefixTemplate && prefixTemplate.showSeparator"></kendo-input-separator>
614
+ <kendo-input-separator *ngIf="prefix && prefix.showSeparator"></kendo-input-separator>
624
615
  <input #input
625
616
  class="k-input-inner"
626
617
  [id]="focusableId"
@@ -672,9 +663,9 @@ TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
672
663
  [svgIcon]="successSvgIcon || svgIcon('checkIcon')"
673
664
  >
674
665
  </kendo-icon-wrapper>
675
- <kendo-input-separator *ngIf="suffixTemplate && suffixTemplate.showSeparator"></kendo-input-separator>
676
- <span *ngIf="suffixTemplate" class="k-input-suffix k-input-suffix-horizontal">
677
- <ng-template [ngTemplateOutlet]="suffixTemplate?.templateRef">
666
+ <kendo-input-separator *ngIf="suffix && suffix.showSeparator"></kendo-input-separator>
667
+ <span *ngIf="suffix" class="k-input-suffix k-input-suffix-horizontal">
668
+ <ng-template [ngTemplateOutlet]="suffix?.templateRef">
678
669
  </ng-template>
679
670
  </span>
680
671
  <ng-container>
@@ -707,11 +698,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
707
698
  (onFocus)="handleFocus()"
708
699
  [clearButtonClicked]="clearButtonClicked"
709
700
  >
710
- <span *ngIf="prefixTemplate" class="k-input-prefix k-input-prefix-horizontal">
711
- <ng-template [ngTemplateOutlet]="prefixTemplate?.templateRef">
701
+ <span *ngIf="prefix" class="k-input-prefix k-input-prefix-horizontal">
702
+ <ng-template [ngTemplateOutlet]="prefix?.templateRef">
712
703
  </ng-template>
713
704
  </span>
714
- <kendo-input-separator *ngIf="prefixTemplate && prefixTemplate.showSeparator"></kendo-input-separator>
705
+ <kendo-input-separator *ngIf="prefix && prefix.showSeparator"></kendo-input-separator>
715
706
  <input #input
716
707
  class="k-input-inner"
717
708
  [id]="focusableId"
@@ -763,9 +754,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
763
754
  [svgIcon]="successSvgIcon || svgIcon('checkIcon')"
764
755
  >
765
756
  </kendo-icon-wrapper>
766
- <kendo-input-separator *ngIf="suffixTemplate && suffixTemplate.showSeparator"></kendo-input-separator>
767
- <span *ngIf="suffixTemplate" class="k-input-suffix k-input-suffix-horizontal">
768
- <ng-template [ngTemplateOutlet]="suffixTemplate?.templateRef">
757
+ <kendo-input-separator *ngIf="suffix && suffix.showSeparator"></kendo-input-separator>
758
+ <span *ngIf="suffix" class="k-input-suffix k-input-suffix-horizontal">
759
+ <ng-template [ngTemplateOutlet]="suffix?.templateRef">
769
760
  </ng-template>
770
761
  </span>
771
762
  <ng-container>
@@ -833,11 +824,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
833
824
  type: ViewChild,
834
825
  args: ['input', { static: true }]
835
826
  }], textBoxSuffixTemplate: [{
836
- type: ContentChildren,
837
- args: [TextBoxSuffixTemplateDirective, { descendants: false }]
827
+ type: ContentChild,
828
+ args: [TextBoxSuffixTemplateDirective]
838
829
  }], textBoxPrefixTemplate: [{
839
- type: ContentChildren,
840
- args: [TextBoxPrefixTemplateDirective, { descendants: false }]
830
+ type: ContentChild,
831
+ args: [TextBoxPrefixTemplateDirective]
841
832
  }], suffixTemplate: [{
842
833
  type: ContentChild,
843
834
  args: [SuffixTemplateDirective]
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { isDevMode, Directive, Optional, EventEmitter, ElementRef, Component, Input, Output, HostBinding, ViewChild, ContentChild, ViewChildren, forwardRef, Inject, Injectable, HostListener, NgModule, ContentChildren, ViewContainerRef, ChangeDetectionStrategy } from '@angular/core';
6
+ import { isDevMode, Directive, Optional, EventEmitter, ElementRef, Component, Input, Output, HostBinding, ViewChild, ContentChild, ViewChildren, forwardRef, Inject, Injectable, HostListener, NgModule, ViewContainerRef, ContentChildren, ChangeDetectionStrategy } from '@angular/core';
7
7
  import { NgControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, RadioControlValueAccessor } from '@angular/forms';
8
8
  import { Subscription, fromEvent, interval, merge, BehaviorSubject, Subject } from 'rxjs';
9
9
  import { take, filter, concatMap, startWith, takeUntil, skip, debounceTime, throttleTime } from 'rxjs/operators';
@@ -538,8 +538,8 @@ const packageMetadata = {
538
538
  name: '@progress/kendo-angular-inputs',
539
539
  productName: 'Kendo UI for Angular',
540
540
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
541
- publishDate: 1706874069,
542
- version: '15.0.1',
541
+ publishDate: 1708097669,
542
+ version: '15.0.2-develop.10',
543
543
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
544
544
  };
545
545
 
@@ -5430,6 +5430,8 @@ class MaskedTextBoxComponent {
5430
5430
  this.handleClick = () => {
5431
5431
  if (this.focused && !this.focusClick) {
5432
5432
  this.focusClick = true;
5433
+ }
5434
+ if (this.promptPlaceholder === null || this.promptPlaceholder === '') {
5433
5435
  const { selectionStart, selectionEnd } = this.input.nativeElement;
5434
5436
  if (selectionStart === selectionEnd) {
5435
5437
  this.setFocusSelection();
@@ -5448,10 +5450,14 @@ class MaskedTextBoxComponent {
5448
5450
  }
5449
5451
  if (hasObservers(this.onBlur)) {
5450
5452
  this.ngZone.run(() => {
5451
- this.onTouched();
5452
5453
  this.onBlur.emit();
5453
5454
  });
5454
5455
  }
5456
+ this.ngZone.run(() => {
5457
+ if (this.control) {
5458
+ this.control && !this.control.touched && this.onTouched();
5459
+ }
5460
+ });
5455
5461
  };
5456
5462
  /**
5457
5463
  * @hidden
@@ -5460,7 +5466,6 @@ class MaskedTextBoxComponent {
5460
5466
  this.changeDetector.markForCheck();
5461
5467
  if (hasObservers(this.inputBlur) || requiresZoneOnBlur(this.control)) {
5462
5468
  this.ngZone.run(() => {
5463
- this.onTouched();
5464
5469
  this.inputBlur.emit();
5465
5470
  });
5466
5471
  }
@@ -5643,19 +5648,19 @@ class MaskedTextBoxComponent {
5643
5648
  */
5644
5649
  ngOnChanges(changes) {
5645
5650
  if (changes['value']) {
5646
- this.value = this.normalizeValue();
5651
+ this.value = this.normalizeValue(this.value);
5647
5652
  }
5653
+ const next = this.extractChanges(changes);
5654
+ this.updateService(next);
5648
5655
  if (!this.mask) {
5649
5656
  this.updateInput(this.value);
5650
5657
  return;
5651
5658
  }
5652
- const next = this.extractChanges(changes);
5653
- this.updateService(next);
5654
5659
  const maskedValue = this.service.maskRaw(this.value);
5655
5660
  this.updateInput(maskedValue, null, true);
5656
5661
  if (changes['includeLiterals'] || isChanged('promptPlaceholder', changes)) {
5657
5662
  resolvedPromise.then(() => {
5658
- this.updateValueWithEvents(this.maskedValue);
5663
+ this.updateValueWithEvents(this.maskedValue, false);
5659
5664
  });
5660
5665
  }
5661
5666
  }
@@ -5667,7 +5672,7 @@ class MaskedTextBoxComponent {
5667
5672
  this.value = this.normalizeValue(value);
5668
5673
  this.updateInput(this.service.maskRaw(this.value));
5669
5674
  if (this.includeLiterals) {
5670
- this.updateValue(this.maskedValue);
5675
+ this.updateValue(this.maskedValue, false);
5671
5676
  }
5672
5677
  }
5673
5678
  /**
@@ -5720,25 +5725,27 @@ class MaskedTextBoxComponent {
5720
5725
  * @hidden
5721
5726
  */
5722
5727
  get isControlInvalid() {
5723
- return this.control && this.control.touched && !this.control.valid;
5728
+ return this.control && this.control.touched && this.control.invalid;
5724
5729
  }
5725
5730
  /**
5726
5731
  * @hidden
5727
5732
  */
5728
- updateValueWithEvents(maskedValue) {
5729
- this.updateValue(maskedValue);
5730
- if (hasObservers(this.valueChange)) {
5733
+ updateValueWithEvents(maskedValue, callOnChange = true) {
5734
+ const previousValue = this.value;
5735
+ this.updateValue(maskedValue, callOnChange);
5736
+ const valueChanged = this.value !== previousValue;
5737
+ if (valueChanged && hasObservers(this.valueChange)) {
5731
5738
  this.valueChange.emit(this.value);
5732
5739
  }
5733
5740
  }
5734
- updateValue(value) {
5741
+ updateValue(value, callOnChange = true) {
5735
5742
  if (this.mask && !this.service.validationValue(value) && !this.includeLiterals) {
5736
5743
  this.value = '';
5737
5744
  }
5738
5745
  else {
5739
5746
  this.value = this.service.rawValue(value);
5740
5747
  }
5741
- this.onChange(this.value);
5748
+ callOnChange && this.onChange(this.value);
5742
5749
  }
5743
5750
  updateInput(maskedValue = '', selection, isFromOnChanges) {
5744
5751
  if (isFromOnChanges && maskedValue === this.maskedValue) {
@@ -5804,7 +5811,7 @@ class MaskedTextBoxComponent {
5804
5811
  this.isFocused = value;
5805
5812
  }
5806
5813
  }
5807
- normalizeValue(value = this.value) {
5814
+ normalizeValue(value) {
5808
5815
  const present = isPresent(value);
5809
5816
  if (present && typeof value !== 'string') {
5810
5817
  if (isDevMode()) {
@@ -6940,9 +6947,8 @@ class TextBoxComponent {
6940
6947
  });
6941
6948
  }
6942
6949
  ngAfterContentInit() {
6943
- this.configureAdornments();
6944
- this.subscriptions.add(this.textBoxPrefixTemplate.changes.subscribe(this.configureAdornments.bind(this)));
6945
- this.subscriptions.add(this.textBoxSuffixTemplate.changes.subscribe(this.configureAdornments.bind(this)));
6950
+ this.prefix = this.textBoxPrefixTemplate || this.prefixTemplate;
6951
+ this.suffix = this.textBoxSuffixTemplate || this.suffixTemplate;
6946
6952
  }
6947
6953
  ngOnChanges(changes) {
6948
6954
  if (changes['disabled'] || changes['readonly'] || changes['value']) {
@@ -7220,14 +7226,6 @@ class TextBoxComponent {
7220
7226
  this.renderer.addClass(elem, classes.toAdd);
7221
7227
  }
7222
7228
  }
7223
- configureAdornments() {
7224
- if (isPresent(this.textBoxPrefixTemplate.first)) {
7225
- this.prefixTemplate = this.textBoxPrefixTemplate.first;
7226
- }
7227
- if (isPresent(this.textBoxSuffixTemplate.first)) {
7228
- this.suffixTemplate = this.textBoxSuffixTemplate.first;
7229
- }
7230
- }
7231
7229
  }
7232
7230
  TextBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TextBoxComponent, deps: [{ token: i1.LocalizationService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
7233
7231
  TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TextBoxComponent, selector: "kendo-textbox", inputs: { focusableId: "focusableId", title: "title", type: "type", disabled: "disabled", readonly: "readonly", tabindex: "tabindex", value: "value", selectOnFocus: "selectOnFocus", showSuccessIcon: "showSuccessIcon", showErrorIcon: "showErrorIcon", clearButton: "clearButton", successIcon: "successIcon", successSvgIcon: "successSvgIcon", errorIcon: "errorIcon", errorSvgIcon: "errorSvgIcon", clearButtonIcon: "clearButtonIcon", clearButtonSvgIcon: "clearButtonSvgIcon", size: "size", rounded: "rounded", fillMode: "fillMode", tabIndex: "tabIndex", placeholder: "placeholder", maxlength: "maxlength" }, outputs: { valueChange: "valueChange", inputFocus: "inputFocus", inputBlur: "inputBlur", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-disabled": "this.disabledClass", "class.k-textbox": "this.hostClasses", "class.k-input": "this.hostClasses", "attr.dir": "this.direction" } }, providers: [
@@ -7239,7 +7237,7 @@ TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
7239
7237
  multi: true
7240
7238
  },
7241
7239
  { provide: KendoInput, useExisting: forwardRef(() => TextBoxComponent) }
7242
- ], queries: [{ propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }, { propertyName: "textBoxSuffixTemplate", predicate: TextBoxSuffixTemplateDirective }, { propertyName: "textBoxPrefixTemplate", predicate: TextBoxPrefixTemplateDirective }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], exportAs: ["kendoTextBox"], usesOnChanges: true, ngImport: i0, template: `
7240
+ ], queries: [{ propertyName: "textBoxSuffixTemplate", first: true, predicate: TextBoxSuffixTemplateDirective, descendants: true }, { propertyName: "textBoxPrefixTemplate", first: true, predicate: TextBoxPrefixTemplateDirective, descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], exportAs: ["kendoTextBox"], usesOnChanges: true, ngImport: i0, template: `
7243
7241
  <ng-container kendoTextBoxLocalizedMessages
7244
7242
  i18n-clear="kendo.textbox.clear|The title for the **Clear** button in the TextBox."
7245
7243
  clear="Clear">
@@ -7252,11 +7250,11 @@ TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
7252
7250
  (onFocus)="handleFocus()"
7253
7251
  [clearButtonClicked]="clearButtonClicked"
7254
7252
  >
7255
- <span *ngIf="prefixTemplate" class="k-input-prefix k-input-prefix-horizontal">
7256
- <ng-template [ngTemplateOutlet]="prefixTemplate?.templateRef">
7253
+ <span *ngIf="prefix" class="k-input-prefix k-input-prefix-horizontal">
7254
+ <ng-template [ngTemplateOutlet]="prefix?.templateRef">
7257
7255
  </ng-template>
7258
7256
  </span>
7259
- <kendo-input-separator *ngIf="prefixTemplate && prefixTemplate.showSeparator"></kendo-input-separator>
7257
+ <kendo-input-separator *ngIf="prefix && prefix.showSeparator"></kendo-input-separator>
7260
7258
  <input #input
7261
7259
  class="k-input-inner"
7262
7260
  [id]="focusableId"
@@ -7308,9 +7306,9 @@ TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
7308
7306
  [svgIcon]="successSvgIcon || svgIcon('checkIcon')"
7309
7307
  >
7310
7308
  </kendo-icon-wrapper>
7311
- <kendo-input-separator *ngIf="suffixTemplate && suffixTemplate.showSeparator"></kendo-input-separator>
7312
- <span *ngIf="suffixTemplate" class="k-input-suffix k-input-suffix-horizontal">
7313
- <ng-template [ngTemplateOutlet]="suffixTemplate?.templateRef">
7309
+ <kendo-input-separator *ngIf="suffix && suffix.showSeparator"></kendo-input-separator>
7310
+ <span *ngIf="suffix" class="k-input-suffix k-input-suffix-horizontal">
7311
+ <ng-template [ngTemplateOutlet]="suffix?.templateRef">
7314
7312
  </ng-template>
7315
7313
  </span>
7316
7314
  <ng-container>
@@ -7343,11 +7341,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7343
7341
  (onFocus)="handleFocus()"
7344
7342
  [clearButtonClicked]="clearButtonClicked"
7345
7343
  >
7346
- <span *ngIf="prefixTemplate" class="k-input-prefix k-input-prefix-horizontal">
7347
- <ng-template [ngTemplateOutlet]="prefixTemplate?.templateRef">
7344
+ <span *ngIf="prefix" class="k-input-prefix k-input-prefix-horizontal">
7345
+ <ng-template [ngTemplateOutlet]="prefix?.templateRef">
7348
7346
  </ng-template>
7349
7347
  </span>
7350
- <kendo-input-separator *ngIf="prefixTemplate && prefixTemplate.showSeparator"></kendo-input-separator>
7348
+ <kendo-input-separator *ngIf="prefix && prefix.showSeparator"></kendo-input-separator>
7351
7349
  <input #input
7352
7350
  class="k-input-inner"
7353
7351
  [id]="focusableId"
@@ -7399,9 +7397,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7399
7397
  [svgIcon]="successSvgIcon || svgIcon('checkIcon')"
7400
7398
  >
7401
7399
  </kendo-icon-wrapper>
7402
- <kendo-input-separator *ngIf="suffixTemplate && suffixTemplate.showSeparator"></kendo-input-separator>
7403
- <span *ngIf="suffixTemplate" class="k-input-suffix k-input-suffix-horizontal">
7404
- <ng-template [ngTemplateOutlet]="suffixTemplate?.templateRef">
7400
+ <kendo-input-separator *ngIf="suffix && suffix.showSeparator"></kendo-input-separator>
7401
+ <span *ngIf="suffix" class="k-input-suffix k-input-suffix-horizontal">
7402
+ <ng-template [ngTemplateOutlet]="suffix?.templateRef">
7405
7403
  </ng-template>
7406
7404
  </span>
7407
7405
  <ng-container>
@@ -7469,11 +7467,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7469
7467
  type: ViewChild,
7470
7468
  args: ['input', { static: true }]
7471
7469
  }], textBoxSuffixTemplate: [{
7472
- type: ContentChildren,
7473
- args: [TextBoxSuffixTemplateDirective, { descendants: false }]
7470
+ type: ContentChild,
7471
+ args: [TextBoxSuffixTemplateDirective]
7474
7472
  }], textBoxPrefixTemplate: [{
7475
- type: ContentChildren,
7476
- args: [TextBoxPrefixTemplateDirective, { descendants: false }]
7473
+ type: ContentChild,
7474
+ args: [TextBoxPrefixTemplateDirective]
7477
7475
  }], suffixTemplate: [{
7478
7476
  type: ContentChild,
7479
7477
  args: [SuffixTemplateDirective]
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { isDevMode, Directive, Optional, EventEmitter, ElementRef, Component, Input, Output, HostBinding, ViewChild, ContentChild, ViewChildren, forwardRef, Inject, Injectable, HostListener, NgModule, ContentChildren, ViewContainerRef, ChangeDetectionStrategy } from '@angular/core';
6
+ import { isDevMode, Directive, Optional, EventEmitter, ElementRef, Component, Input, Output, HostBinding, ViewChild, ContentChild, ViewChildren, forwardRef, Inject, Injectable, HostListener, NgModule, ViewContainerRef, ContentChildren, ChangeDetectionStrategy } from '@angular/core';
7
7
  import { NgControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, RadioControlValueAccessor } from '@angular/forms';
8
8
  import { Subscription, fromEvent, interval, merge, BehaviorSubject, Subject } from 'rxjs';
9
9
  import { take, filter, concatMap, startWith, takeUntil, skip, debounceTime, throttleTime } from 'rxjs/operators';
@@ -537,8 +537,8 @@ const packageMetadata = {
537
537
  name: '@progress/kendo-angular-inputs',
538
538
  productName: 'Kendo UI for Angular',
539
539
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
540
- publishDate: 1706874069,
541
- version: '15.0.1',
540
+ publishDate: 1708097669,
541
+ version: '15.0.2-develop.10',
542
542
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
543
543
  };
544
544
 
@@ -5423,6 +5423,8 @@ class MaskedTextBoxComponent {
5423
5423
  this.handleClick = () => {
5424
5424
  if (this.focused && !this.focusClick) {
5425
5425
  this.focusClick = true;
5426
+ }
5427
+ if (this.promptPlaceholder === null || this.promptPlaceholder === '') {
5426
5428
  const { selectionStart, selectionEnd } = this.input.nativeElement;
5427
5429
  if (selectionStart === selectionEnd) {
5428
5430
  this.setFocusSelection();
@@ -5441,10 +5443,14 @@ class MaskedTextBoxComponent {
5441
5443
  }
5442
5444
  if (hasObservers(this.onBlur)) {
5443
5445
  this.ngZone.run(() => {
5444
- this.onTouched();
5445
5446
  this.onBlur.emit();
5446
5447
  });
5447
5448
  }
5449
+ this.ngZone.run(() => {
5450
+ if (this.control) {
5451
+ this.control && !this.control.touched && this.onTouched();
5452
+ }
5453
+ });
5448
5454
  };
5449
5455
  /**
5450
5456
  * @hidden
@@ -5453,7 +5459,6 @@ class MaskedTextBoxComponent {
5453
5459
  this.changeDetector.markForCheck();
5454
5460
  if (hasObservers(this.inputBlur) || requiresZoneOnBlur(this.control)) {
5455
5461
  this.ngZone.run(() => {
5456
- this.onTouched();
5457
5462
  this.inputBlur.emit();
5458
5463
  });
5459
5464
  }
@@ -5636,19 +5641,19 @@ class MaskedTextBoxComponent {
5636
5641
  */
5637
5642
  ngOnChanges(changes) {
5638
5643
  if (changes['value']) {
5639
- this.value = this.normalizeValue();
5644
+ this.value = this.normalizeValue(this.value);
5640
5645
  }
5646
+ const next = this.extractChanges(changes);
5647
+ this.updateService(next);
5641
5648
  if (!this.mask) {
5642
5649
  this.updateInput(this.value);
5643
5650
  return;
5644
5651
  }
5645
- const next = this.extractChanges(changes);
5646
- this.updateService(next);
5647
5652
  const maskedValue = this.service.maskRaw(this.value);
5648
5653
  this.updateInput(maskedValue, null, true);
5649
5654
  if (changes['includeLiterals'] || isChanged('promptPlaceholder', changes)) {
5650
5655
  resolvedPromise.then(() => {
5651
- this.updateValueWithEvents(this.maskedValue);
5656
+ this.updateValueWithEvents(this.maskedValue, false);
5652
5657
  });
5653
5658
  }
5654
5659
  }
@@ -5660,7 +5665,7 @@ class MaskedTextBoxComponent {
5660
5665
  this.value = this.normalizeValue(value);
5661
5666
  this.updateInput(this.service.maskRaw(this.value));
5662
5667
  if (this.includeLiterals) {
5663
- this.updateValue(this.maskedValue);
5668
+ this.updateValue(this.maskedValue, false);
5664
5669
  }
5665
5670
  }
5666
5671
  /**
@@ -5713,25 +5718,27 @@ class MaskedTextBoxComponent {
5713
5718
  * @hidden
5714
5719
  */
5715
5720
  get isControlInvalid() {
5716
- return this.control && this.control.touched && !this.control.valid;
5721
+ return this.control && this.control.touched && this.control.invalid;
5717
5722
  }
5718
5723
  /**
5719
5724
  * @hidden
5720
5725
  */
5721
- updateValueWithEvents(maskedValue) {
5722
- this.updateValue(maskedValue);
5723
- if (hasObservers(this.valueChange)) {
5726
+ updateValueWithEvents(maskedValue, callOnChange = true) {
5727
+ const previousValue = this.value;
5728
+ this.updateValue(maskedValue, callOnChange);
5729
+ const valueChanged = this.value !== previousValue;
5730
+ if (valueChanged && hasObservers(this.valueChange)) {
5724
5731
  this.valueChange.emit(this.value);
5725
5732
  }
5726
5733
  }
5727
- updateValue(value) {
5734
+ updateValue(value, callOnChange = true) {
5728
5735
  if (this.mask && !this.service.validationValue(value) && !this.includeLiterals) {
5729
5736
  this.value = '';
5730
5737
  }
5731
5738
  else {
5732
5739
  this.value = this.service.rawValue(value);
5733
5740
  }
5734
- this.onChange(this.value);
5741
+ callOnChange && this.onChange(this.value);
5735
5742
  }
5736
5743
  updateInput(maskedValue = '', selection, isFromOnChanges) {
5737
5744
  if (isFromOnChanges && maskedValue === this.maskedValue) {
@@ -5797,7 +5804,7 @@ class MaskedTextBoxComponent {
5797
5804
  this.isFocused = value;
5798
5805
  }
5799
5806
  }
5800
- normalizeValue(value = this.value) {
5807
+ normalizeValue(value) {
5801
5808
  const present = isPresent(value);
5802
5809
  if (present && typeof value !== 'string') {
5803
5810
  if (isDevMode()) {
@@ -6927,9 +6934,8 @@ class TextBoxComponent {
6927
6934
  });
6928
6935
  }
6929
6936
  ngAfterContentInit() {
6930
- this.configureAdornments();
6931
- this.subscriptions.add(this.textBoxPrefixTemplate.changes.subscribe(this.configureAdornments.bind(this)));
6932
- this.subscriptions.add(this.textBoxSuffixTemplate.changes.subscribe(this.configureAdornments.bind(this)));
6937
+ this.prefix = this.textBoxPrefixTemplate || this.prefixTemplate;
6938
+ this.suffix = this.textBoxSuffixTemplate || this.suffixTemplate;
6933
6939
  }
6934
6940
  ngOnChanges(changes) {
6935
6941
  if (changes['disabled'] || changes['readonly'] || changes['value']) {
@@ -7207,14 +7213,6 @@ class TextBoxComponent {
7207
7213
  this.renderer.addClass(elem, classes.toAdd);
7208
7214
  }
7209
7215
  }
7210
- configureAdornments() {
7211
- if (isPresent(this.textBoxPrefixTemplate.first)) {
7212
- this.prefixTemplate = this.textBoxPrefixTemplate.first;
7213
- }
7214
- if (isPresent(this.textBoxSuffixTemplate.first)) {
7215
- this.suffixTemplate = this.textBoxSuffixTemplate.first;
7216
- }
7217
- }
7218
7216
  }
7219
7217
  TextBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TextBoxComponent, deps: [{ token: i1.LocalizationService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
7220
7218
  TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: TextBoxComponent, selector: "kendo-textbox", inputs: { focusableId: "focusableId", title: "title", type: "type", disabled: "disabled", readonly: "readonly", tabindex: "tabindex", value: "value", selectOnFocus: "selectOnFocus", showSuccessIcon: "showSuccessIcon", showErrorIcon: "showErrorIcon", clearButton: "clearButton", successIcon: "successIcon", successSvgIcon: "successSvgIcon", errorIcon: "errorIcon", errorSvgIcon: "errorSvgIcon", clearButtonIcon: "clearButtonIcon", clearButtonSvgIcon: "clearButtonSvgIcon", size: "size", rounded: "rounded", fillMode: "fillMode", tabIndex: "tabIndex", placeholder: "placeholder", maxlength: "maxlength" }, outputs: { valueChange: "valueChange", inputFocus: "inputFocus", inputBlur: "inputBlur", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-disabled": "this.disabledClass", "class.k-textbox": "this.hostClasses", "class.k-input": "this.hostClasses", "attr.dir": "this.direction" } }, providers: [
@@ -7226,7 +7224,7 @@ TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
7226
7224
  multi: true
7227
7225
  },
7228
7226
  { provide: KendoInput, useExisting: forwardRef(() => TextBoxComponent) }
7229
- ], queries: [{ propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }, { propertyName: "textBoxSuffixTemplate", predicate: TextBoxSuffixTemplateDirective }, { propertyName: "textBoxPrefixTemplate", predicate: TextBoxPrefixTemplateDirective }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], exportAs: ["kendoTextBox"], usesOnChanges: true, ngImport: i0, template: `
7227
+ ], queries: [{ propertyName: "textBoxSuffixTemplate", first: true, predicate: TextBoxSuffixTemplateDirective, descendants: true }, { propertyName: "textBoxPrefixTemplate", first: true, predicate: TextBoxPrefixTemplateDirective, descendants: true }, { propertyName: "suffixTemplate", first: true, predicate: SuffixTemplateDirective, descendants: true }, { propertyName: "prefixTemplate", first: true, predicate: PrefixTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], exportAs: ["kendoTextBox"], usesOnChanges: true, ngImport: i0, template: `
7230
7228
  <ng-container kendoTextBoxLocalizedMessages
7231
7229
  i18n-clear="kendo.textbox.clear|The title for the **Clear** button in the TextBox."
7232
7230
  clear="Clear">
@@ -7239,11 +7237,11 @@ TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
7239
7237
  (onFocus)="handleFocus()"
7240
7238
  [clearButtonClicked]="clearButtonClicked"
7241
7239
  >
7242
- <span *ngIf="prefixTemplate" class="k-input-prefix k-input-prefix-horizontal">
7243
- <ng-template [ngTemplateOutlet]="prefixTemplate?.templateRef">
7240
+ <span *ngIf="prefix" class="k-input-prefix k-input-prefix-horizontal">
7241
+ <ng-template [ngTemplateOutlet]="prefix?.templateRef">
7244
7242
  </ng-template>
7245
7243
  </span>
7246
- <kendo-input-separator *ngIf="prefixTemplate && prefixTemplate.showSeparator"></kendo-input-separator>
7244
+ <kendo-input-separator *ngIf="prefix && prefix.showSeparator"></kendo-input-separator>
7247
7245
  <input #input
7248
7246
  class="k-input-inner"
7249
7247
  [id]="focusableId"
@@ -7295,9 +7293,9 @@ TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
7295
7293
  [svgIcon]="successSvgIcon || svgIcon('checkIcon')"
7296
7294
  >
7297
7295
  </kendo-icon-wrapper>
7298
- <kendo-input-separator *ngIf="suffixTemplate && suffixTemplate.showSeparator"></kendo-input-separator>
7299
- <span *ngIf="suffixTemplate" class="k-input-suffix k-input-suffix-horizontal">
7300
- <ng-template [ngTemplateOutlet]="suffixTemplate?.templateRef">
7296
+ <kendo-input-separator *ngIf="suffix && suffix.showSeparator"></kendo-input-separator>
7297
+ <span *ngIf="suffix" class="k-input-suffix k-input-suffix-horizontal">
7298
+ <ng-template [ngTemplateOutlet]="suffix?.templateRef">
7301
7299
  </ng-template>
7302
7300
  </span>
7303
7301
  <ng-container>
@@ -7330,11 +7328,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7330
7328
  (onFocus)="handleFocus()"
7331
7329
  [clearButtonClicked]="clearButtonClicked"
7332
7330
  >
7333
- <span *ngIf="prefixTemplate" class="k-input-prefix k-input-prefix-horizontal">
7334
- <ng-template [ngTemplateOutlet]="prefixTemplate?.templateRef">
7331
+ <span *ngIf="prefix" class="k-input-prefix k-input-prefix-horizontal">
7332
+ <ng-template [ngTemplateOutlet]="prefix?.templateRef">
7335
7333
  </ng-template>
7336
7334
  </span>
7337
- <kendo-input-separator *ngIf="prefixTemplate && prefixTemplate.showSeparator"></kendo-input-separator>
7335
+ <kendo-input-separator *ngIf="prefix && prefix.showSeparator"></kendo-input-separator>
7338
7336
  <input #input
7339
7337
  class="k-input-inner"
7340
7338
  [id]="focusableId"
@@ -7386,9 +7384,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7386
7384
  [svgIcon]="successSvgIcon || svgIcon('checkIcon')"
7387
7385
  >
7388
7386
  </kendo-icon-wrapper>
7389
- <kendo-input-separator *ngIf="suffixTemplate && suffixTemplate.showSeparator"></kendo-input-separator>
7390
- <span *ngIf="suffixTemplate" class="k-input-suffix k-input-suffix-horizontal">
7391
- <ng-template [ngTemplateOutlet]="suffixTemplate?.templateRef">
7387
+ <kendo-input-separator *ngIf="suffix && suffix.showSeparator"></kendo-input-separator>
7388
+ <span *ngIf="suffix" class="k-input-suffix k-input-suffix-horizontal">
7389
+ <ng-template [ngTemplateOutlet]="suffix?.templateRef">
7392
7390
  </ng-template>
7393
7391
  </span>
7394
7392
  <ng-container>
@@ -7456,11 +7454,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
7456
7454
  type: ViewChild,
7457
7455
  args: ['input', { static: true }]
7458
7456
  }], textBoxSuffixTemplate: [{
7459
- type: ContentChildren,
7460
- args: [TextBoxSuffixTemplateDirective, { descendants: false }]
7457
+ type: ContentChild,
7458
+ args: [TextBoxSuffixTemplateDirective]
7461
7459
  }], textBoxPrefixTemplate: [{
7462
- type: ContentChildren,
7463
- args: [TextBoxPrefixTemplateDirective, { descendants: false }]
7460
+ type: ContentChild,
7461
+ args: [TextBoxPrefixTemplateDirective]
7464
7462
  }], suffixTemplate: [{
7465
7463
  type: ContentChild,
7466
7464
  args: [SuffixTemplateDirective]
@@ -313,7 +313,7 @@ export declare class MaskedTextBoxComponent implements ControlValueAccessor, OnC
313
313
  /**
314
314
  * @hidden
315
315
  */
316
- validate(_: AbstractControl): any;
316
+ validate(_?: AbstractControl): any;
317
317
  /**
318
318
  * @hidden
319
319
  */
@@ -321,7 +321,7 @@ export declare class MaskedTextBoxComponent implements ControlValueAccessor, OnC
321
321
  /**
322
322
  * @hidden
323
323
  */
324
- updateValueWithEvents(maskedValue: string): void;
324
+ updateValueWithEvents(maskedValue: string, callOnChange?: boolean): void;
325
325
  protected onChange: (_: any) => void;
326
326
  protected onTouched: () => void;
327
327
  private updateValue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-inputs",
3
- "version": "15.0.1",
3
+ "version": "15.0.2-develop.10",
4
4
  "description": "Kendo UI for Angular Inputs Package - Everything you need to build professional form functionality (Checkbox, ColorGradient, ColorPalette, ColorPicker, FlatColorPicker, FormField, MaskedTextBox, NumericTextBox, RadioButton, RangeSlider, Slider, Switch, TextArea, and TextBox Components)",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -34,19 +34,19 @@
34
34
  "@angular/platform-browser": "13 - 17",
35
35
  "@progress/kendo-drawing": "^1.19.0",
36
36
  "@progress/kendo-licensing": "^1.0.2",
37
- "@progress/kendo-angular-buttons": "15.0.1",
38
- "@progress/kendo-angular-common": "15.0.1",
39
- "@progress/kendo-angular-dialog": "15.0.1",
40
- "@progress/kendo-angular-intl": "15.0.1",
41
- "@progress/kendo-angular-l10n": "15.0.1",
42
- "@progress/kendo-angular-popup": "15.0.1",
43
- "@progress/kendo-angular-icons": "15.0.1",
37
+ "@progress/kendo-angular-buttons": "15.0.2-develop.10",
38
+ "@progress/kendo-angular-common": "15.0.2-develop.10",
39
+ "@progress/kendo-angular-dialog": "15.0.2-develop.10",
40
+ "@progress/kendo-angular-intl": "15.0.2-develop.10",
41
+ "@progress/kendo-angular-l10n": "15.0.2-develop.10",
42
+ "@progress/kendo-angular-popup": "15.0.2-develop.10",
43
+ "@progress/kendo-angular-icons": "15.0.2-develop.10",
44
44
  "rxjs": "^6.5.3 || ^7.0.0",
45
- "@progress/kendo-angular-upload": "15.0.1"
45
+ "@progress/kendo-angular-upload": "15.0.2-develop.10"
46
46
  },
47
47
  "dependencies": {
48
48
  "tslib": "^2.3.1",
49
- "@progress/kendo-angular-schematics": "15.0.1",
49
+ "@progress/kendo-angular-schematics": "15.0.2-develop.10",
50
50
  "@progress/kendo-common": "^0.2.2",
51
51
  "@progress/kendo-draggable": "^3.0.0",
52
52
  "@progress/kendo-inputs-common": "^3.1.0"
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Subscription } from 'rxjs';
6
6
  import { ControlValueAccessor, NgControl } from '@angular/forms';
7
- import { ElementRef, EventEmitter, NgZone, ChangeDetectorRef, Injector, Renderer2, SimpleChanges, QueryList } from '@angular/core';
7
+ import { ElementRef, EventEmitter, NgZone, ChangeDetectorRef, Injector, Renderer2, SimpleChanges } from '@angular/core';
8
8
  import { IconShowOptions } from './models/icon-show-options';
9
9
  import { SuffixTemplateDirective, PrefixTemplateDirective } from '@progress/kendo-angular-common';
10
10
  import { TextBoxSuffixTemplateDirective } from './textbox-suffix.directive';
@@ -230,11 +230,11 @@ export declare class TextBoxComponent implements ControlValueAccessor {
230
230
  /**
231
231
  * @hidden
232
232
  */
233
- textBoxSuffixTemplate: QueryList<TextBoxSuffixTemplateDirective>;
233
+ textBoxSuffixTemplate: TextBoxSuffixTemplateDirective;
234
234
  /**
235
235
  * @hidden
236
236
  */
237
- textBoxPrefixTemplate: QueryList<TextBoxPrefixTemplateDirective>;
237
+ textBoxPrefixTemplate: TextBoxPrefixTemplateDirective;
238
238
  /**
239
239
  * @hidden
240
240
  */
@@ -254,6 +254,14 @@ export declare class TextBoxComponent implements ControlValueAccessor {
254
254
  * @hidden
255
255
  */
256
256
  clearButtonClicked: boolean;
257
+ /**
258
+ * @hidden
259
+ */
260
+ suffix: TextBoxSuffixTemplateDirective | SuffixTemplateDirective;
261
+ /**
262
+ * @hidden
263
+ */
264
+ prefix: TextBoxPrefixTemplateDirective | PrefixTemplateDirective;
257
265
  protected control: NgControl;
258
266
  protected subscriptions: Subscription;
259
267
  private _isFocused;
@@ -401,7 +409,6 @@ export declare class TextBoxComponent implements ControlValueAccessor {
401
409
  */
402
410
  handleBlur(): void;
403
411
  private handleClasses;
404
- private configureAdornments;
405
412
  static ɵfac: i0.ɵɵFactoryDeclaration<TextBoxComponent, never>;
406
- static ɵcmp: i0.ɵɵComponentDeclaration<TextBoxComponent, "kendo-textbox", ["kendoTextBox"], { "focusableId": "focusableId"; "title": "title"; "type": "type"; "disabled": "disabled"; "readonly": "readonly"; "tabindex": "tabindex"; "value": "value"; "selectOnFocus": "selectOnFocus"; "showSuccessIcon": "showSuccessIcon"; "showErrorIcon": "showErrorIcon"; "clearButton": "clearButton"; "successIcon": "successIcon"; "successSvgIcon": "successSvgIcon"; "errorIcon": "errorIcon"; "errorSvgIcon": "errorSvgIcon"; "clearButtonIcon": "clearButtonIcon"; "clearButtonSvgIcon": "clearButtonSvgIcon"; "size": "size"; "rounded": "rounded"; "fillMode": "fillMode"; "tabIndex": "tabIndex"; "placeholder": "placeholder"; "maxlength": "maxlength"; }, { "valueChange": "valueChange"; "inputFocus": "inputFocus"; "inputBlur": "inputBlur"; "onFocus": "focus"; "onBlur": "blur"; }, ["suffixTemplate", "prefixTemplate", "textBoxSuffixTemplate", "textBoxPrefixTemplate"], never>;
413
+ static ɵcmp: i0.ɵɵComponentDeclaration<TextBoxComponent, "kendo-textbox", ["kendoTextBox"], { "focusableId": "focusableId"; "title": "title"; "type": "type"; "disabled": "disabled"; "readonly": "readonly"; "tabindex": "tabindex"; "value": "value"; "selectOnFocus": "selectOnFocus"; "showSuccessIcon": "showSuccessIcon"; "showErrorIcon": "showErrorIcon"; "clearButton": "clearButton"; "successIcon": "successIcon"; "successSvgIcon": "successSvgIcon"; "errorIcon": "errorIcon"; "errorSvgIcon": "errorSvgIcon"; "clearButtonIcon": "clearButtonIcon"; "clearButtonSvgIcon": "clearButtonSvgIcon"; "size": "size"; "rounded": "rounded"; "fillMode": "fillMode"; "tabIndex": "tabIndex"; "placeholder": "placeholder"; "maxlength": "maxlength"; }, { "valueChange": "valueChange"; "inputFocus": "inputFocus"; "inputBlur": "inputBlur"; "onFocus": "focus"; "onBlur": "blur"; }, ["textBoxSuffixTemplate", "textBoxPrefixTemplate", "suffixTemplate", "prefixTemplate"], never>;
407
414
  }