@progress/kendo-angular-spreadsheet 18.5.0-develop.1 → 18.5.0-develop.10

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.
@@ -8,9 +8,9 @@ import { Subscription } from 'rxjs';
8
8
  import { take } from 'rxjs/operators';
9
9
  import { validatePackage } from '@progress/kendo-licensing';
10
10
  import { packageMetadata } from './package-metadata';
11
- import { SpreadsheetWidget } from '@progress/kendo-spreadsheet-common';
11
+ import { SpreadsheetWidget, registerEditor, Matrix } from '@progress/kendo-spreadsheet-common';
12
12
  import { localeData, IntlService } from '@progress/kendo-angular-intl';
13
- import { downloadIcon, folderOpenIcon, formulaFxIcon } from '@progress/kendo-svg-icons';
13
+ import { caretAltDownIcon, downloadIcon, folderOpenIcon, formulaFxIcon } from '@progress/kendo-svg-icons';
14
14
  import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
15
15
  import { PopupService } from '@progress/kendo-angular-popup';
16
16
  import { ContextMenuComponent, MenuItemComponent, MenuComponent } from '@progress/kendo-angular-menu';
@@ -59,6 +59,8 @@ import { SpreadsheetSaveFileDirective } from './tools/save-file-tool.directive';
59
59
  import { SpreadsheetLoadFileComponent } from './tools/load-file.component';
60
60
  import { MainMenuDirective } from './common/main-menu.directive';
61
61
  import { LocalizedMessagesDirective } from './localization/localized-messages.directive';
62
+ import { SpreadsheetDataValidationDirective } from './tools/data-validation-tool.directive';
63
+ import { ListEditorComponent } from './common/list-editor.component';
62
64
  import * as i0 from "@angular/core";
63
65
  import * as i1 from "@progress/kendo-angular-intl";
64
66
  import * as i2 from "@progress/kendo-angular-l10n";
@@ -66,6 +68,7 @@ import * as i3 from "./common/spreadsheet.service";
66
68
  import * as i4 from "./tools/tools.service";
67
69
  import * as i5 from "./common/error-handling.service";
68
70
  import * as i6 from "@progress/kendo-angular-dialog";
71
+ import * as i7 from "@progress/kendo-angular-popup";
69
72
  /**
70
73
  * Represents the [Kendo UI Spreadsheet component for Angular]({% slug overview_spreadsheet %}).
71
74
  */
