@progress/kendo-angular-spreadsheet 18.5.0-develop.6 → 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.
@@ -4,32 +4,34 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
6
  import { Injectable, EventEmitter, Output, Inject, Optional, Component, Input, Directive, HostBinding, ElementRef, ViewChild, ViewChildren, HostListener, InjectionToken, forwardRef, ViewContainerRef, NgModule } from '@angular/core';
7
- import { NgFor, NgIf, NgStyle, NgSwitch, NgSwitchCase } from '@angular/common';
7
+ import { NgFor, NgIf, NgStyle, NgSwitch, NgSwitchCase, NgForOf } from '@angular/common';
8
8
  import { Subject, Subscription } from 'rxjs';
9
9
  import { take, map } from 'rxjs/operators';
10
10
  import { validatePackage } from '@progress/kendo-licensing';
11
- import { SpreadsheetWidget } from '@progress/kendo-spreadsheet-common';
12
- import * as i1$3 from '@progress/kendo-angular-intl';
11
+ import { SpreadsheetWidget, registerEditor, Matrix } from '@progress/kendo-spreadsheet-common';
12
+ import * as i1$4 from '@progress/kendo-angular-intl';
13
13
  import { localeData } from '@progress/kendo-angular-intl';
14
- import { formulaFxIcon, trashIcon, copyIcon, pencilIcon, eyeSlashIcon, arrowRightIcon, arrowLeftIcon, alignCenterIcon, alignJustifyIcon, alignLeftIcon, alignRightIcon, alignTopIcon, alignMiddleIcon, alignBottomIcon, dropletIcon, boldIcon, foregroundColorIcon, italicIcon, arrowRotateCwIcon, underlineIcon, arrowRotateCcwIcon, textWrapIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, tableRowDeleteIcon, tableColumnDeleteIcon, bordersNoneIcon, folderOpenIcon, downloadIcon, customFormatIcon, fontSizeIcon, fontFamilyIcon, cellsMergeIcon, cellsMergeHorizontallyIcon, cellsMergeVerticallyIcon, tableUnmergeIcon, linkIcon, fontGrowIcon, fontShrinkIcon, decimalDecreaseIcon, decimalIncreaseIcon, cutIcon, clipboardIcon, eyeIcon, plusIcon, menuIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';
15
- import * as i2 from '@progress/kendo-angular-l10n';
14
+ import { formulaFxIcon, trashIcon, copyIcon, pencilIcon, eyeSlashIcon, arrowRightIcon, arrowLeftIcon, alignCenterIcon, alignJustifyIcon, alignLeftIcon, alignRightIcon, alignTopIcon, alignMiddleIcon, alignBottomIcon, dropletIcon, boldIcon, foregroundColorIcon, italicIcon, arrowRotateCwIcon, underlineIcon, arrowRotateCcwIcon, textWrapIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, tableRowDeleteIcon, tableColumnDeleteIcon, bordersNoneIcon, folderOpenIcon, downloadIcon, customFormatIcon, fontSizeIcon, fontFamilyIcon, cellsMergeIcon, cellsMergeHorizontallyIcon, cellsMergeVerticallyIcon, tableUnmergeIcon, linkIcon, fontGrowIcon, fontShrinkIcon, decimalDecreaseIcon, exclamationCircleIcon, decimalIncreaseIcon, cutIcon, clipboardIcon, eyeIcon, plusIcon, menuIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';
15
+ import * as i1 from '@progress/kendo-angular-l10n';
16
16
  import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
17
- import * as i1 from '@progress/kendo-angular-popup';
17
+ import * as i1$1 from '@progress/kendo-angular-popup';
18
18
  import { PopupService } from '@progress/kendo-angular-popup';
19
19
  import { MenuComponent, MenuItemComponent, ContextMenuComponent } from '@progress/kendo-angular-menu';
20
20
  import { EventsOutsideAngularDirective, isDocumentAvailable, isPresent, Keys, hasObservers, shouldShowValidationUI, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';
21
- import * as i1$1 from '@progress/kendo-angular-dialog';
22
- import { DialogContentBase, DialogContainerService, DialogService, WindowService, WindowContainerService } from '@progress/kendo-angular-dialog';
21
+ import * as i1$2 from '@progress/kendo-angular-dialog';
22
+ import { DialogContentBase, DialogActionsComponent, DialogContainerService, DialogService, WindowService, WindowContainerService } from '@progress/kendo-angular-dialog';
23
23
  import { IconWrapperComponent, IconsService } from '@progress/kendo-angular-icons';
24
- import * as i1$2 from '@progress/kendo-angular-toolbar';
24
+ import * as i1$3 from '@progress/kendo-angular-toolbar';
25
25
  import { ToolBarToolComponent, ToolBarComponent, ToolBarButtonComponent, ToolBarButtonGroupComponent, ToolBarSeparatorComponent, ToolBarDropDownButtonComponent } from '@progress/kendo-angular-toolbar';
26
- import { TextBoxComponent, ColorPickerComponent } from '@progress/kendo-angular-inputs';
26
+ import { TextBoxComponent, ColorPickerComponent, CheckBoxComponent, RadioButtonComponent } from '@progress/kendo-angular-inputs';
27
27
  import { LabelComponent } from '@progress/kendo-angular-label';
28
28
  import { ButtonComponent, DropDownButtonComponent } from '@progress/kendo-angular-buttons';
29
29
  import { TabStripComponent, TabStripTabComponent, TabTemplateDirective } from '@progress/kendo-angular-layout';
30
30
  import { ComboBoxComponent, DropDownListComponent, ItemTemplateDirective } from '@progress/kendo-angular-dropdowns';
31
31
  import { saveAs } from '@progress/kendo-file-saver';
32
32
  import { Workbook } from '@progress/kendo-ooxml';
33
+ import * as i4 from '@angular/forms';
34
+ import { FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
33
35
 
34
36
  /**
35
37
  * @hidden
@@ -39,8 +41,8 @@ const packageMetadata = {
39
41
  productName: 'Kendo UI for Angular',
40
42
  productCode: 'KENDOUIANGULAR',
41
43
  productCodes: ['KENDOUIANGULAR'],
42
- publishDate: 1743780109,
43
- version: '18.5.0-develop.6',
44
+ publishDate: 1744029045,
45
+ version: '18.5.0-develop.8',
44
46
  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',
45
47
  };
46
48
 
@@ -148,7 +150,7 @@ class SpreadsheetLocalizationService extends LocalizationService {
148
150
  constructor(prefix, messageService, _rtl) {
149
151
  super(prefix, messageService, _rtl);
150
152
  }
151
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetLocalizationService, deps: [{ token: L10N_PREFIX }, { token: i2.MessageService, optional: true }, { token: RTL, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
153
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetLocalizationService, deps: [{ token: L10N_PREFIX }, { token: i1.MessageService, optional: true }, { token: RTL, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
152
154
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetLocalizationService });
153
155
  }
154
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetLocalizationService, decorators: [{
@@ -156,7 +158,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
156
158
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
157
159
  type: Inject,
158
160
  args: [L10N_PREFIX]
159
- }] }, { type: i2.MessageService, decorators: [{
161
+ }] }, { type: i1.MessageService, decorators: [{
160
162
  type: Optional
161
163
  }] }, { type: undefined, decorators: [{
162
164
  type: Optional
@@ -191,6 +193,12 @@ const mapToSheetDescriptor = (sheetsArray) => {
191
193
  * @hidden
192
194
  */
193
195
  const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
196
+ /**
197
+ * @hidden
198
+ */
199
+ const rowAndColPresent = (value) => {
200
+ return (value && value.row !== null && value.col !== null && value.row > -1 && value.col > -1);
201
+ };
194
202
 
195
203
  /**
196
204
  * @hidden
@@ -342,7 +350,7 @@ class FormulaInputDirective {
342
350
  },
343
351
  popup: {
344
352
  open: () => {
345
- this.popupRef && this.popupRef.close();
353
+ this.popupRef?.close();
346
354
  this.popupRef = null;
347
355
  this.popupRef = this.popupService.open({
348
356
  anchor: this.element,
@@ -357,13 +365,11 @@ class FormulaInputDirective {
357
365
  this.ariaExpanded = 'true';
358
366
  },
359
367
  close: () => {
360
- this.popupRef && this.popupRef.close();
368
+ this.popupRef?.close();
361
369
  this.popupRef = null;
362
370
  this.ariaExpanded = 'false';
363
371
  },
364
- position: () => {
365
- // contentKey++;
366
- },
372
+ position: () => { },
367
373
  visible: () => {
368
374
  return this.popupRef;
369
375
  }
@@ -411,7 +417,7 @@ class FormulaInputDirective {
411
417
  }
412
418
  }
413
419
  };
414
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormulaInputDirective, deps: [{ token: i0.ElementRef }, { token: i1.PopupService }, { token: SpreadsheetService }, { token: SpreadsheetLocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
420
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormulaInputDirective, deps: [{ token: i0.ElementRef }, { token: i1$1.PopupService }, { token: SpreadsheetService }, { token: SpreadsheetLocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
415
421
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FormulaInputDirective, isStandalone: true, selector: "[kendoSpreadsheetFormulaInput]", inputs: { formulaListMaxHeight: "formulaListMaxHeight" }, host: { properties: { "class.k-spreadsheet-formula-input": "this.hostClasses", "attr.title": "this.title", "attr.role": "this.role", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-controls": "this.ariaControls" } }, ngImport: i0 });
416
422
  }
417
423
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormulaInputDirective, decorators: [{
@@ -420,7 +426,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
420
426
  selector: '[kendoSpreadsheetFormulaInput]',
421
427
  standalone: true
422
428
  }]
423
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PopupService }, { type: SpreadsheetService }, { type: SpreadsheetLocalizationService }]; }, propDecorators: { hostClasses: [{
429
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.PopupService }, { type: SpreadsheetService }, { type: SpreadsheetLocalizationService }]; }, propDecorators: { hostClasses: [{
424
430
  type: HostBinding,
425
431
  args: ['class.k-spreadsheet-formula-input']
426
432
  }], title: [{
@@ -523,6 +529,7 @@ class ErrorHandlingService {
523
529
  }
524
530
  openDialog(messageData) {
525
531
  let dialogContent;
532
+ let dialogTitle;
526
533
  if (messageData.name === 'message') {
527
534
  const localizationMsg = this.messageFor('invalidNameError');
528
535
  let inputValue = messageData.text.split(' ').pop();
@@ -531,12 +538,16 @@ class ErrorHandlingService {
531
538
  }
532
539
  dialogContent = replaceMessagePlaceholder(localizationMsg, 'inputValue', inputValue);
533
540
  }
541
+ else if (messageData.name === 'validationError') {
542
+ dialogContent = messageData.text;
543
+ dialogTitle = messageData.title;
544
+ }
534
545
  else {
535
546
  dialogContent = this.messageFor(messageData.name);
536
547
  }
537
548
  const dialogSettings = {
538
549
  appendTo: this.spreadsheetService.dialogContainer,
539
- title: this.messageFor('dialogError'),
550
+ title: dialogTitle ?? this.messageFor('dialogError'),
540
551
  content: dialogContent,
541
552
  actions: [{
542
553
  text: this.messageFor('dialogOk'),
@@ -559,12 +570,12 @@ class ErrorHandlingService {
559
570
  messageFor(text) {
560
571
  return this.localization.get(text);
561
572
  }
562
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlingService, deps: [{ token: SpreadsheetService }, { token: i2.LocalizationService }, { token: i1$1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
573
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlingService, deps: [{ token: SpreadsheetService }, { token: i1.LocalizationService }, { token: i1$2.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
563
574
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlingService });
564
575
  }
565
576
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlingService, decorators: [{
566
577
  type: Injectable
567
- }], ctorParameters: function () { return [{ type: SpreadsheetService }, { type: i2.LocalizationService }, { type: i1$1.DialogService }]; } });
578
+ }], ctorParameters: function () { return [{ type: SpreadsheetService }, { type: i1.LocalizationService }, { type: i1$2.DialogService }]; } });
568
579
 
569
580
  /**
570
581
  * @hidden
@@ -610,6 +621,7 @@ const commandIcons = {
610
621
  decreaseFontSize: 'font-shrink',
611
622
  increaseDecimal: 'decimal-increase',
612
623
  decreaseDecimal: 'decimal-decrease',
624
+ dataValidation: 'exclamation-circle',
613
625
  copy: 'copy',
614
626
  cut: 'cut',
615
627
  paste: 'clipboard',
@@ -661,6 +673,7 @@ const commandSVGIcons = {
661
673
  increaseFontSize: fontGrowIcon,
662
674
  decreaseFontSize: fontShrinkIcon,
663
675
  decreaseDecimal: decimalDecreaseIcon,
676
+ dataValidation: exclamationCircleIcon,
664
677
  increaseDecimal: decimalIncreaseIcon,
665
678
  copy: copyIcon,
666
679
  cut: cutIcon,
@@ -685,7 +698,7 @@ class InsertLinkDialogComponent extends DialogContentBase {
685
698
  setData(args) {
686
699
  this.urlLink = args.link;
687
700
  }
688
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InsertLinkDialogComponent, deps: [{ token: i1$1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
701
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InsertLinkDialogComponent, deps: [{ token: i1$2.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
689
702
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InsertLinkDialogComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
690
703
  <form class="k-form k-form-md" method="dialog">
691
704
  <div class="k-form-field">
@@ -713,7 +726,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
713
726
  standalone: true,
714
727
  imports: [LabelComponent, TextBoxComponent]
715
728
  }]
716
- }], ctorParameters: function () { return [{ type: i1$1.DialogRef }]; } });
729
+ }], ctorParameters: function () { return [{ type: i1$2.DialogRef }]; } });
717
730
 
718
731
  /**
719
732
  * @hidden
@@ -732,7 +745,7 @@ class ActionDialogComponent extends DialogContentBase {
732
745
  this.tabindex = args.tabindex;
733
746
  this.commandName = args.commandName;
734
747
  }
735
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionDialogComponent, deps: [{ token: i1$1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
748
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ActionDialogComponent, deps: [{ token: i1$2.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
736
749
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ActionDialogComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
737
750
  <ng-container *ngIf="commandName === 'delete'">
738
751
  <p>The deleted sheet data will be lost.</p>
@@ -778,7 +791,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
778
791
  standalone: true,
779
792
  imports: [NgIf, LabelComponent, TextBoxComponent]
780
793
  }]
781
- }], ctorParameters: function () { return [{ type: i1$1.DialogRef }]; } });
794
+ }], ctorParameters: function () { return [{ type: i1$2.DialogRef }]; } });
782
795
 
783
796
  /**
784
797
  * @hidden
@@ -1042,7 +1055,7 @@ class SheetsBarComponent {
1042
1055
  });
1043
1056
  this.ngZone.onStable.pipe(take(1)).subscribe(() => this.spreadsheetService.spreadsheet.view.clipboard.focus());
1044
1057
  }
1045
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SheetsBarComponent, deps: [{ token: SpreadsheetService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SpreadsheetLocalizationService }, { token: i1$1.DialogService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1058
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SheetsBarComponent, deps: [{ token: SpreadsheetService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SpreadsheetLocalizationService }, { token: i1$2.DialogService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1046
1059
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SheetsBarComponent, isStandalone: true, selector: "[kendoSpreadsheetSheetsBar]", inputs: { sheets: "sheets", sheetDescriptors: "sheetDescriptors" }, host: { properties: { "class.k-spreadsheet-sheets-bar": "this.hostClasses" } }, viewQueries: [{ propertyName: "addButton", first: true, predicate: ["addButton"], descendants: true }, { propertyName: "menuButton", first: true, predicate: ["menuButton"], descendants: true }, { propertyName: "tabstrip", first: true, predicate: ["tabstrip"], descendants: true }, { propertyName: "actionDdbs", predicate: ["sheetDdb"], descendants: true }, { propertyName: "actionDdbRefs", predicate: ["sheetDdb"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: `
1047
1060
  <button kendoButton #addButton
1048
1061
  [title]="messageFor('addSheet')"
@@ -1163,7 +1176,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1163
1176
  standalone: true,
1164
1177
  imports: [ButtonComponent, EventsOutsideAngularDirective, DropDownButtonComponent, TabStripComponent, NgFor, NgIf, TabStripTabComponent, TabTemplateDirective]
1165
1178
  }]
1166
- }], ctorParameters: function () { return [{ type: SpreadsheetService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SpreadsheetLocalizationService }, { type: i1$1.DialogService }, { type: i0.NgZone }]; }, propDecorators: { hostClasses: [{
1179
+ }], ctorParameters: function () { return [{ type: SpreadsheetService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SpreadsheetLocalizationService }, { type: i1$2.DialogService }, { type: i0.NgZone }]; }, propDecorators: { hostClasses: [{
1167
1180
  type: HostBinding,
1168
1181
  args: ['class.k-spreadsheet-sheets-bar']
1169
1182
  }], sheets: [{
@@ -1419,7 +1432,7 @@ class SpreadsheetCommandBaseDirective {
1419
1432
  }
1420
1433
  clickHandler() { }
1421
1434
  pointerdownHandler(_event) { }
1422
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetCommandBaseDirective, deps: [{ token: MY_TOKEN }, { token: i1$2.ToolBarButtonComponent }, { token: i2.LocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1435
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetCommandBaseDirective, deps: [{ token: MY_TOKEN }, { token: i1$3.ToolBarButtonComponent }, { token: i1.LocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1423
1436
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetCommandBaseDirective, selector: "[kendoSpreadsheetCommandBase]", ngImport: i0 });
1424
1437
  }
1425
1438
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetCommandBaseDirective, decorators: [{
@@ -1430,7 +1443,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1430
1443
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1431
1444
  type: Inject,
1432
1445
  args: [MY_TOKEN]
1433
- }] }, { type: i1$2.ToolBarButtonComponent }, { type: i2.LocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1446
+ }] }, { type: i1$3.ToolBarButtonComponent }, { type: i1.LocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1434
1447
 
1435
1448
  /**
1436
1449
  * @hidden
@@ -1481,7 +1494,7 @@ class SpreadsheetGridLinesDirective extends SpreadsheetCommandButton {
1481
1494
  this.spreadsheetService.spreadsheet.executeCommand(options);
1482
1495
  }
1483
1496
  }
1484
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetGridLinesDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1497
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetGridLinesDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1485
1498
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetGridLinesDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]", usesInheritance: true, ngImport: i0 });
1486
1499
  }
1487
1500
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetGridLinesDirective, decorators: [{
@@ -1490,7 +1503,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1490
1503
  selector: 'kendo-toolbar-button[kendoSpreadsheetGridLines]',
1491
1504
  standalone: true
1492
1505
  }]
1493
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1506
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1494
1507
 
1495
1508
  /**
1496
1509
  * @hidden
@@ -1539,7 +1552,7 @@ class SpreadsheetMergeDirective {
1539
1552
  const range = sheet._ref(this.selectedRange);
1540
1553
  return sheet._getMergedCells(range).hasMerged;
1541
1554
  }
1542
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetMergeDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }], target: i0.ɵɵFactoryTarget.Directive });
1555
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetMergeDirective, deps: [{ token: i1$3.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }], target: i0.ɵɵFactoryTarget.Directive });
1543
1556
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetMergeDirective, isStandalone: true, selector: "[kendoSpreadsheetMerge]", ngImport: i0 });
1544
1557
  }
1545
1558
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetMergeDirective, decorators: [{
@@ -1548,7 +1561,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1548
1561
  selector: '[kendoSpreadsheetMerge]',
1549
1562
  standalone: true
1550
1563
  }]
1551
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }]; } });
1564
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }]; } });
1552
1565
 
1553
1566
  /**
1554
1567
  * @hidden
@@ -1566,7 +1579,7 @@ class SpreadsheetIncreaseDecimalDirective extends SpreadsheetCommandButton {
1566
1579
  };
1567
1580
  this.spreadsheetService.spreadsheet.executeCommand(options);
1568
1581
  }
1569
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetIncreaseDecimalDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1582
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetIncreaseDecimalDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1570
1583
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetIncreaseDecimalDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseDecimal]", usesInheritance: true, ngImport: i0 });
1571
1584
  }
1572
1585
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetIncreaseDecimalDirective, decorators: [{
@@ -1575,7 +1588,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1575
1588
  selector: 'kendo-toolbar-button[kendoSpreadsheetIncreaseDecimal]',
1576
1589
  standalone: true
1577
1590
  }]
1578
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1591
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1579
1592
 
1580
1593
  /**
1581
1594
  * @hidden
@@ -1593,7 +1606,7 @@ class SpreadsheetDecreaseDecimalDirective extends SpreadsheetCommandButton {
1593
1606
  };
1594
1607
  this.spreadsheetService.spreadsheet.executeCommand(options);
1595
1608
  }
1596
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDecreaseDecimalDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1609
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDecreaseDecimalDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1597
1610
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetDecreaseDecimalDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseDecimal]", usesInheritance: true, ngImport: i0 });
1598
1611
  }
1599
1612
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDecreaseDecimalDirective, decorators: [{
@@ -1602,7 +1615,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1602
1615
  selector: 'kendo-toolbar-button[kendoSpreadsheetDecreaseDecimal]',
1603
1616
  standalone: true
1604
1617
  }]
1605
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1618
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1606
1619
 
1607
1620
  /**
1608
1621
  * @hidden
@@ -1614,7 +1627,7 @@ class SpreadsheetDeleteRowButtonDirective extends SpreadsheetCommandButton {
1614
1627
  options: { property: 'deleteRow' }
1615
1628
  });
1616
1629
  }
1617
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDeleteRowButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1630
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDeleteRowButtonDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1618
1631
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetDeleteRowButtonDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]", usesInheritance: true, ngImport: i0 });
1619
1632
  }
1620
1633
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDeleteRowButtonDirective, decorators: [{
@@ -1623,7 +1636,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1623
1636
  selector: 'kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]',
1624
1637
  standalone: true
1625
1638
  }]
1626
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1639
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1627
1640
 
1628
1641
  /**
1629
1642
  * @hidden
@@ -1635,7 +1648,7 @@ class SpreadsheetDeleteColumnButtonDirective extends SpreadsheetCommandButton {
1635
1648
  options: { property: 'deleteColumn' }
1636
1649
  });
1637
1650
  }
1638
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDeleteColumnButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1651
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDeleteColumnButtonDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1639
1652
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetDeleteColumnButtonDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]", usesInheritance: true, ngImport: i0 });
1640
1653
  }
1641
1654
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDeleteColumnButtonDirective, decorators: [{
@@ -1644,7 +1657,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1644
1657
  selector: 'kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]',
1645
1658
  standalone: true
1646
1659
  }]
1647
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1660
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1648
1661
 
1649
1662
  /**
1650
1663
  * @hidden
@@ -1658,7 +1671,7 @@ class SpreadsheetAddRowAboveButtonDirective extends SpreadsheetCommandButton {
1658
1671
  }
1659
1672
  });
1660
1673
  }
1661
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetAddRowAboveButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1674
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetAddRowAboveButtonDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1662
1675
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetAddRowAboveButtonDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]", usesInheritance: true, ngImport: i0 });
1663
1676
  }
1664
1677
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetAddRowAboveButtonDirective, decorators: [{
@@ -1667,7 +1680,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1667
1680
  selector: 'kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]',
1668
1681
  standalone: true
1669
1682
  }]
1670
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1683
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1671
1684
 
1672
1685
  /**
1673
1686
  * @hidden
@@ -1681,7 +1694,7 @@ class SpreadsheetAddRowBelowButtonDirective extends SpreadsheetCommandButton {
1681
1694
  }
1682
1695
  });
1683
1696
  }
1684
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetAddRowBelowButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1697
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetAddRowBelowButtonDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1685
1698
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetAddRowBelowButtonDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]", usesInheritance: true, ngImport: i0 });
1686
1699
  }
1687
1700
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetAddRowBelowButtonDirective, decorators: [{
@@ -1690,7 +1703,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1690
1703
  selector: 'kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]',
1691
1704
  standalone: true
1692
1705
  }]
1693
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1706
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1694
1707
 
1695
1708
  /**
1696
1709
  * @hidden
@@ -1704,7 +1717,7 @@ class SpreadsheetAddColumnRightButtonDirective extends SpreadsheetCommandButton
1704
1717
  }
1705
1718
  });
1706
1719
  }
1707
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetAddColumnRightButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1720
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetAddColumnRightButtonDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1708
1721
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetAddColumnRightButtonDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]", usesInheritance: true, ngImport: i0 });
1709
1722
  }
1710
1723
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetAddColumnRightButtonDirective, decorators: [{
@@ -1713,7 +1726,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1713
1726
  selector: 'kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]',
1714
1727
  standalone: true
1715
1728
  }]
1716
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1729
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1717
1730
 
1718
1731
  /**
1719
1732
  * @hidden
@@ -1727,7 +1740,7 @@ class SpreadsheetAddColumnLeftButtonDirective extends SpreadsheetCommandButton {
1727
1740
  }
1728
1741
  });
1729
1742
  }
1730
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetAddColumnLeftButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1743
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetAddColumnLeftButtonDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1731
1744
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetAddColumnLeftButtonDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]", usesInheritance: true, ngImport: i0 });
1732
1745
  }
1733
1746
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetAddColumnLeftButtonDirective, decorators: [{
@@ -1736,7 +1749,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1736
1749
  selector: 'kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]',
1737
1750
  standalone: true
1738
1751
  }]
1739
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1752
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1740
1753
 
1741
1754
  /**
1742
1755
  * @hidden
@@ -1805,7 +1818,7 @@ class SpreadsheetInsertLinkDirective extends SpreadsheetCommandButton {
1805
1818
  });
1806
1819
  });
1807
1820
  }
1808
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetInsertLinkDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: i1$1.DialogService }], target: i0.ɵɵFactoryTarget.Directive });
1821
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetInsertLinkDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: i1$2.DialogService }], target: i0.ɵɵFactoryTarget.Directive });
1809
1822
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetInsertLinkDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetInsertLink]", usesInheritance: true, ngImport: i0 });
1810
1823
  }
1811
1824
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetInsertLinkDirective, decorators: [{
@@ -1814,7 +1827,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1814
1827
  selector: 'kendo-toolbar-button[kendoSpreadsheetInsertLink]',
1815
1828
  standalone: true
1816
1829
  }]
1817
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$1.DialogService }]; } });
1830
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.DialogService }]; } });
1818
1831
 
1819
1832
  /**
1820
1833
  * @hidden
@@ -1854,7 +1867,7 @@ class SpreadsheetFormatDirective {
1854
1867
  };
1855
1868
  this.spreadsheetService.spreadsheet.executeCommand(options);
1856
1869
  };
1857
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetFormatDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1870
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetFormatDirective, deps: [{ token: i1$3.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1858
1871
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetFormatDirective, isStandalone: true, selector: "[kendoSpreadsheetFormat]", ngImport: i0 });
1859
1872
  }
1860
1873
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetFormatDirective, decorators: [{
@@ -1863,7 +1876,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1863
1876
  selector: '[kendoSpreadsheetFormat]',
1864
1877
  standalone: true
1865
1878
  }]
1866
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1879
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1867
1880
 
1868
1881
  /**
1869
1882
  * @hidden
@@ -1888,7 +1901,7 @@ class SpreadsheetTextWrapDirective extends SpreadsheetCommandButton {
1888
1901
  this.spreadsheetService.spreadsheet.executeCommand(options);
1889
1902
  }
1890
1903
  }
1891
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetTextWrapDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1904
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetTextWrapDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1892
1905
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetTextWrapDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]", usesInheritance: true, ngImport: i0 });
1893
1906
  }
1894
1907
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetTextWrapDirective, decorators: [{
@@ -1897,7 +1910,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1897
1910
  selector: 'kendo-toolbar-button[kendoSpreadsheetTextWrap]',
1898
1911
  standalone: true
1899
1912
  }]
1900
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1913
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1901
1914
 
1902
1915
  /**
1903
1916
  * @hidden
@@ -1934,7 +1947,7 @@ class SpreadsheetVerticalTextAlignDirective {
1934
1947
  };
1935
1948
  this.spreadsheetService.spreadsheet.executeCommand(options);
1936
1949
  }
1937
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetVerticalTextAlignDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1950
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetVerticalTextAlignDirective, deps: [{ token: i1$3.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1938
1951
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetVerticalTextAlignDirective, isStandalone: true, selector: "[kendoSpreadsheetVerticalTextAlign]", ngImport: i0 });
1939
1952
  }
1940
1953
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetVerticalTextAlignDirective, decorators: [{
@@ -1943,7 +1956,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1943
1956
  selector: '[kendoSpreadsheetVerticalTextAlign]',
1944
1957
  standalone: true
1945
1958
  }]
1946
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1959
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1947
1960
 
1948
1961
  /**
1949
1962
  * @hidden
@@ -1980,7 +1993,7 @@ class SpreadsheetHorizontalTextAlignDirective {
1980
1993
  };
1981
1994
  this.spreadsheetService.spreadsheet.executeCommand(options);
1982
1995
  }
1983
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetHorizontalTextAlignDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1996
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetHorizontalTextAlignDirective, deps: [{ token: i1$3.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1984
1997
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetHorizontalTextAlignDirective, isStandalone: true, selector: "[kendoSpreadsheetHorizontalTextAlign]", ngImport: i0 });
1985
1998
  }
1986
1999
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetHorizontalTextAlignDirective, decorators: [{
@@ -1989,7 +2002,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1989
2002
  selector: '[kendoSpreadsheetHorizontalTextAlign]',
1990
2003
  standalone: true
1991
2004
  }]
1992
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2005
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1993
2006
 
1994
2007
  /**
1995
2008
  * @hidden
@@ -2000,6 +2013,27 @@ function outerWidth(element) {
2000
2013
  width += parseFloat(style.marginLeft) || 0 + parseFloat(style.marginRight) || 0;
2001
2014
  return width;
2002
2015
  }
2016
+ /**
2017
+ * @hidden
2018
+ */
2019
+ const rangeValidator = (directive) => {
2020
+ return (control) => {
2021
+ const err = {
2022
+ rangeError: {
2023
+ message: 'Incorrect range format',
2024
+ value: control.value
2025
+ }
2026
+ };
2027
+ let range;
2028
+ try {
2029
+ range = directive.spreadsheetService.spreadsheet.activeSheet().range(control.value);
2030
+ }
2031
+ catch (e) { /** noop */ }
2032
+ if (!isPresent(range)) {
2033
+ return err;
2034
+ }
2035
+ };
2036
+ };
2003
2037
 
2004
2038
  /**
2005
2039
  * @hidden
@@ -2159,7 +2193,7 @@ class DialogContentComponent extends DialogContentBase {
2159
2193
  this.tabindex = args.tabindex;
2160
2194
  this.componentType = args.componentType;
2161
2195
  }
2162
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogContentComponent, deps: [{ token: i1$1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
2196
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogContentComponent, deps: [{ token: i1$2.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
2163
2197
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogContentComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
2164
2198
  <div
2165
2199
  [ngSwitch]="componentType"
@@ -2247,7 +2281,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2247
2281
  standalone: true,
2248
2282
  imports: [NgSwitch, NgSwitchCase, FontFamilyDropDownListComponent, FontSizeDropDownListComponent, ColorPickerComponent]
2249
2283
  }]
2250
- }], ctorParameters: function () { return [{ type: i1$1.DialogRef }]; } });
2284
+ }], ctorParameters: function () { return [{ type: i1$2.DialogRef }]; } });
2251
2285
 
2252
2286
  /**
2253
2287
  * @hidden
@@ -2398,7 +2432,7 @@ class SpreadsheetDropDownToolBase extends ToolBarToolComponent {
2398
2432
  this.tabindex = -1;
2399
2433
  return false;
2400
2434
  }
2401
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDropDownToolBase, deps: [{ token: MY_TOKEN }, { token: i1$1.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: i1$2.ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2435
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDropDownToolBase, deps: [{ token: MY_TOKEN }, { token: i1$2.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: i1$3.ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2402
2436
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetDropDownToolBase, selector: "ng-component", outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, read: ElementRef }, { propertyName: "dropDownListRef", first: true, predicate: ["element"], descendants: true }, { propertyName: "popupButton", first: true, predicate: ["popupButton"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
2403
2437
  }
2404
2438
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDropDownToolBase, decorators: [{
@@ -2409,7 +2443,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2409
2443
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2410
2444
  type: Inject,
2411
2445
  args: [MY_TOKEN]
2412
- }] }, { type: i1$1.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent }]; }, propDecorators: { element: [{
2446
+ }] }, { type: i1$2.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$3.ToolBarComponent }]; }, propDecorators: { element: [{
2413
2447
  type: ViewChild,
2414
2448
  args: ['element', { read: ElementRef }]
2415
2449
  }], dropDownListRef: [{
@@ -2430,7 +2464,7 @@ class SpreadsheetBackColorComponent extends SpreadsheetDropDownToolBase {
2430
2464
  constructor(dialogService, localization, spreadsheetService, toolsService, toolbar) {
2431
2465
  super('background', dialogService, localization, spreadsheetService, toolsService, toolbar);
2432
2466
  }
2433
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetBackColorComponent, deps: [{ token: i1$1.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2467
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetBackColorComponent, deps: [{ token: i1$2.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2434
2468
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetBackColorComponent, isStandalone: true, selector: "kendo-spreadsheet-backcolor-tool", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetBackColorComponent) }], usesInheritance: true, ngImport: i0, template: `
2435
2469
  <ng-template #toolbarTemplate>
2436
2470
  <div class="k-toolbar-item">
@@ -2534,7 +2568,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2534
2568
  standalone: true,
2535
2569
  imports: [ColorPickerComponent, IconWrapperComponent, NgIf]
2536
2570
  }]
2537
- }], ctorParameters: function () { return [{ type: i1$1.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent, decorators: [{
2571
+ }], ctorParameters: function () { return [{ type: i1$2.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$3.ToolBarComponent, decorators: [{
2538
2572
  type: Inject,
2539
2573
  args: [ToolBarComponent]
2540
2574
  }] }]; } });
@@ -2547,7 +2581,7 @@ class SpreadsheetForeColorComponent extends SpreadsheetDropDownToolBase {
2547
2581
  constructor(dialogService, localization, spreadsheetService, toolsService, toolbar) {
2548
2582
  super('color', dialogService, localization, spreadsheetService, toolsService, toolbar);
2549
2583
  }
2550
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetForeColorComponent, deps: [{ token: i1$1.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2584
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetForeColorComponent, deps: [{ token: i1$2.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2551
2585
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetForeColorComponent, isStandalone: true, selector: "kendo-spreadsheet-forecolor-tool", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetForeColorComponent) }], usesInheritance: true, ngImport: i0, template: `
2552
2586
  <ng-template #toolbarTemplate>
2553
2587
  <div class="k-toolbar-item">
@@ -2651,7 +2685,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2651
2685
  standalone: true,
2652
2686
  imports: [ColorPickerComponent, IconWrapperComponent, NgIf]
2653
2687
  }]
2654
- }], ctorParameters: function () { return [{ type: i1$1.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent, decorators: [{
2688
+ }], ctorParameters: function () { return [{ type: i1$2.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$3.ToolBarComponent, decorators: [{
2655
2689
  type: Inject,
2656
2690
  args: [ToolBarComponent]
2657
2691
  }] }]; } });
@@ -2668,7 +2702,7 @@ class SpreadsheetUnderlineDirective extends SpreadsheetCommandButton {
2668
2702
  }
2669
2703
  });
2670
2704
  }
2671
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetUnderlineDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2705
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetUnderlineDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2672
2706
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetUnderlineDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]", usesInheritance: true, ngImport: i0 });
2673
2707
  }
2674
2708
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetUnderlineDirective, decorators: [{
@@ -2677,7 +2711,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2677
2711
  selector: 'kendo-toolbar-button[kendoSpreadsheetUnderline]',
2678
2712
  standalone: true
2679
2713
  }]
2680
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2714
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2681
2715
 
2682
2716
  /**
2683
2717
  * @hidden
@@ -2691,7 +2725,7 @@ class SpreadsheetItalicDirective extends SpreadsheetCommandButton {
2691
2725
  }
2692
2726
  });
2693
2727
  }
2694
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetItalicDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2728
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetItalicDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2695
2729
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetItalicDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]", usesInheritance: true, ngImport: i0 });
2696
2730
  }
2697
2731
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetItalicDirective, decorators: [{
@@ -2700,7 +2734,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2700
2734
  selector: 'kendo-toolbar-button[kendoSpreadsheetItalic]',
2701
2735
  standalone: true
2702
2736
  }]
2703
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2737
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2704
2738
 
2705
2739
  /**
2706
2740
  * @hidden
@@ -2714,7 +2748,7 @@ class SpreadsheetBoldDirective extends SpreadsheetCommandButton {
2714
2748
  }
2715
2749
  });
2716
2750
  }
2717
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetBoldDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2751
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetBoldDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2718
2752
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetBoldDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetBold]", usesInheritance: true, ngImport: i0 });
2719
2753
  }
2720
2754
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetBoldDirective, decorators: [{
@@ -2723,7 +2757,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2723
2757
  selector: 'kendo-toolbar-button[kendoSpreadsheetBold]',
2724
2758
  standalone: true
2725
2759
  }]
2726
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2760
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2727
2761
 
2728
2762
  /**
2729
2763
  * @hidden
@@ -2751,7 +2785,7 @@ class SpreadsheetDecreaseFontSizeDirective extends SpreadsheetCommandButton {
2751
2785
  this.value = state['fontSize'];
2752
2786
  }));
2753
2787
  }
2754
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDecreaseFontSizeDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2788
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDecreaseFontSizeDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2755
2789
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetDecreaseFontSizeDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseFontSize]", usesInheritance: true, ngImport: i0 });
2756
2790
  }
2757
2791
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDecreaseFontSizeDirective, decorators: [{
@@ -2760,7 +2794,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2760
2794
  selector: 'kendo-toolbar-button[kendoSpreadsheetDecreaseFontSize]',
2761
2795
  standalone: true
2762
2796
  }]
2763
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2797
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2764
2798
 
2765
2799
  /**
2766
2800
  * @hidden
@@ -2788,7 +2822,7 @@ class SpreadsheetIncreaseFontSizeDirective extends SpreadsheetCommandButton {
2788
2822
  this.value = state['fontSize'];
2789
2823
  }));
2790
2824
  }
2791
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetIncreaseFontSizeDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2825
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetIncreaseFontSizeDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2792
2826
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetIncreaseFontSizeDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseFontSize]", usesInheritance: true, ngImport: i0 });
2793
2827
  }
2794
2828
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetIncreaseFontSizeDirective, decorators: [{
@@ -2797,7 +2831,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2797
2831
  selector: 'kendo-toolbar-button[kendoSpreadsheetIncreaseFontSize]',
2798
2832
  standalone: true
2799
2833
  }]
2800
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2834
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2801
2835
 
2802
2836
  /**
2803
2837
  * A component which configures an existing `DropDownListComponent` as a Spreadsheet tool
@@ -2811,7 +2845,7 @@ class SpreadsheetFontSizeComponent extends SpreadsheetDropDownToolBase {
2811
2845
  constructor(dialogService, localization, spreadsheetService, toolsService, toolbar) {
2812
2846
  super('fontSize', dialogService, localization, spreadsheetService, toolsService, toolbar);
2813
2847
  }
2814
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetFontSizeComponent, deps: [{ token: i1$1.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2848
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetFontSizeComponent, deps: [{ token: i1$2.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2815
2849
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetFontSizeComponent, isStandalone: true, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetFontSizeComponent) }], usesInheritance: true, ngImport: i0, template: `
2816
2850
  <ng-template #toolbarTemplate>
2817
2851
  <kendo-spreadsheet-fontsize-dropdownlist
@@ -2887,7 +2921,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2887
2921
  standalone: true,
2888
2922
  imports: [FontSizeDropDownListComponent, IconWrapperComponent, NgIf]
2889
2923
  }]
2890
- }], ctorParameters: function () { return [{ type: i1$1.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent, decorators: [{
2924
+ }], ctorParameters: function () { return [{ type: i1$2.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$3.ToolBarComponent, decorators: [{
2891
2925
  type: Inject,
2892
2926
  args: [ToolBarComponent]
2893
2927
  }] }]; } });
@@ -2904,7 +2938,7 @@ class SpreadsheetFontFamilyComponent extends SpreadsheetDropDownToolBase {
2904
2938
  constructor(dialogService, localization, spreadsheetService, toolsService, toolbar) {
2905
2939
  super('fontFamily', dialogService, localization, spreadsheetService, toolsService, toolbar);
2906
2940
  }
2907
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetFontFamilyComponent, deps: [{ token: i1$1.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2941
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetFontFamilyComponent, deps: [{ token: i1$2.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2908
2942
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetFontFamilyComponent, isStandalone: true, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetFontFamilyComponent) }], usesInheritance: true, ngImport: i0, template: `
2909
2943
  <ng-template #toolbarTemplate>
2910
2944
  <kendo-spreadsheet-fontfamily-dropdownlist
@@ -2980,7 +3014,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2980
3014
  standalone: true,
2981
3015
  imports: [FontFamilyDropDownListComponent, IconWrapperComponent, NgIf]
2982
3016
  }]
2983
- }], ctorParameters: function () { return [{ type: i1$1.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent, decorators: [{
3017
+ }], ctorParameters: function () { return [{ type: i1$2.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$3.ToolBarComponent, decorators: [{
2984
3018
  type: Inject,
2985
3019
  args: [ToolBarComponent]
2986
3020
  }] }]; } });
@@ -2997,7 +3031,7 @@ class SpreadsheetRedoDirective extends SpreadsheetCommandButton {
2997
3031
  clickHandler() {
2998
3032
  this.spreadsheetService.spreadsheet.workbook.undoRedoStack['redo']();
2999
3033
  }
3000
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetRedoDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
3034
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetRedoDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
3001
3035
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetRedoDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]", usesInheritance: true, ngImport: i0 });
3002
3036
  }
3003
3037
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetRedoDirective, decorators: [{
@@ -3006,7 +3040,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3006
3040
  selector: 'kendo-toolbar-button[kendoSpreadsheetRedo]',
3007
3041
  standalone: true
3008
3042
  }]
3009
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
3043
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
3010
3044
 
3011
3045
  /**
3012
3046
  * @hidden
@@ -3020,7 +3054,7 @@ class SpreadsheetUndoDirective extends SpreadsheetCommandButton {
3020
3054
  clickHandler() {
3021
3055
  this.spreadsheetService.spreadsheet.workbook.undoRedoStack['undo']();
3022
3056
  }
3023
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetUndoDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
3057
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetUndoDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
3024
3058
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetUndoDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]", usesInheritance: true, ngImport: i0 });
3025
3059
  }
3026
3060
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetUndoDirective, decorators: [{
@@ -3029,7 +3063,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3029
3063
  selector: 'kendo-toolbar-button[kendoSpreadsheetUndo]',
3030
3064
  standalone: true
3031
3065
  }]
3032
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
3066
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
3033
3067
 
3034
3068
  /**
3035
3069
  * @hidden
@@ -3063,7 +3097,7 @@ class SpreadsheetSaveFileDirective {
3063
3097
  ngOnDestroy() {
3064
3098
  this.subs.unsubscribe();
3065
3099
  }
3066
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetSaveFileDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }], target: i0.ɵɵFactoryTarget.Directive });
3100
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetSaveFileDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }], target: i0.ɵɵFactoryTarget.Directive });
3067
3101
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetSaveFileDirective, isStandalone: true, selector: "[kendoSpreadsheetSaveFile]", ngImport: i0 });
3068
3102
  }
3069
3103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetSaveFileDirective, decorators: [{
@@ -3072,7 +3106,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3072
3106
  selector: '[kendoSpreadsheetSaveFile]',
3073
3107
  standalone: true
3074
3108
  }]
3075
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }]; } });
3109
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }]; } });
3076
3110
 
3077
3111
  /**
3078
3112
  * @hidden
@@ -3275,7 +3309,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3275
3309
  standalone: true,
3276
3310
  imports: [ButtonComponent, IconWrapperComponent]
3277
3311
  }]
3278
- }], ctorParameters: function () { return [{ type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: i1$2.ToolBarComponent, decorators: [{
3312
+ }], ctorParameters: function () { return [{ type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: i1$3.ToolBarComponent, decorators: [{
3279
3313
  type: Inject,
3280
3314
  args: [ToolBarComponent]
3281
3315
  }] }]; }, propDecorators: { overflowButtonElement: [{
@@ -3331,6 +3365,10 @@ class MessagesDirective extends ComponentMessages {
3331
3365
  * The name of the "Format" toolbar tab
3332
3366
  */
3333
3367
  formatTab;
3368
+ /**
3369
+ * The name of the "Data" toolbar tab
3370
+ */
3371
+ dataTab;
3334
3372
  /* Section of Tools Messages */
3335
3373
  /**
3336
3374
  * The title of the Save File tool
@@ -3344,6 +3382,134 @@ class MessagesDirective extends ComponentMessages {
3344
3382
  * The title of the Bold tool
3345
3383
  */
3346
3384
  bold;
3385
+ /**
3386
+ * The title of the Data Validation tool
3387
+ */
3388
+ dataValidation;
3389
+ /**
3390
+ * The text of the Cell Range input label in the data validation dialog
3391
+ */
3392
+ validationCellRange;
3393
+ /**
3394
+ * The text of the Criteria dropdown list label in the data validation dialog.
3395
+ */
3396
+ validationCriteria;
3397
+ /**
3398
+ * The text of the Comparer dropdown list label in the data validation dialog.
3399
+ */
3400
+ validationComparer;
3401
+ /**
3402
+ * The text of the Min value label in the data validation dialog.
3403
+ */
3404
+ validationMinValue;
3405
+ /**
3406
+ * The text of the Max value label in the data validation dialog.
3407
+ */
3408
+ validationMaxValue;
3409
+ /**
3410
+ * The text of the Start value label in the data validation dialog.
3411
+ */
3412
+ validationStartValue;
3413
+ /**
3414
+ * The text of the End value label in the data validation dialog.
3415
+ */
3416
+ validationEndValue;
3417
+ /**
3418
+ * The text of the Value label in the data validation dialog.
3419
+ */
3420
+ validationValue;
3421
+ /**
3422
+ * The text for the Show list button checkbox label in the data validation dialog.
3423
+ */
3424
+ validationShowListButtonCheckbox;
3425
+ /**
3426
+ * The text for the Show date button checkbox label in the data validation dialog.
3427
+ */
3428
+ validationShowDateButtonCheckbox;
3429
+ /**
3430
+ * The text for the Ignore blank checkbox label in the data validation dialog.
3431
+ */
3432
+ validationIgnoreBlankCheckbox;
3433
+ /**
3434
+ * The text for the On invalid data label in the data validation dialog.
3435
+ */
3436
+ validationOnInvalidData;
3437
+ /**
3438
+ * The text for the Reject input radio button label in the data validation dialog.
3439
+ */
3440
+ validationRejectInput;
3441
+ /**
3442
+ * The text for the Show warning radio button label in the data validation dialog.
3443
+ */
3444
+ validationShowWarning;
3445
+ /**
3446
+ * The text for the Show hint checkbox label in the data validation dialog.
3447
+ */
3448
+ validationShowHint;
3449
+ /**
3450
+ * The text of the Any value validation criteria.
3451
+ */
3452
+ anyValueValidationCriteria;
3453
+ /**
3454
+ * The text of the Number validation criteria.
3455
+ */
3456
+ numberValidationCriteria;
3457
+ /**
3458
+ * The text of the Text validation criteria.
3459
+ */
3460
+ textValidationCriteria;
3461
+ /**
3462
+ * The text of the Date validation criteria.
3463
+ */
3464
+ dateValidationCriteria;
3465
+ /**
3466
+ * The text of the Custom Formula validation criteria.
3467
+ */
3468
+ customFormulaValidationCriteria;
3469
+ /**
3470
+ * The text of the List validation criteria.
3471
+ */
3472
+ listValidationCriteria;
3473
+ /**
3474
+ * The text of the greater than validation comparer.
3475
+ */
3476
+ greaterThanValidationComparer;
3477
+ /**
3478
+ * The text of the less than validation comparer.
3479
+ */
3480
+ lessThanValidationComparer;
3481
+ /**
3482
+ * The text of the between validation comparer.
3483
+ */
3484
+ betweenValidationComparer;
3485
+ /**
3486
+ * The text of the not between validation comparer.
3487
+ */
3488
+ notBetweenValidationComparer;
3489
+ /**
3490
+ * The text of the equal to validation comparer.
3491
+ */
3492
+ equalToValidationComparer;
3493
+ /**
3494
+ * The text of the not equal to validation comparer.
3495
+ */
3496
+ notEqualToValidationComparer;
3497
+ /**
3498
+ * The text of the greater than or equal to validation comparer.
3499
+ */
3500
+ greaterThanOrEqualToValidationComparer;
3501
+ /**
3502
+ * The text of the less than or equal to validation comparer.
3503
+ */
3504
+ lessThanOrEqualToValidationComparer;
3505
+ /**
3506
+ * The text for the Custom hint input label in the data validation dialog.
3507
+ */
3508
+ validationHintMessage;
3509
+ /**
3510
+ * The text for the Custom hint title input label in the data validation dialog.
3511
+ */
3512
+ validationHintTitle;
3347
3513
  /**
3348
3514
  * The title of the Italic tool
3349
3515
  */
@@ -3474,6 +3640,10 @@ class MessagesDirective extends ComponentMessages {
3474
3640
  * The text of the **Insert** button in all Spreadsheet dialogs
3475
3641
  */
3476
3642
  dialogInsert;
3643
+ /**
3644
+ * The text of the **Remove** button in all Spreadsheet dialogs
3645
+ */
3646
+ dialogRemove;
3477
3647
  /**
3478
3648
  * The text of the **Remove link** button in the Link tool dialog
3479
3649
  */
@@ -3634,7 +3804,7 @@ class MessagesDirective extends ComponentMessages {
3634
3804
  */
3635
3805
  invalidNameError;
3636
3806
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessagesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3637
- 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 });
3807
+ 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 });
3638
3808
  }
3639
3809
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessagesDirective, decorators: [{
3640
3810
  type: Directive,
@@ -3650,12 +3820,78 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3650
3820
  type: Input
3651
3821
  }], formatTab: [{
3652
3822
  type: Input
3823
+ }], dataTab: [{
3824
+ type: Input
3653
3825
  }], saveFile: [{
3654
3826
  type: Input
3655
3827
  }], loadFile: [{
3656
3828
  type: Input
3657
3829
  }], bold: [{
3658
3830
  type: Input
3831
+ }], dataValidation: [{
3832
+ type: Input
3833
+ }], validationCellRange: [{
3834
+ type: Input
3835
+ }], validationCriteria: [{
3836
+ type: Input
3837
+ }], validationComparer: [{
3838
+ type: Input
3839
+ }], validationMinValue: [{
3840
+ type: Input
3841
+ }], validationMaxValue: [{
3842
+ type: Input
3843
+ }], validationStartValue: [{
3844
+ type: Input
3845
+ }], validationEndValue: [{
3846
+ type: Input
3847
+ }], validationValue: [{
3848
+ type: Input
3849
+ }], validationShowListButtonCheckbox: [{
3850
+ type: Input
3851
+ }], validationShowDateButtonCheckbox: [{
3852
+ type: Input
3853
+ }], validationIgnoreBlankCheckbox: [{
3854
+ type: Input
3855
+ }], validationOnInvalidData: [{
3856
+ type: Input
3857
+ }], validationRejectInput: [{
3858
+ type: Input
3859
+ }], validationShowWarning: [{
3860
+ type: Input
3861
+ }], validationShowHint: [{
3862
+ type: Input
3863
+ }], anyValueValidationCriteria: [{
3864
+ type: Input
3865
+ }], numberValidationCriteria: [{
3866
+ type: Input
3867
+ }], textValidationCriteria: [{
3868
+ type: Input
3869
+ }], dateValidationCriteria: [{
3870
+ type: Input
3871
+ }], customFormulaValidationCriteria: [{
3872
+ type: Input
3873
+ }], listValidationCriteria: [{
3874
+ type: Input
3875
+ }], greaterThanValidationComparer: [{
3876
+ type: Input
3877
+ }], lessThanValidationComparer: [{
3878
+ type: Input
3879
+ }], betweenValidationComparer: [{
3880
+ type: Input
3881
+ }], notBetweenValidationComparer: [{
3882
+ type: Input
3883
+ }], equalToValidationComparer: [{
3884
+ type: Input
3885
+ }], notEqualToValidationComparer: [{
3886
+ type: Input
3887
+ }], greaterThanOrEqualToValidationComparer: [{
3888
+ type: Input
3889
+ }], lessThanOrEqualToValidationComparer: [{
3890
+ type: Input
3891
+ }], validationHintMessage: [{
3892
+ type: Input
3893
+ }], validationHintTitle: [{
3894
+ type: Input
3659
3895
  }], italic: [{
3660
3896
  type: Input
3661
3897
  }], underline: [{
@@ -3720,6 +3956,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3720
3956
  type: Input
3721
3957
  }], dialogInsert: [{
3722
3958
  type: Input
3959
+ }], dialogRemove: [{
3960
+ type: Input
3723
3961
  }], dialogRemoveLink: [{
3724
3962
  type: Input
3725
3963
  }], delete: [{
@@ -3807,7 +4045,7 @@ class LocalizedMessagesDirective extends MessagesDirective {
3807
4045
  super();
3808
4046
  this.service = service;
3809
4047
  }
3810
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
4048
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
3811
4049
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: LocalizedMessagesDirective, isStandalone: true, selector: "[kendoSpreadsheetLocalizedMessages]", providers: [{
3812
4050
  provide: MessagesDirective,
3813
4051
  useExisting: forwardRef(() => LocalizedMessagesDirective)
@@ -3823,7 +4061,716 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3823
4061
  selector: '[kendoSpreadsheetLocalizedMessages]',
3824
4062
  standalone: true
3825
4063
  }]
3826
- }], ctorParameters: function () { return [{ type: i2.LocalizationService }]; } });
4064
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
4065
+
4066
+ const COMPARER_VALUE_NUMBER = {
4067
+ greaterThan: 'validationMinValue',
4068
+ lessThan: 'validationMaxValue',
4069
+ greaterThanOrEqualTo: 'validationMinValue',
4070
+ lessThanOrEqualTo: 'validationMaxValue'
4071
+ };
4072
+ const COMPARER_VALUE_DATE = {
4073
+ greaterThan: 'validationStartValue',
4074
+ lessThan: 'validationEndValue'
4075
+ };
4076
+ /**
4077
+ * @hidden
4078
+ */
4079
+ class DataValidationDialogComponent extends DialogContentBase {
4080
+ localization;
4081
+ spreadsheetService;
4082
+ zone;
4083
+ cellRange;
4084
+ criteriaList;
4085
+ ignoreBlank = true;
4086
+ showButton = true;
4087
+ showHint;
4088
+ from = null;
4089
+ to = null;
4090
+ validationFormGroup;
4091
+ hintTitle = 'Validation Error';
4092
+ hintMessage = 'The value that you entered violates the validation rules set on the cell.';
4093
+ _comparer;
4094
+ _criteria;
4095
+ _onInvalidData;
4096
+ onInvalidDataSub;
4097
+ allComparers = [];
4098
+ textComparers = [];
4099
+ dialogAction = new EventEmitter();
4100
+ constructor(localization, spreadsheetService, zone, dialog) {
4101
+ super(dialog);
4102
+ this.localization = localization;
4103
+ this.spreadsheetService = spreadsheetService;
4104
+ this.zone = zone;
4105
+ }
4106
+ ngOnInit() {
4107
+ if (this.criteria.type === 'any') {
4108
+ this.validationFormGroup = new FormGroup({
4109
+ range: new FormControl(this.cellRange, [Validators.required, rangeValidator(this)])
4110
+ });
4111
+ }
4112
+ else if (this.comparer?.type === 'between' || this.comparer?.type === 'notBetween') {
4113
+ this.validationFormGroup = new FormGroup({
4114
+ range: new FormControl(this.cellRange, [Validators.required, rangeValidator(this)]),
4115
+ min: new FormControl(this.from, [Validators.required]),
4116
+ max: new FormControl(this.to, [Validators.required]),
4117
+ onInvalidData: new FormControl(this.onInvalidData)
4118
+ });
4119
+ }
4120
+ else {
4121
+ this.validationFormGroup = new FormGroup({
4122
+ range: new FormControl(this.cellRange, [Validators.required, rangeValidator(this)]),
4123
+ min: new FormControl(this.from, [Validators.required]),
4124
+ onInvalidData: new FormControl(this.onInvalidData)
4125
+ });
4126
+ }
4127
+ this.addInvalidDataSub();
4128
+ this.criteriaList = [
4129
+ { type: 'any', name: this.getLocalizationMessage('anyValueValidationCriteria') },
4130
+ { type: 'number', name: this.getLocalizationMessage('numberValidationCriteria') },
4131
+ { type: 'text', name: this.getLocalizationMessage('textValidationCriteria') },
4132
+ { type: 'date', name: this.getLocalizationMessage('dateValidationCriteria') },
4133
+ { type: 'custom', name: this.getLocalizationMessage('customFormulaValidationCriteria') },
4134
+ { type: 'list', name: this.getLocalizationMessage('listValidationCriteria') }
4135
+ ];
4136
+ this.allComparers = [
4137
+ { type: 'greaterThan', name: this.getLocalizationMessage('greaterThanValidationComparer') },
4138
+ { type: 'lessThan', name: this.getLocalizationMessage('lessThanValidationComparer') },
4139
+ { type: 'between', name: this.getLocalizationMessage('betweenValidationComparer') },
4140
+ { type: 'notBetween', name: this.getLocalizationMessage('notBetweenValidationComparer') },
4141
+ { type: 'equalTo', name: this.getLocalizationMessage('equalToValidationComparer') },
4142
+ { type: 'notEqualTo', name: this.getLocalizationMessage('notEqualToValidationComparer') },
4143
+ { type: 'greaterThanOrEqualTo', name: this.getLocalizationMessage('greaterThanOrEqualToValidationComparer') },
4144
+ { type: 'lessThanOrEqualTo', name: this.getLocalizationMessage('lessThanOrEqualToValidationComparer') }
4145
+ ];
4146
+ this.textComparers = [
4147
+ { type: 'equalTo', name: this.getLocalizationMessage('equalToValidationComparer') },
4148
+ { type: 'notEqualTo', name: this.getLocalizationMessage('notEqualToValidationComparer') }
4149
+ ];
4150
+ }
4151
+ ngOnDestroy() {
4152
+ this.onInvalidDataSub?.unsubscribe();
4153
+ this.onInvalidDataSub = null;
4154
+ }
4155
+ getLocalizationMessage(key) {
4156
+ return this.localization.get(key);
4157
+ }
4158
+ onRangeChange(value, input) {
4159
+ let range;
4160
+ try {
4161
+ range = this.spreadsheetService.spreadsheet.activeSheet().range(value);
4162
+ }
4163
+ catch (e) { /** noop */ }
4164
+ if (isPresent(range)) {
4165
+ range.select();
4166
+ this.cellRange = value;
4167
+ }
4168
+ this.zone.runOutsideAngular(() => {
4169
+ setTimeout(() => {
4170
+ input.focus();
4171
+ });
4172
+ });
4173
+ }
4174
+ onSelectionChange(item, field) {
4175
+ if (field === 'criteria') {
4176
+ this.from = this.to = null;
4177
+ this.comparer = null;
4178
+ this.showButton = this.ignoreBlank = true;
4179
+ if (item.type === 'any') {
4180
+ this.validationFormGroup = new FormGroup({
4181
+ range: new FormControl(this.cellRange, [Validators.required, rangeValidator(this)])
4182
+ });
4183
+ }
4184
+ else {
4185
+ this.validationFormGroup = new FormGroup({
4186
+ range: new FormControl(this.cellRange, [Validators.required, rangeValidator(this)]),
4187
+ min: new FormControl(this.from, [Validators.required]),
4188
+ onInvalidData: new FormControl(this.onInvalidData)
4189
+ });
4190
+ }
4191
+ }
4192
+ else {
4193
+ this.showButton = this.ignoreBlank = true;
4194
+ switch (item.type) {
4195
+ case 'between':
4196
+ case 'notBetween':
4197
+ this.validationFormGroup = new FormGroup({
4198
+ range: new FormControl(this.cellRange, [Validators.required, rangeValidator(this)]),
4199
+ min: new FormControl(this.from, [Validators.required]),
4200
+ max: new FormControl(this.to, [Validators.required]),
4201
+ onInvalidData: new FormControl(this.onInvalidData)
4202
+ });
4203
+ break;
4204
+ default:
4205
+ this.validationFormGroup = new FormGroup({
4206
+ range: new FormControl(this.cellRange, [Validators.required, rangeValidator(this)]),
4207
+ min: new FormControl(this.from, [Validators.required]),
4208
+ onInvalidData: new FormControl(this.onInvalidData)
4209
+ });
4210
+ break;
4211
+ }
4212
+ }
4213
+ this.addInvalidDataSub();
4214
+ this[field] = item;
4215
+ }
4216
+ get criteria() {
4217
+ return this._criteria || { type: 'any', name: 'Any value' };
4218
+ }
4219
+ set criteria(value) {
4220
+ this._criteria = value;
4221
+ }
4222
+ get comparer() {
4223
+ return this._comparer || this.comparerList[0];
4224
+ }
4225
+ set comparer(value) {
4226
+ this._comparer = value;
4227
+ }
4228
+ get onInvalidData() {
4229
+ return this._onInvalidData || 'reject';
4230
+ }
4231
+ set onInvalidData(value) {
4232
+ this._onInvalidData = value;
4233
+ }
4234
+ get comparerList() {
4235
+ return this.criteria.type === 'text' ? this.textComparers : this.allComparers;
4236
+ }
4237
+ get singleValue() {
4238
+ return !this.comparer.name.includes('between');
4239
+ }
4240
+ get showComparer() {
4241
+ return this.criteria.type === 'number' || this.criteria.type === 'text' || this.criteria.type === 'date';
4242
+ }
4243
+ setData(args) {
4244
+ for (const key in args) {
4245
+ this[key] = args[key];
4246
+ }
4247
+ }
4248
+ getValueLabel() {
4249
+ const valueLabel = this.localization.get('validationValue');
4250
+ if (this.criteria.type === 'custom' || this.criteria.type === 'list') {
4251
+ return valueLabel;
4252
+ }
4253
+ const labelKey = this.criteria.type === 'date' ? COMPARER_VALUE_DATE[this.comparer.type] : COMPARER_VALUE_NUMBER[this.comparer.type];
4254
+ return this.localization.get(labelKey) || valueLabel;
4255
+ }
4256
+ getShowButtonLabel() {
4257
+ const labelKey = this.criteria.type === 'list' ? 'validationShowListButtonCheckbox' : 'validationShowDateButtonCheckbox';
4258
+ return this.getLocalizationMessage(labelKey);
4259
+ }
4260
+ get validationPresent() {
4261
+ const currentSheet = this.spreadsheetService.spreadsheet.activeSheet();
4262
+ return !!currentSheet.range(currentSheet.activeCell()).validation();
4263
+ }
4264
+ addInvalidDataSub() {
4265
+ this.onInvalidDataSub?.unsubscribe();
4266
+ if (this.validationFormGroup.get('onInvalidData')) {
4267
+ this.onInvalidDataSub = this.validationFormGroup.get('onInvalidData').valueChanges.subscribe((value) => {
4268
+ this.onInvalidData = value;
4269
+ });
4270
+ }
4271
+ }
4272
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataValidationDialogComponent, deps: [{ token: i1.LocalizationService }, { token: SpreadsheetService }, { token: i0.NgZone }, { token: i1$2.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
4273
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataValidationDialogComponent, isStandalone: true, selector: "ng-component", outputs: { dialogAction: "dialogAction" }, usesInheritance: true, ngImport: i0, template: `
4274
+ <form class="k-form k-form-md" [formGroup]="validationFormGroup">
4275
+ <div class="k-form-field">
4276
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage('validationCellRange')" [for]="rangeInput"></kendo-label>
4277
+ <div class="k-form-field-wrap">
4278
+ <kendo-textbox #rangeInput
4279
+ [clearButton]="true"
4280
+ [value]="cellRange"
4281
+ (valueChange)="onRangeChange($event, rangeInput)"
4282
+ formControlName="range">
4283
+ </kendo-textbox>
4284
+ </div>
4285
+ </div>
4286
+ <div class="k-form-field">
4287
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage('validationCriteria')" [for]="criteriaInput"></kendo-label>
4288
+ <div class="k-form-field-wrap">
4289
+ <kendo-dropdownlist #criteriaInput
4290
+ [data]="criteriaList"
4291
+ [value]="criteria"
4292
+ (selectionChange)="onSelectionChange($event, 'criteria')"
4293
+ textField="name"
4294
+ valueField="type">
4295
+ </kendo-dropdownlist>
4296
+ </div>
4297
+ </div>
4298
+ <ng-container *ngIf="criteria.type !== 'any'">
4299
+ <div class="k-form-field" *ngIf="showComparer">
4300
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage('validationComparer')" [for]="comparerInput"></kendo-label>
4301
+ <div class="k-form-field-wrap">
4302
+ <kendo-dropdownlist #comparerInput
4303
+ [data]="comparerList"
4304
+ [value]="comparer"
4305
+ (selectionChange)="onSelectionChange($event, 'comparer')"
4306
+ textField="name"
4307
+ valueField="type">
4308
+ </kendo-dropdownlist>
4309
+ </div>
4310
+ </div>
4311
+ <div class="k-form-field" *ngIf="singleValue; else betweenValues">
4312
+ <kendo-label class="k-label k-form-label" [text]="getValueLabel()" [for]="minInput"></kendo-label>
4313
+ <div class="k-form-field-wrap">
4314
+ <kendo-textbox #minInput [(value)]="from" formControlName="min"></kendo-textbox>
4315
+ </div>
4316
+ </div>
4317
+ <ng-template #betweenValues>
4318
+ <div class="k-form-field">
4319
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage(criteria.type === 'date' ? 'validationStartValue' : 'validationMinValue')" [for]="betweenMinInput"></kendo-label>
4320
+ <div class="k-form-field-wrap">
4321
+ <kendo-textbox #betweenMinInput [(value)]="from" formControlName="min"></kendo-textbox>
4322
+ </div>
4323
+ </div>
4324
+ <div class="k-form-field">
4325
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage(criteria.type === 'date' ? 'validationEndValue' : 'validationMaxValue')" [for]="betweenMaxInput"></kendo-label>
4326
+ <div class="k-form-field-wrap">
4327
+ <kendo-textbox #betweenMaxInput [(value)]="to" formControlName="max"></kendo-textbox>
4328
+ </div>
4329
+ </div>
4330
+ </ng-template>
4331
+ <div class="k-form-field" *ngIf="criteria.type === 'list'">
4332
+ <div class="k-form-field-wrap">
4333
+ <kendo-checkbox #showBtnCheckBox [(checkedState)]="showButton"></kendo-checkbox>
4334
+ <kendo-label class="k-checkbox-label" [for]="showBtnCheckBox" [text]="getLocalizationMessage('validationShowListButtonCheckbox')"></kendo-label>
4335
+ </div>
4336
+ </div>
4337
+ <div class="k-form-field">
4338
+ <div class="k-form-field-wrap">
4339
+ <kendo-checkbox #ignoreBlankCheckBox [(checkedState)]="ignoreBlank"></kendo-checkbox>
4340
+ <kendo-label class="k-checkbox-label" [for]="ignoreBlankCheckBox" [text]="getLocalizationMessage('validationIgnoreBlankCheckbox')"></kendo-label>
4341
+ </div>
4342
+ </div>
4343
+ <div class="k-form-field">
4344
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage('validationOnInvalidData')"></kendo-label>
4345
+ <div class="k-form-field-wrap">
4346
+ <ul class="k-radio-list k-list-vertical">
4347
+ <li class="k-radio-list-item">
4348
+ <kendo-radiobutton #rejectRadioBtn formControlName="onInvalidData" value="reject"></kendo-radiobutton>
4349
+ <kendo-label class="k-radio-label" [for]="rejectRadioBtn" [text]="getLocalizationMessage('validationRejectInput')"></kendo-label>
4350
+ </li>
4351
+ <li class="k-radio-list-item">
4352
+ <kendo-radiobutton #warningRadioBtn formControlName="onInvalidData" value="warning"></kendo-radiobutton>
4353
+ <kendo-label class="k-radio-label" [for]="warningRadioBtn" [text]="getLocalizationMessage('validationShowWarning')"></kendo-label>
4354
+ </li>
4355
+ </ul>
4356
+ </div>
4357
+ </div>
4358
+ <div class="k-form-field">
4359
+ <div class="k-form-field-wrap">
4360
+ <kendo-checkbox #showHintCheckBox [(checkedState)]="showHint"></kendo-checkbox>
4361
+ <kendo-label class="k-checkbox-label" [for]="showHintCheckBox" [text]="getLocalizationMessage('validationShowHint')"></kendo-label>
4362
+ </div>
4363
+ </div>
4364
+ <div class="k-form-field">
4365
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage('validationHintTitle')" [for]="hintTitleInput"></kendo-label>
4366
+ <div class="k-form-field-wrap">
4367
+ <kendo-textbox #hintTitleInput [(value)]="hintTitle"></kendo-textbox>
4368
+ </div>
4369
+ </div>
4370
+ <div class="k-form-field">
4371
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage('validationHintMessage')" [for]="hintMessageInput"></kendo-label>
4372
+ <div class="k-form-field-wrap">
4373
+ <kendo-textbox #hintMessageInput [(value)]="hintMessage"></kendo-textbox>
4374
+ </div>
4375
+ </div>
4376
+ </ng-container>
4377
+ </form>
4378
+ <kendo-dialog-actions layout="start" #dialogActions>
4379
+ <button kendoButton themeColor="primary" [disabled]="validationFormGroup?.invalid" (click)="dialogAction.emit(getLocalizationMessage('dialogApply'))">
4380
+ {{getLocalizationMessage('dialogApply')}}
4381
+ </button>
4382
+ <button kendoButton (click)="dialogAction.emit(getLocalizationMessage('dialogCancel'))">{{getLocalizationMessage('dialogCancel')}}</button>
4383
+ <button kendoButton themeColor="error" fillMode="flat" *ngIf="validationPresent" (click)="dialogAction.emit(getLocalizationMessage('dialogRemove'))">
4384
+ {{getLocalizationMessage('dialogRemove')}}
4385
+ </button>
4386
+ </kendo-dialog-actions>
4387
+ `, isInline: true, dependencies: [{ kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }, { kind: "component", type: RadioButtonComponent, selector: "kendo-radiobutton", inputs: ["checked"], outputs: ["checkedChange"], exportAs: ["kendoRadioButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
4388
+ }
4389
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataValidationDialogComponent, decorators: [{
4390
+ type: Component,
4391
+ args: [{
4392
+ template: `
4393
+ <form class="k-form k-form-md" [formGroup]="validationFormGroup">
4394
+ <div class="k-form-field">
4395
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage('validationCellRange')" [for]="rangeInput"></kendo-label>
4396
+ <div class="k-form-field-wrap">
4397
+ <kendo-textbox #rangeInput
4398
+ [clearButton]="true"
4399
+ [value]="cellRange"
4400
+ (valueChange)="onRangeChange($event, rangeInput)"
4401
+ formControlName="range">
4402
+ </kendo-textbox>
4403
+ </div>
4404
+ </div>
4405
+ <div class="k-form-field">
4406
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage('validationCriteria')" [for]="criteriaInput"></kendo-label>
4407
+ <div class="k-form-field-wrap">
4408
+ <kendo-dropdownlist #criteriaInput
4409
+ [data]="criteriaList"
4410
+ [value]="criteria"
4411
+ (selectionChange)="onSelectionChange($event, 'criteria')"
4412
+ textField="name"
4413
+ valueField="type">
4414
+ </kendo-dropdownlist>
4415
+ </div>
4416
+ </div>
4417
+ <ng-container *ngIf="criteria.type !== 'any'">
4418
+ <div class="k-form-field" *ngIf="showComparer">
4419
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage('validationComparer')" [for]="comparerInput"></kendo-label>
4420
+ <div class="k-form-field-wrap">
4421
+ <kendo-dropdownlist #comparerInput
4422
+ [data]="comparerList"
4423
+ [value]="comparer"
4424
+ (selectionChange)="onSelectionChange($event, 'comparer')"
4425
+ textField="name"
4426
+ valueField="type">
4427
+ </kendo-dropdownlist>
4428
+ </div>
4429
+ </div>
4430
+ <div class="k-form-field" *ngIf="singleValue; else betweenValues">
4431
+ <kendo-label class="k-label k-form-label" [text]="getValueLabel()" [for]="minInput"></kendo-label>
4432
+ <div class="k-form-field-wrap">
4433
+ <kendo-textbox #minInput [(value)]="from" formControlName="min"></kendo-textbox>
4434
+ </div>
4435
+ </div>
4436
+ <ng-template #betweenValues>
4437
+ <div class="k-form-field">
4438
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage(criteria.type === 'date' ? 'validationStartValue' : 'validationMinValue')" [for]="betweenMinInput"></kendo-label>
4439
+ <div class="k-form-field-wrap">
4440
+ <kendo-textbox #betweenMinInput [(value)]="from" formControlName="min"></kendo-textbox>
4441
+ </div>
4442
+ </div>
4443
+ <div class="k-form-field">
4444
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage(criteria.type === 'date' ? 'validationEndValue' : 'validationMaxValue')" [for]="betweenMaxInput"></kendo-label>
4445
+ <div class="k-form-field-wrap">
4446
+ <kendo-textbox #betweenMaxInput [(value)]="to" formControlName="max"></kendo-textbox>
4447
+ </div>
4448
+ </div>
4449
+ </ng-template>
4450
+ <div class="k-form-field" *ngIf="criteria.type === 'list'">
4451
+ <div class="k-form-field-wrap">
4452
+ <kendo-checkbox #showBtnCheckBox [(checkedState)]="showButton"></kendo-checkbox>
4453
+ <kendo-label class="k-checkbox-label" [for]="showBtnCheckBox" [text]="getLocalizationMessage('validationShowListButtonCheckbox')"></kendo-label>
4454
+ </div>
4455
+ </div>
4456
+ <div class="k-form-field">
4457
+ <div class="k-form-field-wrap">
4458
+ <kendo-checkbox #ignoreBlankCheckBox [(checkedState)]="ignoreBlank"></kendo-checkbox>
4459
+ <kendo-label class="k-checkbox-label" [for]="ignoreBlankCheckBox" [text]="getLocalizationMessage('validationIgnoreBlankCheckbox')"></kendo-label>
4460
+ </div>
4461
+ </div>
4462
+ <div class="k-form-field">
4463
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage('validationOnInvalidData')"></kendo-label>
4464
+ <div class="k-form-field-wrap">
4465
+ <ul class="k-radio-list k-list-vertical">
4466
+ <li class="k-radio-list-item">
4467
+ <kendo-radiobutton #rejectRadioBtn formControlName="onInvalidData" value="reject"></kendo-radiobutton>
4468
+ <kendo-label class="k-radio-label" [for]="rejectRadioBtn" [text]="getLocalizationMessage('validationRejectInput')"></kendo-label>
4469
+ </li>
4470
+ <li class="k-radio-list-item">
4471
+ <kendo-radiobutton #warningRadioBtn formControlName="onInvalidData" value="warning"></kendo-radiobutton>
4472
+ <kendo-label class="k-radio-label" [for]="warningRadioBtn" [text]="getLocalizationMessage('validationShowWarning')"></kendo-label>
4473
+ </li>
4474
+ </ul>
4475
+ </div>
4476
+ </div>
4477
+ <div class="k-form-field">
4478
+ <div class="k-form-field-wrap">
4479
+ <kendo-checkbox #showHintCheckBox [(checkedState)]="showHint"></kendo-checkbox>
4480
+ <kendo-label class="k-checkbox-label" [for]="showHintCheckBox" [text]="getLocalizationMessage('validationShowHint')"></kendo-label>
4481
+ </div>
4482
+ </div>
4483
+ <div class="k-form-field">
4484
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage('validationHintTitle')" [for]="hintTitleInput"></kendo-label>
4485
+ <div class="k-form-field-wrap">
4486
+ <kendo-textbox #hintTitleInput [(value)]="hintTitle"></kendo-textbox>
4487
+ </div>
4488
+ </div>
4489
+ <div class="k-form-field">
4490
+ <kendo-label class="k-form-label" [text]="getLocalizationMessage('validationHintMessage')" [for]="hintMessageInput"></kendo-label>
4491
+ <div class="k-form-field-wrap">
4492
+ <kendo-textbox #hintMessageInput [(value)]="hintMessage"></kendo-textbox>
4493
+ </div>
4494
+ </div>
4495
+ </ng-container>
4496
+ </form>
4497
+ <kendo-dialog-actions layout="start" #dialogActions>
4498
+ <button kendoButton themeColor="primary" [disabled]="validationFormGroup?.invalid" (click)="dialogAction.emit(getLocalizationMessage('dialogApply'))">
4499
+ {{getLocalizationMessage('dialogApply')}}
4500
+ </button>
4501
+ <button kendoButton (click)="dialogAction.emit(getLocalizationMessage('dialogCancel'))">{{getLocalizationMessage('dialogCancel')}}</button>
4502
+ <button kendoButton themeColor="error" fillMode="flat" *ngIf="validationPresent" (click)="dialogAction.emit(getLocalizationMessage('dialogRemove'))">
4503
+ {{getLocalizationMessage('dialogRemove')}}
4504
+ </button>
4505
+ </kendo-dialog-actions>
4506
+ `,
4507
+ standalone: true,
4508
+ imports: [TextBoxComponent, DropDownListComponent, CheckBoxComponent, RadioButtonComponent, NgIf, ReactiveFormsModule, LabelComponent, DialogActionsComponent, ButtonComponent]
4509
+ }]
4510
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: SpreadsheetService }, { type: i0.NgZone }, { type: i1$2.DialogRef }]; }, propDecorators: { dialogAction: [{
4511
+ type: Output
4512
+ }] } });
4513
+
4514
+ const COMPARERS_LIST = [
4515
+ { type: 'greaterThan', name: 'greater than' },
4516
+ { type: 'lessThan', name: 'less than' },
4517
+ { type: 'between', name: 'between' },
4518
+ { type: 'notBetween', name: 'not between' },
4519
+ { type: 'equalTo', name: 'equal to' },
4520
+ { type: 'notEqualTo', name: 'not equal to' },
4521
+ { type: 'greaterThanOrEqualTo', name: 'greater than or equal to' },
4522
+ { type: 'lessThanOrEqualTo', name: 'less than or equal to' }
4523
+ ];
4524
+ const CRITERIA_LIST = [
4525
+ { type: 'any', name: 'Any value' },
4526
+ { type: 'number', name: 'Number' },
4527
+ { type: 'text', name: 'Text' },
4528
+ { type: 'date', name: 'Date' },
4529
+ { type: 'custom', name: 'Custom Formula' },
4530
+ { type: 'list', name: 'List' }
4531
+ ];
4532
+ /**
4533
+ * @hidden
4534
+ */
4535
+ class SpreadsheetDataValidationDirective extends SpreadsheetCommandButton {
4536
+ dialogService;
4537
+ renderer;
4538
+ constructor(button, localization, spreadsheetService, toolsService, dialogService, renderer) {
4539
+ super('dataValidation', button, localization, spreadsheetService, toolsService, {
4540
+ command: 'EditValidationCommand', options: { value: '' }
4541
+ });
4542
+ this.dialogService = dialogService;
4543
+ this.renderer = renderer;
4544
+ button.showText = 'both';
4545
+ }
4546
+ get currentRange() {
4547
+ return this.spreadsheetService.spreadsheet.options.nameBoxRef.current.value();
4548
+ }
4549
+ ngAfterViewInit() {
4550
+ this.renderer.setAttribute(this.button.toolbarButtonElement.nativeElement, 'aria-haspopup', 'dialog');
4551
+ this.renderer.setAttribute(this.button.toolbarButtonElement.nativeElement, 'aria-expanded', 'false');
4552
+ }
4553
+ clickHandler() {
4554
+ this.openDialog();
4555
+ }
4556
+ /**
4557
+ * @hidden
4558
+ */
4559
+ openDialog() {
4560
+ const currentSheet = this.spreadsheetService.spreadsheet.activeSheet();
4561
+ const currentRangeValidation = currentSheet.range(currentSheet.activeCell()).validation();
4562
+ const dialogSettings = {
4563
+ appendTo: this.spreadsheetService.dialogContainer,
4564
+ title: this.localization.get(this.command),
4565
+ content: DataValidationDialogComponent,
4566
+ minWidth: 400
4567
+ };
4568
+ const dialog = this.dialogService.open(dialogSettings);
4569
+ const dialogContent = dialog.content.instance;
4570
+ this.renderer.setAttribute(this.button.toolbarButtonElement.nativeElement, 'aria-expanded', 'true');
4571
+ let contentData;
4572
+ if (currentRangeValidation) {
4573
+ contentData = {
4574
+ cellRange: this.currentRange,
4575
+ to: currentRangeValidation.to,
4576
+ from: currentRangeValidation.from,
4577
+ criteria: { type: currentRangeValidation.dataType, name: CRITERIA_LIST.find(i => i.type === currentRangeValidation.dataType).name },
4578
+ comparer: currentRangeValidation.dataType === 'custom' || currentRangeValidation.dataType === 'list' ? null : { type: currentRangeValidation.comparerType, name: COMPARERS_LIST.find(i => i.type === currentRangeValidation.comparerType).name },
4579
+ ignoreBlank: currentRangeValidation.allowNulls,
4580
+ showButton: currentRangeValidation.showButton,
4581
+ onInvalidData: currentRangeValidation.type
4582
+ };
4583
+ if (currentRangeValidation.messageTemplate || currentRangeValidation.titleTemplate) {
4584
+ contentData = Object.assign(contentData, {
4585
+ hintMessage: currentRangeValidation.messageTemplate,
4586
+ hintTitle: currentRangeValidation.titleTemplate,
4587
+ showHint: true
4588
+ });
4589
+ }
4590
+ }
4591
+ else {
4592
+ contentData = { cellRange: this.currentRange };
4593
+ }
4594
+ dialogContent.setData(contentData);
4595
+ dialogContent.dialogAction.pipe(take(1)).subscribe((actionType) => {
4596
+ if (actionType === this.localization.get('dialogCancel')) {
4597
+ dialog.close();
4598
+ this.renderer.setAttribute(this.button.toolbarButtonElement.nativeElement, 'aria-expanded', 'false');
4599
+ }
4600
+ else {
4601
+ let options = {
4602
+ type: dialogContent.onInvalidData,
4603
+ dataType: dialogContent.criteria.type,
4604
+ comparerType: dialogContent.comparer.type,
4605
+ from: dialogContent.from,
4606
+ to: dialogContent.to,
4607
+ allowNulls: dialogContent.ignoreBlank,
4608
+ showButton: dialogContent.showButton,
4609
+ messageTemplate: dialogContent.showHint ? dialogContent.hintMessage : null,
4610
+ titleTemplate: dialogContent.showHint ? dialogContent.hintTitle : null
4611
+ };
4612
+ if (dialogContent.criteria.type === 'list' || dialogContent.criteria.type === 'text') {
4613
+ if (!options.from.startsWith('"') && !options.from.endsWith('"')) {
4614
+ options = Object.assign(options, { from: `"${options.from}"` });
4615
+ }
4616
+ }
4617
+ if (actionType === this.localization.get('dialogRemove') || dialogContent.criteria.type === 'any') {
4618
+ options = null;
4619
+ }
4620
+ this.spreadsheetService.spreadsheet.executeCommand({
4621
+ command: 'EditValidationCommand',
4622
+ options: { value: options }
4623
+ });
4624
+ dialog.close();
4625
+ this.renderer.setAttribute(this.button.toolbarButtonElement.nativeElement, 'aria-expanded', 'false');
4626
+ }
4627
+ });
4628
+ dialog.dialog.instance.close.pipe(take(1)).subscribe(() => {
4629
+ this.renderer.setAttribute(this.button.toolbarButtonElement.nativeElement, 'aria-expanded', 'false');
4630
+ });
4631
+ }
4632
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDataValidationDirective, deps: [{ token: i1$3.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: i1$2.DialogService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4633
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetDataValidationDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetDataValidation]", usesInheritance: true, ngImport: i0 });
4634
+ }
4635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetDataValidationDirective, decorators: [{
4636
+ type: Directive,
4637
+ args: [{
4638
+ selector: 'kendo-toolbar-button[kendoSpreadsheetDataValidation]',
4639
+ standalone: true
4640
+ }]
4641
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.DialogService }, { type: i0.Renderer2 }]; } });
4642
+
4643
+ /**
4644
+ * @hidden
4645
+ */
4646
+ class ListEditorComponent {
4647
+ ngZone;
4648
+ spreadsheetService;
4649
+ data = [];
4650
+ focusedIndex = 0;
4651
+ itemSelect = new EventEmitter();
4652
+ close = new EventEmitter();
4653
+ listItems;
4654
+ constructor(ngZone, spreadsheetService) {
4655
+ this.ngZone = ngZone;
4656
+ this.spreadsheetService = spreadsheetService;
4657
+ }
4658
+ ngAfterViewInit() {
4659
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
4660
+ this.spreadsheetService.spreadsheet.view.clipboard.blur();
4661
+ this.focusItem(0);
4662
+ });
4663
+ }
4664
+ onItemClick(item) {
4665
+ this.itemSelect.emit(item);
4666
+ }
4667
+ onKeyDown(event, index) {
4668
+ const altKey = event.altKey;
4669
+ switch (event.keyCode) {
4670
+ case Keys.ArrowDown:
4671
+ case Keys.ArrowRight:
4672
+ event.preventDefault();
4673
+ this.focusNext();
4674
+ break;
4675
+ case Keys.ArrowUp:
4676
+ if (altKey) {
4677
+ this.closeList();
4678
+ }
4679
+ else {
4680
+ this.focusPrev();
4681
+ }
4682
+ break;
4683
+ case Keys.ArrowLeft:
4684
+ event.preventDefault();
4685
+ this.focusPrev();
4686
+ break;
4687
+ case Keys.Enter:
4688
+ case Keys.Space:
4689
+ event.preventDefault();
4690
+ this.onItemClick(this.data[index]);
4691
+ break;
4692
+ case Keys.Escape:
4693
+ event.preventDefault();
4694
+ this.closeList();
4695
+ break;
4696
+ }
4697
+ }
4698
+ focusNext() {
4699
+ if (this.focusedIndex + 1 === this.data.length) {
4700
+ this.focusItem(0);
4701
+ }
4702
+ else {
4703
+ this.focusItem(this.focusedIndex + 1);
4704
+ }
4705
+ }
4706
+ focusPrev() {
4707
+ if (this.focusedIndex - 1 < 0) {
4708
+ this.focusItem(this.data.length - 1);
4709
+ }
4710
+ else {
4711
+ this.focusItem(this.focusedIndex - 1);
4712
+ }
4713
+ }
4714
+ closeList() {
4715
+ this.close.emit();
4716
+ this.spreadsheetService.spreadsheet.view.clipboard.focus();
4717
+ }
4718
+ focusItem(index) {
4719
+ if (this.data.length === 0) {
4720
+ return;
4721
+ }
4722
+ this.focusedIndex = index;
4723
+ const items = this.listItems.toArray();
4724
+ if (items[index]) {
4725
+ items[index].nativeElement.focus();
4726
+ }
4727
+ }
4728
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListEditorComponent, deps: [{ token: i0.NgZone }, { token: SpreadsheetService }], target: i0.ɵɵFactoryTarget.Component });
4729
+ 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: `
4730
+ <ul class="k-list k-reset k-list-ul" role="listbox">
4731
+ <li *ngFor="let item of data; let i = index"
4732
+ role="option"
4733
+ class="k-list-item"
4734
+ [class.k-focus]="i === focusedIndex"
4735
+ [attr.aria-selected]="i === focusedIndex"
4736
+ [attr.tabindex]="i === focusedIndex ? 0 : -1"
4737
+ (click)="onItemClick(item)"
4738
+ (keydown)="onKeyDown($event, i)"
4739
+ #listItem>
4740
+ <span class="k-list-item-text">{{item.value}}</span>
4741
+ </li>
4742
+ </ul>
4743
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
4744
+ }
4745
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListEditorComponent, decorators: [{
4746
+ type: Component,
4747
+ args: [{
4748
+ template: `
4749
+ <ul class="k-list k-reset k-list-ul" role="listbox">
4750
+ <li *ngFor="let item of data; let i = index"
4751
+ role="option"
4752
+ class="k-list-item"
4753
+ [class.k-focus]="i === focusedIndex"
4754
+ [attr.aria-selected]="i === focusedIndex"
4755
+ [attr.tabindex]="i === focusedIndex ? 0 : -1"
4756
+ (click)="onItemClick(item)"
4757
+ (keydown)="onKeyDown($event, i)"
4758
+ #listItem>
4759
+ <span class="k-list-item-text">{{item.value}}</span>
4760
+ </li>
4761
+ </ul>
4762
+ `,
4763
+ standalone: true,
4764
+ imports: [NgForOf]
4765
+ }]
4766
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: SpreadsheetService }]; }, propDecorators: { itemSelect: [{
4767
+ type: Output
4768
+ }], close: [{
4769
+ type: Output
4770
+ }], listItems: [{
4771
+ type: ViewChildren,
4772
+ args: ['listItem', { read: ElementRef }]
4773
+ }] } });
3827
4774
 
3828
4775
  /**
3829
4776
  * Represents the [Kendo UI Spreadsheet component for Angular]({% slug overview_spreadsheet %}).
@@ -3837,6 +4784,8 @@ class SpreadsheetComponent {
3837
4784
  toolsService;
3838
4785
  errorService;
3839
4786
  dialogService;
4787
+ popupService;
4788
+ container;
3840
4789
  formulaBarInputRef;
3841
4790
  formulaCellInputRef;
3842
4791
  nameBoxRef;
@@ -3852,7 +4801,7 @@ class SpreadsheetComponent {
3852
4801
  this.ngZone.onStable.pipe(take(1)).subscribe(() => {
3853
4802
  const normalizedItems = items.map(item => ({
3854
4803
  active: item.active,
3855
- text: item.id === 'format' ? this.messageFor('formatTab') : this.messageFor(item.id),
4804
+ text: item.id === 'format' || item.id === 'data' ? this.messageFor(`${item.id}Tab`) : this.messageFor(item.id),
3856
4805
  cssClass: item.active ? 'k-active' : null,
3857
4806
  id: item.id
3858
4807
  }));
@@ -3998,7 +4947,8 @@ class SpreadsheetComponent {
3998
4947
  _menuItems;
3999
4948
  currentRange;
4000
4949
  subs = new Subscription();
4001
- constructor(ngZone, intl, host, localization, spreadsheetService, toolsService, errorService, dialogService) {
4950
+ popupRef;
4951
+ constructor(ngZone, intl, host, localization, spreadsheetService, toolsService, errorService, dialogService, popupService, container) {
4002
4952
  this.ngZone = ngZone;
4003
4953
  this.intl = intl;
4004
4954
  this.host = host;
@@ -4007,6 +4957,8 @@ class SpreadsheetComponent {
4007
4957
  this.toolsService = toolsService;
4008
4958
  this.errorService = errorService;
4009
4959
  this.dialogService = dialogService;
4960
+ this.popupService = popupService;
4961
+ this.container = container;
4010
4962
  const isValid = validatePackage(packageMetadata);
4011
4963
  this.showLicenseWatermark = shouldShowValidationUI(isValid);
4012
4964
  ngZone.onStable.pipe(take(1)).subscribe(() => {
@@ -4025,6 +4977,9 @@ class SpreadsheetComponent {
4025
4977
  }, {
4026
4978
  id: 'format',
4027
4979
  text: this.messageFor('formatTab')
4980
+ }, {
4981
+ id: 'data',
4982
+ text: this.messageFor('dataTab')
4028
4983
  }, {
4029
4984
  id: 'view',
4030
4985
  text: this.messageFor('view')
@@ -4058,9 +5013,16 @@ class SpreadsheetComponent {
4058
5013
  });
4059
5014
  this.subs.add(this.spreadsheetService.sheetsChanged.subscribe(this.onSheetsChanged.bind(this)));
4060
5015
  this.subs.add(this.spreadsheetService.activeSheetChanged.subscribe(this.onActiveSheetChanged.bind(this)));
4061
- this.subs.add(this.spreadsheetService.selectionChanged.subscribe(range => this.currentRange = range));
5016
+ this.subs.add(this.spreadsheetService.selectionChanged.subscribe(range => {
5017
+ this.currentRange = range;
5018
+ if (this.popupRef) {
5019
+ this.popupRef.close();
5020
+ this.popupRef = null;
5021
+ }
5022
+ }));
4062
5023
  this.spreadsheetService.dialogContainer = this.dialogContainer;
4063
5024
  });
5025
+ this.registerEditors();
4064
5026
  }
4065
5027
  ngOnChanges(changes) {
4066
5028
  const dynamicOptions = [
@@ -4168,9 +5130,19 @@ class SpreadsheetComponent {
4168
5130
  onKeyDown = (e) => {
4169
5131
  const isCtrl = e.ctrlKey || e.metaKey;
4170
5132
  const shift = e.shiftKey;
5133
+ const altKey = e.altKey;
4171
5134
  if (isCtrl && shift && e.keyCode === Keys.KeyS) {
4172
5135
  this.spreadsheetService.onSheetsBarFocus.next();
4173
5136
  }
5137
+ if (altKey) {
5138
+ const currentSheet = e.sender.activeSheet();
5139
+ const validation = currentSheet.range(currentSheet.activeCell()).validation();
5140
+ if (isPresent(validation) && validation.dataType === 'list') {
5141
+ if (e.keyCode === Keys.ArrowDown) {
5142
+ this.spreadsheetWidget.view.openCustomEditor();
5143
+ }
5144
+ }
5145
+ }
4174
5146
  };
4175
5147
  /**
4176
5148
  * @hidden
@@ -4255,7 +5227,14 @@ class SpreadsheetComponent {
4255
5227
  rows: this.rows,
4256
5228
  formulaBarInputRef: { current: this.formulaBarInputRef.current },
4257
5229
  formulaCellInputRef: { current: this.formulaCellInputRef.current },
4258
- nameBoxRef: { current: this.nameBoxRef.current }
5230
+ nameBoxRef: { current: this.nameBoxRef.current },
5231
+ getIconHTMLString: (options) => {
5232
+ const iconWrapper = this.container.createComponent(IconWrapperComponent);
5233
+ iconWrapper.instance.name = options.iconName;
5234
+ iconWrapper.instance.svgIcon = options.svgIcon;
5235
+ iconWrapper.changeDetectorRef.detectChanges();
5236
+ return iconWrapper.instance.element.nativeElement;
5237
+ }
4259
5238
  };
4260
5239
  }
4261
5240
  contextMenuItemsForTarget(target, unhide, unmerge) {
@@ -4426,7 +5405,48 @@ class SpreadsheetComponent {
4426
5405
  });
4427
5406
  }
4428
5407
  };
4429
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1$3.IntlService }, { token: i0.ElementRef }, { token: i2.LocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ErrorHandlingService }, { token: i1$1.DialogService }], target: i0.ɵɵFactoryTarget.Component });
5408
+ registerEditors() {
5409
+ registerEditor('_validation_list', () => {
5410
+ return {
5411
+ edit: (options) => {
5412
+ this.popupRef?.close();
5413
+ this.popupRef = null;
5414
+ this.popupRef = this.popupService.open({
5415
+ anchor: options.view.element.querySelector('.k-spreadsheet-editor-button'),
5416
+ content: ListEditorComponent,
5417
+ popupAlign: options.alignLeft ? { horizontal: 'right', vertical: 'top' } : { horizontal: 'left', vertical: 'top' },
5418
+ anchorAlign: options.alignLeft ? { horizontal: 'right', vertical: 'bottom' } : { horizontal: 'left', vertical: 'bottom' },
5419
+ popupClass: 'k-spreadsheet-list-popup'
5420
+ });
5421
+ const list = this.popupRef.content.instance;
5422
+ list.itemSelect.subscribe((item) => {
5423
+ this.popupRef.close();
5424
+ this.popupRef = null;
5425
+ const itemValue = item.value;
5426
+ if (isPresent(itemValue)) {
5427
+ options.callback(itemValue);
5428
+ }
5429
+ });
5430
+ list.close.subscribe(() => {
5431
+ this.popupRef.close();
5432
+ this.popupRef = null;
5433
+ });
5434
+ const items = options.validation.from.value;
5435
+ const data = [];
5436
+ const add = (el) => { data.push({ value: el }); };
5437
+ if (items instanceof Matrix) {
5438
+ items.each(add, false);
5439
+ }
5440
+ else {
5441
+ (items + "").split(/\s*,\s*/).forEach(add);
5442
+ }
5443
+ list.data = data;
5444
+ },
5445
+ icon: { iconName: 'caret-alt-down', svgIcon: caretAltDownIcon }
5446
+ };
5447
+ });
5448
+ }
5449
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1$4.IntlService }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ErrorHandlingService }, { token: i1$2.DialogService }, { token: i1$1.PopupService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
4430
5450
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetComponent, isStandalone: true, selector: "kendo-spreadsheet", inputs: { menuItems: "menuItems", overflow: "overflow", formulaListMaxHeight: "formulaListMaxHeight", activeSheet: "activeSheet", sheets: "sheets", columns: "columns", columnWidth: "columnWidth", defaultCellStyle: "defaultCellStyle", headerHeight: "headerHeight", headerWidth: "headerWidth", rowHeight: "rowHeight", rows: "rows", images: "images", excel: "excel" }, outputs: { change: "change", formatChange: "formatChange", selectionChange: "selectionChange", excelExport: "excelExport", excelImport: "excelImport", activeSheetChange: "activeSheetChange" }, host: { properties: { "class.k-spreadsheet": "this.hostClass", "attr.role": "this.role" } }, providers: [
4431
5451
  SpreadsheetLocalizationService,
4432
5452
  SpreadsheetService,
@@ -4450,6 +5470,70 @@ class SpreadsheetComponent {
4450
5470
  color="Font color"
4451
5471
  i18n-bold="kendo.spreadsheet.bold|The title of the Bold tool."
4452
5472
  bold="Bold"
5473
+ i18n-dataValidation="kendo.spreadsheet.dataValidation|The title of the Data Validation tool."
5474
+ dataValidation="Data Validation"
5475
+ i18n-validationCellRange="kendo.spreadsheet.validationCellRange|The text of the Cell Range label in the data validation dialog."
5476
+ validationCellRange="Cell Range"
5477
+ i18n-validationCriteria="kendo.spreadsheet.validationCriteria|The text of the Criteria dropdown list label in the data validation dialog."
5478
+ validationCriteria="Criteria"
5479
+ i18n-validationMinValue="kendo.spreadsheet.validationMinValue|The text of the Min value label in the data validation dialog."
5480
+ validationMinValue="Min"
5481
+ i18n-validationMaxValue="kendo.spreadsheet.validationMaxValue|The text of the Max value label in the data validation dialog."
5482
+ validationMaxValue="Max"
5483
+ i18n-validationStartValue="kendo.spreadsheet.validationStartValue|The text of the Start value label in the data validation dialog."
5484
+ validationStartValue="Start"
5485
+ i18n-validationEndValue="kendo.spreadsheet.validationEndValue|The text of the End value label in the data validation dialog."
5486
+ validationEndValue="End"
5487
+ i18n-validationValue="kendo.spreadsheet.validationValue|The text of the Value label in the data validation dialog."
5488
+ validationValue="Text"
5489
+ i18n-validationShowListButtonCheckbox="kendo.spreadsheet.validationShowListButtonCheckbox|The text for the Show list button checkbox label in the data validation dialog."
5490
+ validationShowListButtonCheckbox="Display button to show list"
5491
+ i18n-validationOnInvalidData="kendo.spreadsheet.validationOnInvalidData|The text for the On invalid data label in the data validation dialog."
5492
+ validationOnInvalidData="On invalid data"
5493
+ i18n-validationShowDateButtonCheckbox="kendo.spreadsheet.validationShowDateButtonCheckbox|The text for the Show date button checkbox label in the data validation dialog."
5494
+ validationShowDateButtonCheckbox="Display button to show Calendar"
5495
+ i18n-validationRejectInput="kendo.spreadsheet.validationRejectInput|The text for the Reject input radio button label in the data validation dialog."
5496
+ validationRejectInput="Reject input"
5497
+ i18n-validationShowWarning="kendo.spreadsheet.validationShowWarning|The text for the Show warning radio button label in the data validation dialog."
5498
+ validationShowWarning="Show warning"
5499
+ i18n-validationHintTitle="kendo.spreadsheet.validationHintTitle|The text for the Custom hint title input label in the data validation dialog."
5500
+ validationHintTitle="Custom hint title"
5501
+ i18n-validationHintMessage="kendo.spreadsheet.validationHintMessage|The text for the Custom hint input label in the data validation dialog."
5502
+ validationHintMessage="Custom hint"
5503
+ i18n-validationShowHint="kendo.spreadsheet.validationShowHint|The text for the Show hint radio button label in the data validation dialog."
5504
+ validationShowHint="Show hint"
5505
+ i18n-validationIgnoreBlankCheckbox="kendo.spreadsheet.validationIgnoreBlankCheckbox|The text for the Ignore blank checkbox label in the data validation dialog."
5506
+ validationIgnoreBlankCheckbox="Ignore blank"
5507
+ i18n-validationComparer="kendo.spreadsheet.validationComparer|The text of the Comparer dropdown list label in the data validation dialog."
5508
+ validationComparer="Comparer"
5509
+ i18n-anyValueValidationCriteria="kendo.spreadsheet.anyValueValidationCriteria|The text of the Any value validation criteria"
5510
+ anyValueValidationCriteria="Any value"
5511
+ i18n-numberValidationCriteria="kendo.spreadsheet.numberValidationCriteria|The text of the Number validation criteria"
5512
+ numberValidationCriteria="Number"
5513
+ i18n-textValidationCriteria="kendo.spreadsheet.textValidationCriteria|The text of the Text validation criteria"
5514
+ textValidationCriteria="Text"
5515
+ i18n-dateValidationCriteria="kendo.spreadsheet.dateValidationCriteria|The text of the Date validation criteria"
5516
+ dateValidationCriteria="Date"
5517
+ i18n-customFormulaValidationCriteria="kendo.spreadsheet.customFormulaValidationCriteria|The text of the Custom formula validation criteria"
5518
+ customFormulaValidationCriteria="Custom Formula"
5519
+ i18n-listValidationCriteria="kendo.spreadsheet.listValidationCriteria|The text of the List validation criteria"
5520
+ listValidationCriteria="List"
5521
+ i18n-greaterThanValidationComparer="kendo.spreadsheet.greaterThanValidationComparer|The text of the greater than validation comparer"
5522
+ greaterThanValidationComparer="greater than"
5523
+ i18n-lessThanValidationComparer="kendo.spreadsheet.lessThanValidationComparer|The text of the less than validation comparer"
5524
+ lessThanValidationComparer="less than"
5525
+ i18n-betweenValidationComparer="kendo.spreadsheet.betweenValidationComparer|The text of the between validation comparer"
5526
+ betweenValidationComparer="between"
5527
+ i18n-notBetweenValidationComparer="kendo.spreadsheet.notBetweenValidationComparer|The text of the not between validation comparer"
5528
+ notBetweenValidationComparer="not between"
5529
+ i18n-equalToValidationComparer="kendo.spreadsheet.equalToValidationComparer|The text of the equal to validation comparer"
5530
+ equalToValidationComparer="equal to"
5531
+ i18n-notEqualToValidationComparer="kendo.spreadsheet.notEqualToValidationComparer|The text of the not equal to validation comparer"
5532
+ notEqualToValidationComparer="not equal to"
5533
+ i18n-greaterThanOrEqualToValidationComparer="kendo.spreadsheet.greaterThanOrEqualToValidationComparer|The text of the greater than on equal to validation comparer"
5534
+ greaterThanOrEqualToValidationComparer="greater than or equal to"
5535
+ i18n-lessThanOrEqualToValidationComparer="kendo.spreadsheet.lessThanOrEqualToValidationComparer|The text of the less than on equal to validation comparer"
5536
+ lessThanOrEqualToValidationComparer="less than or equal to"
4453
5537
  i18n-italic="kendo.spreadsheet.italic|The title of the Italic tool."
4454
5538
  italic="Italic"
4455
5539
  i18n-underline="kendo.spreadsheet.underline|The title of the Underline tool."
@@ -4472,6 +5556,8 @@ class SpreadsheetComponent {
4472
5556
  insert="Insert"
4473
5557
  i18n-formatTab="kendo.spreadsheet.formatTab|The text of the Format toolbar tab."
4474
5558
  formatTab="Format"
5559
+ i18n-dataTab="kendo.spreadsheet.dataTab|The text of the Data toolbar tab."
5560
+ dataTab="Data"
4475
5561
  i18n-view="kendo.spreadsheet.view|The text of the View toolbar tab."
4476
5562
  view="View"
4477
5563
  i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
@@ -4544,6 +5630,8 @@ class SpreadsheetComponent {
4544
5630
  dialogRename="Rename"
4545
5631
  i18n-dialogInsert="kendo.spreadsheet.dialogInsert|The text of the **Insert** button in all Spreadsheet dialogs."
4546
5632
  dialogInsert="Insert"
5633
+ i18n-dialogRemove="kendo.spreadsheet.dialogRemove|The text of the **Remove** button in all Spreadsheet dialogs."
5634
+ dialogRemove="Remove"
4547
5635
  i18n-dialogRemoveLink="kendo.spreadsheet.dialogRemoveLink|The text of the **Remove link** button in the Link tool dialog."
4548
5636
  dialogRemoveLink="Remove link"
4549
5637
  i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
@@ -4673,6 +5761,13 @@ class SpreadsheetComponent {
4673
5761
  <kendo-toolbar-separator></kendo-toolbar-separator>
4674
5762
  <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
4675
5763
  </kendo-toolbar>
5764
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'data'"
5765
+ [attr.aria-label]="messageFor('dataTab')"
5766
+ fillMode="flat"
5767
+ class="k-spreadsheet-toolbar"
5768
+ [overflow]="overflow">
5769
+ <kendo-toolbar-button kendoSpreadsheetDataValidation></kendo-toolbar-button>
5770
+ </kendo-toolbar>
4676
5771
  </div>
4677
5772
  <div class="k-spreadsheet-action-bar">
4678
5773
  <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
@@ -4711,7 +5806,7 @@ class SpreadsheetComponent {
4711
5806
  (select)="onContextMenuSelect($event)"></kendo-contextmenu>
4712
5807
 
4713
5808
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
4714
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSpreadsheetLocalizedMessages]" }, { kind: "component", type: MenuComponent, selector: "kendo-menu", inputs: ["appendTo", "menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { kind: "directive", type: MainMenuDirective, selector: "[kendoSpreadsheetMenu]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MenuItemComponent, selector: "kendo-menu-item", inputs: ["text", "url", "disabled", "cssClass", "cssStyle", "icon", "svgIcon", "data", "separator"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "fillMode", "tabindex", "size", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { kind: "component", type: SpreadsheetLoadFileComponent, selector: "kendo-spreadsheet-load-file-tool" }, { kind: "component", type: ToolBarButtonComponent, selector: "kendo-toolbar-button", inputs: ["showText", "showIcon", "text", "style", "className", "title", "disabled", "toggleable", "look", "togglable", "selected", "fillMode", "themeColor", "icon", "iconClass", "svgIcon", "imageUrl"], outputs: ["click", "pointerdown", "selectedChange"], exportAs: ["kendoToolBarButton"] }, { kind: "directive", type: SpreadsheetSaveFileDirective, selector: "[kendoSpreadsheetSaveFile]" }, { kind: "component", type: ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "fillMode", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { kind: "directive", type: SpreadsheetUndoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]" }, { kind: "directive", type: SpreadsheetRedoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]" }, { kind: "component", type: ToolBarSeparatorComponent, selector: "kendo-toolbar-separator", exportAs: ["kendoToolBarSeparator"] }, { kind: "component", type: SpreadsheetFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]" }, { kind: "component", type: SpreadsheetFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]" }, { kind: "directive", type: SpreadsheetIncreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseFontSize]" }, { kind: "directive", type: SpreadsheetDecreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseFontSize]" }, { kind: "directive", type: SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { kind: "directive", type: SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { kind: "directive", type: SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { kind: "component", type: SpreadsheetForeColorComponent, selector: "kendo-spreadsheet-forecolor-tool" }, { kind: "component", type: SpreadsheetBackColorComponent, selector: "kendo-spreadsheet-backcolor-tool" }, { kind: "component", type: ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: ["arrowIcon", "title", "showText", "showIcon", "text", "icon", "svgIcon", "iconClass", "imageUrl", "popupSettings", "look", "primary", "fillMode", "themeColor", "buttonClass", "textField", "disabled", "data"], outputs: ["itemClick", "open", "close"], exportAs: ["kendoToolBarDropDownButton"] }, { kind: "directive", type: SpreadsheetHorizontalTextAlignDirective, selector: "[kendoSpreadsheetHorizontalTextAlign]" }, { kind: "directive", type: SpreadsheetVerticalTextAlignDirective, selector: "[kendoSpreadsheetVerticalTextAlign]" }, { kind: "directive", type: SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { kind: "directive", type: SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { kind: "directive", type: SpreadsheetInsertLinkDirective, selector: "kendo-toolbar-button[kendoSpreadsheetInsertLink]" }, { kind: "directive", type: SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]" }, { kind: "directive", type: SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]" }, { kind: "directive", type: SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]" }, { kind: "directive", type: SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]" }, { kind: "directive", type: SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]" }, { kind: "directive", type: SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]" }, { kind: "directive", type: SpreadsheetDecreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseDecimal]" }, { kind: "directive", type: SpreadsheetIncreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseDecimal]" }, { kind: "directive", type: SpreadsheetMergeDirective, selector: "[kendoSpreadsheetMerge]" }, { kind: "directive", type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { kind: "component", type: NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: ["data", "spreadsheetWidget"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]", inputs: ["formulaListMaxHeight"] }, { kind: "component", type: SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: ["sheets", "sheetDescriptors"] }, { kind: "component", type: ContextMenuComponent, selector: "kendo-contextmenu", inputs: ["showOn", "target", "filter", "alignToAnchor", "vertical", "popupAnimate", "popupAlign", "anchorAlign", "collision", "appendTo", "ariaLabel"], outputs: ["popupOpen", "popupClose", "select", "open", "close"], exportAs: ["kendoContextMenu"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }] });
5809
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSpreadsheetLocalizedMessages]" }, { kind: "component", type: MenuComponent, selector: "kendo-menu", inputs: ["appendTo", "menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { kind: "directive", type: MainMenuDirective, selector: "[kendoSpreadsheetMenu]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MenuItemComponent, selector: "kendo-menu-item", inputs: ["text", "url", "disabled", "cssClass", "cssStyle", "icon", "svgIcon", "data", "separator"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "fillMode", "tabindex", "size", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { kind: "component", type: SpreadsheetLoadFileComponent, selector: "kendo-spreadsheet-load-file-tool" }, { kind: "component", type: ToolBarButtonComponent, selector: "kendo-toolbar-button", inputs: ["showText", "showIcon", "text", "style", "className", "title", "disabled", "toggleable", "look", "togglable", "selected", "fillMode", "themeColor", "icon", "iconClass", "svgIcon", "imageUrl"], outputs: ["click", "pointerdown", "selectedChange"], exportAs: ["kendoToolBarButton"] }, { kind: "directive", type: SpreadsheetSaveFileDirective, selector: "[kendoSpreadsheetSaveFile]" }, { kind: "component", type: ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "fillMode", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { kind: "directive", type: SpreadsheetUndoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]" }, { kind: "directive", type: SpreadsheetRedoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]" }, { kind: "component", type: ToolBarSeparatorComponent, selector: "kendo-toolbar-separator", exportAs: ["kendoToolBarSeparator"] }, { kind: "component", type: SpreadsheetFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]" }, { kind: "component", type: SpreadsheetFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]" }, { kind: "directive", type: SpreadsheetIncreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseFontSize]" }, { kind: "directive", type: SpreadsheetDecreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseFontSize]" }, { kind: "directive", type: SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { kind: "directive", type: SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { kind: "directive", type: SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { kind: "component", type: SpreadsheetForeColorComponent, selector: "kendo-spreadsheet-forecolor-tool" }, { kind: "component", type: SpreadsheetBackColorComponent, selector: "kendo-spreadsheet-backcolor-tool" }, { kind: "component", type: ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: ["arrowIcon", "title", "showText", "showIcon", "text", "icon", "svgIcon", "iconClass", "imageUrl", "popupSettings", "look", "primary", "fillMode", "themeColor", "buttonClass", "textField", "disabled", "data"], outputs: ["itemClick", "open", "close"], exportAs: ["kendoToolBarDropDownButton"] }, { kind: "directive", type: SpreadsheetHorizontalTextAlignDirective, selector: "[kendoSpreadsheetHorizontalTextAlign]" }, { kind: "directive", type: SpreadsheetVerticalTextAlignDirective, selector: "[kendoSpreadsheetVerticalTextAlign]" }, { kind: "directive", type: SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { kind: "directive", type: SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { kind: "directive", type: SpreadsheetInsertLinkDirective, selector: "kendo-toolbar-button[kendoSpreadsheetInsertLink]" }, { kind: "directive", type: SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]" }, { kind: "directive", type: SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]" }, { kind: "directive", type: SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]" }, { kind: "directive", type: SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]" }, { kind: "directive", type: SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]" }, { kind: "directive", type: SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]" }, { kind: "directive", type: SpreadsheetDecreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseDecimal]" }, { kind: "directive", type: SpreadsheetIncreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseDecimal]" }, { kind: "directive", type: SpreadsheetMergeDirective, selector: "[kendoSpreadsheetMerge]" }, { kind: "directive", type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { kind: "component", type: NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: ["data", "spreadsheetWidget"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]", inputs: ["formulaListMaxHeight"] }, { kind: "component", type: SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: ["sheets", "sheetDescriptors"] }, { kind: "component", type: ContextMenuComponent, selector: "kendo-contextmenu", inputs: ["showOn", "target", "filter", "alignToAnchor", "vertical", "popupAnimate", "popupAlign", "anchorAlign", "collision", "appendTo", "ariaLabel"], outputs: ["popupOpen", "popupClose", "select", "open", "close"], exportAs: ["kendoContextMenu"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }, { kind: "directive", type: SpreadsheetDataValidationDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDataValidation]" }] });
4715
5810
  }
4716
5811
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetComponent, decorators: [{
4717
5812
  type: Component,
@@ -4742,6 +5837,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4742
5837
  color="Font color"
4743
5838
  i18n-bold="kendo.spreadsheet.bold|The title of the Bold tool."
4744
5839
  bold="Bold"
5840
+ i18n-dataValidation="kendo.spreadsheet.dataValidation|The title of the Data Validation tool."
5841
+ dataValidation="Data Validation"
5842
+ i18n-validationCellRange="kendo.spreadsheet.validationCellRange|The text of the Cell Range label in the data validation dialog."
5843
+ validationCellRange="Cell Range"
5844
+ i18n-validationCriteria="kendo.spreadsheet.validationCriteria|The text of the Criteria dropdown list label in the data validation dialog."
5845
+ validationCriteria="Criteria"
5846
+ i18n-validationMinValue="kendo.spreadsheet.validationMinValue|The text of the Min value label in the data validation dialog."
5847
+ validationMinValue="Min"
5848
+ i18n-validationMaxValue="kendo.spreadsheet.validationMaxValue|The text of the Max value label in the data validation dialog."
5849
+ validationMaxValue="Max"
5850
+ i18n-validationStartValue="kendo.spreadsheet.validationStartValue|The text of the Start value label in the data validation dialog."
5851
+ validationStartValue="Start"
5852
+ i18n-validationEndValue="kendo.spreadsheet.validationEndValue|The text of the End value label in the data validation dialog."
5853
+ validationEndValue="End"
5854
+ i18n-validationValue="kendo.spreadsheet.validationValue|The text of the Value label in the data validation dialog."
5855
+ validationValue="Text"
5856
+ i18n-validationShowListButtonCheckbox="kendo.spreadsheet.validationShowListButtonCheckbox|The text for the Show list button checkbox label in the data validation dialog."
5857
+ validationShowListButtonCheckbox="Display button to show list"
5858
+ i18n-validationOnInvalidData="kendo.spreadsheet.validationOnInvalidData|The text for the On invalid data label in the data validation dialog."
5859
+ validationOnInvalidData="On invalid data"
5860
+ i18n-validationShowDateButtonCheckbox="kendo.spreadsheet.validationShowDateButtonCheckbox|The text for the Show date button checkbox label in the data validation dialog."
5861
+ validationShowDateButtonCheckbox="Display button to show Calendar"
5862
+ i18n-validationRejectInput="kendo.spreadsheet.validationRejectInput|The text for the Reject input radio button label in the data validation dialog."
5863
+ validationRejectInput="Reject input"
5864
+ i18n-validationShowWarning="kendo.spreadsheet.validationShowWarning|The text for the Show warning radio button label in the data validation dialog."
5865
+ validationShowWarning="Show warning"
5866
+ i18n-validationHintTitle="kendo.spreadsheet.validationHintTitle|The text for the Custom hint title input label in the data validation dialog."
5867
+ validationHintTitle="Custom hint title"
5868
+ i18n-validationHintMessage="kendo.spreadsheet.validationHintMessage|The text for the Custom hint input label in the data validation dialog."
5869
+ validationHintMessage="Custom hint"
5870
+ i18n-validationShowHint="kendo.spreadsheet.validationShowHint|The text for the Show hint radio button label in the data validation dialog."
5871
+ validationShowHint="Show hint"
5872
+ i18n-validationIgnoreBlankCheckbox="kendo.spreadsheet.validationIgnoreBlankCheckbox|The text for the Ignore blank checkbox label in the data validation dialog."
5873
+ validationIgnoreBlankCheckbox="Ignore blank"
5874
+ i18n-validationComparer="kendo.spreadsheet.validationComparer|The text of the Comparer dropdown list label in the data validation dialog."
5875
+ validationComparer="Comparer"
5876
+ i18n-anyValueValidationCriteria="kendo.spreadsheet.anyValueValidationCriteria|The text of the Any value validation criteria"
5877
+ anyValueValidationCriteria="Any value"
5878
+ i18n-numberValidationCriteria="kendo.spreadsheet.numberValidationCriteria|The text of the Number validation criteria"
5879
+ numberValidationCriteria="Number"
5880
+ i18n-textValidationCriteria="kendo.spreadsheet.textValidationCriteria|The text of the Text validation criteria"
5881
+ textValidationCriteria="Text"
5882
+ i18n-dateValidationCriteria="kendo.spreadsheet.dateValidationCriteria|The text of the Date validation criteria"
5883
+ dateValidationCriteria="Date"
5884
+ i18n-customFormulaValidationCriteria="kendo.spreadsheet.customFormulaValidationCriteria|The text of the Custom formula validation criteria"
5885
+ customFormulaValidationCriteria="Custom Formula"
5886
+ i18n-listValidationCriteria="kendo.spreadsheet.listValidationCriteria|The text of the List validation criteria"
5887
+ listValidationCriteria="List"
5888
+ i18n-greaterThanValidationComparer="kendo.spreadsheet.greaterThanValidationComparer|The text of the greater than validation comparer"
5889
+ greaterThanValidationComparer="greater than"
5890
+ i18n-lessThanValidationComparer="kendo.spreadsheet.lessThanValidationComparer|The text of the less than validation comparer"
5891
+ lessThanValidationComparer="less than"
5892
+ i18n-betweenValidationComparer="kendo.spreadsheet.betweenValidationComparer|The text of the between validation comparer"
5893
+ betweenValidationComparer="between"
5894
+ i18n-notBetweenValidationComparer="kendo.spreadsheet.notBetweenValidationComparer|The text of the not between validation comparer"
5895
+ notBetweenValidationComparer="not between"
5896
+ i18n-equalToValidationComparer="kendo.spreadsheet.equalToValidationComparer|The text of the equal to validation comparer"
5897
+ equalToValidationComparer="equal to"
5898
+ i18n-notEqualToValidationComparer="kendo.spreadsheet.notEqualToValidationComparer|The text of the not equal to validation comparer"
5899
+ notEqualToValidationComparer="not equal to"
5900
+ i18n-greaterThanOrEqualToValidationComparer="kendo.spreadsheet.greaterThanOrEqualToValidationComparer|The text of the greater than on equal to validation comparer"
5901
+ greaterThanOrEqualToValidationComparer="greater than or equal to"
5902
+ i18n-lessThanOrEqualToValidationComparer="kendo.spreadsheet.lessThanOrEqualToValidationComparer|The text of the less than on equal to validation comparer"
5903
+ lessThanOrEqualToValidationComparer="less than or equal to"
4745
5904
  i18n-italic="kendo.spreadsheet.italic|The title of the Italic tool."
4746
5905
  italic="Italic"
4747
5906
  i18n-underline="kendo.spreadsheet.underline|The title of the Underline tool."
@@ -4764,6 +5923,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4764
5923
  insert="Insert"
4765
5924
  i18n-formatTab="kendo.spreadsheet.formatTab|The text of the Format toolbar tab."
4766
5925
  formatTab="Format"
5926
+ i18n-dataTab="kendo.spreadsheet.dataTab|The text of the Data toolbar tab."
5927
+ dataTab="Data"
4767
5928
  i18n-view="kendo.spreadsheet.view|The text of the View toolbar tab."
4768
5929
  view="View"
4769
5930
  i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
@@ -4836,6 +5997,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4836
5997
  dialogRename="Rename"
4837
5998
  i18n-dialogInsert="kendo.spreadsheet.dialogInsert|The text of the **Insert** button in all Spreadsheet dialogs."
4838
5999
  dialogInsert="Insert"
6000
+ i18n-dialogRemove="kendo.spreadsheet.dialogRemove|The text of the **Remove** button in all Spreadsheet dialogs."
6001
+ dialogRemove="Remove"
4839
6002
  i18n-dialogRemoveLink="kendo.spreadsheet.dialogRemoveLink|The text of the **Remove link** button in the Link tool dialog."
4840
6003
  dialogRemoveLink="Remove link"
4841
6004
  i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
@@ -4965,6 +6128,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4965
6128
  <kendo-toolbar-separator></kendo-toolbar-separator>
4966
6129
  <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
4967
6130
  </kendo-toolbar>
6131
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'data'"
6132
+ [attr.aria-label]="messageFor('dataTab')"
6133
+ fillMode="flat"
6134
+ class="k-spreadsheet-toolbar"
6135
+ [overflow]="overflow">
6136
+ <kendo-toolbar-button kendoSpreadsheetDataValidation></kendo-toolbar-button>
6137
+ </kendo-toolbar>
4968
6138
  </div>
4969
6139
  <div class="k-spreadsheet-action-bar">
4970
6140
  <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
@@ -5005,9 +6175,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5005
6175
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
5006
6176
  `,
