@progress/kendo-angular-inputs 19.3.0-develop.11 → 19.3.0-develop.12

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.
@@ -4,19 +4,25 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { ResponsiveFormBreakPoint } from './responsive-breakpoints';
6
6
  /**
7
- * Represents the gutters configuration for a form layout.
8
- * It allows defining the spacing between the columns and rows of the form.
9
- * Each property can be a number or an array of responsive breakpoints.
7
+ * Represents the gutters configuration for a Form layout. Defines the spacing between the columns and rows of the Form.
8
+ * Set any property to a number or a string to apply that value as a fixed gutter size. Set it to an array of responsive breakpoints to allow different gutter sizes in relation to the current Form width.
9
+ * Numeric values are interpreted as pixels. String values can include units like `px`, `rem`, `em`, etc.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const formGutters: Gutters = {
14
+ * cols: 16,
15
+ * rows: '1rem'
16
+ * };
17
+ * ```
10
18
  */
11
19
  export interface Gutters {
12
20
  /**
13
- * Defines the gutters for the columns in the form.
14
- * Can be a number or an array of responsive breakpoints.
21
+ * Defines the gutters for the columns in the Form.
15
22
  */
16
- cols?: number | ResponsiveFormBreakPoint[];
23
+ cols?: number | string | ResponsiveFormBreakPoint[];
17
24
  /**
18
- * Defines the gutters for the rows in the form.
19
- * Can be a number or an array of responsive breakpoints.
25
+ * Defines the gutters for the rows in the Form.
20
26
  */
21
- rows?: number | ResponsiveFormBreakPoint[];
27
+ rows?: number | string | ResponsiveFormBreakPoint[];
22
28
  }
@@ -3,22 +3,32 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  /**
6
- * Allows to define responsive breakpoints for form controls.
6
+ * Defines responsive breakpoints for form controls in relation to the width of the Form component.
7
7
  * Each breakpoint can specify a minimum and/or maximum width, and a value that represents either the number of columns
8
8
  * or the colspan/gutters for that breakpoint.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const breakpoints: ResponsiveFormBreakPoint[] = [
13
+ * { minWidth: 768, value: 2 },
14
+ * { maxWidth: 767, value: 1 }
15
+ * ];
16
+ * ```
9
17
  */
10
18
  export interface ResponsiveFormBreakPoint {
11
19
  /**
12
- * The minimum width for this breakpoint in pixels.
20
+ * Specifies the minimum Form width for this breakpoint in pixels.
13
21
  */
14
22
  minWidth?: number;
15
23
  /**
16
- * The maximum width for this breakpoint in pixels.
24
+ * Specifies the maximum Form width for this breakpoint in pixels.
17
25
  */
18
26
  maxWidth?: number;
19
27
  /**
20
- * The value associated with this breakpoint.
21
- * It can represent the number of columns or the colspan/gutters for the form control.
28
+ * Specifies the value associated with this breakpoint.
29
+ * Can represent the number of columns or the colspan/gutters for the form control.
30
+ * For gutters configurations, numeric values are interpreted as pixels, while string values can include units like `px`, `em`, etc.
31
+ * For columns number and colspan, numeric values are typically used and strings are parsed to numbers.
22
32
  */
23
- value: number;
33
+ value: number | string;
24
34
  }
@@ -2,10 +2,10 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { NgClass, NgIf } from '@angular/common';
5
+ import { NgClass, NgIf, NgStyle } from '@angular/common';
6
6
  import { Component, ElementRef, HostBinding, Input, ChangeDetectorRef } from '@angular/core';
7
7
  import { ResizeSensorComponent, shouldShowValidationUI, WatermarkOverlayComponent } from '@progress/kendo-angular-common';
8
- import { calculateColumns, calculateGutters, generateColumnClass, generateGutterClasses, innerWidth } from './utils';
8
+ import { calculateColumns, calculateGutters, DEFAULT_GUTTERS, generateColumnClass, generateGuttersStyling, innerWidth } from './utils';
9
9
  import { FormService } from '../common/formservice.service';
10
10
  import { validatePackage } from '@progress/kendo-licensing';
11
11
  import { packageMetadata } from '../package-metadata';
