@progress/kendo-angular-inputs 19.3.0-develop.4 → 19.3.0-develop.6

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.
@@ -10,7 +10,7 @@ import { take, tap, filter, concatMap, startWith, takeUntil, skip, debounceTime,
10
10
  import * as i1 from '@progress/kendo-angular-l10n';
11
11
  import { ComponentMessages, LocalizationService, L10N_PREFIX, RTL } from '@progress/kendo-angular-l10n';
12
12
  import * as i7 from '@progress/kendo-angular-common';
13
- import { Keys, guid, anyChanged, isDocumentAvailable, hasObservers, KendoInput, EventsOutsideAngularDirective, DraggableDirective, ResizeSensorComponent, isObjectPresent, removeHTMLAttributes, parseAttributes, isControlRequired, setHTMLAttributes, SuffixTemplateDirective, PrefixTemplateDirective, isChanged, isPresent as isPresent$1, isSafari, PreventableEvent, findFocusableChild, parseCSSClassNames, closest as closest$1, SeparatorComponent, ResizeBatchService, KENDO_ADORNMENTS } from '@progress/kendo-angular-common';
13
+ import { Keys, guid, anyChanged, isDocumentAvailable, hasObservers, KendoInput, EventsOutsideAngularDirective, DraggableDirective, ResizeSensorComponent, isObjectPresent, removeHTMLAttributes, parseAttributes, isControlRequired, setHTMLAttributes, SuffixTemplateDirective, PrefixTemplateDirective, isChanged, isPresent as isPresent$1, isSafari, PreventableEvent, findFocusableChild, parseCSSClassNames, closest as closest$1, replaceMessagePlaceholder, shouldShowValidationUI, WatermarkOverlayComponent, SeparatorComponent, ResizeBatchService, KENDO_ADORNMENTS } 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, starIcon, starOutlineIcon, hyperlinkOpenIcon } from '@progress/kendo-svg-icons';
@@ -111,10 +111,6 @@ const getStylingClasses = (componentType, stylingOption, previousValue, newValue
111
111
  * Used to differentiate between the Radio and CheckBox components in their base class.
112
112
  */
113
113
  const COMPONENT_TYPE = new InjectionToken('TYPE_TOKEN');
114
- /**
115
- * @hidden
116
- */
117
- const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`{\\s*${name}\\s*}`, 'g'), value);
118
114
 
