@progress/kendo-angular-inputs 15.5.0-develop.9 → 15.5.0

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.
@@ -3,14 +3,14 @@
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, HostBinding, Output, ViewChild, ContentChild, ViewChildren, forwardRef, Inject, Injectable, HostListener, NgModule, ContentChildren, ViewContainerRef, ChangeDetectionStrategy } from '@angular/core';
6
+ import { InjectionToken, isDevMode, Directive, Optional, EventEmitter, ElementRef, Component, Input, HostBinding, Output, ViewChild, ContentChild, ViewChildren, forwardRef, Inject, Injectable, HostListener, NgModule, ContentChildren, ViewContainerRef, 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';
10
10
  import * as i1 from '@progress/kendo-angular-l10n';
11
11
  import { ComponentMessages, LocalizationService, L10N_PREFIX, RTL } from '@progress/kendo-angular-l10n';
12
- import * as i4 from '@progress/kendo-angular-common';
13
- import { Keys, guid, hasObservers, anyChanged, isDocumentAvailable, KendoInput, isObjectPresent, removeHTMLAttributes, parseAttributes, isControlRequired, setHTMLAttributes, SuffixTemplateDirective, PrefixTemplateDirective, isChanged, DraggableModule, EventsModule, ResizeSensorModule, AdornmentsModule, isSafari, PreventableEvent, findFocusableChild, parseCSSClassNames, closest as closest$1 } from '@progress/kendo-angular-common';
12
+ import * as i3$1 from '@progress/kendo-angular-common';
13
+ import { Keys, guid, hasObservers, anyChanged, isDocumentAvailable, KendoInput, isObjectPresent, removeHTMLAttributes, parseAttributes, isControlRequired, setHTMLAttributes, SuffixTemplateDirective, PrefixTemplateDirective, isChanged, DraggableModule, EventsModule, ResizeSensorModule, AdornmentsModule, isSafari, PreventableEvent, findFocusableChild, parseCSSClassNames, closest as closest$1, isPresent as isPresent$1 } from '@progress/kendo-angular-common';
14
14
  export { PrefixTemplateDirective, SeparatorComponent, SuffixTemplateDirective } from '@progress/kendo-angular-common';
15
15
  import { validatePackage } from '@progress/kendo-licensing';
16
16
  import { caretAltUpIcon, caretAltDownIcon, caretAltLeftIcon, caretAltRightIcon, checkIcon, exclamationCircleIcon, xIcon, caretAltExpandIcon, xCircleIcon, dropletSlashIcon, dropletSliderIcon, paletteIcon, hyperlinkOpenIcon, starIcon, starOutlineIcon } from '@progress/kendo-svg-icons';
@@ -25,7 +25,7 @@ import { IconsModule } from '@progress/kendo-angular-icons';
25
25
  import * as i1$2 from '@progress/kendo-angular-popup';
26
26
  import { PopupModule } from '@progress/kendo-angular-popup';
27
27
  import { parseColor as parseColor$1, Color, namedColors } from '@progress/kendo-drawing';
28
- import * as i3$1 from '@progress/kendo-angular-dialog';
28
+ import * as i3$2 from '@progress/kendo-angular-dialog';
29
29
  import { DialogsModule } from '@progress/kendo-angular-dialog';
30
30
  import { SignaturePad } from '@progress/kendo-inputs-common';
31
31
 
@@ -106,6 +106,12 @@ const getStylingClasses = (componentType, stylingOption, previousValue, newValue
106
106
  break;
107
107
  }
108
108
  };
109
+ /**
110
+ * @hidden
111
+ *
112
+ * Used to differentiate between the Radio and CheckBox components in their base class.
113
+ */
114
+ const COMPONENT_TYPE = new InjectionToken('TYPE_TOKEN');
109
115
 
110
116
  /**
111
117
  * @hidden
@@ -537,8 +543,8 @@ const packageMetadata = {
537
543
  name: '@progress/kendo-angular-inputs',
538
544
  productName: 'Kendo UI for Angular',
539
545
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
540
- publishDate: 1712910858,
541
- version: '15.5.0-develop.9',
546
+ publishDate: 1713437421,
547
+ version: '15.5.0',
542
548
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
543
549
  };
544
550
 
@@ -1498,7 +1504,7 @@ SliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
1498
1504
  [attr.aria-label]="currentValue"
1499
1505
  ></button>
1500
1506
  <kendo-resize-sensor (resize)="sizeComponent(false)"></kendo-resize-sensor>
1501
- `, isInline: true, components: [{ type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: SliderTicksComponent, selector: "[kendoSliderTicks]", inputs: ["tickTitle", "vertical", "step", "largeStep", "min", "max", "labelTemplate"] }, { type: i4.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedSliderMessagesDirective, selector: "[kendoSliderLocalizedMessages]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i4.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }] });
1507
+ `, isInline: true, components: [{ type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: SliderTicksComponent, selector: "[kendoSliderTicks]", inputs: ["tickTitle", "vertical", "step", "largeStep", "min", "max", "labelTemplate"] }, { type: i3$1.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedSliderMessagesDirective, selector: "[kendoSliderLocalizedMessages]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i3$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }] });
1502
1508
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SliderComponent, decorators: [{
1503
1509
  type: Component,
1504
1510
  args: [{
@@ -2201,7 +2207,7 @@ RangeSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
2201
2207
  </div>
2202
2208
  </div>
2203
2209
  <kendo-resize-sensor (resize)="sizeComponent()"></kendo-resize-sensor>
2204
- `, isInline: true, components: [{ type: SliderTicksComponent, selector: "[kendoSliderTicks]", inputs: ["tickTitle", "vertical", "step", "largeStep", "min", "max", "labelTemplate"] }, { type: i4.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedRangeSliderMessagesDirective, selector: "[kendoSliderLocalizedMessages]" }, { type: i4.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }] });
2210
+ `, isInline: true, components: [{ type: SliderTicksComponent, selector: "[kendoSliderTicks]", inputs: ["tickTitle", "vertical", "step", "largeStep", "min", "max", "labelTemplate"] }, { type: i3$1.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: LocalizedRangeSliderMessagesDirective, selector: "[kendoSliderLocalizedMessages]" }, { type: i3$1.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }] });
2205
2211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RangeSliderComponent, decorators: [{
2206
2212
  type: Component,
2207
2213
  args: [{
@@ -2345,8 +2351,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2345
2351
  }]
2346
2352
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
2347
2353
 
2348
- const FOCUSED$4 = 'k-focus';
2349
- const DEFAULT_SIZE$8 = 'medium';
2354
+ const FOCUSED$5 = 'k-focus';
2355
+ const DEFAULT_SIZE$9 = 'medium';
2350
2356
  const DEFAULT_THUMB_ROUNDED = 'full';
2351
2357
  const DEFAULT_TRACK_ROUNDED = 'full';
2352
2358
  /**
@@ -2468,7 +2474,7 @@ class SwitchComponent {
2468
2474
  * * `none`
2469
2475
  */
2470
2476
  set size(size) {
2471
- const newSize = size ? size : DEFAULT_SIZE$8;
2477
+ const newSize = size ? size : DEFAULT_SIZE$9;
2472
2478
  this.handleClasses(newSize, 'size');
2473
2479
  this._size = newSize;
2474
2480
  }