@@ -36,7 +36,7 @@ export class FormComponent {
36
36
  * Defines the gutters for the form.
37
37
  * You can specify gutters for rows and columns.
38
38
  */
39
- gutters;
39
+ gutters = { ...DEFAULT_GUTTERS };
40
40
  /**
41
41
  * @hidden
42
42
  */
@@ -44,21 +44,19 @@ export class FormComponent {
44
44
  /**
45
45
  * @hidden
46
46
  */
47
- rowsGutterClass = '';
48
- /**
49
- * @hidden
50
- */
51
- colsGutterClass = '';
47
+ guttersStyle = '';
52
48
  /**
53
49
  * @hidden
54
50
  */
55
51
  showLicenseWatermark = false;
56
- formClass = true;
52
+ get formClass() {
53
+ return 'k-form k-form-md';
54
+ }
57
55
  get horizontalClass() {
58
56
  return this.orientation === 'horizontal';
59
57
  }
60
58
  _formColumnsNumber;
61
- _formGutters;
59
+ _formGutters = { ...DEFAULT_GUTTERS };
62
60
  constructor(element, cdr, formService) {
63
61
  this.element = element;
64
62
  this.cdr = cdr;
@@ -75,7 +73,7 @@ export class FormComponent {
75
73
  if (changes['cols']) {
76
74
  this.applyColumns();
77
75
  }
78
- else if (changes['gutters']) {
76
+ if (changes['gutters']) {
79
77
  this.applyGutters();
80
78
  }
81
79
  }
@@ -109,18 +107,16 @@ export class FormComponent {
109
107
  this.columnsClass = generateColumnClass(this._formColumnsNumber);
110
108
  }
111
109
  updateGutterClasses() {
112
- const gutterClasses = generateGutterClasses(this._formGutters);
113
- this.rowsGutterClass = gutterClasses.rows;
114
- this.colsGutterClass = gutterClasses.cols;
110
+ this.guttersStyle = generateGuttersStyling(this._formGutters);
115
111
  }
116
112
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FormService }], target: i0.ɵɵFactoryTarget.Component });
117
- 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: `
118
- <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass, rowsGutterClass, colsGutterClass]">
113
+ 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": "this.formClass", "class.k-form-horizontal": "this.horizontalClass" } }, exportAs: ["kendoForm"], usesOnChanges: true, ngImport: i0, template: `
114
+ <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass]" [ngStyle]="{ gap: guttersStyle }">
119
115
  <ng-content></ng-content>
120
116
  </div>
121
117
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
122
118
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
123
- `, 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]" }] });
119
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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]" }] });
124
120
  }
125
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormComponent, decorators: [{
126
122
  type: Component,
@@ -128,14 +124,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
128
124
  exportAs: 'kendoForm',
129
125
  selector: 'form[kendoForm]',
130
126
  template: `
131
- <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass, rowsGutterClass, colsGutterClass]">
127
+ <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass]" [ngStyle]="{ gap: guttersStyle }">
132
128
  <ng-content></ng-content>
133
129
  </div>