5007
6177
  standalone: true,
5008
- imports: [LocalizedMessagesDirective, MenuComponent, MainMenuDirective, NgFor, MenuItemComponent, NgIf, ToolBarComponent, SpreadsheetLoadFileComponent, ToolBarButtonComponent, SpreadsheetSaveFileDirective, ToolBarButtonGroupComponent, SpreadsheetUndoDirective, SpreadsheetRedoDirective, ToolBarSeparatorComponent, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetIncreaseFontSizeDirective, SpreadsheetDecreaseFontSizeDirective, SpreadsheetBoldDirective, SpreadsheetItalicDirective, SpreadsheetUnderlineDirective, SpreadsheetForeColorComponent, SpreadsheetBackColorComponent, ToolBarDropDownButtonComponent, SpreadsheetHorizontalTextAlignDirective, SpreadsheetVerticalTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetFormatDirective, SpreadsheetInsertLinkDirective, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetDecreaseDecimalDirective, SpreadsheetIncreaseDecimalDirective, SpreadsheetMergeDirective, SpreadsheetGridLinesDirective, NameBoxComponent, IconWrapperComponent, FormulaInputDirective, SheetsBarComponent, ContextMenuComponent, WatermarkOverlayComponent]
6178
+ imports: [LocalizedMessagesDirective, MenuComponent, MainMenuDirective, NgFor, MenuItemComponent, NgIf, ToolBarComponent, SpreadsheetLoadFileComponent, ToolBarButtonComponent, SpreadsheetSaveFileDirective, ToolBarButtonGroupComponent, SpreadsheetUndoDirective, SpreadsheetRedoDirective, ToolBarSeparatorComponent, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetIncreaseFontSizeDirective, SpreadsheetDecreaseFontSizeDirective, SpreadsheetBoldDirective, SpreadsheetItalicDirective, SpreadsheetUnderlineDirective, SpreadsheetForeColorComponent, SpreadsheetBackColorComponent, ToolBarDropDownButtonComponent, SpreadsheetHorizontalTextAlignDirective, SpreadsheetVerticalTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetFormatDirective, SpreadsheetInsertLinkDirective, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetDecreaseDecimalDirective, SpreadsheetIncreaseDecimalDirective, SpreadsheetMergeDirective, SpreadsheetGridLinesDirective, NameBoxComponent, IconWrapperComponent, FormulaInputDirective, SheetsBarComponent, ContextMenuComponent, WatermarkOverlayComponent, SpreadsheetDataValidationDirective]
5009
6179
  }]