119
115
  /**
120
116
  * @hidden
@@ -554,8 +550,8 @@ const packageMetadata = {
554
550
  productName: 'Kendo UI for Angular',
555
551
  productCode: 'KENDOUIANGULAR',
556
552
  productCodes: ['KENDOUIANGULAR'],
557
- publishDate: 1752065327,
558
- version: '19.3.0-develop.4',
553
+ publishDate: 1752079751,
554
+ version: '19.3.0-develop.6',
559
555
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
560
556
  };
561
557
 
@@ -1872,6 +1868,7 @@ class RangeSliderComponent extends SliderBase {
1872
1868
  this.ngZone = ngZone;
1873
1869
  this.changeDetector = changeDetector;
1874
1870
  this.hostElement = hostElement;
1871
+ validatePackage(packageMetadata);
1875
1872
  }
1876
1873
  /**
1877
1874
  * Focuses the RangeSlider.
@@ -14203,6 +14200,152 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
14203
14200
  args: ['attr.id']
14204
14201
  }] } });
14205
14202
 
14203
+ /**
14204
+ * @hidden
14205
+ */
14206
+ class FormService {
14207
+ formWidth = new BehaviorSubject(null);
14208
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14209
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormService, providedIn: 'root' });
14210
+ }
14211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormService, decorators: [{
14212
+ type: Injectable,
14213
+ args: [{
14214
+ providedIn: 'root',
14215
+ }]
14216
+ }] });
14217
+
14218
+ /**
14219
+ * @hidden
14220
+ */
14221
+ function innerWidth(element) {
14222
+ let width = element.clientWidth;
14223
+ const style = getComputedStyle(element);
14224
+ width -= (parseFloat(style.paddingLeft) || 0) + (parseFloat(style.borderLeftWidth) || 0);
14225
+ width -= (parseFloat(style.paddingRight) || 0) + (parseFloat(style.borderRightWidth) || 0);
14226
+ return width;
14227
+ }
14228
+ /**
14229
+ * @hidden
14230
+ */
14231
+ function processBreakpoints(breakpoints, containerWidth) {
14232
+ if (!breakpoints?.length || containerWidth === null) {
14233
+ return null;
14234
+ }
14235
+ for (const [index, breakpoint] of breakpoints.entries()) {
14236
+ const minBreakpointWidth = breakpoint.minWidth || breakpoints[index - 1]?.maxWidth + 1 || 0;
14237
+ const maxBreakpointWidth = breakpoint.maxWidth || breakpoints[index + 1]?.minWidth - 1 || Infinity;
14238
+ if (containerWidth >= minBreakpointWidth && containerWidth <= maxBreakpointWidth) {
14239
+ return breakpoint.value;
14240
+ }
14241
+ }
14242
+ return null;
14243
+ }
14244
+ /**
14245
+ * @hidden
14246
+ */
14247
+ const calculateColumns = (cols, containerWidth) => {
14248
+ if (!cols) {
14249
+ return null;
14250
+ }
14251
+ if (Array.isArray(cols) && cols.length > 0) {
14252
+ return processBreakpoints(cols, containerWidth);
14253
+ }
14254
+ else if (typeof cols === 'number') {
14255
+ return cols;
14256
+ }
14257
+ return null;
14258
+ };
14259
+ /**
14260
+ * @hidden
14261
+ *
14262
+ * Calculates gutters for rows and columns based on responsive breakpoints or fixed values
14263
+ */
14264
+ const calculateGutters = (gutters, containerWidth) => {
14265
+ if (!gutters) {
14266
+ return null;
14267
+ }
14268
+ if (typeof gutters === 'number') {
14269
+ return { cols: gutters, rows: gutters };
14270
+ }
14271
+ else if (Array.isArray(gutters)) {
14272
+ const processedGutters = processBreakpoints(gutters, containerWidth);
14273
+ return processedGutters !== null ? { cols: processedGutters, rows: processedGutters } : null;
14274
+ }
14275
+ else if (typeof gutters === 'object') {
14276
+ const gutterObject = gutters;
14277
+ const result = { rows: null, cols: null };
14278
+ if (gutterObject.cols !== undefined && gutterObject.cols !== null) {
14279
+ if (typeof gutterObject.cols === 'number') {
14280
+ result.cols = gutterObject.cols;
14281
+ }
14282
+ else if (Array.isArray(gutterObject.cols)) {
14283
+ result.cols = processBreakpoints(gutterObject.cols, containerWidth) || null;
14284
+ }
14285
+ }
14286
+ else {
14287
+ result.cols = null;
14288
+ }
14289
+ if (gutterObject.rows !== undefined) {
14290
+ if (typeof gutterObject.rows === 'number') {
14291
+ result.rows = gutterObject.rows;
14292
+ }
14293
+ else if (Array.isArray(gutterObject.rows)) {
14294
+ result.rows = processBreakpoints(gutterObject.rows, containerWidth) || null;
14295
+ }
14296
+ }
14297
+ else {
14298
+ result.rows = null;
14299
+ }
14300
+ return result;
14301
+ }
14302
+ return null;
14303
+ };
14304
+ /**
14305
+ * @hidden
14306
+ *
14307
+ * Calculates column span value based on responsive breakpoints or fixed number
14308
+ */
14309
+ const calculateColSpan = (colSpan, containerWidth) => {
14310
+ if (!colSpan) {
14311
+ return null;
14312
+ }
14313
+ if (typeof colSpan === 'number') {
14314
+ return colSpan;
14315
+ }
14316
+ else if (Array.isArray(colSpan) && colSpan.length > 0) {
14317
+ return processBreakpoints(colSpan, containerWidth);
14318
+ }
14319
+ return null;
14320
+ };
14321
+ /**
14322
+ * @hidden
14323
+ *
14324
+ * Generates CSS class names for columns
14325
+ */
14326
+ const generateColumnClass = (columnsNumber) => {
14327
+ return columnsNumber && columnsNumber > 0 ? `k-grid-cols-${columnsNumber}` : '';
14328
+ };
14329
+ /**
14330
+ * @hidden
14331
+ *
14332
+ * Generates CSS class names for gutters
14333
+ */
14334
+ const generateGutterClasses = (gutters) => {
14335
+ return {
14336
+ rows: gutters?.rows ? `k-gap-y-${gutters.rows}` : '',
14337
+ cols: gutters?.cols ? `k-gap-x-${gutters.cols}` : ''
14338
+ };
14339
+ };
14340
+ /**
14341
+ * @hidden
14342
+ *
14343
+ * Generates CSS class name for column span
14344
+ */
14345
+ const generateColSpanClass = (colSpan) => {
14346
+ return colSpan ? `k-col-span-${colSpan}` : '';
14347
+ };
14348
+
14206
14349
  /**
14207
14350
  * Represents the Kendo UI FormField component for Angular.
14208
14351
  * Use this component to group form-bound controls (Kendo Angular components or native HTML controls).
@@ -14225,6 +14368,7 @@ class FormFieldComponent {
14225
14368
  renderer;
14226
14369
  localizationService;
14227
14370
  hostElement;
14371
+ formService;
14228
14372
  hostClass = true;
14229
14373
  /**
14230
14374
  * @hidden
@@ -14267,6 +14411,8 @@ class FormFieldComponent {
14267
14411
  /**
14268
14412
  * Specifies the layout orientation of the form field.
14269
14413
  *
14414
+ * @hidden
14415
+ *
14270
14416
  * @default 'vertical'
14271
14417
  */
14272
14418
  orientation = 'vertical';