@@ -78,6 +81,8 @@ export class SpreadsheetComponent {
78
81
  toolsService;
79
82
  errorService;
80
83
  dialogService;
84
+ popupService;
85
+ container;
81
86
  formulaBarInputRef;
82
87
  formulaCellInputRef;
83
88
  nameBoxRef;
@@ -93,7 +98,7 @@ export class SpreadsheetComponent {
93
98
  this.ngZone.onStable.pipe(take(1)).subscribe(() => {
94
99
  const normalizedItems = items.map(item => ({
95
100
  active: item.active,
96
- text: item.id === 'format' ? this.messageFor('formatTab') : this.messageFor(item.id),
101
+ text: item.id === 'format' || item.id === 'data' ? this.messageFor(`${item.id}Tab`) : this.messageFor(item.id),
97
102
  cssClass: item.active ? 'k-active' : null,
98
103
  id: item.id
99
104
  }));
@@ -239,7 +244,8 @@ export class SpreadsheetComponent {
239
244
  _menuItems;
240
245
  currentRange;
241
246
  subs = new Subscription();
242
- constructor(ngZone, intl, host, localization, spreadsheetService, toolsService, errorService, dialogService) {
247
+ popupRef;
248
+ constructor(ngZone, intl, host, localization, spreadsheetService, toolsService, errorService, dialogService, popupService, container) {
243
249
  this.ngZone = ngZone;
244
250
  this.intl = intl;
245
251
  this.host = host;
@@ -248,6 +254,8 @@ export class SpreadsheetComponent {
248
254
  this.toolsService = toolsService;
249
255
  this.errorService = errorService;
250
256
  this.dialogService = dialogService;
257
+ this.popupService = popupService;
258
+ this.container = container;
251
259
  const isValid = validatePackage(packageMetadata);
252
260
  this.showLicenseWatermark = shouldShowValidationUI(isValid);
253
261
  ngZone.onStable.pipe(take(1)).subscribe(() => {
@@ -266,6 +274,9 @@ export class SpreadsheetComponent {
266
274
  }, {
267
275
  id: 'format',
268
276
  text: this.messageFor('formatTab')
277
+ }, {
278
+ id: 'data',
279
+ text: this.messageFor('dataTab')
269
280
  }, {
270
281
  id: 'view',
271
282
  text: this.messageFor('view')
@@ -299,9 +310,16 @@ export class SpreadsheetComponent {
299
310
  });
300
311
  this.subs.add(this.spreadsheetService.sheetsChanged.subscribe(this.onSheetsChanged.bind(this)));
301
312
  this.subs.add(this.spreadsheetService.activeSheetChanged.subscribe(this.onActiveSheetChanged.bind(this)));
302
- this.subs.add(this.spreadsheetService.selectionChanged.subscribe(range => this.currentRange = range));
313
+ this.subs.add(this.spreadsheetService.selectionChanged.subscribe(range => {
314
+ this.currentRange = range;
315
+ if (this.popupRef) {
316
+ this.popupRef.close();
317
+ this.popupRef = null;
318
+ }
319
+ }));
303
320
  this.spreadsheetService.dialogContainer = this.dialogContainer;
304
321
  });
322
+ this.registerEditors();
305
323
  }
306
324
  ngOnChanges(changes) {
307
325
  const dynamicOptions = [
@@ -409,9 +427,19 @@ export class SpreadsheetComponent {
409
427
  onKeyDown = (e) => {
410
428
  const isCtrl = e.ctrlKey || e.metaKey;
411
429
  const shift = e.shiftKey;
430
+ const altKey = e.altKey;
412
431
  if (isCtrl && shift && e.keyCode === Keys.KeyS) {
413
432
  this.spreadsheetService.onSheetsBarFocus.next();
414
433
  }
434
+ if (altKey) {
435
+ const currentSheet = e.sender.activeSheet();
436
+ const validation = currentSheet.range(currentSheet.activeCell()).validation();
437
+ if (isPresent(validation) && validation.dataType === 'list') {
438
+ if (e.keyCode === Keys.ArrowDown) {
439
+ this.spreadsheetWidget.view.openCustomEditor();
440
+ }
441
+ }
442
+ }
415
443
  };
416
444
  /**
417
445
  * @hidden
@@ -496,7 +524,14 @@ export class SpreadsheetComponent {
496
524
  rows: this.rows,
497
525
  formulaBarInputRef: { current: this.formulaBarInputRef.current },
498
526
  formulaCellInputRef: { current: this.formulaCellInputRef.current },
499
- nameBoxRef: { current: this.nameBoxRef.current }
527
+ nameBoxRef: { current: this.nameBoxRef.current },
528
+ getIconHTMLString: (options) => {
529
+ const iconWrapper = this.container.createComponent(IconWrapperComponent);
530
+ iconWrapper.instance.name = options.iconName;
531
+ iconWrapper.instance.svgIcon = options.svgIcon;
532
+ iconWrapper.changeDetectorRef.detectChanges();
533
+ return iconWrapper.instance.element.nativeElement;
534
+ }
500
535
  };
501
536
  }
502
537
  contextMenuItemsForTarget(target, unhide, unmerge) {
@@ -667,7 +702,48 @@ export class SpreadsheetComponent {
667
702
  });
668
703
  }
669
704
  };
670
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1.IntlService }, { token: i0.ElementRef }, { token: i2.LocalizationService }, { token: i3.SpreadsheetService }, { token: i4.SpreadsheetToolsService }, { token: i5.ErrorHandlingService }, { token: i6.DialogService }], target: i0.ɵɵFactoryTarget.Component });
705
+ registerEditors() {
706
+ registerEditor('_validation_list', () => {
707
+ return {
708
+ edit: (options) => {
709
+ this.popupRef?.close();
710
+ this.popupRef = null;
711
+ this.popupRef = this.popupService.open({
712
+ anchor: options.view.element.querySelector('.k-spreadsheet-editor-button'),
713
+ content: ListEditorComponent,
714
+ popupAlign: options.alignLeft ? { horizontal: 'right', vertical: 'top' } : { horizontal: 'left', vertical: 'top' },
715
+ anchorAlign: options.alignLeft ? { horizontal: 'right', vertical: 'bottom' } : { horizontal: 'left', vertical: 'bottom' },
716
+ popupClass: 'k-spreadsheet-list-popup'
717
+ });
718
+ const list = this.popupRef.content.instance;
719
+ list.itemSelect.subscribe((item) => {
720
+ this.popupRef.close();
721
+ this.popupRef = null;
722
+ const itemValue = item.value;
723
+ if (isPresent(itemValue)) {
724
+ options.callback(itemValue);
725
+ }
726
+ });
727
+ list.close.subscribe(() => {
728
+ this.popupRef.close();
729
+ this.popupRef = null;
730
+ });
731
+ const items = options.validation.from.value;
732
+ const data = [];
733
+ const add = (el) => { data.push({ value: el }); };
734
+ if (items instanceof Matrix) {
735
+ items.each(add, false);
736
+ }
737
+ else {
738
+ (items + "").split(/\s*,\s*/).forEach(add);
739
+ }
740
+ list.data = data;
741
+ },
742
+ icon: { iconName: 'caret-alt-down', svgIcon: caretAltDownIcon }
743
+ };
744
+ });
745
+ }
746
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1.IntlService }, { token: i0.ElementRef }, { token: i2.LocalizationService }, { token: i3.SpreadsheetService }, { token: i4.SpreadsheetToolsService }, { token: i5.ErrorHandlingService }, { token: i6.DialogService }, { token: i7.PopupService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
671
747
  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: [
672
748
  SpreadsheetLocalizationService,
673
749
  SpreadsheetService,
@@ -691,6 +767,70 @@ export class SpreadsheetComponent {
691
767
  color="Font color"
692
768
  i18n-bold="kendo.spreadsheet.bold|The title of the Bold tool."
693
769
  bold="Bold"
770
+ i18n-dataValidation="kendo.spreadsheet.dataValidation|The title of the Data Validation tool."
771
+ dataValidation="Data Validation"
772
+ i18n-validationCellRange="kendo.spreadsheet.validationCellRange|The text of the Cell Range label in the data validation dialog."
773
+ validationCellRange="Cell Range"
774
+ i18n-validationCriteria="kendo.spreadsheet.validationCriteria|The text of the Criteria dropdown list label in the data validation dialog."
775
+ validationCriteria="Criteria"
776
+ i18n-validationMinValue="kendo.spreadsheet.validationMinValue|The text of the Min value label in the data validation dialog."
777
+ validationMinValue="Min"
778
+ i18n-validationMaxValue="kendo.spreadsheet.validationMaxValue|The text of the Max value label in the data validation dialog."
779
+ validationMaxValue="Max"
780
+ i18n-validationStartValue="kendo.spreadsheet.validationStartValue|The text of the Start value label in the data validation dialog."
781
+ validationStartValue="Start"
782
+ i18n-validationEndValue="kendo.spreadsheet.validationEndValue|The text of the End value label in the data validation dialog."
783
+ validationEndValue="End"
784
+ i18n-validationValue="kendo.spreadsheet.validationValue|The text of the Value label in the data validation dialog."
785
+ validationValue="Text"
786
+ i18n-validationShowListButtonCheckbox="kendo.spreadsheet.validationShowListButtonCheckbox|The text for the Show list button checkbox label in the data validation dialog."
787
+ validationShowListButtonCheckbox="Display button to show list"
788
+ i18n-validationOnInvalidData="kendo.spreadsheet.validationOnInvalidData|The text for the On invalid data label in the data validation dialog."
789
+ validationOnInvalidData="On invalid data"
790
+ i18n-validationShowDateButtonCheckbox="kendo.spreadsheet.validationShowDateButtonCheckbox|The text for the Show date button checkbox label in the data validation dialog."
791
+ validationShowDateButtonCheckbox="Display button to show Calendar"
792
+ i18n-validationRejectInput="kendo.spreadsheet.validationRejectInput|The text for the Reject input radio button label in the data validation dialog."
793
+ validationRejectInput="Reject input"
794
+ i18n-validationShowWarning="kendo.spreadsheet.validationShowWarning|The text for the Show warning radio button label in the data validation dialog."
795
+ validationShowWarning="Show warning"
796
+ i18n-validationHintTitle="kendo.spreadsheet.validationHintTitle|The text for the Custom hint title input label in the data validation dialog."
797
+ validationHintTitle="Custom hint title"
798
+ i18n-validationHintMessage="kendo.spreadsheet.validationHintMessage|The text for the Custom hint input label in the data validation dialog."
799
+ validationHintMessage="Custom hint"
800
+ i18n-validationShowHint="kendo.spreadsheet.validationShowHint|The text for the Show hint radio button label in the data validation dialog."
801
+ validationShowHint="Show hint"
802
+ i18n-validationIgnoreBlankCheckbox="kendo.spreadsheet.validationIgnoreBlankCheckbox|The text for the Ignore blank checkbox label in the data validation dialog."
803
+ validationIgnoreBlankCheckbox="Ignore blank"
804
+ i18n-validationComparer="kendo.spreadsheet.validationComparer|The text of the Comparer dropdown list label in the data validation dialog."
805
+ validationComparer="Comparer"
806
+ i18n-anyValueValidationCriteria="kendo.spreadsheet.anyValueValidationCriteria|The text of the Any value validation criteria"
807
+ anyValueValidationCriteria="Any value"
808
+ i18n-numberValidationCriteria="kendo.spreadsheet.numberValidationCriteria|The text of the Number validation criteria"
809
+ numberValidationCriteria="Number"
810
+ i18n-textValidationCriteria="kendo.spreadsheet.textValidationCriteria|The text of the Text validation criteria"
811
+ textValidationCriteria="Text"
812
+ i18n-dateValidationCriteria="kendo.spreadsheet.dateValidationCriteria|The text of the Date validation criteria"
813
+ dateValidationCriteria="Date"
814
+ i18n-customFormulaValidationCriteria="kendo.spreadsheet.customFormulaValidationCriteria|The text of the Custom formula validation criteria"
815
+ customFormulaValidationCriteria="Custom Formula"
816
+ i18n-listValidationCriteria="kendo.spreadsheet.listValidationCriteria|The text of the List validation criteria"
817
+ listValidationCriteria="List"
818
+ i18n-greaterThanValidationComparer="kendo.spreadsheet.greaterThanValidationComparer|The text of the greater than validation comparer"
819
+ greaterThanValidationComparer="greater than"
820
+ i18n-lessThanValidationComparer="kendo.spreadsheet.lessThanValidationComparer|The text of the less than validation comparer"
821
+ lessThanValidationComparer="less than"
822
+ i18n-betweenValidationComparer="kendo.spreadsheet.betweenValidationComparer|The text of the between validation comparer"
823
+ betweenValidationComparer="between"
824
+ i18n-notBetweenValidationComparer="kendo.spreadsheet.notBetweenValidationComparer|The text of the not between validation comparer"
825
+ notBetweenValidationComparer="not between"
826
+ i18n-equalToValidationComparer="kendo.spreadsheet.equalToValidationComparer|The text of the equal to validation comparer"
827
+ equalToValidationComparer="equal to"
828
+ i18n-notEqualToValidationComparer="kendo.spreadsheet.notEqualToValidationComparer|The text of the not equal to validation comparer"
829
+ notEqualToValidationComparer="not equal to"
830
+ i18n-greaterThanOrEqualToValidationComparer="kendo.spreadsheet.greaterThanOrEqualToValidationComparer|The text of the greater than on equal to validation comparer"
831
+ greaterThanOrEqualToValidationComparer="greater than or equal to"
832
+ i18n-lessThanOrEqualToValidationComparer="kendo.spreadsheet.lessThanOrEqualToValidationComparer|The text of the less than on equal to validation comparer"
833
+ lessThanOrEqualToValidationComparer="less than or equal to"
694
834
  i18n-italic="kendo.spreadsheet.italic|The title of the Italic tool."
695
835
  italic="Italic"
696
836
  i18n-underline="kendo.spreadsheet.underline|The title of the Underline tool."
@@ -713,6 +853,8 @@ export class SpreadsheetComponent {
713
853
  insert="Insert"
714
854
  i18n-formatTab="kendo.spreadsheet.formatTab|The text of the Format toolbar tab."
715
855
  formatTab="Format"
856
+ i18n-dataTab="kendo.spreadsheet.dataTab|The text of the Data toolbar tab."
857
+ dataTab="Data"
716
858
  i18n-view="kendo.spreadsheet.view|The text of the View toolbar tab."
717
859
  view="View"
718
860
  i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
@@ -785,6 +927,8 @@ export class SpreadsheetComponent {
785
927
  dialogRename="Rename"
786
928
  i18n-dialogInsert="kendo.spreadsheet.dialogInsert|The text of the **Insert** button in all Spreadsheet dialogs."
787
929
  dialogInsert="Insert"
930
+ i18n-dialogRemove="kendo.spreadsheet.dialogRemove|The text of the **Remove** button in all Spreadsheet dialogs."
931
+ dialogRemove="Remove"
788
932
  i18n-dialogRemoveLink="kendo.spreadsheet.dialogRemoveLink|The text of the **Remove link** button in the Link tool dialog."
789
933
  dialogRemoveLink="Remove link"
790
934
  i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
@@ -914,6 +1058,13 @@ export class SpreadsheetComponent {
914
1058
  <kendo-toolbar-separator></kendo-toolbar-separator>
915
1059
  <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
916
1060
  </kendo-toolbar>
1061
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'data'"
1062
+ [attr.aria-label]="messageFor('dataTab')"
1063
+ fillMode="flat"
1064
+ class="k-spreadsheet-toolbar"
1065
+ [overflow]="overflow">
1066
+ <kendo-toolbar-button kendoSpreadsheetDataValidation></kendo-toolbar-button>
1067
+ </kendo-toolbar>
917
1068
  </div>
918
1069
  <div class="k-spreadsheet-action-bar">
919
1070
  <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
@@ -952,7 +1103,7 @@ export class SpreadsheetComponent {
952
1103
  (select)="onContextMenuSelect($event)"></kendo-contextmenu>
953
1104
 
954
1105
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
955
- `, 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]" }] });
1106
+ `, 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]" }] });
956
1107
  }
957
1108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetComponent, decorators: [{
958
1109
  type: Component,
@@ -983,6 +1134,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
983
1134
  color="Font color"
984
1135
  i18n-bold="kendo.spreadsheet.bold|The title of the Bold tool."
985
1136
  bold="Bold"
1137
+ i18n-dataValidation="kendo.spreadsheet.dataValidation|The title of the Data Validation tool."
1138
+ dataValidation="Data Validation"
1139
+ i18n-validationCellRange="kendo.spreadsheet.validationCellRange|The text of the Cell Range label in the data validation dialog."
1140
+ validationCellRange="Cell Range"
1141
+ i18n-validationCriteria="kendo.spreadsheet.validationCriteria|The text of the Criteria dropdown list label in the data validation dialog."
1142
+ validationCriteria="Criteria"
1143
+ i18n-validationMinValue="kendo.spreadsheet.validationMinValue|The text of the Min value label in the data validation dialog."
1144
+ validationMinValue="Min"
1145
+ i18n-validationMaxValue="kendo.spreadsheet.validationMaxValue|The text of the Max value label in the data validation dialog."
1146
+ validationMaxValue="Max"
1147
+ i18n-validationStartValue="kendo.spreadsheet.validationStartValue|The text of the Start value label in the data validation dialog."
1148
+ validationStartValue="Start"
1149
+ i18n-validationEndValue="kendo.spreadsheet.validationEndValue|The text of the End value label in the data validation dialog."
1150
+ validationEndValue="End"
1151
+ i18n-validationValue="kendo.spreadsheet.validationValue|The text of the Value label in the data validation dialog."
1152
+ validationValue="Text"
1153
+ i18n-validationShowListButtonCheckbox="kendo.spreadsheet.validationShowListButtonCheckbox|The text for the Show list button checkbox label in the data validation dialog."
1154
+ validationShowListButtonCheckbox="Display button to show list"
1155
+ i18n-validationOnInvalidData="kendo.spreadsheet.validationOnInvalidData|The text for the On invalid data label in the data validation dialog."
1156
+ validationOnInvalidData="On invalid data"
1157
+ i18n-validationShowDateButtonCheckbox="kendo.spreadsheet.validationShowDateButtonCheckbox|The text for the Show date button checkbox label in the data validation dialog."
1158
+ validationShowDateButtonCheckbox="Display button to show Calendar"
1159
+ i18n-validationRejectInput="kendo.spreadsheet.validationRejectInput|The text for the Reject input radio button label in the data validation dialog."
1160
+ validationRejectInput="Reject input"
1161
+ i18n-validationShowWarning="kendo.spreadsheet.validationShowWarning|The text for the Show warning radio button label in the data validation dialog."
1162
+ validationShowWarning="Show warning"
1163
+ i18n-validationHintTitle="kendo.spreadsheet.validationHintTitle|The text for the Custom hint title input label in the data validation dialog."
1164
+ validationHintTitle="Custom hint title"
1165
+ i18n-validationHintMessage="kendo.spreadsheet.validationHintMessage|The text for the Custom hint input label in the data validation dialog."
1166
+ validationHintMessage="Custom hint"
1167
+ i18n-validationShowHint="kendo.spreadsheet.validationShowHint|The text for the Show hint radio button label in the data validation dialog."
1168
+ validationShowHint="Show hint"
1169
+ i18n-validationIgnoreBlankCheckbox="kendo.spreadsheet.validationIgnoreBlankCheckbox|The text for the Ignore blank checkbox label in the data validation dialog."
1170
+ validationIgnoreBlankCheckbox="Ignore blank"
1171
+ i18n-validationComparer="kendo.spreadsheet.validationComparer|The text of the Comparer dropdown list label in the data validation dialog."
1172
+ validationComparer="Comparer"
1173
+ i18n-anyValueValidationCriteria="kendo.spreadsheet.anyValueValidationCriteria|The text of the Any value validation criteria"
1174
+ anyValueValidationCriteria="Any value"
1175
+ i18n-numberValidationCriteria="kendo.spreadsheet.numberValidationCriteria|The text of the Number validation criteria"
1176
+ numberValidationCriteria="Number"
1177
+ i18n-textValidationCriteria="kendo.spreadsheet.textValidationCriteria|The text of the Text validation criteria"
1178
+ textValidationCriteria="Text"
1179
+ i18n-dateValidationCriteria="kendo.spreadsheet.dateValidationCriteria|The text of the Date validation criteria"
1180
+ dateValidationCriteria="Date"
1181
+ i18n-customFormulaValidationCriteria="kendo.spreadsheet.customFormulaValidationCriteria|The text of the Custom formula validation criteria"
1182
+ customFormulaValidationCriteria="Custom Formula"
1183
+ i18n-listValidationCriteria="kendo.spreadsheet.listValidationCriteria|The text of the List validation criteria"
1184
+ listValidationCriteria="List"
1185
+ i18n-greaterThanValidationComparer="kendo.spreadsheet.greaterThanValidationComparer|The text of the greater than validation comparer"
1186
+ greaterThanValidationComparer="greater than"
1187
+ i18n-lessThanValidationComparer="kendo.spreadsheet.lessThanValidationComparer|The text of the less than validation comparer"
1188
+ lessThanValidationComparer="less than"
1189
+ i18n-betweenValidationComparer="kendo.spreadsheet.betweenValidationComparer|The text of the between validation comparer"
1190
+ betweenValidationComparer="between"
1191
+ i18n-notBetweenValidationComparer="kendo.spreadsheet.notBetweenValidationComparer|The text of the not between validation comparer"
1192
+ notBetweenValidationComparer="not between"
1193
+ i18n-equalToValidationComparer="kendo.spreadsheet.equalToValidationComparer|The text of the equal to validation comparer"
1194
+ equalToValidationComparer="equal to"
1195
+ i18n-notEqualToValidationComparer="kendo.spreadsheet.notEqualToValidationComparer|The text of the not equal to validation comparer"
1196
+ notEqualToValidationComparer="not equal to"
1197
+ i18n-greaterThanOrEqualToValidationComparer="kendo.spreadsheet.greaterThanOrEqualToValidationComparer|The text of the greater than on equal to validation comparer"
1198
+ greaterThanOrEqualToValidationComparer="greater than or equal to"
1199
+ i18n-lessThanOrEqualToValidationComparer="kendo.spreadsheet.lessThanOrEqualToValidationComparer|The text of the less than on equal to validation comparer"
1200
+ lessThanOrEqualToValidationComparer="less than or equal to"
986
1201
  i18n-italic="kendo.spreadsheet.italic|The title of the Italic tool."
987
1202
  italic="Italic"
988
1203
  i18n-underline="kendo.spreadsheet.underline|The title of the Underline tool."
@@ -1005,6 +1220,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1005
1220
  insert="Insert"
1006
1221
  i18n-formatTab="kendo.spreadsheet.formatTab|The text of the Format toolbar tab."
1007
1222
  formatTab="Format"
1223
+ i18n-dataTab="kendo.spreadsheet.dataTab|The text of the Data toolbar tab."
1224
+ dataTab="Data"
1008
1225
  i18n-view="kendo.spreadsheet.view|The text of the View toolbar tab."
1009
1226
  view="View"
1010
1227
  i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
@@ -1077,6 +1294,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1077
1294
  dialogRename="Rename"
1078
1295
  i18n-dialogInsert="kendo.spreadsheet.dialogInsert|The text of the **Insert** button in all Spreadsheet dialogs."
1079
1296
  dialogInsert="Insert"
1297
+ i18n-dialogRemove="kendo.spreadsheet.dialogRemove|The text of the **Remove** button in all Spreadsheet dialogs."
1298
+ dialogRemove="Remove"
1080
1299
  i18n-dialogRemoveLink="kendo.spreadsheet.dialogRemoveLink|The text of the **Remove link** button in the Link tool dialog."
1081
1300
  dialogRemoveLink="Remove link"
1082
1301
  i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
@@ -1206,6 +1425,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1206
1425
  <kendo-toolbar-separator></kendo-toolbar-separator>
1207
1426
  <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
1208
1427
  </kendo-toolbar>
1428
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'data'"
1429
+ [attr.aria-label]="messageFor('dataTab')"
1430
+ fillMode="flat"
1431
+ class="k-spreadsheet-toolbar"
1432
+ [overflow]="overflow">
1433
+ <kendo-toolbar-button kendoSpreadsheetDataValidation></kendo-toolbar-button>
1434
+ </kendo-toolbar>
1209
1435
  </div>
1210
1436
  <div class="k-spreadsheet-action-bar">
1211
1437
  <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
@@ -1246,9 +1472,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1246
1472
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
1247
1473
  `,
1248
1474
  standalone: true,
1249
- 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]
1475
+ 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]
1250
1476
  }]
1251
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.IntlService }, { type: i0.ElementRef }, { type: i2.LocalizationService }, { type: i3.SpreadsheetService }, { type: i4.SpreadsheetToolsService }, { type: i5.ErrorHandlingService }, { type: i6.DialogService }]; }, propDecorators: { formulaBarInputRef: [{
1477
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.IntlService }, { type: i0.ElementRef }, { type: i2.LocalizationService }, { type: i3.SpreadsheetService }, { type: i4.SpreadsheetToolsService }, { type: i5.ErrorHandlingService }, { type: i6.DialogService }, { type: i7.PopupService }, { type: i0.ViewContainerRef }]; }, propDecorators: { formulaBarInputRef: [{
1252
1478
  type: ViewChild,
1253
1479
  args: ['formulaBar', { read: FormulaInputDirective }]
1254
1480
  }], formulaCellInputRef: [{
@@ -12,34 +12,35 @@ import * as i0 from "@angular/core";
12
12
  import * as i1 from "./spreadsheet.component";
13
13
  import * as i2 from "./localization/custom-messages.component";
14
14
  import * as i3 from "./tools/typographical-emphasis/bold-tool.directive";
15
- import * as i4 from "./tools/typographical-emphasis/italic-tool.directive";
16
- import * as i5 from "./tools/typographical-emphasis/underline-tool.directive";
17
- import * as i6 from "./tools/load-file.component";
18
- import * as i7 from "./tools/save-file-tool.directive";
19
- import * as i8 from "./tools/format-tool.directive";
20
- import * as i9 from "./tools/history/undo-tool";
21
- import * as i10 from "./tools/history/redo-tool";
22
- import * as i11 from "./tools/font-family/spreadsheet-fontfamily-tool.component";
23
- import * as i12 from "./tools/font-size/spreadsheet-fontsize-tool.component";
24
- import * as i13 from "./tools/colorpicker/spreadsheet-backcolor.component";
25
- import * as i14 from "./tools/colorpicker/spreadsheet-forecolor.component";
26
- import * as i15 from "./tools/gridlines-tool.directive";
27
- import * as i16 from "./tools/tables/add-column-left-button.directive";
28
- import * as i17 from "./tools/tables/add-column-right-button.directive";
29
- import * as i18 from "./tools/tables/add-row-above-button.directive";
30
- import * as i19 from "./tools/tables/add-row-below-button.directive";
31
- import * as i20 from "./tools/tables/delete-column-button.directive";
32
- import * as i21 from "./tools/tables/delete-row-button.directive";
33
- import * as i22 from "./tools/align/align-tool.directive";
34
- import * as i23 from "./tools/text-wrap-tool.directive";
35
- import * as i24 from "./tools/tables/merge-tool.directive";
36
- import * as i25 from "./tools/insert/insert-link-tool.directive";
37
- import * as i26 from "./tools/font-size/increase-font-tool.directive";
38
- import * as i27 from "./tools/font-size/decrease-font-tool.directive";
39
- import * as i28 from "./tools/increase-decimal-tool.directive";
40
- import * as i29 from "./tools/decrease-decimal-tool.directive";
41
- import * as i30 from "./tools/align/horizontal-align-tool.directive";
42
- import * as i31 from "./tools/align/vertical-align-tool.directive";
15
+ import * as i4 from "./tools/data-validation-tool.directive";
16
+ import * as i5 from "./tools/typographical-emphasis/italic-tool.directive";
17
+ import * as i6 from "./tools/typographical-emphasis/underline-tool.directive";
18
+ import * as i7 from "./tools/load-file.component";
19
+ import * as i8 from "./tools/save-file-tool.directive";
20
+ import * as i9 from "./tools/format-tool.directive";
21
+ import * as i10 from "./tools/history/undo-tool";
22
+ import * as i11 from "./tools/history/redo-tool";
23
+ import * as i12 from "./tools/font-family/spreadsheet-fontfamily-tool.component";
24
+ import * as i13 from "./tools/font-size/spreadsheet-fontsize-tool.component";
25
+ import * as i14 from "./tools/colorpicker/spreadsheet-backcolor.component";
26
+ import * as i15 from "./tools/colorpicker/spreadsheet-forecolor.component";
27
+ import * as i16 from "./tools/gridlines-tool.directive";
28
+ import * as i17 from "./tools/tables/add-column-left-button.directive";
29
+ import * as i18 from "./tools/tables/add-column-right-button.directive";
30
+ import * as i19 from "./tools/tables/add-row-above-button.directive";
31
+ import * as i20 from "./tools/tables/add-row-below-button.directive";
32
+ import * as i21 from "./tools/tables/delete-column-button.directive";
33
+ import * as i22 from "./tools/tables/delete-row-button.directive";
34
+ import * as i23 from "./tools/align/align-tool.directive";
35
+ import * as i24 from "./tools/text-wrap-tool.directive";
36
+ import * as i25 from "./tools/tables/merge-tool.directive";
37
+ import * as i26 from "./tools/insert/insert-link-tool.directive";
38
+ import * as i27 from "./tools/font-size/increase-font-tool.directive";
39
+ import * as i28 from "./tools/font-size/decrease-font-tool.directive";
40
+ import * as i29 from "./tools/increase-decimal-tool.directive";
41
+ import * as i30 from "./tools/decrease-decimal-tool.directive";
42
+ import * as i31 from "./tools/align/horizontal-align-tool.directive";
43
+ import * as i32 from "./tools/align/vertical-align-tool.directive";
43
44
  // IMPORTANT: NgModule export kept for backwards compatibility
44
45
  /**
45
46
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -47,8 +48,8 @@ import * as i31 from "./tools/align/vertical-align-tool.directive";
47
48
  */
48
49
  export class SpreadsheetModule {
49
50
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
50
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetModule, imports: [i1.SpreadsheetComponent, i2.CustomMessagesComponent, i3.SpreadsheetBoldDirective, i4.SpreadsheetItalicDirective, i5.SpreadsheetUnderlineDirective, i6.SpreadsheetLoadFileComponent, i7.SpreadsheetSaveFileDirective, i8.SpreadsheetFormatDirective, i9.SpreadsheetUndoDirective, i10.SpreadsheetRedoDirective, i11.SpreadsheetFontFamilyComponent, i12.SpreadsheetFontSizeComponent, i13.SpreadsheetBackColorComponent, i14.SpreadsheetForeColorComponent, i15.SpreadsheetGridLinesDirective, i16.SpreadsheetAddColumnLeftButtonDirective, i17.SpreadsheetAddColumnRightButtonDirective, i18.SpreadsheetAddRowAboveButtonDirective, i19.SpreadsheetAddRowBelowButtonDirective, i20.SpreadsheetDeleteColumnButtonDirective, i21.SpreadsheetDeleteRowButtonDirective, i22.SpreadsheetTextAlignDirective, i23.SpreadsheetTextWrapDirective, i24.SpreadsheetMergeDirective, i25.SpreadsheetInsertLinkDirective, i26.SpreadsheetIncreaseFontSizeDirective, i27.SpreadsheetDecreaseFontSizeDirective, i28.SpreadsheetIncreaseDecimalDirective, i29.SpreadsheetDecreaseDecimalDirective, i30.SpreadsheetHorizontalTextAlignDirective, i31.SpreadsheetVerticalTextAlignDirective], exports: [i1.SpreadsheetComponent, i2.CustomMessagesComponent, i3.SpreadsheetBoldDirective, i4.SpreadsheetItalicDirective, i5.SpreadsheetUnderlineDirective, i6.SpreadsheetLoadFileComponent, i7.SpreadsheetSaveFileDirective, i8.SpreadsheetFormatDirective, i9.SpreadsheetUndoDirective, i10.SpreadsheetRedoDirective, i11.SpreadsheetFontFamilyComponent, i12.SpreadsheetFontSizeComponent, i13.SpreadsheetBackColorComponent, i14.SpreadsheetForeColorComponent, i15.SpreadsheetGridLinesDirective, i16.SpreadsheetAddColumnLeftButtonDirective, i17.SpreadsheetAddColumnRightButtonDirective, i18.SpreadsheetAddRowAboveButtonDirective, i19.SpreadsheetAddRowBelowButtonDirective, i20.SpreadsheetDeleteColumnButtonDirective, i21.SpreadsheetDeleteRowButtonDirective, i22.SpreadsheetTextAlignDirective, i23.SpreadsheetTextWrapDirective, i24.SpreadsheetMergeDirective, i25.SpreadsheetInsertLinkDirective, i26.SpreadsheetIncreaseFontSizeDirective, i27.SpreadsheetDecreaseFontSizeDirective, i28.SpreadsheetIncreaseDecimalDirective, i29.SpreadsheetDecreaseDecimalDirective, i30.SpreadsheetHorizontalTextAlignDirective, i31.SpreadsheetVerticalTextAlignDirective] });
51
- 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: [i1.SpreadsheetComponent, i6.SpreadsheetLoadFileComponent, i11.SpreadsheetFontFamilyComponent, i12.SpreadsheetFontSizeComponent, i13.SpreadsheetBackColorComponent, i14.SpreadsheetForeColorComponent] });
51
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetModule, imports: [i1.SpreadsheetComponent, i2.CustomMessagesComponent, i3.SpreadsheetBoldDirective, i4.SpreadsheetDataValidationDirective, i5.SpreadsheetItalicDirective, i6.SpreadsheetUnderlineDirective, i7.SpreadsheetLoadFileComponent, i8.SpreadsheetSaveFileDirective, i9.SpreadsheetFormatDirective, i10.SpreadsheetUndoDirective, i11.SpreadsheetRedoDirective, i12.SpreadsheetFontFamilyComponent, i13.SpreadsheetFontSizeComponent, i14.SpreadsheetBackColorComponent, i15.SpreadsheetForeColorComponent, i16.SpreadsheetGridLinesDirective, i17.SpreadsheetAddColumnLeftButtonDirective, i18.SpreadsheetAddColumnRightButtonDirective, i19.SpreadsheetAddRowAboveButtonDirective, i20.SpreadsheetAddRowBelowButtonDirective, i21.SpreadsheetDeleteColumnButtonDirective, i22.SpreadsheetDeleteRowButtonDirective, i23.SpreadsheetTextAlignDirective, i24.SpreadsheetTextWrapDirective, i25.SpreadsheetMergeDirective, i26.SpreadsheetInsertLinkDirective, i27.SpreadsheetIncreaseFontSizeDirective, i28.SpreadsheetDecreaseFontSizeDirective, i29.SpreadsheetIncreaseDecimalDirective, i30.SpreadsheetDecreaseDecimalDirective, i31.SpreadsheetHorizontalTextAlignDirective, i32.SpreadsheetVerticalTextAlignDirective], exports: [i1.SpreadsheetComponent, i2.CustomMessagesComponent, i3.SpreadsheetBoldDirective, i4.SpreadsheetDataValidationDirective, i5.SpreadsheetItalicDirective, i6.SpreadsheetUnderlineDirective, i7.SpreadsheetLoadFileComponent, i8.SpreadsheetSaveFileDirective, i9.SpreadsheetFormatDirective, i10.SpreadsheetUndoDirective, i11.SpreadsheetRedoDirective, i12.SpreadsheetFontFamilyComponent, i13.SpreadsheetFontSizeComponent, i14.SpreadsheetBackColorComponent, i15.SpreadsheetForeColorComponent, i16.SpreadsheetGridLinesDirective, i17.SpreadsheetAddColumnLeftButtonDirective, i18.SpreadsheetAddColumnRightButtonDirective, i19.SpreadsheetAddRowAboveButtonDirective, i20.SpreadsheetAddRowBelowButtonDirective, i21.SpreadsheetDeleteColumnButtonDirective, i22.SpreadsheetDeleteRowButtonDirective, i23.SpreadsheetTextAlignDirective, i24.SpreadsheetTextWrapDirective, i25.SpreadsheetMergeDirective, i26.SpreadsheetInsertLinkDirective, i27.SpreadsheetIncreaseFontSizeDirective, i28.SpreadsheetDecreaseFontSizeDirective, i29.SpreadsheetIncreaseDecimalDirective, i30.SpreadsheetDecreaseDecimalDirective, i31.SpreadsheetHorizontalTextAlignDirective, i32.SpreadsheetVerticalTextAlignDirective] });
52
+ 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: [i1.SpreadsheetComponent, i7.SpreadsheetLoadFileComponent, i12.SpreadsheetFontFamilyComponent, i13.SpreadsheetFontSizeComponent, i14.SpreadsheetBackColorComponent, i15.SpreadsheetForeColorComponent] });
52
53
  }
53
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetModule, decorators: [{
54
55
  type: NgModule,