5010
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1$3.IntlService }, { type: i0.ElementRef }, { type: i2.LocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: ErrorHandlingService }, { type: i1$1.DialogService }]; }, propDecorators: { formulaBarInputRef: [{
6180
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1$4.IntlService }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: ErrorHandlingService }, { type: i1$2.DialogService }, { type: i1$1.PopupService }, { type: i0.ViewContainerRef }]; }, propDecorators: { formulaBarInputRef: [{
5011
6181
  type: ViewChild,
5012
6182
  args: ['formulaBar', { read: FormulaInputDirective }]
5013
6183
  }], formulaCellInputRef: [{
@@ -5082,7 +6252,7 @@ class CustomMessagesComponent extends MessagesDirective {
5082
6252
  get override() {
5083
6253
  return true;
5084
6254
  }
5085
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
6255
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
5086
6256
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CustomMessagesComponent, isStandalone: true, selector: "kendo-spreadsheet-messages", providers: [
5087
6257
  {
5088
6258
  provide: MessagesDirective,
@@ -5103,7 +6273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5103
6273
  selector: 'kendo-spreadsheet-messages',
5104
6274
  standalone: true
5105
6275
  }]
5106
- }], ctorParameters: function () { return [{ type: i2.LocalizationService }]; } });
6276
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
5107
6277
 
