@progress/kendo-angular-inputs 21.1.1-develop.2 → 21.2.0-develop.2

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.
Files changed (27) hide show
  1. package/esm2022/colorpicker/adaptiveness/adaptive-renderer.component.mjs +105 -97
  2. package/esm2022/colorpicker/color-contrast-svg.component.mjs +10 -7
  3. package/esm2022/colorpicker/color-gradient.component.mjs +287 -279
  4. package/esm2022/colorpicker/color-input.component.mjs +242 -235
  5. package/esm2022/colorpicker/color-palette.component.mjs +47 -39
  6. package/esm2022/colorpicker/colorpicker.component.mjs +228 -222
  7. package/esm2022/colorpicker/contrast-validation.component.mjs +26 -21
  8. package/esm2022/colorpicker/contrast.component.mjs +46 -37
  9. package/esm2022/colorpicker/flatcolorpicker-header.component.mjs +105 -95
  10. package/esm2022/colorpicker/flatcolorpicker.component.mjs +167 -157
  11. package/esm2022/form/form.component.mjs +13 -9
  12. package/esm2022/formfield/formfield.component.mjs +18 -11
  13. package/esm2022/formfieldset/formfieldset.component.mjs +15 -11
  14. package/esm2022/maskedtextbox/maskedtextbox.component.mjs +77 -61
  15. package/esm2022/numerictextbox/numerictextbox.component.mjs +133 -113
  16. package/esm2022/otpinput/otpinput-separator.component.mjs +25 -15
  17. package/esm2022/otpinput/otpinput.component.mjs +116 -109
  18. package/esm2022/package-metadata.mjs +2 -2
  19. package/esm2022/rangeslider/rangeslider.component.mjs +114 -113
  20. package/esm2022/rating/rating.component.mjs +273 -271
  21. package/esm2022/signature/signature.component.mjs +170 -161
  22. package/esm2022/slider/slider.component.mjs +130 -125
  23. package/esm2022/sliders-common/slider-ticks.component.mjs +43 -31
  24. package/esm2022/textarea/textarea.component.mjs +73 -69
  25. package/esm2022/textbox/textbox.component.mjs +145 -123
  26. package/fesm2022/progress-kendo-angular-inputs.mjs +2599 -2393
  27. package/package.json +12 -12