@@ -14278,6 +14424,11 @@ class FormFieldComponent {
14278
14424
  * @default 'initial'
14279
14425
  */
14280
14426
  showErrors = 'initial';
14427
+ /**
14428
+ * Defines the colspan for the form field.
14429
+ * Can be a number or an array of responsive breakpoints.
14430
+ */
14431
+ colSpan;
14281
14432
  /**
14282
14433
  * @hidden
14283
14434
  */
@@ -14299,15 +14450,23 @@ class FormFieldComponent {
14299
14450
  control;
14300
14451
  subscriptions = new Subscription();
14301
14452
  rtl = false;
14302
- constructor(renderer, localizationService, hostElement) {
14453
+ _formWidth = null;
14454
+ _colSpanClass = null;
14455
+ _previousColSpan = null;
14456
+ constructor(renderer, localizationService, hostElement, formService) {
14303
14457
  this.renderer = renderer;
14304
14458
  this.localizationService = localizationService;
14305
14459
  this.hostElement = hostElement;
14460
+ this.formService = formService;
14306
14461
  validatePackage(packageMetadata);
14307
14462
  this.subscriptions.add(this.localizationService.changes.subscribe(({ rtl }) => {
14308
14463
  this.rtl = rtl;
14309
14464
  this.direction = this.rtl ? 'rtl' : 'ltr';
14310
14465
  }));
14466
+ this.subscriptions.add(this.formService.formWidth.pipe(filter((width) => width !== null)).subscribe((width) => {
14467
+ this._formWidth = width;
14468
+ this.updateColSpanClass();
14469
+ }));
14311
14470
  }
14312
14471
  ngAfterViewInit() {
14313
14472
  this.setDescription();
@@ -14315,6 +14474,11 @@ class FormFieldComponent {
14315
14474
  ngAfterViewChecked() {
14316
14475
  this.updateDescription();
14317
14476
  }
14477
+ ngOnChanges(changes) {
14478
+ if (changes['colSpan']) {
14479
+ this.updateColSpanClass();
14480
+ }
14481
+ }
14318
14482
  ngOnDestroy() {
14319
14483
  this.subscriptions.unsubscribe();
14320
14484
  }
@@ -14419,14 +14583,29 @@ class FormFieldComponent {
14419
14583
  this.subscriptions.add(this.errorChildren.changes.subscribe(() => this.updateDescription()));
14420
14584
  this.subscriptions.add(this.hintChildren.changes.subscribe(() => this.updateDescription()));
14421
14585
  }
14422
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, deps: [{ token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
14423
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "kendo-formfield", inputs: { showHints: "showHints", orientation: "orientation", showErrors: "showErrors" }, host: { properties: { "class.k-form-field": "this.hostClass", "attr.dir": "this.direction", "class.k-form-field-error": "this.errorClass", "class.k-form-field-disabled": "this.disabledClass" } }, providers: [
14586
+ updateColSpanClass() {
14587
+ const hostElement = this.hostElement.nativeElement;
14588
+ const newColSpan = calculateColSpan(this.colSpan, this._formWidth);
14589
+ if (newColSpan !== this._previousColSpan) {
14590
+ const newClass = generateColSpanClass(newColSpan);
14591
+ if (this._colSpanClass) {
14592
+ this.renderer.removeClass(hostElement, this._colSpanClass);
14593
+ }
14594
+ if (newClass) {
14595
+ this.renderer.addClass(hostElement, newClass);
14596
+ }
14597
+ this._colSpanClass = newClass;
14598
+ this._previousColSpan = newColSpan;
14599
+ }
14600
+ }
14601
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldComponent, deps: [{ token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i0.ElementRef }, { token: FormService }], target: i0.ɵɵFactoryTarget.Component });
14602
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldComponent, isStandalone: true, selector: "kendo-formfield", inputs: { showHints: "showHints", orientation: "orientation", showErrors: "showErrors", colSpan: "colSpan" }, host: { properties: { "class.k-form-field": "this.hostClass", "attr.dir": "this.direction", "class.k-form-field-error": "this.errorClass", "class.k-form-field-disabled": "this.disabledClass" } }, providers: [
14424
14603
  LocalizationService,
14425
14604
  {
14426
14605
  provide: L10N_PREFIX,
14427
14606
  useValue: 'kendo.formfield'
14428
14607
  }
14429
- ], queries: [{ propertyName: "kendoInput", first: true, predicate: KendoInput, descendants: true, static: true }, { propertyName: "formControls", predicate: NgControl, descendants: true }, { propertyName: "controlElementRefs", predicate: NgControl, descendants: true, read: ElementRef }, { propertyName: "errorChildren", predicate: ErrorComponent, descendants: true }, { propertyName: "hintChildren", predicate: HintComponent, descendants: true }], ngImport: i0, template: `
14608
+ ], queries: [{ propertyName: "kendoInput", first: true, predicate: KendoInput, descendants: true, static: true }, { propertyName: "formControls", predicate: NgControl, descendants: true }, { propertyName: "controlElementRefs", predicate: NgControl, descendants: true, read: ElementRef }, { propertyName: "errorChildren", predicate: ErrorComponent, descendants: true }, { propertyName: "hintChildren", predicate: HintComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
14430
14609
  <ng-content select="label, kendo-label"></ng-content>
14431
14610
  <div class="k-form-field-wrap">
14432
14611
  <ng-content></ng-content>
@@ -14457,7 +14636,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
14457
14636
  standalone: true,
14458
14637
  imports: [NgIf]
14459
14638
  }]
14460
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i0.ElementRef }]; }, propDecorators: { hostClass: [{
14639
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i0.ElementRef }, { type: FormService }]; }, propDecorators: { hostClass: [{
14461
14640
  type: HostBinding,
14462
14641
  args: ['class.k-form-field']
14463
14642
  }], direction: [{
@@ -14490,6 +14669,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
14490
14669
  type: Input
14491
14670
  }], showErrors: [{
14492
14671
  type: Input
14672
+ }], colSpan: [{
14673
+ type: Input
14493
14674
  }] } });
14494
14675
 
14495
14676
  /**
@@ -18810,6 +18991,376 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
18810
18991
  }]
18811
18992
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
18812
18993
 
18994
+ /**
18995
+ * Represents the Kendo UI Form component for Angular.
18996
+ *
18997
+ * @remarks
18998
+ * Supported children components are: {@link FormFieldComponent}, {@link FormSeparatorComponent}, and {@link FormFieldSetComponent}.
18999
+ */
19000
+ class FormComponent {
19001
+ element;
19002
+ cdr;
19003
+ formService;
19004
+ /**
19005
+ * Defines the orientation of the form.
19006
+ *
19007
+ * @default 'vertical'
19008
+ */
19009
+ orientation = 'vertical';
19010
+ /**
19011
+ * Defines the number of columns in the form.
19012
+ * Can be a number or an array of responsive breakpoints.
19013
+ */
19014
+ cols;
19015
+ /**
19016
+ * Defines the gutters for the form.
19017
+ * You can specify gutters for rows and columns.
19018
+ */
19019
+ gutters;
19020
+ /**
19021
+ * @hidden
19022
+ */
19023
+ columnsClass = '';
19024
+ /**
19025
+ * @hidden
19026
+ */
19027
+ rowsGutterClass = '';
19028
+ /**
19029
+ * @hidden
19030
+ */
19031
+ colsGutterClass = '';
19032
+ /**
19033
+ * @hidden
19034
+ */
19035
+ showLicenseWatermark = false;
19036
+ formClass = true;
19037
+ get horizontalClass() {
19038
+ return this.orientation === 'horizontal';
19039
+ }
19040
+ _formColumnsNumber;
19041
+ _formGutters;
19042
+ constructor(element, cdr, formService) {
19043
+ this.element = element;
19044
+ this.cdr = cdr;
19045
+ this.formService = formService;
19046
+ const isValid = validatePackage(packageMetadata);
19047
+ this.showLicenseWatermark = shouldShowValidationUI(isValid);
19048
+ }
19049
+ ngAfterContentInit() {
19050
+ this.applyColumns();
19051
+ this.applyGutters();
19052
+ this.formService.formWidth.next(innerWidth(this.element.nativeElement));
19053
+ }
19054
+ ngOnChanges(changes) {
19055
+ if (changes['cols']) {
19056
+ this.applyColumns();
19057
+ }
19058
+ else if (changes['gutters']) {
19059
+ this.applyGutters();
19060
+ }
19061
+ }
19062
+ /**
19063
+ * @hidden
19064
+ */
19065
+ onResize() {
19066
+ this.formService.formWidth.next(innerWidth(this.element.nativeElement));
19067
+ const previousColumnsNumber = this._formColumnsNumber;
19068
+ const previousGutters = this._formGutters;
19069
+ this.applyColumns();
19070
+ this.applyGutters();
19071
+ if (previousColumnsNumber !== this._formColumnsNumber) {
19072
+ this.cdr.detectChanges();
19073
+ }
19074
+ if (previousGutters?.cols !== this._formGutters?.cols || previousGutters?.rows !== this._formGutters?.rows) {
19075
+ this.cdr.detectChanges();
19076
+ }
19077
+ }
19078
+ applyColumns() {
19079
+ const containerWidth = innerWidth(this.element.nativeElement);
19080
+ this._formColumnsNumber = calculateColumns(this.cols, containerWidth);
19081
+ this.updateColumnClasses();
19082
+ }
19083
+ applyGutters() {
19084
+ const containerWidth = innerWidth(this.element.nativeElement);
19085
+ this._formGutters = calculateGutters(this.gutters, containerWidth);
19086
+ this.updateGutterClasses();
19087
+ }
19088
+ updateColumnClasses() {
19089
+ this.columnsClass = generateColumnClass(this._formColumnsNumber);
19090
+ }
19091
+ updateGutterClasses() {
19092
+ const gutterClasses = generateGutterClasses(this._formGutters);
19093
+ this.rowsGutterClass = gutterClasses.rows;
19094
+ this.colsGutterClass = gutterClasses.cols;
19095
+ }
19096
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: FormService }], target: i0.ɵɵFactoryTarget.Component });
19097
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormComponent, isStandalone: true, selector: "form[kendoForm]", inputs: { orientation: "orientation", cols: "cols", gutters: "gutters" }, host: { properties: { "class.k-form": "this.formClass", "class.k-form-horizontal": "this.horizontalClass" } }, exportAs: ["kendoForm"], usesOnChanges: true, ngImport: i0, template: `
19098
+ <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass, rowsGutterClass, colsGutterClass]">
19099
+ <ng-content></ng-content>
19100
+ </div>
19101
+ <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
19102
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
19103
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }] });
19104
+ }
19105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormComponent, decorators: [{
19106
+ type: Component,
19107
+ args: [{
19108
+ exportAs: 'kendoForm',
19109
+ selector: 'form[kendoForm]',
19110
+ template: `
19111
+ <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass, rowsGutterClass, colsGutterClass]">
19112
+ <ng-content></ng-content>
19113
+ </div>
19114
+ <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
19115
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
19116
+ `,
19117
+ standalone: true,
19118
+ imports: [NgClass, NgIf, ResizeSensorComponent, WatermarkOverlayComponent],
19119
+ }]
19120
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: FormService }]; }, propDecorators: { orientation: [{
19121
+ type: Input
19122
+ }], cols: [{
19123
+ type: Input
19124
+ }], gutters: [{
19125
+ type: Input
19126
+ }], formClass: [{
19127
+ type: HostBinding,
19128
+ args: ['class.k-form']
19129
+ }], horizontalClass: [{
19130
+ type: HostBinding,
19131
+ args: ['class.k-form-horizontal']
19132
+ }] } });
19133
+
19134
+ /**
19135
+ * Represents the Kendo UI Form Separator component for Angular.
19136
+ */
19137
+ class FormSeparatorComponent {
19138
+ renderer;
19139
+ hostElement;
19140
+ formService;
19141
+ hostClass = true;
19142
+ /**
19143
+ * Defines the colspan for the separator element related to the parent Form component columns.
19144
+ * Can be a number or an array of responsive breakpoints.
19145
+ */
19146
+ colSpan;
19147
+ _formWidth = null;
19148
+ _colSpanClass = null;
19149
+ _previousColSpan = null;
19150
+ subscriptions = new Subscription();
19151
+ constructor(renderer, hostElement, formService) {
19152
+ this.renderer = renderer;
19153
+ this.hostElement = hostElement;
19154
+ this.formService = formService;
19155
+ validatePackage(packageMetadata);
19156
+ this.subscriptions.add(this.formService.formWidth.pipe(filter((width) => width !== null)).subscribe((width) => {
19157
+ this._formWidth = width;
19158
+ this.updateColSpanClass();
19159
+ }));
19160
+ }
19161
+ ngOnChanges(changes) {
19162
+ if (changes['colSpan']) {
19163
+ this.updateColSpanClass();
19164
+ }
19165
+ }
19166
+ ngOnDestroy() {
19167
+ this.subscriptions.unsubscribe();
19168
+ }
19169
+ updateColSpanClass() {
19170
+ const hostElement = this.hostElement.nativeElement;
19171
+ const newColSpan = calculateColSpan(this.colSpan, this._formWidth);
19172
+ if (newColSpan !== this._previousColSpan) {
19173
+ const newClass = generateColSpanClass(newColSpan);
19174
+ if (this._colSpanClass) {
19175
+ this.renderer.removeClass(hostElement, this._colSpanClass);
19176
+ }
19177
+ if (newClass) {
19178
+ this.renderer.addClass(hostElement, newClass);
19179
+ }
19180
+ this._colSpanClass = newClass;
19181
+ this._previousColSpan = newColSpan;
19182
+ }
19183
+ }
19184
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormSeparatorComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: FormService }], target: i0.ɵɵFactoryTarget.Component });
19185
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormSeparatorComponent, isStandalone: true, selector: "kendo-form-separator", inputs: { colSpan: "colSpan" }, host: { properties: { "class.k-form-separator": "this.hostClass" } }, exportAs: ["kendoFormSeparator"], usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
19186
+ }
19187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormSeparatorComponent, decorators: [{
19188
+ type: Component,
19189
+ args: [{
19190
+ exportAs: 'kendoFormSeparator',
19191
+ selector: 'kendo-form-separator',
19192
+ template: ``,
19193
+ standalone: true,
19194
+ }]
19195
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: FormService }]; }, propDecorators: { hostClass: [{
19196
+ type: HostBinding,
19197
+ args: ['class.k-form-separator']
19198
+ }], colSpan: [{
19199
+ type: Input
19200
+ }] } });
19201
+
19202
+ /**
19203
+ * Represents the Kendo UI FormFieldSet component for Angular.
19204
+ *
19205
+ * @remarks
19206
+ * Supported children components are: {@link FormFieldComponent} and {@link FormSeparatorComponent}.
19207
+ */
19208
+ class FormFieldSetComponent {
19209
+ elementRef;
19210
+ renderer;
19211
+ formService;
19212
+ cdr;
19213
+ formFieldSetClass = true;
19214
+ /**
19215
+ * Defines the legend for the fieldset.
19216
+ */
19217
+ legend;
19218
+ /**
19219
+ * Defines the number of columns the fieldset.
19220
+ * Can be a number or an array of responsive breakpoints.
19221
+ */
19222
+ cols;
19223
+ /**
19224
+ * Defines the gutters for the fieldset.
19225
+ * You can specify gutters for rows and columns.
19226
+ */
19227
+ gutters;
19228
+ /**
19229
+ * Defines the colspan for the fieldset related to the parent Form component columns.
19230
+ * Can be a number or an array of responsive breakpoints.
19231
+ */
19232
+ colSpan;
19233
+ /**
19234
+ * @hidden
19235
+ */
19236
+ columnsClass = '';
19237
+ /**
19238
+ * @hidden
19239
+ */
19240
+ rowsGutterClass = '';
19241
+ /**
19242
+ * @hidden
19243
+ */
19244
+ colsGutterClass = '';
19245
+ _formColumnsNumber;
19246
+ _colSpanClass = null;
19247
+ _formWidth = null;
19248
+ _formGutters = null;
19249
+ _previousColSpan = null;
19250
+ _previousCols = null;
19251
+ _previousGutters = null;
19252
+ subs = new Subscription();
19253
+ constructor(elementRef, renderer, formService, cdr) {
19254
+ this.elementRef = elementRef;
19255
+ this.renderer = renderer;
19256
+ this.formService = formService;
19257
+ this.cdr = cdr;
19258
+ validatePackage(packageMetadata);
19259
+ }
19260
+ ngOnInit() {
19261
+ this.subs.add(this.formService.formWidth.pipe(filter((width) => width !== null)).subscribe((width) => {
19262
+ this._formWidth = width;
19263
+ this.applyColumns();
19264
+ this.applyGutters();
19265
+ this.updateColSpanClass();
19266
+ }));
19267
+ }
19268
+ ngOnChanges(changes) {
19269
+ if (changes['colSpan']) {
19270
+ this.updateColSpanClass();
19271
+ }
19272
+ if (changes['cols']) {
19273
+ this.applyColumns();
19274
+ }
19275
+ if (changes['gutters']) {
19276
+ this.applyGutters();
19277
+ }
19278
+ }
19279
+ ngOnDestroy() {
19280
+ this.subs.unsubscribe();
19281
+ }
19282
+ applyColumns() {
19283
+ const containerWidth = this._formWidth;
19284
+ const newColumnsNumber = calculateColumns(this.cols, containerWidth);
19285
+ if (newColumnsNumber !== this._previousCols) {
19286
+ this._formColumnsNumber = newColumnsNumber;
19287
+ this.updateColumnClasses();
19288
+ this._previousCols = newColumnsNumber;
19289
+ }
19290
+ }
19291
+ applyGutters() {
19292
+ const containerWidth = this._formWidth;
19293
+ const newGutters = calculateGutters(this.gutters, containerWidth);
19294
+ if (newGutters && (newGutters.cols !== this._previousGutters?.cols || newGutters.rows !== this._previousGutters?.rows)) {
19295
+ this._formGutters = newGutters;
19296
+ this.updateGutterClasses();
19297
+ this._previousGutters = newGutters;
19298
+ }
19299
+ }
19300
+ updateColumnClasses() {
19301
+ this.columnsClass = generateColumnClass(this._formColumnsNumber);
19302
+ this.cdr.detectChanges();
19303
+ }
19304
+ updateGutterClasses() {
19305
+ const gutterClasses = generateGutterClasses(this._formGutters);
19306
+ this.rowsGutterClass = gutterClasses.rows;
19307
+ this.colsGutterClass = gutterClasses.cols;
19308
+ }
19309
+ updateColSpanClass() {
19310
+ const hostElement = this.elementRef.nativeElement;
19311
+ const newColSpan = calculateColSpan(this.colSpan, this._formWidth);
19312
+ if (newColSpan !== this._previousColSpan) {
19313
+ const newClass = generateColSpanClass(newColSpan);
19314
+ if (this._colSpanClass) {
19315
+ this.renderer.removeClass(hostElement, this._colSpanClass);
19316
+ }
19317
+ if (newClass) {
19318
+ this.renderer.addClass(hostElement, newClass);
19319
+ }
19320
+ this._colSpanClass = newClass;
19321
+ this._previousColSpan = newColSpan;
19322
+ this.cdr.detectChanges();
19323
+ }
19324
+ }
19325
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSetComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: FormService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
19326
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormFieldSetComponent, isStandalone: true, selector: "fieldset[kendoFormFieldSet]", inputs: { legend: "legend", cols: "cols", gutters: "gutters", colSpan: "colSpan" }, host: { properties: { "class.k-form-fieldset": "this.formFieldSetClass" } }, exportAs: ["kendoFormFieldSet"], usesOnChanges: true, ngImport: i0, template: `
19327
+ <legend *ngIf="legend" class="k-form-legend">
19328
+ {{ legend }}
19329
+ </legend>
19330
+ <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass, rowsGutterClass, colsGutterClass]">
19331
+ <ng-content></ng-content>
19332
+ </div>
19333
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
19334
+ }
19335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSetComponent, decorators: [{
19336
+ type: Component,
19337
+ args: [{
19338
+ exportAs: 'kendoFormFieldSet',
19339
+ selector: 'fieldset[kendoFormFieldSet]',
19340
+ template: `
19341
+ <legend *ngIf="legend" class="k-form-legend">
19342
+ {{ legend }}
19343
+ </legend>
19344
+ <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass, rowsGutterClass, colsGutterClass]">
19345
+ <ng-content></ng-content>
19346
+ </div>
19347
+ `,
19348
+ standalone: true,
19349
+ imports: [NgIf, NgClass],
19350
+ }]
19351
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: FormService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { formFieldSetClass: [{
19352
+ type: HostBinding,
19353
+ args: ['class.k-form-fieldset']
19354
+ }], legend: [{
19355
+ type: Input
19356
+ }], cols: [{
19357
+ type: Input
19358
+ }], gutters: [{
19359
+ type: Input
19360
+ }], colSpan: [{
19361
+ type: Input
19362
+ }] } });
19363
+
18813
19364
  /**
18814
19365
  * Use the `KENDO_TEXTBOX` utility array to add all TextBox-related components and directives to a standalone Angular component.
18815
19366
  *
@@ -18988,6 +19539,26 @@ const KENDO_FORMFIELD = [
18988
19539
  HintComponent,
18989
19540
  ErrorComponent
18990
19541
  ];
19542
+ /**
19543
+ * Use the `KENDO_FORM` utility array to add all Form-related components and directives to a standalone Angular component.
19544
+ *
19545
+ * @example
19546
+ * ```typescript
19547
+ * import { KENDO_FORM } from '@progress/kendo-angular-inputs';
19548
+ * @Component({
19549
+ * standalone: true,
19550
+ * imports: [KENDO_FORM],
19551
+ * template: `<form kendoForm>...</form>`
19552
+ * })
19553
+ * export class MyComponent {}
19554
+ * ```
19555
+ */
19556
+ const KENDO_FORM = [
19557
+ FormComponent,
19558
+ FormSeparatorComponent,
19559
+ FormFieldSetComponent,
19560
+ ...KENDO_FORMFIELD
19561
+ ];
18991
19562
  /**
18992
19563
  * Use the `KENDO_SLIDER` utility array to add all Slider-related components and directives to a standalone Angular component.
18993
19564
  *
@@ -19158,6 +19729,7 @@ const KENDO_INPUTS = [
19158
19729
  ...KENDO_CHECKBOX,
19159
19730
  ...KENDO_RADIOBUTTON,
19160
19731
  ...KENDO_SWITCH,
19732
+ ...KENDO_FORM,
19161
19733
  ...KENDO_FORMFIELD,
19162
19734
  ...KENDO_SLIDER,
19163
19735
  ...KENDO_RANGESLIDER,
@@ -19193,8 +19765,8 @@ const KENDO_INPUTS = [
19193
19765
  */
19194
19766
  class InputsModule {
19195
19767
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19196
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, imports: [TextBoxDirective, TextBoxComponent, InputSeparatorComponent, TextBoxSuffixTemplateDirective, TextBoxPrefixTemplateDirective, TextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, MaskedTextBoxComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, TextAreaComponent, TextAreaDirective, TextAreaPrefixComponent, TextAreaSuffixComponent, i7.SeparatorComponent, CheckBoxComponent, CheckBoxDirective, RadioButtonComponent, RadioButtonDirective, SwitchComponent, SwitchCustomMessagesComponent, FormFieldComponent, HintComponent, ErrorComponent, SliderComponent, SliderCustomMessagesComponent, LabelTemplateDirective, RangeSliderComponent, RangeSliderCustomMessagesComponent, LabelTemplateDirective, RatingComponent, RatingItemTemplateDirective, RatingHoveredItemTemplateDirective, RatingSelectedItemTemplateDirective, SignatureComponent, SignatureCustomMessagesComponent, ColorPickerComponent, ColorPickerCustomMessagesComponent, FlatColorPickerComponent, ColorPickerCustomMessagesComponent, ColorGradientComponent, ColorPickerCustomMessagesComponent, ColorPaletteComponent, ColorPickerCustomMessagesComponent, OTPInputComponent, OTPInputCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent], exports: [TextBoxDirective, TextBoxComponent, InputSeparatorComponent, TextBoxSuffixTemplateDirective, TextBoxPrefixTemplateDirective, TextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, MaskedTextBoxComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, TextAreaComponent, TextAreaDirective, TextAreaPrefixComponent, TextAreaSuffixComponent, i7.SeparatorComponent, CheckBoxComponent, CheckBoxDirective, RadioButtonComponent, RadioButtonDirective, SwitchComponent, SwitchCustomMessagesComponent, FormFieldComponent, HintComponent, ErrorComponent, SliderComponent, SliderCustomMessagesComponent, LabelTemplateDirective, RangeSliderComponent, RangeSliderCustomMessagesComponent, LabelTemplateDirective, RatingComponent, RatingItemTemplateDirective, RatingHoveredItemTemplateDirective, RatingSelectedItemTemplateDirective, SignatureComponent, SignatureCustomMessagesComponent, ColorPickerComponent, ColorPickerCustomMessagesComponent, FlatColorPickerComponent, ColorPickerCustomMessagesComponent, ColorGradientComponent, ColorPickerCustomMessagesComponent, ColorPaletteComponent, ColorPickerCustomMessagesComponent, OTPInputComponent, OTPInputCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent] });
19197
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, providers: [IconsService, PopupService, ResizeBatchService, DialogContainerService, DialogService, WindowService, WindowContainerService, AdaptiveService], imports: [TextBoxComponent, i7.SeparatorComponent, NumericTextBoxComponent, i7.SeparatorComponent, i7.SeparatorComponent, i7.SeparatorComponent, SliderComponent, RangeSliderComponent, RatingComponent, SignatureComponent, ColorPickerComponent, FlatColorPickerComponent, ColorGradientComponent, OTPInputComponent, i7.SeparatorComponent] });
19768
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, imports: [TextBoxDirective, TextBoxComponent, InputSeparatorComponent, TextBoxSuffixTemplateDirective, TextBoxPrefixTemplateDirective, TextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, MaskedTextBoxComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, TextAreaComponent, TextAreaDirective, TextAreaPrefixComponent, TextAreaSuffixComponent, i7.SeparatorComponent, CheckBoxComponent, CheckBoxDirective, RadioButtonComponent, RadioButtonDirective, SwitchComponent, SwitchCustomMessagesComponent, FormComponent, FormSeparatorComponent, FormFieldSetComponent, FormFieldComponent, HintComponent, ErrorComponent, FormFieldComponent, HintComponent, ErrorComponent, SliderComponent, SliderCustomMessagesComponent, LabelTemplateDirective, RangeSliderComponent, RangeSliderCustomMessagesComponent, LabelTemplateDirective, RatingComponent, RatingItemTemplateDirective, RatingHoveredItemTemplateDirective, RatingSelectedItemTemplateDirective, SignatureComponent, SignatureCustomMessagesComponent, ColorPickerComponent, ColorPickerCustomMessagesComponent, FlatColorPickerComponent, ColorPickerCustomMessagesComponent, ColorGradientComponent, ColorPickerCustomMessagesComponent, ColorPaletteComponent, ColorPickerCustomMessagesComponent, OTPInputComponent, OTPInputCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent], exports: [TextBoxDirective, TextBoxComponent, InputSeparatorComponent, TextBoxSuffixTemplateDirective, TextBoxPrefixTemplateDirective, TextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, MaskedTextBoxComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent, TextAreaComponent, TextAreaDirective, TextAreaPrefixComponent, TextAreaSuffixComponent, i7.SeparatorComponent, CheckBoxComponent, CheckBoxDirective, RadioButtonComponent, RadioButtonDirective, SwitchComponent, SwitchCustomMessagesComponent, FormComponent, FormSeparatorComponent, FormFieldSetComponent, FormFieldComponent, HintComponent, ErrorComponent, FormFieldComponent, HintComponent, ErrorComponent, SliderComponent, SliderCustomMessagesComponent, LabelTemplateDirective, RangeSliderComponent, RangeSliderCustomMessagesComponent, LabelTemplateDirective, RatingComponent, RatingItemTemplateDirective, RatingHoveredItemTemplateDirective, RatingSelectedItemTemplateDirective, SignatureComponent, SignatureCustomMessagesComponent, ColorPickerComponent, ColorPickerCustomMessagesComponent, FlatColorPickerComponent, ColorPickerCustomMessagesComponent, ColorGradientComponent, ColorPickerCustomMessagesComponent, ColorPaletteComponent, ColorPickerCustomMessagesComponent, OTPInputComponent, OTPInputCustomMessagesComponent, i7.PrefixTemplateDirective, i7.SuffixTemplateDirective, i7.SeparatorComponent] });
19769
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, providers: [IconsService, PopupService, ResizeBatchService, DialogContainerService, DialogService, WindowService, WindowContainerService, AdaptiveService], imports: [TextBoxComponent, i7.SeparatorComponent, NumericTextBoxComponent, i7.SeparatorComponent, i7.SeparatorComponent, i7.SeparatorComponent, FormComponent, SliderComponent, RangeSliderComponent, RatingComponent, SignatureComponent, ColorPickerComponent, FlatColorPickerComponent, ColorGradientComponent, OTPInputComponent, i7.SeparatorComponent] });
19198
19770
  }
19199
19771
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputsModule, decorators: [{
19200
19772
  type: NgModule,
@@ -19643,6 +20215,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
19643
20215
  }]
19644
20216
  }] });
19645
20217
 
20218
+ //IMPORTANT: NgModule export kept for backwards compatibility
20219
+ /**
20220
+ * Defines the [NgModule](link:site.data.urls.angular['ngmoduleapi']) for the FormField, Error, and Hint components.
20221
+ *
20222
+ * Use this module to add Form features to your NgModule-based Angular application.
20223
+ *
20224
+ * @example
20225
+ * ```typescript
20226
+ * import { FormModule } from '@progress/kendo-angular-inputs';
20227
+ * import { NgModule } from '@angular/core';
20228
+ * import { BrowserModule } from '@angular/platform-browser';
20229
+ * import { AppComponent } from './app.component';
20230
+ *
20231
+ * @NgModule({
20232
+ * declarations: [AppComponent],
20233
+ * imports: [BrowserModule, FormModule],
20234
+ * bootstrap: [AppComponent]
20235
+ * })
20236
+ * export class AppModule {}
20237
+ * ```
20238
+ */
20239
+ class FormModule {
20240
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20241
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FormModule, imports: [FormComponent, FormSeparatorComponent, FormFieldSetComponent, FormFieldComponent, HintComponent, ErrorComponent], exports: [FormComponent, FormSeparatorComponent, FormFieldSetComponent, FormFieldComponent, HintComponent, ErrorComponent] });
20242
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormModule, imports: [FormComponent] });
20243
+ }
20244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormModule, decorators: [{
20245
+ type: NgModule,
20246
+ args: [{
20247
+ imports: [...KENDO_FORM],
20248
+ exports: [...KENDO_FORM]
20249
+ }]
20250
+ }] });
20251
+
19646
20252
  //IMPORTANT: NgModule export kept for backwards compatibility
19647
20253
  /**
19648
20254
  * Defines the [`NgModule`](link:site.data.urls.angular['ngmoduleapi']) for the Signature component.
@@ -19717,5 +20323,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
19717
20323
  * Generated bundle index. Do not edit.
19718
20324
  */
19719
20325
 
19720
- export { ActiveColorClickEvent, CheckBoxComponent, CheckBoxDirective, CheckBoxModule, ColorGradientComponent, ColorPaletteComponent, ColorPickerCancelEvent, ColorPickerCloseEvent, ColorPickerComponent, ColorPickerCustomMessagesComponent, ColorPickerModule, ColorPickerOpenEvent, ErrorComponent, FlatColorPickerComponent, FormFieldComponent, FormFieldModule, HintComponent, InputSeparatorComponent, InputsModule, KENDO_CHECKBOX, KENDO_COLORGRADIENT, KENDO_COLORPALETTE, KENDO_COLORPICKER, KENDO_FLATCOLORPICKER, KENDO_FORMFIELD, KENDO_INPUTS, KENDO_MASKEDTEXTBOX, KENDO_NUMERICTEXTBOX, KENDO_OTPINPUT, KENDO_RADIOBUTTON, KENDO_RANGESLIDER, KENDO_RATING, KENDO_SIGNATURE, KENDO_SLIDER, KENDO_SWITCH, KENDO_TEXTAREA, KENDO_TEXTBOX, LabelTemplateDirective, LocalizedColorPickerMessagesDirective, LocalizedNumericTextBoxMessagesDirective, LocalizedRangeSliderMessagesDirective, LocalizedSignatureMessagesDirective, LocalizedSliderMessagesDirective, LocalizedSwitchMessagesDirective, LocalizedTextBoxMessagesDirective, MaskedTextBoxComponent, MaskedTextBoxModule, MaskingService, NumericLabelDirective, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, NumericTextBoxModule, OTPInputComponent, OTPInputCustomMessagesComponent, OTPInputModule, RadioButtonComponent, RadioButtonDirective, RadioButtonModule, RangeSliderComponent, RangeSliderCustomMessagesComponent, RangeSliderModule, RatingComponent, RatingHoveredItemTemplateDirective, RatingItemTemplateDirective, RatingModule, RatingSelectedItemTemplateDirective, SignatureCloseEvent, SignatureComponent, SignatureCustomMessagesComponent, SignatureMessages, SignatureModule, SignatureOpenEvent, SliderComponent, SliderCustomMessagesComponent, SliderModule, SliderTicksComponent, SwitchBlurEvent, SwitchComponent, SwitchCustomMessagesComponent, SwitchFocusEvent, SwitchModule, TextAreaComponent, TextAreaDirective, TextAreaModule, TextAreaPrefixComponent, TextAreaSuffixComponent, TextBoxComponent, TextBoxCustomMessagesComponent, TextBoxDirective, TextBoxModule, TextBoxPrefixTemplateDirective, TextBoxSuffixTemplateDirective };
20326
+ export { ActiveColorClickEvent, CheckBoxComponent, CheckBoxDirective, CheckBoxModule, ColorGradientComponent, ColorPaletteComponent, ColorPickerCancelEvent, ColorPickerCloseEvent, ColorPickerComponent, ColorPickerCustomMessagesComponent, ColorPickerModule, ColorPickerOpenEvent, ErrorComponent, FlatColorPickerComponent, FormComponent, FormFieldComponent, FormFieldModule, FormFieldSetComponent, FormModule, FormSeparatorComponent, HintComponent, InputSeparatorComponent, InputsModule, KENDO_CHECKBOX, KENDO_COLORGRADIENT, KENDO_COLORPALETTE, KENDO_COLORPICKER, KENDO_FLATCOLORPICKER, KENDO_FORM, KENDO_FORMFIELD, KENDO_INPUTS, KENDO_MASKEDTEXTBOX, KENDO_NUMERICTEXTBOX, KENDO_OTPINPUT, KENDO_RADIOBUTTON, KENDO_RANGESLIDER, KENDO_RATING, KENDO_SIGNATURE, KENDO_SLIDER, KENDO_SWITCH, KENDO_TEXTAREA, KENDO_TEXTBOX, LabelTemplateDirective, LocalizedColorPickerMessagesDirective, LocalizedNumericTextBoxMessagesDirective, LocalizedRangeSliderMessagesDirective, LocalizedSignatureMessagesDirective, LocalizedSliderMessagesDirective, LocalizedSwitchMessagesDirective, LocalizedTextBoxMessagesDirective, MaskedTextBoxComponent, MaskedTextBoxModule, MaskingService, NumericLabelDirective, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, NumericTextBoxModule, OTPInputComponent, OTPInputCustomMessagesComponent, OTPInputModule, RadioButtonComponent, RadioButtonDirective, RadioButtonModule, RangeSliderComponent, RangeSliderCustomMessagesComponent, RangeSliderModule, RatingComponent, RatingHoveredItemTemplateDirective, RatingItemTemplateDirective, RatingModule, RatingSelectedItemTemplateDirective, SignatureCloseEvent, SignatureComponent, SignatureCustomMessagesComponent, SignatureMessages, SignatureModule, SignatureOpenEvent, SliderComponent, SliderCustomMessagesComponent, SliderModule, SliderTicksComponent, SwitchBlurEvent, SwitchComponent, SwitchCustomMessagesComponent, SwitchFocusEvent, SwitchModule, TextAreaComponent, TextAreaDirective, TextAreaModule, TextAreaPrefixComponent, TextAreaSuffixComponent, TextBoxComponent, TextBoxCustomMessagesComponent, TextBoxDirective, TextBoxModule, TextBoxPrefixTemplateDirective, TextBoxSuffixTemplateDirective };
19721
20327