5108
6278
  /**
5109
6279
  * @hidden
@@ -5140,7 +6310,7 @@ class SpreadsheetTextAlignDirective {
5140
6310
  };
5141
6311
  this.spreadsheetService.spreadsheet.executeCommand(options);
5142
6312
  }
5143
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetTextAlignDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
6313
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetTextAlignDirective, deps: [{ token: i1$3.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
5144
6314
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SpreadsheetTextAlignDirective, isStandalone: true, selector: "[kendoSpreadsheetTextAlign]", ngImport: i0 });
5145
6315
  }
5146
6316
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetTextAlignDirective, decorators: [{
@@ -5149,7 +6319,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5149
6319
  selector: '[kendoSpreadsheetTextAlign]',
5150
6320
  standalone: true
5151
6321
  }]
5152
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
6322
+ }], ctorParameters: function () { return [{ type: i1$3.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
5153
6323
 
5154
6324
  /**
5155
6325
  * Utility array that contains all `@progress/kendo-angular-spreadsheet` related components and directives.
@@ -5158,6 +6328,7 @@ const KENDO_SPREADSHEET = [
5158
6328
  SpreadsheetComponent,
5159
6329
  CustomMessagesComponent,
5160
6330
  SpreadsheetBoldDirective,
6331
+ SpreadsheetDataValidationDirective,
5161
6332
  SpreadsheetItalicDirective,
5162
6333
  SpreadsheetUnderlineDirective,
5163
6334
  SpreadsheetLoadFileComponent,
@@ -5195,7 +6366,7 @@ const KENDO_SPREADSHEET = [
5195
6366
  */