@@ -17,7 +17,6 @@ import { guid, isDocumentAvailable, hasObservers, KendoInput, anyChanged, Keys,
17
17
  import { SliderBase } from '../sliders-common/slider-base';
18
18
  import { caretAltDownIcon, caretAltLeftIcon, caretAltRightIcon, caretAltUpIcon } from '@progress/kendo-svg-icons';
19
19
  import { SliderTicksComponent } from '../sliders-common/slider-ticks.component';
20
- import { NgIf } from '@angular/common';
21
20
  import { LocalizedSliderMessagesDirective } from './localization/localized-slider-messages.directive';
22
21
  import { ButtonComponent } from '@progress/kendo-angular-buttons';
23
22
  import * as i0 from "@angular/core";
@@ -460,42 +459,43 @@ export class SliderComponent extends SliderBase {
460
459
  return icon;
461
460
  }
462
461
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SliderComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
463
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SliderComponent, isStandalone: true, selector: "kendo-slider", inputs: { focusableId: "focusableId", dragHandleTitle: "dragHandleTitle", incrementTitle: "incrementTitle", animate: "animate", decrementTitle: "decrementTitle", showButtons: "showButtons", value: "value", tabIndex: "tabIndex" }, providers: [
462
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SliderComponent, isStandalone: true, selector: "kendo-slider", inputs: { focusableId: "focusableId", dragHandleTitle: "dragHandleTitle", incrementTitle: "incrementTitle", animate: "animate", decrementTitle: "decrementTitle", showButtons: "showButtons", value: "value", tabIndex: "tabIndex" }, providers: [
464
463
  LocalizationService,
465
464
  { provide: L10N_PREFIX, useValue: 'kendo.slider' },
466
465
  { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SliderComponent) },
467
466
  { provide: KendoInput, useExisting: forwardRef(() => SliderComponent) }
468
467
  ], viewQueries: [{ propertyName: "draghandle", first: true, predicate: ["draghandle"], descendants: true, static: true }, { propertyName: "decreaseButton", first: true, predicate: ["decreaseButton"], descendants: true, read: ElementRef }, { propertyName: "increaseButton", first: true, predicate: ["increaseButton"], descendants: true, read: ElementRef }], exportAs: ["kendoSlider"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
469
468
  <ng-container kendoSliderLocalizedMessages
470
- i18n-increment="kendo.slider.increment|The title of the **Increase** button of the Slider."
471
- increment="increment"
472
- i18n-decrement="kendo.slider.decrement|The title of the **Decrease** button of the Slider."
473
- decrement="decrement"
474
- i18n-dragHandle="kendo.slider.dragHandle|The title of the drag handle of the Slider."
475
- dragHandle="Drag"
476
- >
477
- <button
478
- kendoButton
479
- #decreaseButton
480
- *ngIf="showButtons"
481
- type="button"
482
- rounded="full"
483
- [icon]="decreaseButtonArrowIcon"
484
- [svgIcon]="decreaseButtonArrowSVGIcon"
485
- class="k-button-decrease"
486
- [title]="decrementMessage"
487
- [attr.tabindex]="-1"
488
- ></button>
489
- <div
469
+ i18n-increment="kendo.slider.increment|The title of the **Increase** button of the Slider."
470
+ increment="increment"
471
+ i18n-decrement="kendo.slider.decrement|The title of the **Decrease** button of the Slider."
472
+ decrement="decrement"
473
+ i18n-dragHandle="kendo.slider.dragHandle|The title of the drag handle of the Slider."
474
+ dragHandle="Drag"
475
+ >
476
+ @if (showButtons) {
477
+ <button
478
+ kendoButton
479
+ #decreaseButton
480
+ type="button"
481
+ rounded="full"
482
+ [icon]="decreaseButtonArrowIcon"
483
+ [svgIcon]="decreaseButtonArrowSVGIcon"
484
+ class="k-button-decrease"
485
+ [title]="decrementMessage"
486
+ [attr.tabindex]="-1"
487
+ ></button>
488
+ }
489
+ <div
490
490
  #wrap
491
491
  class="k-slider-track-wrap"
492
492
  [class.k-slider-topleft]="tickPlacement === 'before'"
493
493
  [class.k-slider-bottomright]="tickPlacement === 'after'"
494
494
  [kendoEventsOutsideAngular]="{ click: onWrapClick, keydown: onKeyDown }"
495
- >
496
- <ul kendoSliderTicks
495
+ >
496
+ @if (tickPlacement !== 'none') {
497
+ <ul kendoSliderTicks
497
498
  #ticks
498
- *ngIf="tickPlacement !== 'none'"
499
499
  [tickTitle]="title"
500
500
  [vertical]="vertical"
501
501
  [step]="smallStep"
@@ -504,46 +504,48 @@ export class SliderComponent extends SliderBase {
504
504
  [max]="max"
505
505
  [labelTemplate]="labelTemplate?.templateRef"
506
506
  aria-hidden="true"
507
- >
508
- </ul>
507
+ >
508
+ </ul>
509
+ }
509
510
  <div #track class="k-slider-track">
510
- <div #sliderSelection class="k-slider-selection">
511
- </div>
512
- <span #draghandle
513
- role="slider"
514
- [attr.aria-valuemin]="min"
515
- [attr.aria-valuemax]="max"
516
- [attr.aria-valuenow]="currentValue"
517
- [attr.aria-valuetext]="currentValue"
518
- [attr.aria-disabled]="disabled ? true : undefined"
519
- [attr.aria-readonly]="readonly ? true : undefined"
520
- [attr.aria-orientation]="vertical ? 'vertical' : 'horizontal'"
521
- [style.touch-action]="isDisabled ? '' : 'none'"
522
- class="k-draghandle k-draghandle-end"
523
- [title]="dragHandleMessage"
524
- [attr.tabindex]="disabled ? '-1' : tabIndex"
525
- [id]="focusableId"
526
- kendoDraggable
527
- (kendoPress)="ifEnabled(handleDragPress, $event)"
528
- (kendoDrag)="ifEnabled(onHandleDrag, $event)"
529
- (kendoRelease)="ifEnabled(onHandleRelease, $event)"
530
- ></span>
511
+ <div #sliderSelection class="k-slider-selection">
512
+ </div>
513
+ <span #draghandle
514
+ role="slider"
515
+ [attr.aria-valuemin]="min"
516
+ [attr.aria-valuemax]="max"
517
+ [attr.aria-valuenow]="currentValue"
518
+ [attr.aria-valuetext]="currentValue"
519
+ [attr.aria-disabled]="disabled ? true : undefined"
520
+ [attr.aria-readonly]="readonly ? true : undefined"
521
+ [attr.aria-orientation]="vertical ? 'vertical' : 'horizontal'"
522
+ [style.touch-action]="isDisabled ? '' : 'none'"
523
+ class="k-draghandle k-draghandle-end"
524
+ [title]="dragHandleMessage"
525
+ [attr.tabindex]="disabled ? '-1' : tabIndex"
526
+ [id]="focusableId"
527
+ kendoDraggable
528
+ (kendoPress)="ifEnabled(handleDragPress, $event)"
529
+ (kendoDrag)="ifEnabled(onHandleDrag, $event)"
530
+ (kendoRelease)="ifEnabled(onHandleRelease, $event)"
531
+ ></span>
531
532
  </div>
532
- </div>
533
- <button
534
- kendoButton
535
- #increaseButton
536
- *ngIf="showButtons"
537
- type="button"
538
- rounded="full"
539
- [icon]="increaseButtonArrowIcon"
540
- [svgIcon]="increaseButtonArrowSVGIcon"
541
- class="k-button-increase"
542
- [title]="incrementMessage"
543
- [attr.tabindex]="-1"
544
- ></button>
545
- <kendo-resize-sensor (resize)="sizeComponent(false)"></kendo-resize-sensor>
546
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedSliderMessagesDirective, selector: "[kendoSliderLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: SliderTicksComponent, selector: "[kendoSliderTicks]", inputs: ["tickTitle", "vertical", "step", "largeStep", "min", "max", "labelTemplate"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
533
+ </div>
534
+ @if (showButtons) {
535
+ <button
536
+ kendoButton
537
+ #increaseButton
538
+ type="button"
539
+ rounded="full"
540
+ [icon]="increaseButtonArrowIcon"
541
+ [svgIcon]="increaseButtonArrowSVGIcon"
542
+ class="k-button-increase"
543
+ [title]="incrementMessage"
544
+ [attr.tabindex]="-1"
545
+ ></button>
546
+ }
547
+ <kendo-resize-sensor (resize)="sizeComponent(false)"></kendo-resize-sensor>
548
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedSliderMessagesDirective, selector: "[kendoSliderLocalizedMessages]" }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: SliderTicksComponent, selector: "[kendoSliderTicks]", inputs: ["tickTitle", "vertical", "step", "largeStep", "min", "max", "labelTemplate"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
547
549
  }
548
550
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SliderComponent, decorators: [{
549
551
  type: Component,
@@ -558,35 +560,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
558
560
  selector: 'kendo-slider',
559
561
  template: `
560
562
  <ng-container kendoSliderLocalizedMessages
561
- i18n-increment="kendo.slider.increment|The title of the **Increase** button of the Slider."
562
- increment="increment"
563
- i18n-decrement="kendo.slider.decrement|The title of the **Decrease** button of the Slider."
564
- decrement="decrement"
565
- i18n-dragHandle="kendo.slider.dragHandle|The title of the drag handle of the Slider."
566
- dragHandle="Drag"
567
- >
568
- <button
569
- kendoButton
570
- #decreaseButton
571
- *ngIf="showButtons"
572
- type="button"
573
- rounded="full"
574
- [icon]="decreaseButtonArrowIcon"
575
- [svgIcon]="decreaseButtonArrowSVGIcon"
576
- class="k-button-decrease"
577
- [title]="decrementMessage"
578
- [attr.tabindex]="-1"
579
- ></button>
580
- <div
563
+ i18n-increment="kendo.slider.increment|The title of the **Increase** button of the Slider."
564
+ increment="increment"
565
+ i18n-decrement="kendo.slider.decrement|The title of the **Decrease** button of the Slider."
566
+ decrement="decrement"
567
+ i18n-dragHandle="kendo.slider.dragHandle|The title of the drag handle of the Slider."
568
+ dragHandle="Drag"
569
+ >
570
+ @if (showButtons) {
571
+ <button
572
+ kendoButton
573
+ #decreaseButton
574
+ type="button"
575
+ rounded="full"
576
+ [icon]="decreaseButtonArrowIcon"
577
+ [svgIcon]="decreaseButtonArrowSVGIcon"
578
+ class="k-button-decrease"
579
+ [title]="decrementMessage"
580
+ [attr.tabindex]="-1"
581
+ ></button>
582
+ }
583
+ <div
581
584
  #wrap
582
585
  class="k-slider-track-wrap"
583
586
  [class.k-slider-topleft]="tickPlacement === 'before'"
584
587
  [class.k-slider-bottomright]="tickPlacement === 'after'"
585
588
  [kendoEventsOutsideAngular]="{ click: onWrapClick, keydown: onKeyDown }"
586
- >
587
- <ul kendoSliderTicks
589
+ >
590
+ @if (tickPlacement !== 'none') {
591
+ <ul kendoSliderTicks
588
592
  #ticks
589
- *ngIf="tickPlacement !== 'none'"
590
593
  [tickTitle]="title"
591
594
  [vertical]="vertical"
592
595
  [step]="smallStep"
@@ -595,48 +598,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
595
598
  [max]="max"
596
599
  [labelTemplate]="labelTemplate?.templateRef"
597
600
  aria-hidden="true"
598
- >
599
- </ul>
601
+ >
602
+ </ul>
603
+ }
600
604
  <div #track class="k-slider-track">
601
- <div #sliderSelection class="k-slider-selection">
602
- </div>
603
- <span #draghandle
604
- role="slider"
605
- [attr.aria-valuemin]="min"
606
- [attr.aria-valuemax]="max"
607
- [attr.aria-valuenow]="currentValue"
608
- [attr.aria-valuetext]="currentValue"
609
- [attr.aria-disabled]="disabled ? true : undefined"
610
- [attr.aria-readonly]="readonly ? true : undefined"
611
- [attr.aria-orientation]="vertical ? 'vertical' : 'horizontal'"
612
- [style.touch-action]="isDisabled ? '' : 'none'"
613
- class="k-draghandle k-draghandle-end"
614
- [title]="dragHandleMessage"
615
- [attr.tabindex]="disabled ? '-1' : tabIndex"
616
- [id]="focusableId"
617
- kendoDraggable
618
- (kendoPress)="ifEnabled(handleDragPress, $event)"
619
- (kendoDrag)="ifEnabled(onHandleDrag, $event)"
620
- (kendoRelease)="ifEnabled(onHandleRelease, $event)"
621
- ></span>
605
+ <div #sliderSelection class="k-slider-selection">
606
+ </div>
607
+ <span #draghandle
608
+ role="slider"
609
+ [attr.aria-valuemin]="min"
610
+ [attr.aria-valuemax]="max"
611
+ [attr.aria-valuenow]="currentValue"
612
+ [attr.aria-valuetext]="currentValue"
613
+ [attr.aria-disabled]="disabled ? true : undefined"
614
+ [attr.aria-readonly]="readonly ? true : undefined"
615
+ [attr.aria-orientation]="vertical ? 'vertical' : 'horizontal'"
616
+ [style.touch-action]="isDisabled ? '' : 'none'"
617
+ class="k-draghandle k-draghandle-end"
618
+ [title]="dragHandleMessage"
619
+ [attr.tabindex]="disabled ? '-1' : tabIndex"
620
+ [id]="focusableId"
621
+ kendoDraggable
622
+ (kendoPress)="ifEnabled(handleDragPress, $event)"
623
+ (kendoDrag)="ifEnabled(onHandleDrag, $event)"
624
+ (kendoRelease)="ifEnabled(onHandleRelease, $event)"
625
+ ></span>
622
626
  </div>
623
- </div>
624
- <button
625
- kendoButton
626
- #increaseButton
627
- *ngIf="showButtons"
628
- type="button"
629
- rounded="full"
630
- [icon]="increaseButtonArrowIcon"
631
- [svgIcon]="increaseButtonArrowSVGIcon"
632
- class="k-button-increase"
633
- [title]="incrementMessage"
634
- [attr.tabindex]="-1"
635
- ></button>
636
- <kendo-resize-sensor (resize)="sizeComponent(false)"></kendo-resize-sensor>
637
- `,
627
+ </div>
628
+ @if (showButtons) {
629
+ <button
630
+ kendoButton
631
+ #increaseButton
632
+ type="button"
633
+ rounded="full"
634
+ [icon]="increaseButtonArrowIcon"
635
+ [svgIcon]="increaseButtonArrowSVGIcon"
636
+ class="k-button-increase"
637
+ [title]="incrementMessage"
638
+ [attr.tabindex]="-1"
639
+ ></button>
640
+ }
641
+ <kendo-resize-sensor (resize)="sizeComponent(false)"></kendo-resize-sensor>
642
+ `,
638
643
  standalone: true,
639
- imports: [LocalizedSliderMessagesDirective, NgIf, ButtonComponent, EventsOutsideAngularDirective, SliderTicksComponent, DraggableDirective, ResizeSensorComponent]
644
+ imports: [LocalizedSliderMessagesDirective, ButtonComponent, EventsOutsideAngularDirective, SliderTicksComponent, DraggableDirective, ResizeSensorComponent]
640
645
  }]
641
646
  }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { focusableId: [{
642
647
  type: Input
@@ -5,7 +5,7 @@
5
5
  /* eslint-disable @angular-eslint/component-selector */
6
6
  import { Component, Input, QueryList, ViewChildren, HostBinding, TemplateRef } from '@angular/core';
7
7
  import { calculateTicksCount, calculateValueFromTick } from './sliders-util';
8
- import { NgFor, NgClass, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';
8
+ import { NgClass, NgTemplateOutlet } from '@angular/common';
9
9
  import * as i0 from "@angular/core";
10
10
  /**
11
11
  * @hidden
@@ -66,51 +66,63 @@ export class SliderTicksComponent {
66
66
  };
67
67
  }
68
68
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SliderTicksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
69
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SliderTicksComponent, isStandalone: true, selector: "[kendoSliderTicks]", inputs: { tickTitle: "tickTitle", vertical: "vertical", step: "step", largeStep: "largeStep", min: "min", max: "max", labelTemplate: "labelTemplate" }, host: { properties: { "class": "this.wrapperClasses" } }, viewQueries: [{ propertyName: "tickElements", predicate: ["tickElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
70
- <li #tickElement *ngFor="let tick of ticks;"
69
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SliderTicksComponent, isStandalone: true, selector: "[kendoSliderTicks]", inputs: { tickTitle: "tickTitle", vertical: "vertical", step: "step", largeStep: "largeStep", min: "min", max: "max", labelTemplate: "labelTemplate" }, host: { properties: { "class": "this.wrapperClasses" } }, viewQueries: [{ propertyName: "tickElements", predicate: ["tickElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
70
+ @for (tick of ticks; track tick) {
71
+ <li #tickElement
71
72
  [ngClass]="tick.classes"
72
73
  title="{{ tickTitle(tick.value) }}"
73
74
  role="presentation"
74
- >
75
- <ng-container [ngSwitch]="tick.large">
76
- <span class="k-label" *ngSwitchCase="true">
77
- <ng-container [ngTemplateOutlet]="labelTemplate || defaultLabel" [ngTemplateOutletContext]="tick">
78
- </ng-container>
75
+ >
76
+ @switch (tick.large) {
77
+ @case (true) {
78
+ <span class="k-label">
79
+ <ng-container [ngTemplateOutlet]="labelTemplate || defaultLabel" [ngTemplateOutletContext]="tick">
80
+ </ng-container>
79
81
  </span>
80
- <ng-container *ngSwitchCase="false">&nbsp;</ng-container>
81
- </ng-container>
82
- </li>
83
-
84
- <ng-template #defaultLabel let-value="value">
85
- {{ tickTitle(value) }}
86
- </ng-template>
87
- `, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
82
+ }
83
+ @case (false) {
84
+ &nbsp;
85
+ }
86
+ }
87
+ </li>
88
+ }
89
+
90
+ <ng-template #defaultLabel let-value="value">
91
+ {{ tickTitle(value) }}
92
+ </ng-template>
93
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
88
94
  }
