@progress/kendo-angular-inputs 9.1.0-sig.202208261530 → 10.0.0-dev.202209071528

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.
@@ -449,6 +449,12 @@ export class MaskedTextBoxComponent {
449
449
  }
450
450
  return null;
451
451
  }
452
+ /**
453
+ * @hidden
454
+ */
455
+ get isControlInvalid() {
456
+ return this.control && this.control.touched && !this.control.valid;
457
+ }
452
458
  /**
453
459
  * @hidden
454
460
  */
@@ -574,6 +580,8 @@ MaskedTextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
574
580
  [id]="focusableId"
575
581
  [tabindex]="tabIndex"
576
582
  [attr.title]="title"
583
+ [attr.aria-placeholder]="mask"
584
+ [attr.aria-invalid]="isControlInvalid"
577
585
  [disabled]="disabled"
578
586
  [readonly]="readonly"
579
587
  [kendoEventsOutsideAngular]="{
@@ -618,6 +626,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
618
626
  [id]="focusableId"
619
627
  [tabindex]="tabIndex"
620
628
  [attr.title]="title"
629
+ [attr.aria-placeholder]="mask"
630
+ [attr.aria-invalid]="isControlInvalid"
621
631
  [disabled]="disabled"
622
632
  [readonly]="readonly"
623
633
  [kendoEventsOutsideAngular]="{
@@ -524,6 +524,12 @@ export class NumericTextBoxComponent {
524
524
  get decrementTitle() {
525
525
  return this.localizationService.get('decrement');
526
526
  }
527
+ /**
528
+ * @hidden
529
+ */
530
+ get isControlInvalid() {
531
+ return this.control && this.control.touched && !this.control.valid;
532
+ }
527
533
  get decimalSeparator() {
528
534
  const numberSymbols = this.intl.numberSymbols();
529
535
  return numberSymbols.decimal;
@@ -865,30 +871,31 @@ NumericTextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
865
871
  >
866
872
  </ng-container>
867
873
  <input
868
- role="spinbutton"
869
- class="k-input-inner"
870
- autocomplete="off"
871
- autocorrect="off"
872
- [id]="focusableId"
873
- [attr.aria-valuemin]="min"
874
- [attr.aria-valuemax]="max"
875
- [attr.aria-valuenow]="value"
876
- [attr.title]="title"
877
- [attr.placeholder]="placeholder"
878
- [attr.maxLength]="maxlength"
879
- [tabindex]="tabIndex"
880
- [disabled]="disabled"
881
- [readonly]="readonly"
882
- [kendoEventsOutsideAngular]="{
883
- mousedown: handleMouseDown,
884
- dragenter: handleDragEnter,
885
- keydown: handleKeyDown,
886
- input: handleInput,
887
- focus: handleFocus,
888
- blur: handleBlur,
889
- paste: handlePaste
890
- }"
891
- #numericInput />
874
+ role="spinbutton"
875
+ class="k-input-inner"
876
+ autocomplete="off"
877
+ autocorrect="off"
878
+ [id]="focusableId"
879
+ [attr.aria-valuemin]="min"
880
+ [attr.aria-valuemax]="max"
881
+ [attr.aria-valuenow]="value"
882
+ [attr.title]="title"
883
+ [attr.placeholder]="placeholder"
884
+ [attr.maxLength]="maxlength"
885
+ [attr.aria-invalid]="isControlInvalid"
886
+ [tabindex]="tabIndex"
887
+ [disabled]="disabled"
888
+ [readonly]="readonly"
889
+ [kendoEventsOutsideAngular]="{
890
+ mousedown: handleMouseDown,
891
+ dragenter: handleDragEnter,
892
+ keydown: handleKeyDown,
893
+ input: handleInput,
894
+ focus: handleFocus,
895
+ blur: handleBlur,
896
+ paste: handlePaste
897
+ }"
898
+ #numericInput />
892
899
  <span