5196
6367
  class SpreadsheetModule {
5197
6368
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5198
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetModule, imports: [SpreadsheetComponent, CustomMessagesComponent, SpreadsheetBoldDirective, SpreadsheetItalicDirective, SpreadsheetUnderlineDirective, SpreadsheetLoadFileComponent, SpreadsheetSaveFileDirective, SpreadsheetFormatDirective, SpreadsheetUndoDirective, SpreadsheetRedoDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetBackColorComponent, SpreadsheetForeColorComponent, SpreadsheetGridLinesDirective, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetMergeDirective, SpreadsheetInsertLinkDirective, SpreadsheetIncreaseFontSizeDirective, SpreadsheetDecreaseFontSizeDirective, SpreadsheetIncreaseDecimalDirective, SpreadsheetDecreaseDecimalDirective, SpreadsheetHorizontalTextAlignDirective, SpreadsheetVerticalTextAlignDirective], exports: [SpreadsheetComponent, CustomMessagesComponent, SpreadsheetBoldDirective, SpreadsheetItalicDirective, SpreadsheetUnderlineDirective, SpreadsheetLoadFileComponent, SpreadsheetSaveFileDirective, SpreadsheetFormatDirective, SpreadsheetUndoDirective, SpreadsheetRedoDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetBackColorComponent, SpreadsheetForeColorComponent, SpreadsheetGridLinesDirective, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetMergeDirective, SpreadsheetInsertLinkDirective, SpreadsheetIncreaseFontSizeDirective, SpreadsheetDecreaseFontSizeDirective, SpreadsheetIncreaseDecimalDirective, SpreadsheetDecreaseDecimalDirective, SpreadsheetHorizontalTextAlignDirective, SpreadsheetVerticalTextAlignDirective] });
6369
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetModule, imports: [SpreadsheetComponent, CustomMessagesComponent, SpreadsheetBoldDirective, SpreadsheetDataValidationDirective, SpreadsheetItalicDirective, SpreadsheetUnderlineDirective, SpreadsheetLoadFileComponent, SpreadsheetSaveFileDirective, SpreadsheetFormatDirective, SpreadsheetUndoDirective, SpreadsheetRedoDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetBackColorComponent, SpreadsheetForeColorComponent, SpreadsheetGridLinesDirective, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetMergeDirective, SpreadsheetInsertLinkDirective, SpreadsheetIncreaseFontSizeDirective, SpreadsheetDecreaseFontSizeDirective, SpreadsheetIncreaseDecimalDirective, SpreadsheetDecreaseDecimalDirective, SpreadsheetHorizontalTextAlignDirective, SpreadsheetVerticalTextAlignDirective], exports: [SpreadsheetComponent, CustomMessagesComponent, SpreadsheetBoldDirective, SpreadsheetDataValidationDirective, SpreadsheetItalicDirective, SpreadsheetUnderlineDirective, SpreadsheetLoadFileComponent, SpreadsheetSaveFileDirective, SpreadsheetFormatDirective, SpreadsheetUndoDirective, SpreadsheetRedoDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetBackColorComponent, SpreadsheetForeColorComponent, SpreadsheetGridLinesDirective, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetMergeDirective, SpreadsheetInsertLinkDirective, SpreadsheetIncreaseFontSizeDirective, SpreadsheetDecreaseFontSizeDirective, SpreadsheetIncreaseDecimalDirective, SpreadsheetDecreaseDecimalDirective, SpreadsheetHorizontalTextAlignDirective, SpreadsheetVerticalTextAlignDirective] });
5199
6370
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetModule, providers: [IconsService, PopupService, ResizeBatchService, DialogContainerService, DialogService, WindowService, WindowContainerService], imports: [SpreadsheetComponent, SpreadsheetLoadFileComponent, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetBackColorComponent, SpreadsheetForeColorComponent] });
5200
6371
  }
