@progress/kendo-angular-spreadsheet 18.5.0-develop.7 → 18.5.0-develop.8

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.
@@ -0,0 +1,29 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { EventEmitter, QueryList, ElementRef, AfterViewInit, NgZone } from '@angular/core';
6
+ import { SpreadsheetService } from './spreadsheet.service';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * @hidden
10
+ */
11
+ export declare class ListEditorComponent implements AfterViewInit {
12
+ private ngZone;
13
+ private spreadsheetService;
14
+ data: any[];
15
+ focusedIndex: number;
16
+ itemSelect: EventEmitter<any>;
17
+ close: EventEmitter<void>;
18
+ listItems: QueryList<ElementRef>;
19
+ constructor(ngZone: NgZone, spreadsheetService: SpreadsheetService);
20
+ ngAfterViewInit(): void;
21
+ onItemClick(item: any): void;
22
+ onKeyDown(event: KeyboardEvent, index: number): void;
23
+ private focusNext;
24
+ private focusPrev;
25
+ private closeList;
26
+ private focusItem;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<ListEditorComponent, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<ListEditorComponent, "ng-component", never, {}, { "itemSelect": "itemSelect"; "close": "close"; }, never, never, true, never>;
29
+ }
package/directives.d.ts CHANGED
@@ -33,7 +33,8 @@ import { SpreadsheetIncreaseDecimalDirective } from './tools/increase-decimal-to
33
33
  import { SpreadsheetDecreaseDecimalDirective } from './tools/decrease-decimal-tool.directive';
34
34
  import { SpreadsheetHorizontalTextAlignDirective } from './tools/align/horizontal-align-tool.directive';
35
35
  import { SpreadsheetVerticalTextAlignDirective } from './tools/align/vertical-align-tool.directive';
36
+ import { SpreadsheetDataValidationDirective } from './tools/data-validation-tool.directive';
36
37
  /**
37
38
  * Utility array that contains all `@progress/kendo-angular-spreadsheet` related components and directives.
38
39
  */
39
- export declare const KENDO_SPREADSHEET: readonly [typeof SpreadsheetComponent, typeof CustomMessagesComponent, typeof SpreadsheetBoldDirective, typeof SpreadsheetItalicDirective, typeof SpreadsheetUnderlineDirective, typeof SpreadsheetLoadFileComponent, typeof SpreadsheetSaveFileDirective, typeof SpreadsheetFormatDirective, typeof SpreadsheetUndoDirective, typeof SpreadsheetRedoDirective, typeof SpreadsheetFontFamilyComponent, typeof SpreadsheetFontSizeComponent, typeof SpreadsheetBackColorComponent, typeof SpreadsheetForeColorComponent, typeof SpreadsheetGridLinesDirective, typeof SpreadsheetAddColumnLeftButtonDirective, typeof SpreadsheetAddColumnRightButtonDirective, typeof SpreadsheetAddRowAboveButtonDirective, typeof SpreadsheetAddRowBelowButtonDirective, typeof SpreadsheetDeleteColumnButtonDirective, typeof SpreadsheetDeleteRowButtonDirective, typeof SpreadsheetTextAlignDirective, typeof SpreadsheetTextWrapDirective, typeof SpreadsheetMergeDirective, typeof SpreadsheetInsertLinkDirective, typeof SpreadsheetIncreaseFontSizeDirective, typeof SpreadsheetDecreaseFontSizeDirective, typeof SpreadsheetIncreaseDecimalDirective, typeof SpreadsheetDecreaseDecimalDirective, typeof SpreadsheetHorizontalTextAlignDirective, typeof SpreadsheetVerticalTextAlignDirective];
40
+ export declare const KENDO_SPREADSHEET: readonly [typeof SpreadsheetComponent, typeof CustomMessagesComponent, typeof SpreadsheetBoldDirective, typeof SpreadsheetDataValidationDirective, typeof SpreadsheetItalicDirective, typeof SpreadsheetUnderlineDirective, typeof SpreadsheetLoadFileComponent, typeof SpreadsheetSaveFileDirective, typeof SpreadsheetFormatDirective, typeof SpreadsheetUndoDirective, typeof SpreadsheetRedoDirective, typeof SpreadsheetFontFamilyComponent, typeof SpreadsheetFontSizeComponent, typeof SpreadsheetBackColorComponent, typeof SpreadsheetForeColorComponent, typeof SpreadsheetGridLinesDirective, typeof SpreadsheetAddColumnLeftButtonDirective, typeof SpreadsheetAddColumnRightButtonDirective, typeof SpreadsheetAddRowAboveButtonDirective, typeof SpreadsheetAddRowBelowButtonDirective, typeof SpreadsheetDeleteColumnButtonDirective, typeof SpreadsheetDeleteRowButtonDirective, typeof SpreadsheetTextAlignDirective, typeof SpreadsheetTextWrapDirective, typeof SpreadsheetMergeDirective, typeof SpreadsheetInsertLinkDirective, typeof SpreadsheetIncreaseFontSizeDirective, typeof SpreadsheetDecreaseFontSizeDirective, typeof SpreadsheetIncreaseDecimalDirective, typeof SpreadsheetDecreaseDecimalDirective, typeof SpreadsheetHorizontalTextAlignDirective, typeof SpreadsheetVerticalTextAlignDirective];
@@ -84,7 +84,7 @@ export class FormulaInputDirective {
84
84
  },