893
900
  class="k-input-spinner k-spin-button" *ngIf="spinners"
894
901
  [kendoEventsOutsideAngular]="{ mouseup: releaseArrow, mouseleave: releaseArrow }"
@@ -940,30 +947,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
940
947
  >
941
948
  </ng-container>
942
949
  <input
943
- role="spinbutton"
944
- class="k-input-inner"
945
- autocomplete="off"
946
- autocorrect="off"
947
- [id]="focusableId"
948
- [attr.aria-valuemin]="min"
949
- [attr.aria-valuemax]="max"
950
- [attr.aria-valuenow]="value"
951
- [attr.title]="title"
952
- [attr.placeholder]="placeholder"
953
- [attr.maxLength]="maxlength"
954
- [tabindex]="tabIndex"
955
- [disabled]="disabled"
956
- [readonly]="readonly"
957
- [kendoEventsOutsideAngular]="{
958
- mousedown: handleMouseDown,
959
- dragenter: handleDragEnter,
960
- keydown: handleKeyDown,
961
- input: handleInput,
962
- focus: handleFocus,
963
- blur: handleBlur,
964
- paste: handlePaste
965
- }"
966
- #numericInput />
950
+ role="spinbutton"
951
+ class="k-input-inner"
952
+ autocomplete="off"
953
+ autocorrect="off"
954
+ [id]="focusableId"
955
+ [attr.aria-valuemin]="min"
956
+ [attr.aria-valuemax]="max"
957
+ [attr.aria-valuenow]="value"
958
+ [attr.title]="title"
959
+ [attr.placeholder]="placeholder"
960
+ [attr.maxLength]="maxlength"
961
+ [attr.aria-invalid]="isControlInvalid"
962
+ [tabindex]="tabIndex"
963
+ [disabled]="disabled"
964
+ [readonly]="readonly"
965
+ [kendoEventsOutsideAngular]="{
966
+ mousedown: handleMouseDown,
967
+ dragenter: handleDragEnter,
968
+ keydown: handleKeyDown,
969
+ input: handleInput,
970
+ focus: handleFocus,
971
+ blur: handleBlur,
972
+ paste: handlePaste
973
+ }"
974
+ #numericInput />
967
975
  <span
968
976
  class="k-input-spinner k-spin-button" *ngIf="spinners"
969
977
  [kendoEventsOutsideAngular]="{ mouseup: releaseArrow, mouseleave: releaseArrow }"
@@ -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: 1661528130,
12
+ publishDate: 1662564435,
13
13
  version: '',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
15
15
  };
@@ -24,6 +24,7 @@ const DEFAULT_SIZE = 'medium';
24
24
  const DEFAULT_ROUNDED = 'medium';
25
25
  const DEFAULT_FILL_MODE = 'solid';
26
26
  const DEFAULT_POPUP_SCALE = 3;
27
+ const DEFAULT_EXPORT_SCALE = 2;
27
28
  /**
28
29
  * Represents the [Kendo UI Signature component for Angular]({% slug overview_signature %}).
29
30
  *
@@ -129,6 +130,14 @@ export class SignatureComponent {
129
130
  * @default 3
130
131
  */
131
132
  this.popupScale = DEFAULT_POPUP_SCALE;
133
+ /**
134
+ * The scale factor for the exported image.
135
+ *
136
+ * The Signature width and height will be multiplied by the scale when converting the signature to an image.
137
+ *
138
+ * @default 2
139
+ */
140
+ this.exportScale = DEFAULT_EXPORT_SCALE;
132
141
  /**
133
142
  * A flag indicating whether the dotted line should be displayed in the background.
134
143
  *
@@ -229,19 +238,29 @@ export class SignatureComponent {
229
238
  get maximizeTitle() {
230
239
  return this.getMessage('maximize');
231
240
  }
241
+ /**
242
+ * @hidden
243
+ */
244
+ get baseWidth() {
245
+ return this.width || this.element.nativeElement.offsetWidth;
246
+ }
247
+ /**
248
+ * @hidden
249
+ */
250
+ get baseHeight() {
251
+ return this.height || this.element.nativeElement.offsetHeight;
252
+ }
232
253
  /**
233
254
  * @hidden
234
255
  */