134
130
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
135
131
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
136
132
  `,
137
133
  standalone: true,
138
- imports: [NgClass, NgIf, ResizeSensorComponent, WatermarkOverlayComponent],
134
+ imports: [NgClass, NgStyle, NgIf, ResizeSensorComponent, WatermarkOverlayComponent],
139
135
  }]
140
136
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FormService }]; }, propDecorators: { orientation: [{
141
137
  type: Input
@@ -145,7 +141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
145
141
  type: Input
146
142
  }], formClass: [{
147
143
  type: HostBinding,
148
- args: ['class.k-form']
144
+ args: ['class']
149
145
  }], horizontalClass: [{
150
146
  type: HostBinding,
151
147
  args: ['class.k-form-horizontal']
@@ -2,6 +2,11 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
+ import { processCssValue } from '@progress/kendo-angular-common';
6
+ /**
7
+ * @hidden
8
+ */
9
+ export const DEFAULT_GUTTERS = { rows: '0px', cols: '32px' };
5
10
  /**
6
11
  * @hidden
7
12
  */
@@ -17,7 +22,7 @@ export function innerWidth(element) {
17
22
  */
18
23
  export function processBreakpoints(breakpoints, containerWidth) {
19
24
  if (!breakpoints?.length || containerWidth === null) {
20
- return null;
25
+ return '';
21
26
  }
22
27
  for (const [index, breakpoint] of breakpoints.entries()) {
23
28
  const minBreakpointWidth = breakpoint.minWidth || breakpoints[index - 1]?.maxWidth + 1 || 0;
@@ -26,7 +31,7 @@ export function processBreakpoints(breakpoints, containerWidth) {
26
31
  return breakpoint.value;
27
32
  }
28
33
  }
29
- return null;
34
+ return '';
30
35
  }
31
36
  /**
32
37
  * @hidden
@@ -36,7 +41,8 @@ export const calculateColumns = (cols, containerWidth) => {
36
41
  return null;
37
42
  }
38
43
  if (Array.isArray(cols) && cols.length > 0) {
39
- return processBreakpoints(cols, containerWidth);
44
+ const processedCols = processBreakpoints(cols, containerWidth) || null;
45
+ return typeof processedCols === 'string' ? parseInt(processedCols, 10) : processedCols;
40
46
  }
41
47
  else if (typeof cols === 'number') {
42
48
  return cols;
@@ -52,18 +58,18 @@ export const calculateGutters = (gutters, containerWidth) => {
52
58
  if (!gutters) {
53
59
  return null;
54
60
  }
55
- if (typeof gutters === 'number') {
61
+ if (typeof gutters === 'number' || typeof gutters === 'string') {
56
62
  return { cols: gutters, rows: gutters };
57
63
  }
58
64
  else if (Array.isArray(gutters)) {
59
- const processedGutters = processBreakpoints(gutters, containerWidth);
65
+ const processedGutters = processBreakpoints(gutters, containerWidth) || null;
60
66
  return processedGutters !== null ? { cols: processedGutters, rows: processedGutters } : null;
61
67
  }
62
68
  else if (typeof gutters === 'object') {
63
69
  const gutterObject = gutters;
64
70
  const result = { rows: null, cols: null };
65
71
  if (gutterObject.cols !== undefined && gutterObject.cols !== null) {
66
- if (typeof gutterObject.cols === 'number') {
72
+ if (typeof gutterObject.cols === 'number' || typeof gutterObject.cols === 'string') {
67
73
  result.cols = gutterObject.cols;
68
74
  }
69
75
  else if (Array.isArray(gutterObject.cols)) {
@@ -74,7 +80,7 @@ export const calculateGutters = (gutters, containerWidth) => {
74
80
  result.cols = null;
75
81
  }
76
82
  if (gutterObject.rows !== undefined) {
77
- if (typeof gutterObject.rows === 'number') {
83
+ if (typeof gutterObject.rows === 'number' || typeof gutterObject.rows === 'string') {
78
84
  result.rows = gutterObject.rows;
79
85
  }
80
86
  else if (Array.isArray(gutterObject.rows)) {
@@ -101,7 +107,8 @@ export const calculateColSpan = (colSpan, containerWidth) => {
101
107
  return colSpan;
102
108
  }
103
109
  else if (Array.isArray(colSpan) && colSpan.length > 0) {
104
- return processBreakpoints(colSpan, containerWidth);
110
+ const processedColSpan = processBreakpoints(colSpan, containerWidth) || null;
111
+ return typeof processedColSpan === 'string' ? parseInt(processedColSpan, 10) : processedColSpan;
105
112
  }
106
113
  return null;
107
114
  };
@@ -116,13 +123,12 @@ export const generateColumnClass = (columnsNumber) => {
116
123
  /**
117
124
  * @hidden
118
125
  *
119
- * Generates CSS class names for gutters
126
+ * Generates CSS styles for gutters based on the provided gutters object.
120
127
  */
121
- export const generateGutterClasses = (gutters) => {
122
- return {
123
- rows: gutters?.rows ? `k-gap-y-${gutters.rows}` : '',
124
- cols: gutters?.cols ? `k-gap-x-${gutters.cols}` : ''
125
- };
128
+ export const generateGuttersStyling = (gutters) => {
129
+ const rows = processCssValue(gutters?.rows);
130
+ const cols = processCssValue(gutters?.cols);
131
+ return `${rows ?? DEFAULT_GUTTERS.rows} ${cols ?? DEFAULT_GUTTERS.cols}`;
126
132
  };
127
133
  /**
128
134
  * @hidden
@@ -2,11 +2,11 @@
2
2
  * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { NgClass, NgIf } from '@angular/common';
5
+ import { NgClass, NgIf, NgStyle } from '@angular/common';
6
6
  import { Component, HostBinding, Input, ElementRef, Renderer2, ChangeDetectorRef, } from '@angular/core';
7
7
  import { FormService } from '../common/formservice.service';
8
8
  import { filter } from 'rxjs/operators';
9
- import { calculateColSpan, calculateColumns, calculateGutters, generateColSpanClass, generateColumnClass, generateGutterClasses } from '../form/utils';
9
+ import { calculateColSpan, calculateColumns, calculateGutters, DEFAULT_GUTTERS, generateColSpanClass, generateColumnClass, generateGuttersStyling } from '../form/utils';
10
10
  import { Subscription } from 'rxjs';
11
11
  import { validatePackage } from '@progress/kendo-licensing';
12
12
  import { packageMetadata } from '../package-metadata';
@@ -29,7 +29,7 @@ export class FormFieldSetComponent {
29
29
  */
30
30
  legend;
31
31
  /**
32
- * Defines the number of columns the fieldset.
32
+ * Defines the number of columns of the fieldset.
33
33
  * Can be a number or an array of responsive breakpoints.
34
34
  */
35
35
  cols;
@@ -50,18 +50,14 @@ export class FormFieldSetComponent {
50
50
  /**
51
51
  * @hidden
52
52
  */
53
- rowsGutterClass = '';
54
- /**
55
- * @hidden
56
- */
57
- colsGutterClass = '';
53
+ guttersStyle = '';
58
54
  _formColumnsNumber;
59
55
  _colSpanClass = null;
60
56
  _formWidth = null;
61
- _formGutters = null;
57
+ _formGutters = { ...DEFAULT_GUTTERS };
62
58
  _previousColSpan = null;
63
59
  _previousCols = null;
64
- _previousGutters = null;
60
+ _previousGutters;
65
61
  subs = new Subscription();
66
62
  constructor(elementRef, renderer, formService, cdr) {
67
63
  this.elementRef = elementRef;
@@ -115,9 +111,8 @@ export class FormFieldSetComponent {
115
111
  this.cdr.detectChanges();
116
112
  }
117
113
  updateGutterClasses() {
118
- const gutterClasses = generateGutterClasses(this._formGutters);
119
- this.rowsGutterClass = gutterClasses.rows;
120
- this.colsGutterClass = gutterClasses.cols;
114
+ this.guttersStyle = generateGuttersStyling(this._formGutters);
115
+ this.cdr.detectChanges();
121
116
  }
122
117
  updateColSpanClass() {
123
118
  const hostElement = this.elementRef.nativeElement;
@@ -140,10 +135,10 @@ export class FormFieldSetComponent {
140
135
  <legend *ngIf="legend" class="k-form-legend">
141
136
  {{ legend }}
142
137
  </legend>
143
- <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass, rowsGutterClass, colsGutterClass]">
138
+ <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass]" [ngStyle]="{'gap': guttersStyle}">
144
139
  <ng-content></ng-content>
145
140
  </div>
146
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
141
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
147
142
  }
148
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSetComponent, decorators: [{
149
144
  type: Component,
@@ -154,12 +149,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
154
149
  <legend *ngIf="legend" class="k-form-legend">
155
150
  {{ legend }}
156
151
  </legend>
157
- <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass, rowsGutterClass, colsGutterClass]">
152
+ <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass]" [ngStyle]="{'gap': guttersStyle}">
158
153
  <ng-content></ng-content>
159
154
  </div>
160
155
  `,