85
85
  popup: {
86
86
  open: () => {
87
- this.popupRef && this.popupRef.close();
87
+ this.popupRef?.close();
88
88
  this.popupRef = null;
89
89
  this.popupRef = this.popupService.open({
90
90
  anchor: this.element,
@@ -99,13 +99,11 @@ export class FormulaInputDirective {
99
99
  this.ariaExpanded = 'true';
100
100
  },
101
101
  close: () => {
102
- this.popupRef && this.popupRef.close();
102
+ this.popupRef?.close();
103
103
  this.popupRef = null;
104
104
  this.ariaExpanded = 'false';
105
105
  },
106
- position: () => {
107
- // contentKey++;
108
- },
106
+ position: () => { },
109
107
  visible: () => {
110
108
  return this.popupRef;
111
109
  }
@@ -49,6 +49,7 @@ export class ErrorHandlingService {
49
49
  }
50
50
  openDialog(messageData) {
51
51
  let dialogContent;
52
+ let dialogTitle;
52
53
  if (messageData.name === 'message') {
53
54
  const localizationMsg = this.messageFor('invalidNameError');
54
55
  let inputValue = messageData.text.split(' ').pop();
@@ -57,12 +58,16 @@ export class ErrorHandlingService {
57
58
  }
58
59
  dialogContent = replaceMessagePlaceholder(localizationMsg, 'inputValue', inputValue);
59
60
  }
61
+ else if (messageData.name === 'validationError') {
62
+ dialogContent = messageData.text;
63
+ dialogTitle = messageData.title;
64
+ }
60
65
  else {
61
66
  dialogContent = this.messageFor(messageData.name);
62
67
  }
63
68
  const dialogSettings = {
64
69
  appendTo: this.spreadsheetService.dialogContainer,
65
- title: this.messageFor('dialogError'),
70
+ title: dialogTitle ?? this.messageFor('dialogError'),
66
71
  content: dialogContent,
67
72
  actions: [{
68
73
  text: this.messageFor('dialogOk'),
@@ -0,0 +1,142 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { NgForOf } from '@angular/common';
6
+ import { Component, EventEmitter, Output, ViewChildren, QueryList, ElementRef, NgZone } from '@angular/core';
7
+ import { Keys } from '@progress/kendo-angular-common';
8
+ import { SpreadsheetService } from './spreadsheet.service';
9
+ import { take } from 'rxjs/operators';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "./spreadsheet.service";
12
+ /**
13
+ * @hidden
14
+ */
15
+ export class ListEditorComponent {
16
+ ngZone;
17
+ spreadsheetService;
18
+ data = [];
19
+ focusedIndex = 0;
20
+ itemSelect = new EventEmitter();
21
+ close = new EventEmitter();
22
+ listItems;
23
+ constructor(ngZone, spreadsheetService) {
24
+ this.ngZone = ngZone;
25
+ this.spreadsheetService = spreadsheetService;
26
+ }
27
+ ngAfterViewInit() {
28
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
29
+ this.spreadsheetService.spreadsheet.view.clipboard.blur();
30
+ this.focusItem(0);
31
+ });
32
+ }
33
+ onItemClick(item) {
34
+ this.itemSelect.emit(item);
35
+ }
36
+ onKeyDown(event, index) {
37
+ const altKey = event.altKey;
38
+ switch (event.keyCode) {
39
+ case Keys.ArrowDown:
40
+ case Keys.ArrowRight:
41
+ event.preventDefault();
42
+ this.focusNext();
43
+ break;
44
+ case Keys.ArrowUp:
45
+ if (altKey) {
46
+ this.closeList();
47
+ }
48
+ else {
49
+ this.focusPrev();
50
+ }
51
+ break;
52
+ case Keys.ArrowLeft:
53
+ event.preventDefault();
54
+ this.focusPrev();
55
+ break;
56
+ case Keys.Enter:
57
+ case Keys.Space:
58
+ event.preventDefault();
59
+ this.onItemClick(this.data[index]);
60
+ break;
61
+ case Keys.Escape:
62
+ event.preventDefault();
63
+ this.closeList();
64
+ break;
65
+ }
66
+ }
67
+ focusNext() {
68
+ if (this.focusedIndex + 1 === this.data.length) {
69
+ this.focusItem(0);
70
+ }
71
+ else {
72
+ this.focusItem(this.focusedIndex + 1);
73
+ }
74
+ }
75
+ focusPrev() {
76
+ if (this.focusedIndex - 1 < 0) {
77
+ this.focusItem(this.data.length - 1);
78
+ }
79
+ else {
80
+ this.focusItem(this.focusedIndex - 1);
81
+ }
82
+ }
83
+ closeList() {
84
+ this.close.emit();
85
+ this.spreadsheetService.spreadsheet.view.clipboard.focus();
86
+ }
87
+ focusItem(index) {
88
+ if (this.data.length === 0) {
89
+ return;
90
+ }
91
+ this.focusedIndex = index;
92
+ const items = this.listItems.toArray();
93
+ if (items[index]) {
94
+ items[index].nativeElement.focus();
95
+ }
96
+ }
97
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListEditorComponent, deps: [{ token: i0.NgZone }, { token: i1.SpreadsheetService }], target: i0.ɵɵFactoryTarget.Component });
98
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ListEditorComponent, isStandalone: true, selector: "ng-component", outputs: { itemSelect: "itemSelect", close: "close" }, viewQueries: [{ propertyName: "listItems", predicate: ["listItem"], descendants: true, read: ElementRef }], ngImport: i0, template: `
99
+ <ul class="k-list k-reset k-list-ul" role="listbox">
100
+ <li *ngFor="let item of data; let i = index"
101
+ role="option"
102
+ class="k-list-item"
103
+ [class.k-focus]="i === focusedIndex"
104
+ [attr.aria-selected]="i === focusedIndex"
105
+ [attr.tabindex]="i === focusedIndex ? 0 : -1"
106
+ (click)="onItemClick(item)"
107
+ (keydown)="onKeyDown($event, i)"
108
+ #listItem>
109
+ <span class="k-list-item-text">{{item.value}}</span>
110
+ </li>
111
+ </ul>
112
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListEditorComponent, decorators: [{
115
+ type: Component,
116
+ args: [{
117
+ template: `
118
+ <ul class="k-list k-reset k-list-ul" role="listbox">
119
+ <li *ngFor="let item of data; let i = index"
120
+ role="option"
121
+ class="k-list-item"
122
+ [class.k-focus]="i === focusedIndex"
123
+ [attr.aria-selected]="i === focusedIndex"
124
+ [attr.tabindex]="i === focusedIndex ? 0 : -1"
125
+ (click)="onItemClick(item)"
126
+ (keydown)="onKeyDown($event, i)"
127
+ #listItem>
128
+ <span class="k-list-item-text">{{item.value}}</span>
129
+ </li>
130
+ </ul>
131
+ `,
132
+ standalone: true,
133
+ imports: [NgForOf]
134
+ }]
135
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.SpreadsheetService }]; }, propDecorators: { itemSelect: [{
136
+ type: Output
137
+ }], close: [{
138
+ type: Output
139
+ }], listItems: [{
140
+ type: ViewChildren,
141
+ args: ['listItem', { read: ElementRef }]
142
+ }] } });
@@ -33,6 +33,7 @@ import { SpreadsheetIncreaseDecimalDirective } from './tools/increase-decimal-to
33
33
  import { SpreadsheetDecreaseDecimalDirective } from './tools/decrease-decimal-tool.directive';
34
34
  import { SpreadsheetHorizontalTextAlignDirective } from './tools/align/horizontal-align-tool.directive';
35
35
  import { SpreadsheetVerticalTextAlignDirective } from './tools/align/vertical-align-tool.directive';
36
+ import { SpreadsheetDataValidationDirective } from './tools/data-validation-tool.directive';
36
37
  /**
37
38
  * Utility array that contains all `@progress/kendo-angular-spreadsheet` related components and directives.
38
39
  */
@@ -40,6 +41,7 @@ export const KENDO_SPREADSHEET = [
40
41
  SpreadsheetComponent,
41
42
  CustomMessagesComponent,
42
43
  SpreadsheetBoldDirective,
44
+ SpreadsheetDataValidationDirective,
43
45
  SpreadsheetItalicDirective,
44
46
  SpreadsheetUnderlineDirective,
45
47
  SpreadsheetLoadFileComponent,
@@ -26,6 +26,10 @@ export class MessagesDirective extends ComponentMessages {
26
26
  * The name of the "Format" toolbar tab
27
27
  */
28
28
  formatTab;
29
+ /**
30
+ * The name of the "Data" toolbar tab
31
+ */
32
+ dataTab;
29
33
  /* Section of Tools Messages */
30
34
  /**
31
35
  * The title of the Save File tool
@@ -39,6 +43,134 @@ export class MessagesDirective extends ComponentMessages {
39
43
  * The title of the Bold tool
40
44
  */
41
45
  bold;
46
+ /**
47
+ * The title of the Data Validation tool
48
+ */
49
+ dataValidation;
50
+ /**
51
+ * The text of the Cell Range input label in the data validation dialog
52
+ */
53
+ validationCellRange;
54
+ /**
55
+ * The text of the Criteria dropdown list label in the data validation dialog.
56
+ */
57
+ validationCriteria;
58
+ /**
59
+ * The text of the Comparer dropdown list label in the data validation dialog.
60
+ */
61
+ validationComparer;
62
+ /**
63
+ * The text of the Min value label in the data validation dialog.
64
+ */
65
+ validationMinValue;
66
+ /**
67
+ * The text of the Max value label in the data validation dialog.
68
+ */
69
+ validationMaxValue;
70
+ /**
71
+ * The text of the Start value label in the data validation dialog.
72
+ */
73
+ validationStartValue;
74
+ /**
75
+ * The text of the End value label in the data validation dialog.
76
+ */
77
+ validationEndValue;
78
+ /**
79
+ * The text of the Value label in the data validation dialog.
80
+ */
81
+ validationValue;
82
+ /**
83
+ * The text for the Show list button checkbox label in the data validation dialog.
84
+ */
85
+ validationShowListButtonCheckbox;
86
+ /**
87
+ * The text for the Show date button checkbox label in the data validation dialog.
88
+ */
89
+ validationShowDateButtonCheckbox;
90
+ /**
91
+ * The text for the Ignore blank checkbox label in the data validation dialog.
92
+ */
93
+ validationIgnoreBlankCheckbox;
94
+ /**
95
+ * The text for the On invalid data label in the data validation dialog.
96
+ */
97
+ validationOnInvalidData;
98
+ /**
99
+ * The text for the Reject input radio button label in the data validation dialog.
100
+ */
101
+ validationRejectInput;
102
+ /**
103
+ * The text for the Show warning radio button label in the data validation dialog.
104
+ */
105
+ validationShowWarning;
106
+ /**
107
+ * The text for the Show hint checkbox label in the data validation dialog.
108
+ */
109
+ validationShowHint;
110
+ /**
111
+ * The text of the Any value validation criteria.
112
+ */
113
+ anyValueValidationCriteria;
114
+ /**
115
+ * The text of the Number validation criteria.
116
+ */
117
+ numberValidationCriteria;
118
+ /**
119
+ * The text of the Text validation criteria.
120
+ */
121
+ textValidationCriteria;
122
+ /**
123
+ * The text of the Date validation criteria.
124
+ */
125
+ dateValidationCriteria;
126
+ /**
127
+ * The text of the Custom Formula validation criteria.
128
+ */
129
+ customFormulaValidationCriteria;
130
+ /**
131
+ * The text of the List validation criteria.
132
+ */
133
+ listValidationCriteria;
134
+ /**
135
+ * The text of the greater than validation comparer.
136
+ */
137
+ greaterThanValidationComparer;
138
+ /**
139
+ * The text of the less than validation comparer.
140
+ */
141
+ lessThanValidationComparer;
142
+ /**
143
+ * The text of the between validation comparer.
144
+ */
145
+ betweenValidationComparer;
146
+ /**
147
+ * The text of the not between validation comparer.
148
+ */
149
+ notBetweenValidationComparer;
150
+ /**
151
+ * The text of the equal to validation comparer.
152
+ */
153
+ equalToValidationComparer;
154
+ /**
155
+ * The text of the not equal to validation comparer.
156
+ */
157
+ notEqualToValidationComparer;
158
+ /**
159
+ * The text of the greater than or equal to validation comparer.
160
+ */
161
+ greaterThanOrEqualToValidationComparer;
162
+ /**
163
+ * The text of the less than or equal to validation comparer.
164
+ */
165
+ lessThanOrEqualToValidationComparer;
166
+ /**
167
+ * The text for the Custom hint input label in the data validation dialog.
168
+ */
169
+ validationHintMessage;
170
+ /**
171
+ * The text for the Custom hint title input label in the data validation dialog.
172
+ */
173
+ validationHintTitle;
42
174
  /**
43
175
  * The title of the Italic tool
44
176
  */
@@ -169,6 +301,10 @@ export class MessagesDirective extends ComponentMessages {
169
301
  * The text of the **Insert** button in all Spreadsheet dialogs
170
302
  */
171
303
  dialogInsert;
304
+ /**
305
+ * The text of the **Remove** button in all Spreadsheet dialogs
306
+ */
307
+ dialogRemove;
172
308
  /**
173
309
  * The text of the **Remove link** button in the Link tool dialog
174
310
  */
@@ -329,7 +465,7 @@ export class MessagesDirective extends ComponentMessages {
329
465
  */
330
466
  invalidNameError;
331
467
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessagesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
332
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: MessagesDirective, isStandalone: true, selector: "[kendoSpreadsheetMessages]", inputs: { home: "home", file: "file", insert: "insert", formatTab: "formatTab", saveFile: "saveFile", loadFile: "loadFile", bold: "bold", italic: "italic", underline: "underline", format: "format", fontFamily: "fontFamily", fontSize: "fontSize", undo: "undo", redo: "redo", background: "background", color: "color", gridLines: "gridLines", addColumnLeft: "addColumnLeft", addColumnRight: "addColumnRight", addRowBelow: "addRowBelow", addRowAbove: "addRowAbove", deleteColumn: "deleteColumn", deleteRow: "deleteRow", wrap: "wrap", align: "align", alignHorizontal: "alignHorizontal", alignVertical: "alignVertical", alignLeft: "alignLeft", alignCenter: "alignCenter", alignRight: "alignRight", alignJustify: "alignJustify", alignTop: "alignTop", alignMiddle: "alignMiddle", alignBottom: "alignBottom", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", dialogInsert: "dialogInsert", dialogRemoveLink: "dialogRemoveLink", delete: "delete", rename: "rename", nameBox: "nameBox", formulaInput: "formulaInput", addSheet: "addSheet", sheetsMenu: "sheetsMenu", view: "view", merge: "merge", mergeHorizontally: "mergeHorizontally", mergeVertically: "mergeVertically", mergeAll: "mergeAll", unmerge: "unmerge", insertLink: "insertLink", increaseDecimal: "increaseDecimal", decreaseDecimal: "decreaseDecimal", increaseFontSize: "increaseFontSize", decreaseFontSize: "decreaseFontSize", openUnsupported: "openUnsupported", modifyMerged: "modifyMerged", cannotModifyDisabled: "cannotModifyDisabled", dialogOk: "dialogOk", dialogError: "dialogError", duplicateSheetName: "duplicateSheetName", copy: "copy", cut: "cut", paste: "paste", hideRow: "hideRow", unhideRow: "unhideRow", hideColumn: "hideColumn", unhideColumn: "unhideColumn", sheetDelete: "sheetDelete", sheetRename: "sheetRename", sheetHide: "sheetHide", sheetDuplicate: "sheetDuplicate", sheetMoveLeft: "sheetMoveLeft", sheetMoveRight: "sheetMoveRight", invalidNameError: "invalidNameError" }, usesInheritance: true, ngImport: i0 });
468
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: MessagesDirective, isStandalone: true, selector: "[kendoSpreadsheetMessages]", inputs: { home: "home", file: "file", insert: "insert", formatTab: "formatTab", dataTab: "dataTab", saveFile: "saveFile", loadFile: "loadFile", bold: "bold", dataValidation: "dataValidation", validationCellRange: "validationCellRange", validationCriteria: "validationCriteria", validationComparer: "validationComparer", validationMinValue: "validationMinValue", validationMaxValue: "validationMaxValue", validationStartValue: "validationStartValue", validationEndValue: "validationEndValue", validationValue: "validationValue", validationShowListButtonCheckbox: "validationShowListButtonCheckbox", validationShowDateButtonCheckbox: "validationShowDateButtonCheckbox", validationIgnoreBlankCheckbox: "validationIgnoreBlankCheckbox", validationOnInvalidData: "validationOnInvalidData", validationRejectInput: "validationRejectInput", validationShowWarning: "validationShowWarning", validationShowHint: "validationShowHint", anyValueValidationCriteria: "anyValueValidationCriteria", numberValidationCriteria: "numberValidationCriteria", textValidationCriteria: "textValidationCriteria", dateValidationCriteria: "dateValidationCriteria", customFormulaValidationCriteria: "customFormulaValidationCriteria", listValidationCriteria: "listValidationCriteria", greaterThanValidationComparer: "greaterThanValidationComparer", lessThanValidationComparer: "lessThanValidationComparer", betweenValidationComparer: "betweenValidationComparer", notBetweenValidationComparer: "notBetweenValidationComparer", equalToValidationComparer: "equalToValidationComparer", notEqualToValidationComparer: "notEqualToValidationComparer", greaterThanOrEqualToValidationComparer: "greaterThanOrEqualToValidationComparer", lessThanOrEqualToValidationComparer: "lessThanOrEqualToValidationComparer", validationHintMessage: "validationHintMessage", validationHintTitle: "validationHintTitle", italic: "italic", underline: "underline", format: "format", fontFamily: "fontFamily", fontSize: "fontSize", undo: "undo", redo: "redo", background: "background", color: "color", gridLines: "gridLines", addColumnLeft: "addColumnLeft", addColumnRight: "addColumnRight", addRowBelow: "addRowBelow", addRowAbove: "addRowAbove", deleteColumn: "deleteColumn", deleteRow: "deleteRow", wrap: "wrap", align: "align", alignHorizontal: "alignHorizontal", alignVertical: "alignVertical", alignLeft: "alignLeft", alignCenter: "alignCenter", alignRight: "alignRight", alignJustify: "alignJustify", alignTop: "alignTop", alignMiddle: "alignMiddle", alignBottom: "alignBottom", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", dialogInsert: "dialogInsert", dialogRemove: "dialogRemove", dialogRemoveLink: "dialogRemoveLink", delete: "delete", rename: "rename", nameBox: "nameBox", formulaInput: "formulaInput", addSheet: "addSheet", sheetsMenu: "sheetsMenu", view: "view", merge: "merge", mergeHorizontally: "mergeHorizontally", mergeVertically: "mergeVertically", mergeAll: "mergeAll", unmerge: "unmerge", insertLink: "insertLink", increaseDecimal: "increaseDecimal", decreaseDecimal: "decreaseDecimal", increaseFontSize: "increaseFontSize", decreaseFontSize: "decreaseFontSize", openUnsupported: "openUnsupported", modifyMerged: "modifyMerged", cannotModifyDisabled: "cannotModifyDisabled", dialogOk: "dialogOk", dialogError: "dialogError", duplicateSheetName: "duplicateSheetName", copy: "copy", cut: "cut", paste: "paste", hideRow: "hideRow", unhideRow: "unhideRow", hideColumn: "hideColumn", unhideColumn: "unhideColumn", sheetDelete: "sheetDelete", sheetRename: "sheetRename", sheetHide: "sheetHide", sheetDuplicate: "sheetDuplicate", sheetMoveLeft: "sheetMoveLeft", sheetMoveRight: "sheetMoveRight", invalidNameError: "invalidNameError" }, usesInheritance: true, ngImport: i0 });
333
469
  }
334
470
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessagesDirective, decorators: [{
335
471
  type: Directive,
@@ -345,12 +481,78 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
345
481
  type: Input
346
482
  }], formatTab: [{
347
483
  type: Input
484
+ }], dataTab: [{
485
+ type: Input
348
486
  }], saveFile: [{
349
487
  type: Input
350
488
  }], loadFile: [{
351
489
  type: Input
352
490
  }], bold: [{
353
491
  type: Input
492
+ }], dataValidation: [{
493
+ type: Input
494
+ }], validationCellRange: [{
495
+ type: Input
496
+ }], validationCriteria: [{
497
+ type: Input
498
+ }], validationComparer: [{
499
+ type: Input
500
+ }], validationMinValue: [{
501
+ type: Input
502
+ }], validationMaxValue: [{
503
+ type: Input
504
+ }], validationStartValue: [{
505
+ type: Input
506
+ }], validationEndValue: [{
507
+ type: Input
508
+ }], validationValue: [{
509
+ type: Input
510
+ }], validationShowListButtonCheckbox: [{
511
+ type: Input
512
+ }], validationShowDateButtonCheckbox: [{
513
+ type: Input
514
+ }], validationIgnoreBlankCheckbox: [{
515
+ type: Input
516
+ }], validationOnInvalidData: [{
517
+ type: Input
518
+ }], validationRejectInput: [{
519
+ type: Input
520
+ }], validationShowWarning: [{
521
+ type: Input
522
+ }], validationShowHint: [{
523
+ type: Input
524
+ }], anyValueValidationCriteria: [{
525
+ type: Input
526
+ }], numberValidationCriteria: [{
527
+ type: Input
528
+ }], textValidationCriteria: [{
529
+ type: Input
530
+ }], dateValidationCriteria: [{
531
+ type: Input
532
+ }], customFormulaValidationCriteria: [{
533
+ type: Input
534
+ }], listValidationCriteria: [{
535
+ type: Input
536
+ }], greaterThanValidationComparer: [{
537
+ type: Input
538
+ }], lessThanValidationComparer: [{
539
+ type: Input
540
+ }], betweenValidationComparer: [{
541
+ type: Input
542
+ }], notBetweenValidationComparer: [{
543
+ type: Input
544
+ }], equalToValidationComparer: [{
545
+ type: Input
546
+ }], notEqualToValidationComparer: [{
547
+ type: Input
548
+ }], greaterThanOrEqualToValidationComparer: [{
549
+ type: Input
550
+ }], lessThanOrEqualToValidationComparer: [{
551
+ type: Input
552
+ }], validationHintMessage: [{
553
+ type: Input
554
+ }], validationHintTitle: [{
555
+ type: Input
354
556
  }], italic: [{
355
557
  type: Input
356
558
  }], underline: [{
@@ -415,6 +617,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
415
617
  type: Input
416
618
  }], dialogInsert: [{
417
619
  type: Input
620
+ }], dialogRemove: [{
621
+ type: Input
418
622
  }], dialogRemoveLink: [{
419
623
  type: Input
420
624
  }], delete: [{
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1744027275,
14
- version: '18.5.0-develop.7',
13
+ publishDate: 1744029045,
14
+ version: '18.5.0-develop.8',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning',
16
16
  };