89
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SliderTicksComponent, decorators: [{
90
96
  type: Component,
91
97
  args: [{
92
98
  selector: '[kendoSliderTicks]',
93
99
  template: `
94
- <li #tickElement *ngFor="let tick of ticks;"
100
+ @for (tick of ticks; track tick) {
101
+ <li #tickElement
95
102
  [ngClass]="tick.classes"
96
103
  title="{{ tickTitle(tick.value) }}"
97
104
  role="presentation"
98
- >
99
- <ng-container [ngSwitch]="tick.large">
100
- <span class="k-label" *ngSwitchCase="true">
101
- <ng-container [ngTemplateOutlet]="labelTemplate || defaultLabel" [ngTemplateOutletContext]="tick">
102
- </ng-container>
105
+ >
106
+ @switch (tick.large) {
107
+ @case (true) {
108
+ <span class="k-label">
109
+ <ng-container [ngTemplateOutlet]="labelTemplate || defaultLabel" [ngTemplateOutletContext]="tick">
110
+ </ng-container>
103
111
  </span>
104
- <ng-container *ngSwitchCase="false">&nbsp;</ng-container>
105
- </ng-container>
106
- </li>
107
-
108
- <ng-template #defaultLabel let-value="value">
109
- {{ tickTitle(value) }}
110
- </ng-template>
111
- `,
112
+ }
113
+ @case (false) {
114
+ &nbsp;
115
+ }
116
+ }
117
+ </li>
118
+ }
119
+
120
+ <ng-template #defaultLabel let-value="value">
121
+ {{ tickTitle(value) }}
122
+ </ng-template>
123
+ `,
112
124
  standalone: true,
113
- imports: [NgFor, NgClass, NgSwitch, NgSwitchCase, NgTemplateOutlet]
125
+ imports: [NgClass, NgTemplateOutlet]
114
126
  }]
115
127
  }], propDecorators: { wrapperClasses: [{
116
128
  type: HostBinding,
@@ -16,7 +16,7 @@ import { packageMetadata } from '../package-metadata';
16
16
  import { TextAreaPrefixComponent } from './textarea-prefix.component';
17
17
  import { TextAreaSuffixComponent } from './textarea-suffix.component';
18
18
  import { InputSeparatorComponent } from '../shared/input-separator.component';
19
- import { NgIf, NgClass } from '@angular/common';
19
+ import { NgClass } from '@angular/common';
20
20
  import { SharedInputEventsDirective } from '../shared/shared-events.directive';
21
21
  import * as i0 from "@angular/core";
22
22
  import * as i1 from "@progress/kendo-angular-l10n";
@@ -559,7 +559,7 @@ export class TextAreaComponent extends TextFieldsBase {
559
559
  setHTMLAttributes(attributesToRender, this.renderer, this.input.nativeElement, this.ngZone);
560
560
  }
561
561
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextAreaComponent, deps: [{ token: i1.LocalizationService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
562
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TextAreaComponent, isStandalone: true, selector: "kendo-textarea", inputs: { focusableId: "focusableId", flow: "flow", inputAttributes: "inputAttributes", adornmentsOrientation: "adornmentsOrientation", rows: "rows", cols: "cols", maxlength: "maxlength", maxResizableRows: "maxResizableRows", tabindex: "tabindex", tabIndex: "tabIndex", resizable: "resizable", size: "size", rounded: "rounded", fillMode: "fillMode", showPrefixSeparator: "showPrefixSeparator", showSuffixSeparator: "showSuffixSeparator" }, outputs: { onFocus: "focus", onBlur: "blur", valueChange: "valueChange" }, host: { properties: { "class.k-textarea": "this.hostClasses", "class.k-input": "this.hostClasses", "class.!k-flex-col": "this.flowCol", "class.!k-flex-row": "this.flowRow" } }, providers: [
562
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TextAreaComponent, isStandalone: true, selector: "kendo-textarea", inputs: { focusableId: "focusableId", flow: "flow", inputAttributes: "inputAttributes", adornmentsOrientation: "adornmentsOrientation", rows: "rows", cols: "cols", maxlength: "maxlength", maxResizableRows: "maxResizableRows", tabindex: "tabindex", tabIndex: "tabIndex", resizable: "resizable", size: "size", rounded: "rounded", fillMode: "fillMode", showPrefixSeparator: "showPrefixSeparator", showSuffixSeparator: "showSuffixSeparator" }, outputs: { onFocus: "focus", onBlur: "blur", valueChange: "valueChange" }, host: { properties: { "class.k-textarea": "this.hostClasses", "class.k-input": "this.hostClasses", "class.!k-flex-col": "this.flowCol", "class.!k-flex-row": "this.flowRow" } }, providers: [
563
563
  LocalizationService,
564
564
  { provide: L10N_PREFIX, useValue: 'kendo.textarea' },
565
565
  {
@@ -570,48 +570,50 @@ export class TextAreaComponent extends TextFieldsBase {
570
570
  { provide: KendoInput, useExisting: forwardRef(() => TextAreaComponent) }
571
571
  ], queries: [{ propertyName: "prefix", first: true, predicate: TextAreaPrefixComponent, descendants: true }, { propertyName: "suffix", first: true, predicate: TextAreaSuffixComponent, descendants: true }], exportAs: ["kendoTextArea"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
572
572
  <ng-container
573
- kendoInputSharedEvents
574
- [hostElement]="hostElement"
575
- [(isFocused)]="isFocused"
576
- (handleBlur)="handleBlur()"
577
- (onFocus)="handleFocus()"
578
- >
579
- <ng-content select="kendo-textarea-prefix"></ng-content>
573
+ kendoInputSharedEvents
574
+ [hostElement]="hostElement"
575
+ [(isFocused)]="isFocused"
576
+ (handleBlur)="handleBlur()"
577
+ (onFocus)="handleFocus()"
578
+ >
579
+ <ng-content select="kendo-textarea-prefix"></ng-content>
580
+ @if (prefix && showPrefixSeparator) {
580
581
  <kendo-input-separator
581
- *ngIf="prefix && showPrefixSeparator"
582
- [orientation]="separatorOrientation"
582
+ [orientation]="separatorOrientation"
583
583
  ></kendo-input-separator>
584
- <textarea #input
585
- class="k-input-inner !k-overflow-auto"
586
- [attr.aria-multiline]="true"
587
- [attr.aria-disabled]="disabled ? true : undefined"
588
- [attr.aria-readonly]="readonly ? true : undefined"
589
- [attr.aria-invalid]="isControlInvalid"
590
- [id]="focusableId"
591
- [attr.required]="isControlRequired ? '' : null"
592
- [ngClass]="resizableClass"
593
- [value]="value"
594
- [attr.placeholder]="placeholder"
595
- [disabled]="disabled"
596
- [readonly]="readonly"
597
- [attr.rows]="rows"
598
- [attr.cols]="cols"
599
- [attr.tabindex]="tabIndex"
600
- [attr.title]="title"
601
- [attr.maxlength]="maxlength"
602
- [attr.aria-invalid]="isControlInvalid"
584
+ }
585
+ <textarea #input
586
+ class="k-input-inner !k-overflow-auto"
587
+ [attr.aria-multiline]="true"
588
+ [attr.aria-disabled]="disabled ? true : undefined"
589
+ [attr.aria-readonly]="readonly ? true : undefined"
590
+ [attr.aria-invalid]="isControlInvalid"
591
+ [id]="focusableId"
592
+ [attr.required]="isControlRequired ? '' : null"
593
+ [ngClass]="resizableClass"
594
+ [value]="value"
595
+ [attr.placeholder]="placeholder"
596
+ [disabled]="disabled"
597
+ [readonly]="readonly"
598
+ [attr.rows]="rows"
599
+ [attr.cols]="cols"
600
+ [attr.tabindex]="tabIndex"
601
+ [attr.title]="title"
602
+ [attr.maxlength]="maxlength"
603
+ [attr.aria-invalid]="isControlInvalid"
603
604
  [kendoEventsOutsideAngular]="{
604
605
  focus: handleInputFocus,
605
606
  blur: handleInputBlur,
606
607
  input: handleInput}"
607
- ></textarea>
608
+ ></textarea>
609
+ @if (suffix && showSuffixSeparator) {
608
610
  <kendo-input-separator
609
- *ngIf="suffix && showSuffixSeparator"
610
- [orientation]="separatorOrientation"
611
+ [orientation]="separatorOrientation"
611
612
  ></kendo-input-separator>
612
- <ng-content select="kendo-textarea-suffix"></ng-content>
613
+ }
614
+ <ng-content select="kendo-textarea-suffix"></ng-content>
613
615
  </ng-container>
614
- `, isInline: true, dependencies: [{ kind: "directive", type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator", inputs: ["orientation"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
616
+ `, isInline: true, dependencies: [{ kind: "directive", type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { kind: "component", type: InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator", inputs: ["orientation"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
615
617
  }
616
618
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextAreaComponent, decorators: [{
617
619
  type: Component,
@@ -630,50 +632,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
630
632
  selector: 'kendo-textarea',
631
633
  template: `
632
634
  <ng-container
633
- kendoInputSharedEvents
634
- [hostElement]="hostElement"
635
- [(isFocused)]="isFocused"
636
- (handleBlur)="handleBlur()"
637
- (onFocus)="handleFocus()"
638
- >
639
- <ng-content select="kendo-textarea-prefix"></ng-content>
635
+ kendoInputSharedEvents
636
+ [hostElement]="hostElement"
637
+ [(isFocused)]="isFocused"
638
+ (handleBlur)="handleBlur()"
639
+ (onFocus)="handleFocus()"
640
+ >
641
+ <ng-content select="kendo-textarea-prefix"></ng-content>
642
+ @if (prefix && showPrefixSeparator) {
640
643
  <kendo-input-separator
641
- *ngIf="prefix && showPrefixSeparator"
642
- [orientation]="separatorOrientation"
644
+ [orientation]="separatorOrientation"
643
645
  ></kendo-input-separator>
644
- <textarea #input
645
- class="k-input-inner !k-overflow-auto"
646
- [attr.aria-multiline]="true"
647
- [attr.aria-disabled]="disabled ? true : undefined"
648
- [attr.aria-readonly]="readonly ? true : undefined"
649
- [attr.aria-invalid]="isControlInvalid"
650
- [id]="focusableId"
651
- [attr.required]="isControlRequired ? '' : null"
652
- [ngClass]="resizableClass"
653
- [value]="value"
654
- [attr.placeholder]="placeholder"
655
- [disabled]="disabled"
656
- [readonly]="readonly"
657
- [attr.rows]="rows"
658
- [attr.cols]="cols"
659
- [attr.tabindex]="tabIndex"
660
- [attr.title]="title"
661
- [attr.maxlength]="maxlength"
662
- [attr.aria-invalid]="isControlInvalid"
646
+ }
647
+ <textarea #input
648
+ class="k-input-inner !k-overflow-auto"
649
+ [attr.aria-multiline]="true"
650
+ [attr.aria-disabled]="disabled ? true : undefined"
651
+ [attr.aria-readonly]="readonly ? true : undefined"
652
+ [attr.aria-invalid]="isControlInvalid"
653
+ [id]="focusableId"
654
+ [attr.required]="isControlRequired ? '' : null"
655
+ [ngClass]="resizableClass"
656
+ [value]="value"
657
+ [attr.placeholder]="placeholder"
658
+ [disabled]="disabled"
659
+ [readonly]="readonly"
660
+ [attr.rows]="rows"
661
+ [attr.cols]="cols"
662
+ [attr.tabindex]="tabIndex"
663
+ [attr.title]="title"
664
+ [attr.maxlength]="maxlength"
665
+ [attr.aria-invalid]="isControlInvalid"
663
666
  [kendoEventsOutsideAngular]="{
664
667
  focus: handleInputFocus,
665
668
  blur: handleInputBlur,
666
669
  input: handleInput}"
667
- ></textarea>
670
+ ></textarea>
671
+ @if (suffix && showSuffixSeparator) {
668
672
  <kendo-input-separator
669
- *ngIf="suffix && showSuffixSeparator"
670
- [orientation]="separatorOrientation"
673
+ [orientation]="separatorOrientation"
671
674
  ></kendo-input-separator>
672
- <ng-content select="kendo-textarea-suffix"></ng-content>
675
+ }
676
+ <ng-content select="kendo-textarea-suffix"></ng-content>
673
677
  </ng-container>
674
- `,
678
+ `,
675
679
  standalone: true,
676
- imports: [SharedInputEventsDirective, NgIf, InputSeparatorComponent, NgClass, EventsOutsideAngularDirective]
680
+ imports: [SharedInputEventsDirective, InputSeparatorComponent, NgClass, EventsOutsideAngularDirective]
677
681
  }]
678
682
  }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: i0.ElementRef }], propDecorators: { focusableId: [{
679
683
  type: Input