161
156
  standalone: true,
162
- imports: [NgIf, NgClass],
157
+ imports: [NgIf, NgClass, NgStyle],
163
158
  }]
164
159
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.FormService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { formFieldSetClass: [{
165
160
  type: HostBinding,
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1752746728,
14
- version: '19.3.0-develop.11',
13
+ publishDate: 1753180917,
14
+ version: '19.3.0-develop.12',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -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, replaceMessagePlaceholder, shouldShowValidationUI, WatermarkOverlayComponent, 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, processCssValue, 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';
@@ -550,8 +550,8 @@ const packageMetadata = {
550
550
  productName: 'Kendo UI for Angular',
551
551
  productCode: 'KENDOUIANGULAR',
552
552
  productCodes: ['KENDOUIANGULAR'],
553
- publishDate: 1752746728,
554
- version: '19.3.0-develop.11',
553
+ publishDate: 1753180917,
554
+ version: '19.3.0-develop.12',
555
555
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
556
556
  };
557
557
 
@@ -14215,6 +14215,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
14215
14215
  }]
14216
14216
  }] });
14217
14217
 
14218
+ /**
14219
+ * @hidden
14220
+ */
14221
+ const DEFAULT_GUTTERS = { rows: '0px', cols: '32px' };
14218
14222
  /**
14219
14223
  * @hidden
14220
14224
  */