@@ -2695,10 +2701,10 @@ class SwitchComponent {
2695
2701
  if (this.isFocused !== value && this.hostElement) {
2696
2702
  const wrapper = this.hostElement.nativeElement;
2697
2703
  if (value) {
2698
- this.renderer.addClass(wrapper, FOCUSED$4);
2704
+ this.renderer.addClass(wrapper, FOCUSED$5);
2699
2705
  }
2700
2706
  else {
2701
- this.renderer.removeClass(wrapper, FOCUSED$4);
2707
+ this.renderer.removeClass(wrapper, FOCUSED$5);
2702
2708
  }
2703
2709
  this.isFocused = value;
2704
2710
  }
@@ -3630,9 +3636,9 @@ const PARSABLE_DEFAULTS = {
3630
3636
  min: null,
3631
3637
  step: 1
3632
3638
  };
3633
- const FOCUSED$3 = 'k-focus';
3634
- const DEFAULT_SIZE$7 = 'medium';
3635
- const DEFAULT_ROUNDED$6 = 'medium';
3639
+ const FOCUSED$4 = 'k-focus';
3640
+ const DEFAULT_SIZE$8 = 'medium';
3641
+ const DEFAULT_ROUNDED$7 = 'medium';
3636
3642
  const DEFAULT_FILL_MODE$5 = 'solid';
3637
3643
  /**
3638
3644
  * Represents the [Kendo UI NumericTextBox component for Angular]({% slug overview_numerictextbox %}).
@@ -3978,7 +3984,7 @@ class NumericTextBoxComponent {
3978
3984
  * * `none`
3979
3985
  */
3980
3986
  set size(size) {
3981
- const newSize = size ? size : DEFAULT_SIZE$7;
3987
+ const newSize = size ? size : DEFAULT_SIZE$8;
3982
3988
  this.handleClasses(newSize, 'size');
3983
3989
  this._size = newSize;
3984
3990
  }
@@ -3995,7 +4001,7 @@ class NumericTextBoxComponent {
3995
4001
  * * `none`
3996
4002
  */
3997
4003
  set rounded(rounded) {
3998
- const newRounded = rounded ? rounded : DEFAULT_ROUNDED$6;
4004
+ const newRounded = rounded ? rounded : DEFAULT_ROUNDED$7;
3999
4005
  this.handleClasses(newRounded, 'rounded');
4000
4006
  this._rounded = newRounded;
4001
4007
  }
@@ -4241,10 +4247,10 @@ class NumericTextBoxComponent {
4241
4247
  if (this.isFocused !== value && this.hostElement) {
4242
4248
  const wrap = this.hostElement.nativeElement;
4243
4249
  if (value) {
4244
- this.renderer.addClass(wrap, FOCUSED$3);
4250
+ this.renderer.addClass(wrap, FOCUSED$4);
4245
4251
  }
4246
4252
  else {
4247
- this.renderer.removeClass(wrap, FOCUSED$3);
4253
+ this.renderer.removeClass(wrap, FOCUSED$4);
4248
4254
  }
4249
4255
  this.isFocused = value;
4250
4256
  }
@@ -4661,7 +4667,7 @@ NumericTextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
4661
4667
  </button>
4662
4668
  </span>
4663
4669
  </ng-container>
4664
- `, isInline: true, components: [{ type: InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator", inputs: ["orientation"] }, { type: i2$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: LocalizedNumericTextBoxMessagesDirective, selector: "[kendoNumericTextBoxLocalizedMessages]" }, { type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
4670
+ `, isInline: true, components: [{ type: InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator", inputs: ["orientation"] }, { type: i2$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: LocalizedNumericTextBoxMessagesDirective, selector: "[kendoNumericTextBoxLocalizedMessages]" }, { type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
4665
4671
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericTextBoxComponent, decorators: [{
4666
4672
  type: Component,
4667
4673
  args: [{
@@ -5310,9 +5316,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
5310
5316
  }] });
5311
5317
 
5312
5318
  const resolvedPromise = Promise.resolve(null);
5313
- const FOCUSED$2 = 'k-focus';
5314
- const DEFAULT_SIZE$6 = 'medium';
5315
- const DEFAULT_ROUNDED$5 = 'medium';
5319
+ const FOCUSED$3 = 'k-focus';
5320
+ const DEFAULT_SIZE$7 = 'medium';
5321
+ const DEFAULT_ROUNDED$6 = 'medium';
5316
5322
  const DEFAULT_FILL_MODE$4 = 'solid';
5317
5323
  /**
5318
5324
  * Represents the [Kendo UI MaskedTextBox component for Angular]({% slug overview_maskedtextbox %}).
@@ -5550,7 +5556,7 @@ class MaskedTextBoxComponent {
5550
5556
  * * `none`
5551
5557
  */
5552
5558
  set size(size) {
5553
- const newSize = size ? size : DEFAULT_SIZE$6;
5559
+ const newSize = size ? size : DEFAULT_SIZE$7;
5554
5560
  this.handleClasses(newSize, 'size');
5555
5561
  this._size = newSize;
5556
5562
  }
@@ -5567,7 +5573,7 @@ class MaskedTextBoxComponent {
5567
5573
  * * `none`
5568
5574
  */
5569
5575
  set rounded(rounded) {
5570
- const newRounded = rounded ? rounded : DEFAULT_ROUNDED$5;
5576
+ const newRounded = rounded ? rounded : DEFAULT_ROUNDED$6;
5571
5577
  this.handleClasses(newRounded, 'rounded');
5572
5578
  this._rounded = newRounded;
5573
5579
  }
@@ -5910,10 +5916,10 @@ class MaskedTextBoxComponent {
5910
5916
  if (this.isFocused !== value && this.hostElement) {
5911
5917
  const element = this.hostElement.nativeElement;
5912
5918
  if (value) {
5913
- this.renderer.addClass(element, FOCUSED$2);
5919
+ this.renderer.addClass(element, FOCUSED$3);
5914
5920
  }
5915
5921
  else {
5916
- this.renderer.removeClass(element, FOCUSED$2);
5922
+ this.renderer.removeClass(element, FOCUSED$3);
5917
5923
  }
5918
5924
  this.isFocused = value;
5919
5925
  }
@@ -6001,7 +6007,7 @@ MaskedTextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
6001
6007
  </ng-template>
6002
6008
  </span>
6003
6009
  </ng-container>
6004
- `, isInline: true, components: [{ type: InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator", inputs: ["orientation"] }], directives: [{ type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
6010
+ `, isInline: true, components: [{ type: InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator", inputs: ["orientation"] }], directives: [{ type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
6005
6011
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MaskedTextBoxComponent, decorators: [{
6006
6012
  type: Component,
6007
6013
  args: [{
@@ -6776,9 +6782,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6776
6782
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
6777
6783
 
6778
6784
  /* eslint-disable @typescript-eslint/no-explicit-any */
6779
- const FOCUSED$1 = 'k-focus';
6780
- const DEFAULT_SIZE$5 = 'medium';
6781
- const DEFAULT_ROUNDED$4 = 'medium';
6785
+ const FOCUSED$2 = 'k-focus';
6786
+ const DEFAULT_SIZE$6 = 'medium';
6787
+ const DEFAULT_ROUNDED$5 = 'medium';
6782
6788
  const DEFAULT_FILL_MODE$3 = 'solid';
6783
6789
  const iconsMap$1 = { checkIcon, exclamationCircleIcon, xIcon };
6784
6790
  class TextBoxComponent {
@@ -6891,7 +6897,7 @@ class TextBoxComponent {
6891
6897
  * })
6892
6898
  * class AppComponent {
6893
6899
  * public handleFocus(): void {
6894
- * console.log('Component is isFocused');
6900
+ * console.log('Component is focused.');
6895
6901
  * }
6896
6902
  * }
6897
6903
  * ```
@@ -6988,7 +6994,7 @@ class TextBoxComponent {
6988
6994
  * * `none`
6989
6995
  */
6990
6996
  set size(size) {
6991
- const newSize = size ? size : DEFAULT_SIZE$5;
6997
+ const newSize = size ? size : DEFAULT_SIZE$6;
6992
6998
  this.handleClasses(newSize, 'size');
6993
6999
  this._size = newSize;
6994
7000
  }
@@ -7007,7 +7013,7 @@ class TextBoxComponent {
7007
7013
  * * `none`
7008
7014
  */
7009
7015
  set rounded(rounded) {
7010
- const newRounded = rounded ? rounded : DEFAULT_ROUNDED$4;
7016
+ const newRounded = rounded ? rounded : DEFAULT_ROUNDED$5;
7011
7017
  this.handleClasses(newRounded, 'rounded');
7012
7018
  this._rounded = newRounded;
7013
7019
  }
@@ -7307,10 +7313,10 @@ class TextBoxComponent {
7307
7313
  if (this._isFocused !== value && this.hostElement) {
7308
7314
  const element = this.hostElement.nativeElement;
7309
7315
  if (value && !this.disabled) {
7310
- this.renderer.addClass(element, FOCUSED$1);
7316
+ this.renderer.addClass(element, FOCUSED$2);
7311
7317
  }
7312
7318
  else {
7313
- this.renderer.removeClass(element, FOCUSED$1);
7319
+ this.renderer.removeClass(element, FOCUSED$2);
7314
7320
  }
7315
7321
  this._isFocused = value;
7316
7322
  }
@@ -7468,7 +7474,7 @@ TextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
7468
7474
  </ng-template>
7469
7475
  </span>
7470
7476
  <ng-container>
7471
- `, isInline: true, components: [{ type: InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator", inputs: ["orientation"] }, { type: i2$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: LocalizedTextBoxMessagesDirective, selector: "[kendoTextBoxLocalizedMessages]" }, { type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
7477
+ `, isInline: true, components: [{ type: InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator", inputs: ["orientation"] }, { type: i2$1.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: LocalizedTextBoxMessagesDirective, selector: "[kendoTextBoxLocalizedMessages]" }, { type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
7472
7478
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TextBoxComponent, decorators: [{
7473
7479
  type: Component,
7474
7480
  args: [{
@@ -8020,9 +8026,9 @@ const resizeClasses = {
8020
8026
  'none': 'k-resize-none',
8021
8027
  'auto': 'k-resize-none'
8022
8028
  };
8023
- const FOCUSED = 'k-focus';
8024
- const DEFAULT_SIZE$4 = 'medium';
8025
- const DEFAULT_ROUNDED$3 = 'medium';
8029
+ const FOCUSED$1 = 'k-focus';
8030
+ const DEFAULT_SIZE$5 = 'medium';
8031
+ const DEFAULT_ROUNDED$4 = 'medium';
8026
8032
  const DEFAULT_FILL_MODE$2 = 'solid';
8027
8033
  /**
8028
8034
  * Represents the [Kendo UI TextArea component for Angular]({% slug overview_textarea %}).
@@ -8087,7 +8093,7 @@ class TextAreaComponent extends TextFieldsBase {
8087
8093
  * })
8088
8094
  * class AppComponent {
8089
8095
  * public handleFocus(): void {
8090
- * console.log('Component is focused');
8096
+ * console.log('Component is focused.');
8091
8097
  * }
8092
8098
  * }
8093
8099
  * ```
@@ -8240,7 +8246,7 @@ class TextAreaComponent extends TextFieldsBase {
8240
8246
  * * `none`
8241
8247
  */
8242
8248
  set size(size) {
8243
- const newSize = size ? size : DEFAULT_SIZE$4;
8249
+ const newSize = size ? size : DEFAULT_SIZE$5;
8244
8250
  this.handleClasses(newSize, 'size');
8245
8251
  this._size = newSize;
8246
8252
  }
@@ -8258,7 +8264,7 @@ class TextAreaComponent extends TextFieldsBase {
8258
8264
  * * `none`
8259
8265
  */
8260
8266
  set rounded(rounded) {
8261
- const newRounded = rounded ? rounded : DEFAULT_ROUNDED$3;
8267
+ const newRounded = rounded ? rounded : DEFAULT_ROUNDED$4;
8262
8268
  this.handleClasses(newRounded, 'rounded');
8263
8269
  this._rounded = newRounded;
8264
8270
  }
@@ -8429,10 +8435,10 @@ class TextAreaComponent extends TextFieldsBase {
8429
8435
  if (this._isFocused !== value && this.hostElement) {
8430
8436
  const element = this.hostElement.nativeElement;
8431
8437
  if (value && !this.disabled) {
8432
- this.renderer.addClass(element, FOCUSED);
8438
+ this.renderer.addClass(element, FOCUSED$1);
8433
8439
  }
8434
8440
  else {
8435
- this.renderer.removeClass(element, FOCUSED);
8441
+ this.renderer.removeClass(element, FOCUSED$1);
8436
8442
  }
8437
8443
  this._isFocused = value;
8438
8444
  }
@@ -8597,7 +8603,7 @@ TextAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
8597
8603
  ></kendo-input-separator>
8598
8604
  <ng-content select="kendo-textarea-suffix"></ng-content>
8599
8605
  </ng-container>
8600
- `, isInline: true, components: [{ type: InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator", inputs: ["orientation"] }], directives: [{ type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
8606
+ `, isInline: true, components: [{ type: InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator", inputs: ["orientation"] }], directives: [{ type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3$1.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
8601
8607
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TextAreaComponent, decorators: [{
8602
8608
  type: Component,
8603
8609
  args: [{
@@ -10816,7 +10822,7 @@ ColorGradientComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
10816
10822
  [value]="value"
10817
10823
  [ratio]="contrastTool">
10818
10824
  </div>
10819
- `, isInline: true, components: [{ type: ColorContrastSvgComponent, selector: "[kendoColorContrastSvg]", inputs: ["wrapper", "hsva", "backgroundColor"] }, { type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: SliderComponent, selector: "kendo-slider", inputs: ["focusableId", "dragHandleTitle", "incrementTitle", "animate", "decrementTitle", "showButtons", "value", "tabIndex"], exportAs: ["kendoSlider"] }, { type: ColorInputComponent, selector: "kendo-colorinput", inputs: ["focusableId", "formatView", "tabindex", "value", "opacity", "disabled", "readonly"], outputs: ["valueChange", "tabOut"] }, { type: ContrastComponent, selector: "[kendoContrastTool]", inputs: ["value", "ratio"] }], directives: [{ type: LocalizedColorPickerMessagesDirective, selector: "[kendoColorPickerLocalizedMessages], [kendoFlatColorPickerLocalizedMessages], [kendoColorGradientLocalizedMessages], [kendoColorPaletteLocalizedMessages]" }, { type: i4.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
10825
+ `, isInline: true, components: [{ type: ColorContrastSvgComponent, selector: "[kendoColorContrastSvg]", inputs: ["wrapper", "hsva", "backgroundColor"] }, { type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: SliderComponent, selector: "kendo-slider", inputs: ["focusableId", "dragHandleTitle", "incrementTitle", "animate", "decrementTitle", "showButtons", "value", "tabIndex"], exportAs: ["kendoSlider"] }, { type: ColorInputComponent, selector: "kendo-colorinput", inputs: ["focusableId", "formatView", "tabindex", "value", "opacity", "disabled", "readonly"], outputs: ["valueChange", "tabOut"] }, { type: ContrastComponent, selector: "[kendoContrastTool]", inputs: ["value", "ratio"] }], directives: [{ type: LocalizedColorPickerMessagesDirective, selector: "[kendoColorPickerLocalizedMessages], [kendoFlatColorPickerLocalizedMessages], [kendoColorGradientLocalizedMessages], [kendoColorPaletteLocalizedMessages]" }, { type: i3$1.DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
10820
10826
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColorGradientComponent, decorators: [{
10821
10827
  type: Component,
10822
10828
  args: [{
@@ -12805,8 +12811,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
12805
12811
 
12806
12812
  /* eslint-disable @typescript-eslint/no-explicit-any */
12807
12813
  const DOM_FOCUS_EVENTS = ['focus', 'blur'];
12808
- const DEFAULT_SIZE$3 = 'medium';
12809
- const DEFAULT_ROUNDED$2 = 'medium';
12814
+ const DEFAULT_SIZE$4 = 'medium';
12815
+ const DEFAULT_ROUNDED$3 = 'medium';
12810
12816
  const DEFAULT_FILL_MODE$1 = 'solid';
12811
12817
  /**
12812
12818
  * @hidden
@@ -13056,7 +13062,7 @@ class ColorPickerComponent {
13056
13062
  * * `none`
13057
13063
  */
13058
13064
  set size(size) {
13059
- const newSize = size ? size : DEFAULT_SIZE$3;
13065
+ const newSize = size ? size : DEFAULT_SIZE$4;
13060
13066
  this.handleClasses(newSize, 'size');
13061
13067
  this._size = newSize;
13062
13068
  }
@@ -13075,7 +13081,7 @@ class ColorPickerComponent {
13075
13081
  * * `none`
13076
13082
  */
13077
13083
  set rounded(rounded) {
13078
- const newRounded = rounded ? rounded : DEFAULT_ROUNDED$2;
13084
+ const newRounded = rounded ? rounded : DEFAULT_ROUNDED$3;
13079
13085
  this.handleClasses(newRounded, 'rounded');
13080
13086
  this._rounded = newRounded;
13081
13087
  }
@@ -13998,8 +14004,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13998
14004
  }]
13999
14005
  }] });
14000
14006
 
14001
- const DEFAULT_SIZE$2 = 'medium';
14002
- const DEFAULT_ROUNDED$1 = 'medium';
14007
+ const DEFAULT_SIZE$3 = 'medium';
14008
+ const DEFAULT_ROUNDED$2 = 'medium';
14003
14009
  /**
14004
14010
  * Represents the directive that renders the [Kendo UI CheckBox]({% slug overview_checkbox %}) input component.
14005
14011
  * The directive is placed on input type="checkbox" elements.
@@ -14028,7 +14034,7 @@ class CheckBoxDirective {
14028
14034
  * * `none`
14029
14035
  */
14030
14036
  set size(size) {
14031
- const newSize = size ? size : DEFAULT_SIZE$2;
14037
+ const newSize = size ? size : DEFAULT_SIZE$3;
14032
14038
  this.handleClasses(newSize, 'size');
14033
14039
  this._size = newSize;
14034
14040
  }
@@ -14046,7 +14052,7 @@ class CheckBoxDirective {
14046
14052
  * * `none`
14047
14053
  */
14048
14054
  set rounded(rounded) {
14049
- const newRounded = rounded ? rounded : DEFAULT_ROUNDED$1;
14055
+ const newRounded = rounded ? rounded : DEFAULT_ROUNDED$2;
14050
14056
  this.handleClasses(newRounded, 'rounded');
14051
14057
  this._rounded = newRounded;
14052
14058
  }
@@ -14086,122 +14092,771 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14086
14092
  type: Input
14087
14093
  }] } });
14088
14094
 
14095
+ const FOCUSED = 'k-focus';
14096
+ const DEFAULT_SIZE$2 = 'medium';
14089
14097
  /**
14090
- * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
14091
- * definition for the CheckBox directive.
14092
- *
14093
- * @example
14094
- *
14095
- * ```ts-no-run
14096
- * // Import the CheckBox module
14097
- * import { CheckBoxModule } from '@progress/kendo-angular-inputs';
14098
- *
14099
- * // The browser platform with a compiler
14100
- * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
14101
- *
14102
- * import { NgModule } from '@angular/core';
14103
- *
14104
- * // Import the app component
14105
- * import { AppComponent } from './app.component';
14106
- *
14107
- * // Define the app module
14108
- * _@NgModule({
14109
- * declarations: [AppComponent], // declare app component
14110
- * imports: [BrowserModule, CheckBoxModule], // import CheckBox module
14111
- * bootstrap: [AppComponent]
14112
- * })
14113
- * export class AppModule {}
14114
- *
14115
- * // Compile and launch the module
14116
- * platformBrowserDynamic().bootstrapModule(AppModule);
14117
- *
14118
- * ```
14119
- */
14120
- class CheckBoxModule {
14121
- }
14122
- CheckBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CheckBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14123
- CheckBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CheckBoxModule, declarations: [CheckBoxDirective], imports: [CommonModule], exports: [CheckBoxDirective] });
14124
- CheckBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CheckBoxModule, imports: [[CommonModule]] });
14125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CheckBoxModule, decorators: [{
14126
- type: NgModule,
14127
- args: [{
14128
- declarations: [CheckBoxDirective],
14129
- exports: [CheckBoxDirective],
14130
- imports: [CommonModule]
14131
- }]
14132
- }] });
14133
-
14134
- const DEFAULT_SIZE$1 = 'medium';
14135
- /**
14136
- * Represents the directive that renders the [Kendo UI RadioButton]({% slug overview_checkbox %}) input component.
14137
- * The directive is placed on input type="radio" elements.
14138
- *
14139
- * @example
14140
- * ```ts-no-run
14141
- * <input type="radio" kendoRadioButton />
14142
- * ```
14098
+ * @hidden
14143
14099
  */
14144
- class RadioButtonDirective {
14145
- constructor(renderer, hostElement) {
14146
- this.renderer = renderer;
14100
+ class RadioCheckBoxBase {
14101
+ constructor(componentType, hostElement, renderer, cdr, ngZone, injector) {
14102
+ this.componentType = componentType;
14147
14103
  this.hostElement = hostElement;
14148
- this.kendoClass = true;
14149
- this._size = 'medium';
14150
- validatePackage(packageMetadata);
14104
+ this.renderer = renderer;
14105
+ this.cdr = cdr;
14106
+ this.ngZone = ngZone;
14107
+ this.injector = injector;
14108
+ /**
14109
+ * @hidden
14110
+ */
14111
+ this.focusableId = `k-${guid()}`;
14112
+ /**
14113
+ * Sets the disabled state of the component.
14114
+ *
14115
+ * @default false
14116
+ */
14117
+ this.disabled = false;
14118
+ /**
14119
+ * Specifies the `tabindex` of the component.
14120
+ *
14121
+ * @default 0
14122
+ */
14123
+ this.tabindex = 0;
14124
+ /**
14125
+ * Fires each time the user focuses the component.
14126
+ *
14127
+ * > To wire the event programmatically, use the `onFocus` property.
14128
+ */
14129
+ this.onFocus = new EventEmitter();
14130
+ /**
14131
+ * Fires each time the component gets blurred.
14132
+ *
14133
+ * > To wire the event programmatically, use the `onBlur` property.
14134
+ */
14135
+ this.onBlur = new EventEmitter();
14136
+ /**
14137
+ * @hidden
14138
+ */
14139
+ this.handleInputBlur = () => {
14140
+ this.cdr.markForCheck();
14141
+ if (requiresZoneOnBlur(this.control)) {
14142
+ this.ngZone.run(() => {
14143
+ this.ngTouched();
14144
+ });
14145
+ }
14146
+ };
14147
+ this.focusChangedProgrammatically = false;
14148
+ this.parsedAttributes = {};
14149
+ this.ngChange = (_) => { };
14150
+ this.ngTouched = () => { };
14151
+ this._isFocused = false;
14152
+ this._size = DEFAULT_SIZE$2;
14151
14153
  }
14152
14154
  /**
14153
- * The size property specifies the width and height of the RadioButton
14154
- * ([see example]({% slug appearance_radiobuttondirective %}#toc-size)).
14155
+ * @hidden
14156
+ */
14157
+ set tabIndex(tabIndex) {
14158
+ this.tabindex = tabIndex;
14159
+ }
14160
+ get tabIndex() {
14161
+ return this.tabindex;
14162
+ }
14163
+ /**
14164
+ * The size property specifies the width and height of the component.
14165
+ *
14166
+ * @default 'medium'
14167
+ *
14155
14168
  * The possible values are:
14156
14169
  * * `small`
14157
- * * `medium` (default)
14170
+ * * `medium`
14158
14171
  * * `large`
14159
14172
  * * `none`
14160
14173
  */
14161
14174
  set size(size) {
14162
- const newSize = size ? size : DEFAULT_SIZE$1;
14175
+ const newSize = size ? size : DEFAULT_SIZE$2;
14163
14176
  this.handleClasses(newSize, 'size');
14164
14177
  this._size = newSize;
14165
14178
  }
14166
14179
  get size() {
14167
14180
  return this._size;
14168
14181
  }
14169
- ngAfterViewInit() {
14170
- // kept in sync with other inputs for easier refactoring
14171
- // to a common base class
14172
- const stylingInputs = ['size'];
14173
- stylingInputs.forEach(input => {
14174
- this.handleClasses(this[input], input);
14175
- });
14182
+ /**
14183
+ * Sets the HTML attributes of the inner focusable input element. Attributes which are essential for certain component functionalities cannot be changed.
14184
+ */
14185
+ set inputAttributes(attributes) {
14186
+ if (isObjectPresent(this.parsedAttributes)) {
14187
+ removeHTMLAttributes(this.parsedAttributes, this.renderer, this.input.nativeElement);
14188
+ }
14189
+ this._inputAttributes = attributes;
14190
+ this.parsedAttributes = this.inputAttributes ?
14191
+ parseAttributes(this.inputAttributes, this.defaultAttributes) :
14192
+ this.inputAttributes;
14193
+ this.setInputAttributes();
14176
14194
  }
14177
- handleClasses(value, input) {
14178
- const elem = this.hostElement.nativeElement;
14179
- const classes = getStylingClasses('radio', input, this[input], value);
14180
- if (classes.toRemove) {
14181
- this.renderer.removeClass(elem, classes.toRemove);
14195
+ get inputAttributes() {
14196
+ return this._inputAttributes;
14197
+ }
14198
+ ngOnInit() {
14199
+ this.control = this.injector.get(NgControl, null);
14200
+ }
14201
+ /**
14202
+ * Focuses the component.
14203
+ */
14204
+ focus() {
14205
+ if (!this.input) {
14206
+ return;
14182
14207
  }
14183
- if (classes.toAdd) {
14184
- this.renderer.addClass(elem, classes.toAdd);
14208
+ this.focusChangedProgrammatically = true;
14209
+ this.isFocused = true;
14210
+ this.input.nativeElement.focus();
14211
+ this.focusChangedProgrammatically = false;
14212
+ }
14213
+ /**
14214
+ * Blurs the component.
14215
+ */
14216
+ blur() {
14217
+ this.focusChangedProgrammatically = true;
14218
+ const isFocusedElement = this.hostElement.nativeElement.querySelector(':focus');
14219
+ if (isFocusedElement) {
14220
+ isFocusedElement.blur();
14185
14221
  }
14222
+ this.isFocused = false;
14223
+ this.focusChangedProgrammatically = false;
14186
14224
  }
14187
- }
14188
- RadioButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
14189
- RadioButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: RadioButtonDirective, selector: "input[kendoRadioButton]", inputs: { size: "size" }, host: { properties: { "class.k-radio": "this.kendoClass" } }, ngImport: i0 });
14190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonDirective, decorators: [{
14191
- type: Directive,
14192
- args: [{
14193
- selector: 'input[kendoRadioButton]'
14194
- }]
14195
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { kendoClass: [{
14196
- type: HostBinding,
14197
- args: ['class.k-radio']
14198
- }], size: [{
14199
- type: Input
14200
- }] } });
14201
-
14225
+ /**
14226
+ * @hidden
14227
+ */
14228
+ handleFocus() {
14229
+ this.ngZone.run(() => {
14230
+ if (!this.focusChangedProgrammatically && hasObservers(this.onFocus)) {
14231
+ this.onFocus.emit();
14232
+ }
14233
+ this.isFocused = true;
14234
+ });
14235
+ }
14236
+ /**
14237
+ * @hidden
14238
+ */
14239
+ handleBlur() {
14240
+ this.ngZone.run(() => {
14241
+ if (!this.focusChangedProgrammatically) {
14242
+ this.ngTouched();
14243
+ this.onBlur.emit();
14244
+ }
14245
+ this.isFocused = false;
14246
+ });
14247
+ }
14248
+ /**
14249
+ * @hidden
14250
+ */
14251
+ registerOnChange(fn) {
14252
+ this.ngChange = fn;
14253
+ }
14254
+ /**
14255
+ * @hidden
14256
+ */
14257
+ registerOnTouched(fn) {
14258
+ this.ngTouched = fn;
14259
+ }
14260
+ /**
14261
+ * @hidden
14262
+ */
14263
+ get isControlRequired() {
14264
+ return isControlRequired(this.control?.control);
14265
+ }
14266
+ /**
14267
+ * @hidden
14268
+ */
14269
+ get isControlInvalid() {
14270
+ return this.control && this.control.touched && !this.control.valid;
14271
+ }
14272
+ /**
14273
+ * @hidden
14274
+ */
14275
+ get isFocused() {
14276
+ return this._isFocused;
14277
+ }
14278
+ /**
14279
+ * @hidden
14280
+ */
14281
+ set isFocused(value) {
14282
+ if (this._isFocused !== value && this.input) {
14283
+ const element = this.input.nativeElement;
14284
+ if (value && !this.disabled) {
14285
+ this.renderer.addClass(element, FOCUSED);
14286
+ }
14287
+ else {
14288
+ this.renderer.removeClass(element, FOCUSED);
14289
+ }
14290
+ this._isFocused = value;
14291
+ }
14292
+ }
14293
+ /**
14294
+ * @hidden
14295
+ * Called when the status of the component changes to or from `disabled`.
14296
+ * Depending on the value, it enables or disables the appropriate DOM element.
14297
+ *
14298
+ * @param isDisabled
14299
+ */
14300
+ setDisabledState(isDisabled) {
14301
+ this.cdr.markForCheck();
14302
+ this.disabled = isDisabled;
14303
+ }
14304
+ get defaultAttributes() { return; }
14305
+ /**
14306
+ * @hidden
14307
+ */
14308
+ writeValue(_value) { }
14309
+ handleClasses(value, input) {
14310
+ if (!isPresent$1(this.input)) {
14311
+ return;
14312
+ }
14313
+ const inputElem = this.input.nativeElement;
14314
+ const classes = getStylingClasses(this.componentType, input, this[input], value);
14315
+ if (classes.toRemove) {
14316
+ this.renderer.removeClass(inputElem, classes.toRemove);
14317
+ }
14318
+ if (classes.toAdd) {
14319
+ this.renderer.addClass(inputElem, classes.toAdd);
14320
+ }
14321
+ }
14322
+ setInputAttributes() {
14323
+ setHTMLAttributes(this.parsedAttributes, this.renderer, this.input.nativeElement);
14324
+ }
14325
+ }
14326
+ RadioCheckBoxBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioCheckBoxBase, deps: [{ token: COMPONENT_TYPE }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
14327
+ RadioCheckBoxBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: RadioCheckBoxBase, selector: "ng-component", inputs: { focusableId: "focusableId", title: "title", name: "name", disabled: "disabled", tabindex: "tabindex", tabIndex: "tabIndex", value: "value", size: "size", inputAttributes: "inputAttributes" }, outputs: { onFocus: "focus", onBlur: "blur" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: '', isInline: true });
14328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioCheckBoxBase, decorators: [{
14329
+ type: Component,
14330
+ args: [{
14331
+ template: ''
14332
+ }]
14333
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
14334
+ type: Inject,
14335
+ args: [COMPONENT_TYPE]
14336
+ }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Injector }]; }, propDecorators: { focusableId: [{
14337
+ type: Input
14338
+ }], title: [{
14339
+ type: Input
14340
+ }], name: [{
14341
+ type: Input
14342
+ }], disabled: [{
14343
+ type: Input
14344
+ }], tabindex: [{
14345
+ type: Input
14346
+ }], tabIndex: [{
14347
+ type: Input
14348
+ }], value: [{
14349
+ type: Input
14350
+ }], size: [{
14351
+ type: Input
14352
+ }], inputAttributes: [{
14353
+ type: Input
14354
+ }], onFocus: [{
14355
+ type: Output,
14356
+ args: ['focus']
14357
+ }], onBlur: [{
14358
+ type: Output,
14359
+ args: ['blur']
14360
+ }], input: [{
14361
+ type: ViewChild,
14362
+ args: ['input', { static: true }]
14363
+ }] } });
14364
+
14365
+ const DEFAULT_ROUNDED$1 = 'medium';
14366
+ class CheckBoxComponent extends RadioCheckBoxBase {
14367
+ constructor(renderer, hostElement, cdr, ngZone, injector) {
14368
+ super('checkbox', hostElement, renderer, cdr, ngZone, injector);
14369
+ this.renderer = renderer;
14370
+ this.hostElement = hostElement;
14371
+ this.cdr = cdr;
14372
+ this.ngZone = ngZone;
14373
+ this.injector = injector;
14374
+ this.hostClass = true;
14375
+ /**
14376
+ * Fires each time the inner input's checked state is changed.
14377
+ * When the state of the component is programmatically changed to `ngModel` or `formControl`
14378
+ * through its API or form binding, the `checkedStateChange` event is not triggered because it
14379
+ * might cause a mix-up with the built-in mechanisms of the `ngModel` or `formControl` bindings.
14380
+ *
14381
+ * Used to provide a two-way binding for the `checkedState` property.
14382
+ */
14383
+ this.checkedStateChange = new EventEmitter();
14384
+ this._rounded = DEFAULT_ROUNDED$1;
14385
+ this._checkedState = false;
14386
+ /**
14387
+ * @hidden
14388
+ */
14389
+ this.handleChange = ($event) => {
14390
+ this.ngZone.run(() => {
14391
+ this.checkedState = $event && $event.target && $event.target.checked;
14392
+ this.checkedStateChange.emit(this.checkedState);
14393
+ this.ngChange(this.checkedState);
14394
+ });
14395
+ };
14396
+ validatePackage(packageMetadata);
14397
+ }
14398
+ /**
14399
+ * Sets the checked state of the component.
14400
+ *
14401
+ * @default false
14402
+ */
14403
+ set checkedState(value) {
14404
+ this._checkedState = value;
14405
+ if (!isPresent$1(this.input)) {
14406
+ return;
14407
+ }
14408
+ this.input.nativeElement.indeterminate = value === 'indeterminate';
14409
+ }
14410
+ get checkedState() {
14411
+ return this._checkedState;
14412
+ }
14413
+ /**
14414
+ * The rounded property specifies the border radius of the CheckBox
14415
+ * ([see example]({% slug appearance_checkboxdirective %}#toc-rounded)).
14416
+ *
14417
+ * @default 'medium'
14418
+ *
14419
+ * The possible values are:
14420
+ * * `small`
14421
+ * * `medium`
14422
+ * * `large`
14423
+ * * `none`
14424
+ */
14425
+ set rounded(rounded) {
14426
+ const newRounded = rounded ? rounded : DEFAULT_ROUNDED$1;
14427
+ this.handleClasses(newRounded, 'rounded');
14428
+ this._rounded = newRounded;
14429
+ }
14430
+ get rounded() {
14431
+ return this._rounded;
14432
+ }
14433
+ /**
14434
+ * @hidden
14435
+ */
14436
+ get isChecked() {
14437
+ return typeof this.checkedState === 'boolean' && this.checkedState;
14438
+ }
14439
+ /**
14440
+ * @hidden
14441
+ */
14442
+ get isIndeterminate() {
14443
+ return typeof this.checkedState === 'string' && this.checkedState === 'indeterminate';
14444
+ }
14445
+ get defaultAttributes() {
14446
+ return {
14447
+ type: 'checkbox',
14448
+ id: this.focusableId,
14449
+ title: this.title,
14450
+ tabindex: this.tabindex,
14451
+ tabIndex: this.tabindex,
14452
+ disabled: this.disabled ? '' : null,
14453
+ value: this.value,
14454
+ checked: this.isChecked,
14455
+ 'aria-invalid': this.isControlInvalid
14456
+ };
14457
+ }
14458
+ ngAfterViewInit() {
14459
+ const stylingInputs = ['size', 'rounded'];
14460
+ stylingInputs.forEach(input => {
14461
+ this.handleClasses(this[input], input);
14462
+ });
14463
+ this.input.nativeElement.indeterminate = this.checkedState === 'indeterminate';
14464
+ }
14465
+ /**
14466
+ * @hidden
14467
+ */
14468
+ writeValue(value) {
14469
+ this.checkedState = value;
14470
+ }
14471
+ }
14472
+ CheckBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CheckBoxComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
14473
+ CheckBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: { checkedState: "checkedState", rounded: "rounded" }, outputs: { checkedStateChange: "checkedStateChange" }, host: { properties: { "class.k-checkbox-wrap": "this.hostClass" } }, providers: [
14474
+ LocalizationService,
14475
+ { provide: L10N_PREFIX, useValue: 'kendo.checkbox' },
14476
+ {
14477
+ provide: NG_VALUE_ACCESSOR,
14478
+ useExisting: forwardRef(() => CheckBoxComponent),
14479
+ multi: true
14480
+ },
14481
+ { provide: KendoInput, useExisting: forwardRef(() => CheckBoxComponent) }
14482
+ ], exportAs: ["kendoCheckBox"], usesInheritance: true, ngImport: i0, template: `
14483
+ <ng-container
14484
+ kendoInputSharedEvents
14485
+ [hostElement]="hostElement"
14486
+ [(isFocused)]="isFocused"
14487
+ (handleBlur)="handleBlur()"
14488
+ (onFocus)="handleFocus()"
14489
+ >
14490
+ <input #input
14491
+ type="checkbox"
14492
+ class="k-checkbox"
14493
+ [id]="focusableId"
14494
+ [attr.title]="title"
14495
+ [disabled]="disabled"
14496
+ [class.k-disabled]="disabled"
14497
+ [attr.tabindex]="disabled ? undefined : tabindex"
14498
+ [value]="value"
14499
+ [checked]="isChecked"
14500
+ [class.k-checked]="isChecked"
14501
+ [class.k-indeterminate]="isIndeterminate"
14502
+ [attr.aria-invalid]="isControlInvalid"
14503
+ [attr.required]="isControlRequired ? '' : null"
14504
+ [kendoEventsOutsideAngular]="{
14505
+ blur: handleInputBlur,
14506
+ change: handleChange
14507
+ }"
14508
+ />
14509
+ </ng-container>
14510
+ `, isInline: true, directives: [{ type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i3$1.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
14511
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CheckBoxComponent, decorators: [{
14512
+ type: Component,
14513
+ args: [{
14514
+ exportAs: 'kendoCheckBox',
14515
+ providers: [
14516
+ LocalizationService,
14517
+ { provide: L10N_PREFIX, useValue: 'kendo.checkbox' },
14518
+ {
14519
+ provide: NG_VALUE_ACCESSOR,
14520
+ useExisting: forwardRef(() => CheckBoxComponent),
14521
+ multi: true
14522
+ },
14523
+ { provide: KendoInput, useExisting: forwardRef(() => CheckBoxComponent) }
14524
+ ],
14525
+ selector: 'kendo-checkbox',
14526
+ template: `
14527
+ <ng-container
14528
+ kendoInputSharedEvents
14529
+ [hostElement]="hostElement"
14530
+ [(isFocused)]="isFocused"
14531
+ (handleBlur)="handleBlur()"
14532
+ (onFocus)="handleFocus()"
14533
+ >
14534
+ <input #input
14535
+ type="checkbox"
14536
+ class="k-checkbox"
14537
+ [id]="focusableId"
14538
+ [attr.title]="title"
14539
+ [disabled]="disabled"
14540
+ [class.k-disabled]="disabled"
14541
+ [attr.tabindex]="disabled ? undefined : tabindex"
14542
+ [value]="value"
14543
+ [checked]="isChecked"
14544
+ [class.k-checked]="isChecked"
14545
+ [class.k-indeterminate]="isIndeterminate"
14546
+ [attr.aria-invalid]="isControlInvalid"
14547
+ [attr.required]="isControlRequired ? '' : null"
14548
+ [kendoEventsOutsideAngular]="{
14549
+ blur: handleInputBlur,
14550
+ change: handleChange
14551
+ }"
14552
+ />
14553
+ </ng-container>
14554
+ `
14555
+ }]
14556
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Injector }]; }, propDecorators: { hostClass: [{
14557
+ type: HostBinding,
14558
+ args: ['class.k-checkbox-wrap']
14559
+ }], checkedState: [{
14560
+ type: Input
14561
+ }], rounded: [{
14562
+ type: Input
14563
+ }], checkedStateChange: [{
14564
+ type: Output
14565
+ }] } });
14566
+
14567
+ /**
14568
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
14569
+ * definition for the CheckBox directive and CheckBoxComponent.
14570
+ *
14571
+ * @example
14572
+ *
14573
+ * ```ts-no-run
14574
+ * // Import the CheckBox module
14575
+ * import { CheckBoxModule } from '@progress/kendo-angular-inputs';
14576
+ *
14577
+ * // The browser platform with a compiler
14578
+ * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
14579
+ *
14580
+ * import { NgModule } from '@angular/core';
14581
+ *
14582
+ * // Import the app component
14583
+ * import { AppComponent } from './app.component';
14584
+ *
14585
+ * // Define the app module
14586
+ * _@NgModule({
14587
+ * declarations: [AppComponent], // declare app component
14588
+ * imports: [BrowserModule, CheckBoxModule], // import CheckBox module
14589
+ * bootstrap: [AppComponent]
14590
+ * })
14591
+ * export class AppModule {}
14592
+ *
14593
+ * // Compile and launch the module
14594
+ * platformBrowserDynamic().bootstrapModule(AppModule);
14595
+ *
14596
+ * ```
14597
+ */
14598
+ class CheckBoxModule {
14599
+ }
14600
+ CheckBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CheckBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14601
+ CheckBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CheckBoxModule, declarations: [CheckBoxDirective, CheckBoxComponent], imports: [CommonModule, EventsModule, SharedEventsModule], exports: [CheckBoxDirective, CheckBoxComponent] });
14602
+ CheckBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CheckBoxModule, imports: [[CommonModule, EventsModule, SharedEventsModule]] });
14603
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CheckBoxModule, decorators: [{
14604
+ type: NgModule,
14605
+ args: [{
14606
+ declarations: [CheckBoxDirective, CheckBoxComponent],
14607
+ exports: [CheckBoxDirective, CheckBoxComponent],
14608
+ imports: [CommonModule, EventsModule, SharedEventsModule]
14609
+ }]
14610
+ }] });
14611
+
14612
+ const DEFAULT_SIZE$1 = 'medium';
14613
+ /**
14614
+ * Represents the directive that renders the [Kendo UI RadioButton]({% slug overview_checkbox %}) input component.
14615
+ * The directive is placed on input type="radio" elements.
14616
+ *
14617
+ * @example
14618
+ * ```ts-no-run
14619
+ * <input type="radio" kendoRadioButton />
14620
+ * ```
14621
+ */
14622
+ class RadioButtonDirective {
14623
+ constructor(renderer, hostElement) {
14624
+ this.renderer = renderer;
14625
+ this.hostElement = hostElement;
14626
+ this.kendoClass = true;
14627
+ this._size = 'medium';
14628
+ validatePackage(packageMetadata);
14629
+ }
14630
+ /**
14631
+ * The size property specifies the width and height of the RadioButton
14632
+ * ([see example]({% slug appearance_radiobuttondirective %}#toc-size)).
14633
+ * The possible values are:
14634
+ * * `small`
14635
+ * * `medium` (default)
14636
+ * * `large`
14637
+ * * `none`
14638
+ */
14639
+ set size(size) {
14640
+ const newSize = size ? size : DEFAULT_SIZE$1;
14641
+ this.handleClasses(newSize, 'size');
14642
+ this._size = newSize;
14643
+ }
14644
+ get size() {
14645
+ return this._size;
14646
+ }
14647
+ ngAfterViewInit() {
14648
+ // kept in sync with other inputs for easier refactoring
14649
+ // to a common base class
14650
+ const stylingInputs = ['size'];
14651
+ stylingInputs.forEach(input => {
14652
+ this.handleClasses(this[input], input);
14653
+ });
14654
+ }
14655
+ handleClasses(value, input) {
14656
+ const elem = this.hostElement.nativeElement;
14657
+ const classes = getStylingClasses('radio', input, this[input], value);
14658
+ if (classes.toRemove) {
14659
+ this.renderer.removeClass(elem, classes.toRemove);
14660
+ }
14661
+ if (classes.toAdd) {
14662
+ this.renderer.addClass(elem, classes.toAdd);
14663
+ }
14664
+ }
14665
+ }
14666
+ RadioButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
14667
+ RadioButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: RadioButtonDirective, selector: "input[kendoRadioButton]", inputs: { size: "size" }, host: { properties: { "class.k-radio": "this.kendoClass" } }, ngImport: i0 });
14668
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonDirective, decorators: [{
14669
+ type: Directive,
14670
+ args: [{
14671
+ selector: 'input[kendoRadioButton]'
14672
+ }]
14673
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { kendoClass: [{
14674
+ type: HostBinding,
14675
+ args: ['class.k-radio']
14676
+ }], size: [{
14677
+ type: Input
14678
+ }] } });
14679
+
14680
+ class RadioButtonComponent extends RadioCheckBoxBase {
14681
+ constructor(renderer, hostElement, cdr, ngZone, injector, localizationService) {
14682
+ super('radio', hostElement, renderer, cdr, ngZone, injector);
14683
+ this.renderer = renderer;
14684
+ this.hostElement = hostElement;
14685
+ this.cdr = cdr;
14686
+ this.ngZone = ngZone;
14687
+ this.injector = injector;
14688
+ this.localizationService = localizationService;
14689
+ this.hostClass = true;
14690
+ /**
14691
+ * Specifies the checked state of the RadioButton.
14692
+ *
14693
+ * @default false
14694
+ */
14695
+ this.checked = false;
14696
+ /**
14697
+ * Fires each time the checked state is changed.
14698
+ * When the state of the component is programmatically changed to `ngModel` or `formControl`
14699
+ * through its API or form binding, the `checkedStateChange` event is not triggered because it
14700
+ * might cause a mix-up with the built-in mechanisms of the `ngModel` or `formControl` bindings.
14701
+ *
14702
+ * Used to provide a two-way binding for the `checked` property.
14703
+ */
14704
+ this.checkedChange = new EventEmitter();
14705
+ this.subs = new Subscription();
14706
+ /**
14707
+ * @hidden
14708
+ */
14709
+ this.handleChange = ($event) => {
14710
+ this.ngZone.run(() => {
14711
+ this.checked = $event.target.checked;
14712
+ this.checkedChange.emit(this.checked);
14713
+ this.ngChange($event.target.value);
14714
+ });
14715
+ };
14716
+ validatePackage(packageMetadata);
14717
+ this.direction = localizationService.rtl ? 'rtl' : 'ltr';
14718
+ }
14719
+ get defaultAttributes() {
14720
+ return {
14721
+ type: 'radio',
14722
+ id: this.focusableId,
14723
+ title: this.title,
14724
+ tabindex: this.tabindex,
14725
+ tabIndex: this.tabindex,
14726
+ disabled: this.disabled ? '' : null,
14727
+ value: this.value,
14728
+ checked: this.checked,
14729
+ name: this.name,
14730
+ 'aria-invalid': this.isControlInvalid
14731
+ };
14732
+ }
14733
+ ngOnInit() {
14734
+ super.ngOnInit();
14735
+ this.subs.add(this.localizationService.changes.subscribe(({ rtl }) => {
14736
+ this.direction = rtl ? 'rtl' : 'ltr';
14737
+ }));
14738
+ }
14739
+ ngAfterViewInit() {
14740
+ const stylingInputs = ['size'];
14741
+ stylingInputs.forEach(input => {
14742
+ this.handleClasses(this[input], input);
14743
+ });
14744
+ // Otherwise the view is not updated in Reactive Forms - https://github.com/angular/angular/issues/13792
14745
+ if (this.control) {
14746
+ this.subs.add(this.control.valueChanges.subscribe(e => {
14747
+ this.control.control.setValue(e, { emitEvent: false });
14748
+ }));
14749
+ }
14750
+ }
14751
+ ngOnDestroy() {
14752
+ this.subs.unsubscribe();
14753
+ }
14754
+ /**
14755
+ * @hidden
14756
+ */
14757
+ writeValue(value) {
14758
+ this.checked = value === this.value;
14759
+ }
14760
+ }
14761
+ RadioButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Injector }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
14762
+ RadioButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: RadioButtonComponent, selector: "kendo-radiobutton", inputs: { checked: "checked" }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "class.k-radio-wrap": "this.hostClass", "attr.dir": "this.direction" } }, providers: [
14763
+ LocalizationService,
14764
+ { provide: L10N_PREFIX, useValue: 'kendo.radiobutton' },
14765
+ {
14766
+ provide: NG_VALUE_ACCESSOR,
14767
+ useExisting: forwardRef(() => RadioButtonComponent),
14768
+ multi: true
14769
+ },
14770
+ { provide: KendoInput, useExisting: forwardRef(() => RadioButtonComponent) }
14771
+ ], exportAs: ["kendoRadioButton"], usesInheritance: true, ngImport: i0, template: `
14772
+ <ng-container
14773
+ kendoInputSharedEvents
14774
+ [hostElement]="hostElement"
14775
+ [(isFocused)]="isFocused"
14776
+ (handleBlur)="handleBlur()"
14777
+ (onFocus)="handleFocus()"
14778
+ >
14779
+ <input #input
14780
+ type="radio"
14781
+ class="k-radio"
14782
+ [id]="focusableId"
14783
+ [attr.title]="title"
14784
+ [disabled]="disabled"
14785
+ [class.k-disabled]="disabled"
14786
+ [attr.tabindex]="disabled ? undefined : tabindex"
14787
+ [value]="value"
14788
+ [name]="name"
14789
+ [checked]="checked"
14790
+ [class.k-checked]="checked"
14791
+ [attr.aria-invalid]="isControlInvalid"
14792
+ [attr.required]="isControlRequired ? '' : null"
14793
+ [kendoEventsOutsideAngular]="{
14794
+ blur: handleInputBlur,
14795
+ change: handleChange
14796
+ }"
14797
+ />
14798
+ </ng-container>
14799
+ `, isInline: true, directives: [{ type: SharedInputEventsDirective, selector: "[kendoInputSharedEvents]", inputs: ["hostElement", "clearButtonClicked", "isFocused"], outputs: ["isFocusedChange", "onFocus", "handleBlur"] }, { type: i3$1.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
14800
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonComponent, decorators: [{
14801
+ type: Component,
14802
+ args: [{
14803
+ exportAs: 'kendoRadioButton',
14804
+ providers: [
14805
+ LocalizationService,
14806
+ { provide: L10N_PREFIX, useValue: 'kendo.radiobutton' },
14807
+ {
14808
+ provide: NG_VALUE_ACCESSOR,
14809
+ useExisting: forwardRef(() => RadioButtonComponent),
14810
+ multi: true
14811
+ },
14812
+ { provide: KendoInput, useExisting: forwardRef(() => RadioButtonComponent) }
14813
+ ],
14814
+ selector: 'kendo-radiobutton',
14815
+ template: `
14816
+ <ng-container
14817
+ kendoInputSharedEvents
14818
+ [hostElement]="hostElement"
14819
+ [(isFocused)]="isFocused"
14820
+ (handleBlur)="handleBlur()"
14821
+ (onFocus)="handleFocus()"
14822
+ >
14823
+ <input #input
14824
+ type="radio"
14825
+ class="k-radio"
14826
+ [id]="focusableId"
14827
+ [attr.title]="title"
14828
+ [disabled]="disabled"
14829
+ [class.k-disabled]="disabled"
14830
+ [attr.tabindex]="disabled ? undefined : tabindex"
14831
+ [value]="value"
14832
+ [name]="name"
14833
+ [checked]="checked"
14834
+ [class.k-checked]="checked"
14835
+ [attr.aria-invalid]="isControlInvalid"
14836
+ [attr.required]="isControlRequired ? '' : null"
14837
+ [kendoEventsOutsideAngular]="{
14838
+ blur: handleInputBlur,
14839
+ change: handleChange
14840
+ }"
14841
+ />
14842
+ </ng-container>
14843
+ `
14844
+ }]
14845
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Injector }, { type: i1.LocalizationService }]; }, propDecorators: { hostClass: [{
14846
+ type: HostBinding,
14847
+ args: ['class.k-radio-wrap']
14848
+ }], direction: [{
14849
+ type: HostBinding,
14850
+ args: ['attr.dir']
14851
+ }], checked: [{
14852
+ type: Input
14853
+ }], checkedChange: [{
14854
+ type: Output
14855
+ }] } });
14856
+
14202
14857
  /**
14203
14858
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
14204
- * definition for the RadioButton directive.
14859
+ * definition for the RadioButton directive and RadioButtonComponent.
14205
14860
  *
14206
14861
  * @example
14207
14862
  *
@@ -14233,14 +14888,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14233
14888
  class RadioButtonModule {
14234
14889
  }
14235
14890
  RadioButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14236
- RadioButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonModule, declarations: [RadioButtonDirective], imports: [CommonModule], exports: [RadioButtonDirective] });
14237
- RadioButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonModule, imports: [[CommonModule]] });
14891
+ RadioButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonModule, declarations: [RadioButtonDirective, RadioButtonComponent], imports: [CommonModule, EventsModule, SharedEventsModule], exports: [RadioButtonDirective, RadioButtonComponent] });
14892
+ RadioButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonModule, imports: [[CommonModule, EventsModule, SharedEventsModule]] });
14238
14893
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RadioButtonModule, decorators: [{
14239
14894
  type: NgModule,
14240
14895
  args: [{
14241
- declarations: [RadioButtonDirective],
14242
- exports: [RadioButtonDirective],
14243
- imports: [CommonModule]
14896
+ declarations: [RadioButtonDirective, RadioButtonComponent],
14897
+ exports: [RadioButtonDirective, RadioButtonComponent],
14898
+ imports: [CommonModule, EventsModule, SharedEventsModule]
14244
14899
  }]
14245
14900
  }] });
14246
14901
 
@@ -15471,7 +16126,7 @@ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
15471
16126
  [parentLocalization]="localization">
15472
16127
  </kendo-signature>
15473
16128
  </kendo-dialog>
15474
- `, isInline: true, components: [{ type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i3$1.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { type: SignatureComponent, selector: "kendo-signature", inputs: ["focusableId", "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: LocalizedSignatureMessagesDirective, selector: "[kendoSignatureLocalizedMessages]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16129
+ `, isInline: true, components: [{ type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i3$2.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { type: SignatureComponent, selector: "kendo-signature", inputs: ["focusableId", "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: LocalizedSignatureMessagesDirective, selector: "[kendoSignatureLocalizedMessages]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15475
16130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SignatureComponent, decorators: [{
15476
16131
  type: Component,
15477
16132
  args: [{
@@ -16657,5 +17312,5 @@ class SwitchFocusEvent {
16657
17312
  * Generated bundle index. Do not edit.
16658
17313
  */
16659
17314
 
16660
- export { ActiveColorClickEvent, CheckBoxDirective, CheckBoxModule, ColorGradientComponent, ColorPaletteComponent, ColorPickerCancelEvent, ColorPickerCloseEvent, ColorPickerComponent, ColorPickerCustomMessagesComponent, ColorPickerModule, ColorPickerOpenEvent, ErrorComponent, FlatColorPickerComponent, FormFieldComponent, FormFieldModule, HintComponent, InputSeparatorComponent, InputsModule, LabelTemplateDirective, LocalizedColorPickerMessagesDirective, LocalizedNumericTextBoxMessagesDirective, LocalizedRangeSliderMessagesDirective, LocalizedSignatureMessagesDirective, LocalizedSliderMessagesDirective, LocalizedSwitchMessagesDirective, LocalizedTextBoxMessagesDirective, MaskedTextBoxComponent, MaskedTextBoxModule, MaskingService, NumericLabelDirective, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, NumericTextBoxModule, RadioButtonDirective, RadioButtonModule, RangeSliderComponent, RangeSliderCustomMessagesComponent, RangeSliderModule, RatingComponent, RatingHoveredItemTemplateDirective, RatingItemTemplateDirective, RatingModule, RatingSelectedItemTemplateDirective, SharedModule, SignatureCloseEvent, SignatureComponent, SignatureCustomMessagesComponent, SignatureMessages, SignatureModule, SignatureOpenEvent, SliderComponent, SliderCustomMessagesComponent, SliderModule, SliderTicksComponent, SwitchBlurEvent, SwitchComponent, SwitchCustomMessagesComponent, SwitchFocusEvent, SwitchModule, TextAreaComponent, TextAreaDirective, TextAreaModule, TextAreaPrefixComponent, TextAreaSuffixComponent, TextBoxComponent, TextBoxCustomMessagesComponent, TextBoxDirective, TextBoxModule, TextBoxPrefixTemplateDirective, TextBoxSuffixTemplateDirective };
17315
+ export { ActiveColorClickEvent, CheckBoxComponent, CheckBoxDirective, CheckBoxModule, ColorGradientComponent, ColorPaletteComponent, ColorPickerCancelEvent, ColorPickerCloseEvent, ColorPickerComponent, ColorPickerCustomMessagesComponent, ColorPickerModule, ColorPickerOpenEvent, ErrorComponent, FlatColorPickerComponent, FormFieldComponent, FormFieldModule, HintComponent, InputSeparatorComponent, InputsModule, LabelTemplateDirective, LocalizedColorPickerMessagesDirective, LocalizedNumericTextBoxMessagesDirective, LocalizedRangeSliderMessagesDirective, LocalizedSignatureMessagesDirective, LocalizedSliderMessagesDirective, LocalizedSwitchMessagesDirective, LocalizedTextBoxMessagesDirective, MaskedTextBoxComponent, MaskedTextBoxModule, MaskingService, NumericLabelDirective, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, NumericTextBoxModule, RadioButtonComponent, RadioButtonDirective, RadioButtonModule, RangeSliderComponent, RangeSliderCustomMessagesComponent, RangeSliderModule, RatingComponent, RatingHoveredItemTemplateDirective, RatingItemTemplateDirective, RatingModule, RatingSelectedItemTemplateDirective, SharedModule, SignatureCloseEvent, SignatureComponent, SignatureCustomMessagesComponent, SignatureMessages, SignatureModule, SignatureOpenEvent, SliderComponent, SliderCustomMessagesComponent, SliderModule, SliderTicksComponent, SwitchBlurEvent, SwitchComponent, SwitchCustomMessagesComponent, SwitchFocusEvent, SwitchModule, TextAreaComponent, TextAreaDirective, TextAreaModule, TextAreaPrefixComponent, TextAreaSuffixComponent, TextBoxComponent, TextBoxCustomMessagesComponent, TextBoxDirective, TextBoxModule, TextBoxPrefixTemplateDirective, TextBoxSuffixTemplateDirective };
16661
17316