235
256
  get popupWidth() {
236
- const baseWidth = this.width || this.element.nativeElement.offsetWidth;
237
- return baseWidth * this.popupScale;
257
+ return this.baseWidth * this.popupScale;
238
258
  }
239
259
  /**
240
260
  * @hidden
241
261
  */
242
262
  get popupHeight() {
243
- const baseHeight = this.height || this.element.nativeElement.offsetHeight;
244
- return baseHeight * this.popupScale;
263
+ return this.baseHeight * this.popupScale;
245
264
  }
246
265
  /**
247
266
  * @hidden
@@ -336,7 +355,10 @@ export class SignatureComponent {
336
355
  */
337
356
  onValueChange() {
338
357
  return __awaiter(this, void 0, void 0, function* () {
339
- const value = yield this.instance.exportImage();
358
+ const value = yield this.instance.exportImage({
359
+ width: this.baseWidth * this.exportScale,
360
+ height: this.baseHeight * this.exportScale
361
+ });
340
362
  this._value = value;
341
363
  this.cd.markForCheck();
342
364
  this.ngZone.run(() => {
@@ -351,6 +373,7 @@ export class SignatureComponent {
351
373
  onDialogValueChange(value) {
352
374
  this.value = value;
353
375
  this.valueChange.emit(value);
376
+ this.notifyNgTouched();
354
377
  this.notifyNgChanged(value);
355
378
  }
356
379
  /**
@@ -400,11 +423,18 @@ export class SignatureComponent {
400
423
  * @hidden
401
424
  */
402
425
  onMaximize() {
403
- const args = new SignatureOpenEvent();
404
- this.open.next(args);
405
- if (!args.isDefaultPrevented()) {
406
- this.isOpen = true;
407
- }
426
+ return __awaiter(this, void 0, void 0, function* () {
427
+ const args = new SignatureOpenEvent();
428
+ this.open.next(args);
429
+ if (!args.isDefaultPrevented()) {
430
+ this.popupValue = yield this.instance.exportImage({
431
+ width: this.popupWidth * this.exportScale,
432
+ height: this.popupHeight * this.exportScale
433
+ });
434
+ this.isOpen = true;
435
+ this.cd.detectChanges();
436
+ }
437
+ });
408
438
  }
409
439
  /**
410
440
  * @hidden
@@ -417,7 +447,7 @@ export class SignatureComponent {
417
447
  this.hostClasses.forEach(([name]) => classList.remove(name));
418
448
  this.hostClasses = [
419
449
  [`k-signature-${SIZE_MAP[this.size || DEFAULT_SIZE]}`, !isNone(this.size)],
420
- [`k-signature-${this.fillMode || DEFAULT_FILL_MODE}`, !isNone(this.fillMode)],
450
+ [`k-input-${this.fillMode || DEFAULT_FILL_MODE}`, !isNone(this.fillMode)],
421
451
  [`k-rounded-${ROUNDED_MAP[this.rounded || DEFAULT_ROUNDED]}`, !isNone(this.rounded)]
422
452
  ];
423
453
  this.hostClasses.forEach(([name, enabled]) => classList.toggle(name, enabled));
@@ -525,7 +555,7 @@ export class SignatureComponent {
525
555
  }
526
556
  }
527
557
  SignatureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SignatureComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
528
- SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SignatureComponent, selector: "kendo-signature", inputs: { readonly: "readonly", disabled: "disabled", width: "width", height: "height", value: "value", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", color: "color", backgroundColor: "backgroundColor", strokeWidth: "strokeWidth", smooth: "smooth", maximizable: "maximizable", maximized: "maximized", popupScale: "popupScale", parentLocalization: "parentLocalization", hideLine: "hideLine" }, outputs: { valueChange: "valueChange", open: "open", close: "close", onFocus: "focus", onBlur: "blur", minimize: "minimize" }, host: { properties: { "class.k-signature": "this.staticHostClasses", "class.k-input": "this.staticHostClasses", "attr.dir": "this.direction", "class.k-readonly": "this.readonly", "class.k-disabled": "this.disabled", "style.width.px": "this.width", "style.height.px": "this.height" } }, providers: [
558
+ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SignatureComponent, selector: "kendo-signature", inputs: { readonly: "readonly", disabled: "disabled", width: "width", height: "height", value: "value", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", color: "color", backgroundColor: "backgroundColor", strokeWidth: "strokeWidth", smooth: "smooth", maximizable: "maximizable", maximized: "maximized", popupScale: "popupScale", exportScale: "exportScale", parentLocalization: "parentLocalization", hideLine: "hideLine" }, outputs: { valueChange: "valueChange", open: "open", close: "close", onFocus: "focus", onBlur: "blur", minimize: "minimize" }, host: { properties: { "class.k-signature": "this.staticHostClasses", "class.k-input": "this.staticHostClasses", "attr.dir": "this.direction", "class.k-readonly": "this.readonly", "class.k-disabled": "this.disabled", "style.width.px": "this.width", "style.height.px": "this.height" } }, providers: [
529
559
  LocalizationService,
530
560
  { provide: L10N_PREFIX, useValue: 'kendo.signature' },
531
561
  { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SignatureComponent) }
@@ -546,6 +576,7 @@ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
546
576
  class="k-signature-action k-signature-maximize"
547
577
  icon="hyperlink-open"
548
578
  fillMode="flat"
579
+ [size]="size"
549
580
  (click)="onMaximize()"
550
581
  [attr.aria-label]="maximizeTitle"
551
582
  [title]="maximizeTitle">
@@ -556,6 +587,7 @@ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
556
587
  class="k-signature-action k-signature-minimize"
557
588
  icon="window-minimize"
558
589
  fillMode="flat"
590
+ [size]="size"
559
591
  (click)="onMinimize()"
560
592
  [attr.aria-label]="minimizeTitle"
561
593
  [title]="minimizeTitle">
@@ -578,6 +610,7 @@ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
578
610
  class="k-signature-action k-signature-clear"
579
611
  icon="close"
580
612
  fillMode="flat"
613
+ [size]="size"
581
614
  [attr.aria-label]="clearTitle"
582
615
  [title]="clearTitle"
583
616
  (click)="onClear()" >
@@ -595,7 +628,7 @@ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
595
628
  [backgroundColor]="backgroundColor"
596
629
  [strokeWidth]="strokeWidth"
597
630
  [smooth]="smooth"
598
- [value]="value"
631
+ [value]="popupValue"
599
632
  (valueChange)="onDialogValueChange($event)"
600
633
  [hideLine]="hideLine"
601
634
  [class.k-signature-maximized]="true"
@@ -607,7 +640,7 @@ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
607
640
  [parentLocalization]="localization">
608
641
  </kendo-signature>
609
642
  </kendo-dialog>
610
- `, isInline: true, components: [{ type: i2.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { type: SignatureComponent, selector: "kendo-signature", inputs: ["readonly", "disabled", "width", "height", "value", "tabindex", "size", "rounded", "fillMode", "color", "backgroundColor", "strokeWidth", "smooth", "maximizable", "maximized", "popupScale", "parentLocalization", "hideLine"], outputs: ["valueChange", "open", "close", "focus", "blur", "minimize"], exportAs: ["kendoSignature"] }], directives: [{ type: i3.LocalizedSignatureMessagesDirective, selector: "[kendoSignatureLocalizedMessages]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
643
+ `, isInline: true, components: [{ type: i2.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { type: SignatureComponent, selector: "kendo-signature", inputs: ["readonly", "disabled", "width", "height", "value", "tabindex", "size", "rounded", "fillMode", "color", "backgroundColor", "strokeWidth", "smooth", "maximizable", "maximized", "popupScale", "exportScale", "parentLocalization", "hideLine"], outputs: ["valueChange", "open", "close", "focus", "blur", "minimize"], exportAs: ["kendoSignature"] }], directives: [{ type: i3.LocalizedSignatureMessagesDirective, selector: "[kendoSignatureLocalizedMessages]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
611
644
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SignatureComponent, decorators: [{
612
645
  type: Component,
613
646
  args: [{
@@ -636,6 +669,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
636
669
  class="k-signature-action k-signature-maximize"
637
670
  icon="hyperlink-open"
638
671
  fillMode="flat"
672
+ [size]="size"
639
673
  (click)="onMaximize()"
640
674
  [attr.aria-label]="maximizeTitle"
641
675
  [title]="maximizeTitle">
@@ -646,6 +680,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
646
680
  class="k-signature-action k-signature-minimize"
647
681
  icon="window-minimize"
648
682
  fillMode="flat"
683
+ [size]="size"
649
684
  (click)="onMinimize()"
650
685
  [attr.aria-label]="minimizeTitle"
651
686
  [title]="minimizeTitle">
@@ -668,6 +703,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
668
703
  class="k-signature-action k-signature-clear"
669
704
  icon="close"
670
705
  fillMode="flat"
706
+ [size]="size"
671
707
  [attr.aria-label]="clearTitle"
672
708
  [title]="clearTitle"
673
709
  (click)="onClear()" >
@@ -685,7 +721,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
685
721
  [backgroundColor]="backgroundColor"
686
722
  [strokeWidth]="strokeWidth"
687
723
  [smooth]="smooth"
688
- [value]="value"
724
+ [value]="popupValue"
689
725
  (valueChange)="onDialogValueChange($event)"
690
726
  [hideLine]="hideLine"
691
727
  [class.k-signature-maximized]="true"
@@ -752,6 +788,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
752
788
  type: Input
753
789
  }], popupScale: [{
754
790
  type: Input
791
+ }], exportScale: [{
792
+ type: Input
755
793
  }], parentLocalization: [{
756
794
  type: Input
757
795
  }], hideLine: [{
@@ -11,13 +11,13 @@ import { SignatureComponent } from './signature/signature.component';
11
11
  import * as i0 from "@angular/core";
12
12
  /**
13
13
  * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
14
- * definition for the MaskedTextBox component.
14
+ * definition for the Signature component.
15
15
  *
16
16
  * @example
17
17
  *
18
18
  * ```ts-no-run
19
- * // Import the MaskedTextBox module
20
- * import { MaskedTextBoxModule } from '@progress/kendo-angular-inputs';
19
+ * // Import the Signature module
20
+ * import { SignatureModule } from '@progress/kendo-angular-inputs';
21
21
  *
22
22
  * // The browser platform with a compiler
23
23
  * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
@@ -30,7 +30,7 @@ import * as i0 from "@angular/core";
30
30
  * // Define the app module
31
31
  * _@NgModule({
32
32
  * declarations: [AppComponent], // declare app component
33
- * imports: [BrowserModule, MaskedTextBoxModule], // import MaskedTextBox module
33
+ * imports: [BrowserModule, SignatureModule], // import Signature module
34
34
  * bootstrap: [AppComponent]
35
35
  * })
36
36
  * export class AppModule {}
@@ -277,6 +277,12 @@ export class SwitchComponent {
277
277
  this.disabled = isDisabled;
278
278
  this.changeDetector.markForCheck();
279
279
  }
280
+ /**
281
+ * @hidden
282
+ */
283
+ get isControlInvalid() {
284
+ return this.control && this.control.touched && !this.control.valid;
285
+ }
280
286
  /**
281
287
  * @hidden
282
288
  */
@@ -430,6 +436,8 @@ SwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
430
436
  [style.transitionDuration]="initialized ? '200ms' : '0ms'"
431
437
  [attr.aria-checked]="checked"
432
438
  [attr.tabindex]="(disabled ? undefined : tabIndex)"
439
+ [attr.aria-disabled]="disabled"
440
+ [attr.aria-invalid]="isControlInvalid"
433
441
  [kendoEventsOutsideAngular]="{ keydown: keyDownHandler, focus: handleFocus, blur: handleBlur }"
434
442
  >
435
443
  <span class="k-switch-label-on" [attr.aria-hidden]="true" >{{onLabelMessage}}</span>
@@ -480,6 +488,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
480
488
  [style.transitionDuration]="initialized ? '200ms' : '0ms'"
481
489
  [attr.aria-checked]="checked"
482
490
  [attr.tabindex]="(disabled ? undefined : tabIndex)"
491
+ [attr.aria-disabled]="disabled"
492
+ [attr.aria-invalid]="isControlInvalid"
483
493
  [kendoEventsOutsideAngular]="{ keydown: keyDownHandler, focus: handleFocus, blur: handleBlur }"
484
494
  >
485
495
  <span class="k-switch-label-on" [attr.aria-hidden]="true" >{{onLabelMessage}}</span>
@@ -366,6 +366,12 @@ export class TextAreaComponent extends TextFieldsBase {
366
366
  get resizableClass() {
367
367
  return resizeClasses[this.resizable];
368
368
  }
369
+ /**
370
+ * @hidden
371
+ */
372
+ get isControlInvalid() {
373
+ return this.control && this.control.touched && !this.control.valid;
374
+ }
369
375
  /**
370
376
  * Focuses the TextArea component.
371
377
  *
@@ -503,6 +509,7 @@ TextAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
503
509
  [attr.tabindex]="tabIndex"
504
510
  [attr.title]="title"
505
511
  [attr.maxlength]="maxlength"
512
+ [attr.aria-invalid]="isControlInvalid"
506
513
  [kendoEventsOutsideAngular]="{
507
514
  focus: handleInputFocus,
508
515
  blur: handleInputBlur,
@@ -543,6 +550,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
543
550
  [attr.tabindex]="tabIndex"
544
551
  [attr.title]="title"
545
552
  [attr.maxlength]="maxlength"
553
+ [attr.aria-invalid]="isControlInvalid"
546
554
  [kendoEventsOutsideAngular]="{
547
555
  focus: handleInputFocus,
548
556
  blur: handleInputBlur,
@@ -473,6 +473,12 @@ export class TextBoxComponent {
473
473
  const { valid, dirty, touched } = this.control;
474
474
  return valid && (dirty || touched);
475
475
  }
476
+ /**
477
+ * @hidden
478
+ */
479
+ get isControlInvalid() {
480
+ return this.control && this.control.touched && !this.control.valid;
481
+ }
476
482
  /**
477
483
  * @hidden
478
484
  */
@@ -599,6 +605,7 @@ TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
599
605
  [attr.placeholder]="placeholder"
600
606
  [attr.title]="title"
601
607
  [attr.maxlength]="maxlength"
608
+ [attr.aria-invalid]="isControlInvalid"
602
609
  [kendoEventsOutsideAngular]="{
603
610
  focus: handleInputFocus,
604
611
  blur: handleInputBlur,
@@ -662,6 +669,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
662
669
  [attr.placeholder]="placeholder"
663
670
  [attr.title]="title"
664
671
  [attr.maxlength]="maxlength"
672
+ [attr.aria-invalid]="isControlInvalid"
665
673
  [kendoEventsOutsideAngular]="{
666
674
  focus: handleInputFocus,
667
675
  blur: handleInputBlur,