@@ -14230,7 +14234,7 @@ function innerWidth(element) {
14230
14234
  */
14231
14235
  function processBreakpoints(breakpoints, containerWidth) {
14232
14236
  if (!breakpoints?.length || containerWidth === null) {
14233
- return null;
14237
+ return '';
14234
14238
  }
14235
14239
  for (const [index, breakpoint] of breakpoints.entries()) {
14236
14240
  const minBreakpointWidth = breakpoint.minWidth || breakpoints[index - 1]?.maxWidth + 1 || 0;
@@ -14239,7 +14243,7 @@ function processBreakpoints(breakpoints, containerWidth) {
14239
14243
  return breakpoint.value;
14240
14244
  }
14241
14245
  }
14242
- return null;
14246
+ return '';
14243
14247
  }
14244
14248
  /**
14245
14249
  * @hidden
@@ -14249,7 +14253,8 @@ const calculateColumns = (cols, containerWidth) => {
14249
14253
  return null;
14250
14254
  }
14251
14255
  if (Array.isArray(cols) && cols.length > 0) {
14252
- return processBreakpoints(cols, containerWidth);
14256
+ const processedCols = processBreakpoints(cols, containerWidth) || null;
14257
+ return typeof processedCols === 'string' ? parseInt(processedCols, 10) : processedCols;
14253
14258
  }
14254
14259
  else if (typeof cols === 'number') {
14255
14260
  return cols;
@@ -14265,18 +14270,18 @@ const calculateGutters = (gutters, containerWidth) => {
14265
14270
  if (!gutters) {
14266
14271
  return null;
14267
14272
  }
14268
- if (typeof gutters === 'number') {
14273
+ if (typeof gutters === 'number' || typeof gutters === 'string') {
14269
14274
  return { cols: gutters, rows: gutters };
14270
14275
  }
14271
14276
  else if (Array.isArray(gutters)) {
14272
- const processedGutters = processBreakpoints(gutters, containerWidth);
14277
+ const processedGutters = processBreakpoints(gutters, containerWidth) || null;
14273
14278
  return processedGutters !== null ? { cols: processedGutters, rows: processedGutters } : null;
14274
14279
  }
14275
14280
  else if (typeof gutters === 'object') {
14276
14281
  const gutterObject = gutters;
14277
14282
  const result = { rows: null, cols: null };
14278
14283
  if (gutterObject.cols !== undefined && gutterObject.cols !== null) {
14279
- if (typeof gutterObject.cols === 'number') {
14284
+ if (typeof gutterObject.cols === 'number' || typeof gutterObject.cols === 'string') {
14280
14285
  result.cols = gutterObject.cols;
14281
14286
  }
14282
14287
  else if (Array.isArray(gutterObject.cols)) {
@@ -14287,7 +14292,7 @@ const calculateGutters = (gutters, containerWidth) => {
14287
14292
  result.cols = null;
14288
14293
  }
14289
14294
  if (gutterObject.rows !== undefined) {
14290
- if (typeof gutterObject.rows === 'number') {
14295
+ if (typeof gutterObject.rows === 'number' || typeof gutterObject.rows === 'string') {
14291
14296
  result.rows = gutterObject.rows;
14292
14297
  }
14293
14298
  else if (Array.isArray(gutterObject.rows)) {
@@ -14314,7 +14319,8 @@ const calculateColSpan = (colSpan, containerWidth) => {
14314
14319
  return colSpan;
14315
14320
  }
14316
14321
  else if (Array.isArray(colSpan) && colSpan.length > 0) {
14317
- return processBreakpoints(colSpan, containerWidth);
14322
+ const processedColSpan = processBreakpoints(colSpan, containerWidth) || null;
14323
+ return typeof processedColSpan === 'string' ? parseInt(processedColSpan, 10) : processedColSpan;
14318
14324
  }
14319
14325
  return null;
14320
14326
  };
@@ -14329,13 +14335,12 @@ const generateColumnClass = (columnsNumber) => {
14329
14335
  /**
14330
14336
  * @hidden
14331
14337
  *
14332
- * Generates CSS class names for gutters
14338
+ * Generates CSS styles for gutters based on the provided gutters object.
14333
14339
  */
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
- };
14340
+ const generateGuttersStyling = (gutters) => {
14341
+ const rows = processCssValue(gutters?.rows);
14342
+ const cols = processCssValue(gutters?.cols);
14343
+ return `${rows ?? DEFAULT_GUTTERS.rows} ${cols ?? DEFAULT_GUTTERS.cols}`;
14339
14344
  };
14340
14345
  /**
14341
14346
  * @hidden
@@ -19022,7 +19027,7 @@ class FormComponent {
19022
19027
  * Defines the gutters for the form.
19023
19028
  * You can specify gutters for rows and columns.
19024
19029
  */
19025
- gutters;
19030
+ gutters = { ...DEFAULT_GUTTERS };
19026
19031
  /**
19027
19032
  * @hidden
19028
19033
  */