5201
6372
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetModule, decorators: [{
@@ -5211,5 +6382,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5211
6382
  * Generated bundle index. Do not edit.
5212
6383
  */
5213
6384
 
5214
- export { CustomMessagesComponent, FormulaInputDirective, FormulaListComponent, KENDO_SPREADSHEET, NameBoxComponent, SheetsBarComponent, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetBackColorComponent, SpreadsheetBoldDirective, SpreadsheetComponent, SpreadsheetDecreaseDecimalDirective, SpreadsheetDecreaseFontSizeDirective, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetForeColorComponent, SpreadsheetFormatDirective, SpreadsheetGridLinesDirective, SpreadsheetHorizontalTextAlignDirective, SpreadsheetIncreaseDecimalDirective, SpreadsheetIncreaseFontSizeDirective, SpreadsheetInsertLinkDirective, SpreadsheetItalicDirective, SpreadsheetLoadFileComponent, SpreadsheetMergeDirective, SpreadsheetModule, SpreadsheetRedoDirective, SpreadsheetSaveFileDirective, SpreadsheetTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetUnderlineDirective, SpreadsheetUndoDirective, SpreadsheetVerticalTextAlignDirective };
6385
+ export { CustomMessagesComponent, FormulaInputDirective, FormulaListComponent, KENDO_SPREADSHEET, NameBoxComponent, SheetsBarComponent, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetBackColorComponent, SpreadsheetBoldDirective, SpreadsheetComponent, SpreadsheetDataValidationDirective, SpreadsheetDecreaseDecimalDirective, SpreadsheetDecreaseFontSizeDirective, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetForeColorComponent, SpreadsheetFormatDirective, SpreadsheetGridLinesDirective, SpreadsheetHorizontalTextAlignDirective, SpreadsheetIncreaseDecimalDirective, SpreadsheetIncreaseFontSizeDirective, SpreadsheetInsertLinkDirective, SpreadsheetItalicDirective, SpreadsheetLoadFileComponent, SpreadsheetMergeDirective, SpreadsheetModule, SpreadsheetRedoDirective, SpreadsheetSaveFileDirective, SpreadsheetTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetUnderlineDirective, SpreadsheetUndoDirective, SpreadsheetVerticalTextAlignDirective };
5215
6386