@@ -19030,21 +19035,19 @@ class FormComponent {
19030
19035
  /**
19031
19036
  * @hidden
19032
19037
  */
19033
- rowsGutterClass = '';
19034
- /**
19035
- * @hidden
19036
- */
19037
- colsGutterClass = '';
19038
+ guttersStyle = '';
19038
19039
  /**
19039
19040
  * @hidden
19040
19041
  */
19041
19042
  showLicenseWatermark = false;
19042
- formClass = true;
19043
+ get formClass() {
19044
+ return 'k-form k-form-md';
19045
+ }
19043
19046
  get horizontalClass() {
19044
19047
  return this.orientation === 'horizontal';
19045
19048
  }
19046
19049
  _formColumnsNumber;
19047
- _formGutters;
19050
+ _formGutters = { ...DEFAULT_GUTTERS };
19048
19051
  constructor(element, cdr, formService) {
19049
19052
  this.element = element;
19050
19053
  this.cdr = cdr;
@@ -19061,7 +19064,7 @@ class FormComponent {
19061
19064
  if (changes['cols']) {
19062
19065
  this.applyColumns();
19063
19066
  }
19064
- else if (changes['gutters']) {
19067
+ if (changes['gutters']) {
19065
19068
  this.applyGutters();
19066
19069
  }
19067
19070
  }
@@ -19095,18 +19098,16 @@ class FormComponent {
19095
19098
  this.columnsClass = generateColumnClass(this._formColumnsNumber);
19096
19099
  }
19097
19100
  updateGutterClasses() {
19098
- const gutterClasses = generateGutterClasses(this._formGutters);
19099
- this.rowsGutterClass = gutterClasses.rows;
19100
- this.colsGutterClass = gutterClasses.cols;
19101
+ this.guttersStyle = generateGuttersStyling(this._formGutters);
19101
19102
  }
19102
19103
  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 });
19103
- 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: `
19104
- <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass, rowsGutterClass, colsGutterClass]">
19104
+ 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": "this.formClass", "class.k-form-horizontal": "this.horizontalClass" } }, exportAs: ["kendoForm"], usesOnChanges: true, ngImport: i0, template: `
19105
+ <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass]" [ngStyle]="{ gap: guttersStyle }">
19105
19106
  <ng-content></ng-content>
19106
19107
  </div>
19107
19108
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
19108
19109
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
19109
- `, 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]" }] });
19110
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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]" }] });
19110
19111
  }
19111
19112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormComponent, decorators: [{
19112
19113
  type: Component,
@@ -19114,14 +19115,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
19114
19115
  exportAs: 'kendoForm',
19115
19116
  selector: 'form[kendoForm]',
19116
19117
  template: `
19117
- <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass, rowsGutterClass, colsGutterClass]">
19118
+ <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass]" [ngStyle]="{ gap: guttersStyle }">
19118
19119
  <ng-content></ng-content>
19119
19120
  </div>
19120
19121
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
19121
19122
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
19122
19123
  `,
19123
19124
  standalone: true,
19124
- imports: [NgClass, NgIf, ResizeSensorComponent, WatermarkOverlayComponent],
19125
+ imports: [NgClass, NgStyle, NgIf, ResizeSensorComponent, WatermarkOverlayComponent],
19125
19126
  }]
19126
19127
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: FormService }]; }, propDecorators: { orientation: [{
19127
19128
  type: Input
@@ -19131,7 +19132,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
19131
19132
  type: Input
19132
19133
  }], formClass: [{
19133
19134
  type: HostBinding,
19134
- args: ['class.k-form']
19135
+ args: ['class']
19135
19136
  }], horizontalClass: [{
19136
19137
  type: HostBinding,
19137
19138
  args: ['class.k-form-horizontal']
@@ -19222,7 +19223,7 @@ class FormFieldSetComponent {
19222
19223
  */
19223
19224
  legend;
19224
19225
  /**
19225
- * Defines the number of columns the fieldset.
19226
+ * Defines the number of columns of the fieldset.
19226
19227
  * Can be a number or an array of responsive breakpoints.
19227
19228
  */
19228
19229
  cols;
@@ -19243,18 +19244,14 @@ class FormFieldSetComponent {
19243
19244
  /**
19244
19245
  * @hidden
19245
19246
  */
19246
- rowsGutterClass = '';
19247
- /**
19248
- * @hidden
19249
- */
19250
- colsGutterClass = '';
19247
+ guttersStyle = '';
19251
19248
  _formColumnsNumber;
19252
19249
  _colSpanClass = null;
19253
19250
  _formWidth = null;
19254
- _formGutters = null;
19251
+ _formGutters = { ...DEFAULT_GUTTERS };
19255
19252
  _previousColSpan = null;
19256
19253
  _previousCols = null;
19257
- _previousGutters = null;
19254
+ _previousGutters;
19258
19255
  subs = new Subscription();
19259
19256
  constructor(elementRef, renderer, formService, cdr) {
19260
19257
  this.elementRef = elementRef;
@@ -19308,9 +19305,8 @@ class FormFieldSetComponent {
19308
19305
  this.cdr.detectChanges();
19309
19306
  }
19310
19307
  updateGutterClasses() {
19311
- const gutterClasses = generateGutterClasses(this._formGutters);
19312
- this.rowsGutterClass = gutterClasses.rows;
19313
- this.colsGutterClass = gutterClasses.cols;
19308
+ this.guttersStyle = generateGuttersStyling(this._formGutters);
19309
+ this.cdr.detectChanges();
19314
19310
  }
19315
19311
  updateColSpanClass() {
19316
19312
  const hostElement = this.elementRef.nativeElement;
@@ -19333,10 +19329,10 @@ class FormFieldSetComponent {
19333
19329
  <legend *ngIf="legend" class="k-form-legend">
19334
19330
  {{ legend }}
19335
19331
  </legend>
19336
- <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass, rowsGutterClass, colsGutterClass]">
19332
+ <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass]" [ngStyle]="{'gap': guttersStyle}">
19337
19333
  <ng-content></ng-content>
19338
19334
  </div>
19339
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
19335
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
19340
19336
  }
19341
19337
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormFieldSetComponent, decorators: [{
19342
19338
  type: Component,
@@ -19347,12 +19343,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
19347
19343
  <legend *ngIf="legend" class="k-form-legend">
19348
19344
  {{ legend }}
19349
19345
  </legend>
19350
- <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass, rowsGutterClass, colsGutterClass]">
19346
+ <div class="k-form-layout k-d-grid" [ngClass]="[columnsClass]" [ngStyle]="{'gap': guttersStyle}">
19351
19347
  <ng-content></ng-content>
19352
19348
  </div>
19353
19349
  `,
19354
19350
  standalone: true,
19355
- imports: [NgIf, NgClass],
19351
+ imports: [NgIf, NgClass, NgStyle],
19356
19352
  }]
19357
19353
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: FormService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { formFieldSetClass: [{
19358
19354
  type: HostBinding,
@@ -33,7 +33,7 @@ export declare class FormComponent implements AfterContentInit, OnChanges {
33
33
  * Defines the gutters for the form.
34
34
  * You can specify gutters for rows and columns.
35
35
  */
36
- gutters: number | ResponsiveFormBreakPoint[] | Gutters;
36
+ gutters: number | string | ResponsiveFormBreakPoint[] | Gutters;
37
37
  /**
38
38
  * @hidden
39
39
  */
@@ -41,16 +41,12 @@ export declare class FormComponent implements AfterContentInit, OnChanges {
41
41
  /**
42
42
  * @hidden
43
43
  */
44
- rowsGutterClass: string;
45
- /**
46
- * @hidden
47
- */
48
- colsGutterClass: string;
44
+ guttersStyle: string;
49
45
  /**
50
46
  * @hidden
51
47
  */
52
48
  showLicenseWatermark: boolean;
53
- formClass: boolean;
49
+ get formClass(): string;
54
50
  get horizontalClass(): boolean;
55
51
  private _formColumnsNumber;
56
52
  private _formGutters;
package/form/utils.d.ts CHANGED
@@ -4,6 +4,10 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Gutters } from '../common/models/gutters';
6
6
  import { ResponsiveFormBreakPoint } from '../common/models/responsive-breakpoints';
7
+ /**
8
+ * @hidden
9
+ */
10
+ export declare const DEFAULT_GUTTERS: Gutters;
7
11
  /**
8
12
  * @hidden
9
13
  */
@@ -11,7 +15,7 @@ export declare function innerWidth(element: HTMLElement): number;
11
15
  /**
12
16
  * @hidden
13
17
  */
14
- export declare function processBreakpoints(breakpoints: ResponsiveFormBreakPoint[], containerWidth: number): number | null;
18
+ export declare function processBreakpoints(breakpoints: ResponsiveFormBreakPoint[], containerWidth: number): number | string;
15
19
  /**
16
20
  * @hidden
17
21
  */
@@ -21,16 +25,16 @@ export declare const calculateColumns: (cols: number | ResponsiveFormBreakPoint[
21
25
  *
22
26
  * Calculates gutters for rows and columns based on responsive breakpoints or fixed values
23
27
  */
24
- export declare const calculateGutters: (gutters: number | ResponsiveFormBreakPoint[] | Gutters | undefined, containerWidth: number) => {
25
- cols: number;
26
- rows: number;
28
+ export declare const calculateGutters: (gutters: number | string | ResponsiveFormBreakPoint[] | Gutters | undefined, containerWidth: number) => {
29
+ cols: number | string;
30
+ rows: number | string;
27
31
  } | null;
28
32
  /**
29
33
  * @hidden
30
34
  *
31
35
  * Calculates column span value based on responsive breakpoints or fixed number
32
36
  */
33
- export declare const calculateColSpan: (colSpan: number | ResponsiveFormBreakPoint[] | undefined, containerWidth: number) => number | null;
37
+ export declare const calculateColSpan: (colSpan: number | ResponsiveFormBreakPoint[], containerWidth: number) => number | null;
34
38
  /**
35
39
  * @hidden
36
40
  *
@@ -40,15 +44,12 @@ export declare const generateColumnClass: (columnsNumber: number | null) => stri
40
44
  /**
41
45
  * @hidden
42
46
  *
43
- * Generates CSS class names for gutters
44
- */
45
- export declare const generateGutterClasses: (gutters: {
46
- cols: number;
47
- rows: number;
48
- } | null) => {
49
- rows: string;
50
- cols: string;
51
- };
47
+ * Generates CSS styles for gutters based on the provided gutters object.
48
+ */
49
+ export declare const generateGuttersStyling: (gutters: {
50
+ cols?: number | string;
51
+ rows?: number | string;
52
+ } | null) => string;
52
53
  /**
53
54
  * @hidden
54
55
  *
@@ -24,7 +24,7 @@ export declare class FormFieldSetComponent implements OnInit, OnChanges {
24
24
  */
25
25
  legend: string;
26
26
  /**
27
- * Defines the number of columns the fieldset.
27
+ * Defines the number of columns of the fieldset.
28
28
  * Can be a number or an array of responsive breakpoints.
29
29
  */
30
30
  cols: number | ResponsiveFormBreakPoint[];
@@ -32,7 +32,7 @@ export declare class FormFieldSetComponent implements OnInit, OnChanges {
32
32
  * Defines the gutters for the fieldset.
33
33
  * You can specify gutters for rows and columns.
34
34
  */
35
- gutters: number | ResponsiveFormBreakPoint[] | Gutters;
35
+ gutters: number | string | ResponsiveFormBreakPoint[] | Gutters;
36
36
  /**
37
37
  * Defines the colspan for the fieldset related to the parent Form component columns.
38
38
  * Can be a number or an array of responsive breakpoints.
@@ -45,11 +45,7 @@ export declare class FormFieldSetComponent implements OnInit, OnChanges {
45
45
  /**
46
46
  * @hidden
47
47
  */
48
- rowsGutterClass: string;
49
- /**
50
- * @hidden
51
- */
52
- colsGutterClass: string;
48
+ guttersStyle: string;
53
49
  private _formColumnsNumber;
54
50
  private _colSpanClass;
55
51
  private _formWidth;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-inputs",
3
- "version": "19.3.0-develop.11",
3
+ "version": "19.3.0-develop.12",
4
4
  "description": "Kendo UI for Angular Inputs Package - Everything you need to build professional form functionality (Checkbox, ColorGradient, ColorPalette, ColorPicker, FlatColorPicker, FormField, MaskedTextBox, NumericTextBox, RadioButton, RangeSlider, Slider, Switch, TextArea, and TextBox Components)",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -28,7 +28,7 @@
28
28
  "package": {
29
29
  "productName": "Kendo UI for Angular",
30
30
  "productCode": "KENDOUIANGULAR",
31
- "publishDate": 1752746728,
31
+ "publishDate": 1753180917,
32
32
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
33
33
  }
34
34
  },
@@ -40,20 +40,20 @@
40
40
  "@angular/platform-browser": "16 - 20",
41
41
  "@progress/kendo-drawing": "^1.21.0",
42
42
  "@progress/kendo-licensing": "^1.5.0",
43
- "@progress/kendo-angular-buttons": "19.3.0-develop.11",
44
- "@progress/kendo-angular-common": "19.3.0-develop.11",
45
- "@progress/kendo-angular-utils": "19.3.0-develop.11",
46
- "@progress/kendo-angular-navigation": "19.3.0-develop.11",
47
- "@progress/kendo-angular-dialog": "19.3.0-develop.11",
48
- "@progress/kendo-angular-intl": "19.3.0-develop.11",
49
- "@progress/kendo-angular-l10n": "19.3.0-develop.11",
50
- "@progress/kendo-angular-popup": "19.3.0-develop.11",
51
- "@progress/kendo-angular-icons": "19.3.0-develop.11",
43
+ "@progress/kendo-angular-buttons": "19.3.0-develop.12",
44
+ "@progress/kendo-angular-common": "19.3.0-develop.12",
45
+ "@progress/kendo-angular-utils": "19.3.0-develop.12",
46
+ "@progress/kendo-angular-navigation": "19.3.0-develop.12",
47
+ "@progress/kendo-angular-dialog": "19.3.0-develop.12",
48
+ "@progress/kendo-angular-intl": "19.3.0-develop.12",
49
+ "@progress/kendo-angular-l10n": "19.3.0-develop.12",
50
+ "@progress/kendo-angular-popup": "19.3.0-develop.12",
51
+ "@progress/kendo-angular-icons": "19.3.0-develop.12",
52
52
  "rxjs": "^6.5.3 || ^7.0.0"
53
53
  },
54
54
  "dependencies": {
55
55
  "tslib": "^2.3.1",
56
- "@progress/kendo-angular-schematics": "19.3.0-develop.11",
56
+ "@progress/kendo-angular-schematics": "19.3.0-develop.12",
57
57
  "@progress/kendo-common": "^1.0.1",
58
58
  "@progress/kendo-draggable": "^3.0.0",
59
59
  "@progress/kendo-inputs-common": "^3.1.0"