@progress/kendo-angular-spreadsheet 14.0.0-develop.1 → 14.0.0-develop.11

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.
Files changed (31) hide show
  1. package/action-bar/formula-input.directive.d.ts +1 -1
  2. package/action-bar/namebox.component.d.ts +4 -1
  3. package/common/spreadsheet.service.d.ts +1 -0
  4. package/esm2020/action-bar/formula-input.directive.mjs +4 -4
  5. package/esm2020/action-bar/namebox.component.mjs +13 -5
  6. package/esm2020/common/spreadsheet.service.mjs +3 -0
  7. package/esm2020/localization/messages.mjs +7 -1
  8. package/esm2020/package-metadata.mjs +2 -2
  9. package/esm2020/sheets-bar/action-dialog.component.mjs +2 -2
  10. package/esm2020/sheets-bar/sheets-bar.component.mjs +123 -64
  11. package/esm2020/spreadsheet.component.mjs +34 -31
  12. package/esm2020/spreadsheet.module.mjs +2 -5
  13. package/esm2020/tools/font-family/font-family-dropdownlist.component.mjs +1 -1
  14. package/esm2020/tools/font-size/font-size-dropdownlist.component.mjs +1 -1
  15. package/esm2020/tools/index.mjs +1 -1
  16. package/esm2020/tools/load-file.component.mjs +3 -0
  17. package/esm2020/tools/shared/spreadsheet-command-base.mjs +0 -7
  18. package/fesm2015/progress-kendo-angular-spreadsheet.mjs +189 -139
  19. package/fesm2020/progress-kendo-angular-spreadsheet.mjs +189 -140
  20. package/index.d.ts +1 -0
  21. package/localization/messages.d.ts +13 -1
  22. package/models/sheet-info.d.ts +0 -1
  23. package/package.json +13 -13
  24. package/schematics/ngAdd/index.js +1 -1
  25. package/sheets-bar/sheets-bar.component.d.ts +15 -4
  26. package/spreadsheet.component.d.ts +6 -16
  27. package/spreadsheet.module.d.ts +14 -15
  28. package/tools/index.d.ts +1 -1
  29. package/tools/load-file.component.d.ts +3 -0
  30. package/esm2020/sheets-bar/remove.directive.mjs +0 -25
  31. package/sheets-bar/remove.directive.d.ts +0 -13
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { Injectable, EventEmitter, Output, Inject, Optional, Component, HostBinding, Input, Directive, forwardRef, ElementRef, ViewChild, InjectionToken, HostListener, ViewContainerRef, NgModule } from '@angular/core';
6
+ import { Injectable, EventEmitter, Output, Inject, Optional, Component, HostBinding, Input, Directive, forwardRef, ElementRef, ViewChild, InjectionToken, HostListener, ViewChildren, ViewContainerRef, NgModule } from '@angular/core';
7
7
  import { validatePackage } from '@progress/kendo-licensing';
8
8
  import { SpreadsheetWidget } from '@progress/kendo-spreadsheet-common';
9
9
  import * as i1$5 from '@progress/kendo-angular-intl';
@@ -13,7 +13,7 @@ import { Subject, Subscription } from 'rxjs';
13
13
  import * as i1 from '@progress/kendo-angular-l10n';
14
14
  import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
15
15
  import * as i3 from '@progress/kendo-angular-common';
16
- import { isPresent, hasObservers, isDocumentAvailable, shouldShowValidationUI, EventsModule, WatermarkModule } from '@progress/kendo-angular-common';
16
+ import { isPresent, hasObservers, isDocumentAvailable, Keys, shouldShowValidationUI, EventsModule, WatermarkModule } from '@progress/kendo-angular-common';
17
17
  import * as i1$1 from '@progress/kendo-angular-popup';
18
18
  import { PopupService, PopupModule } from '@progress/kendo-angular-popup';
19
19
  import * as i6 from '@progress/kendo-angular-icons';
@@ -46,8 +46,8 @@ const packageMetadata = {
46
46
  name: '@progress/kendo-angular-spreadsheet',
47
47
  productName: 'Kendo UI for Angular',
48
48
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
49
- publishDate: 1695995129,
50
- version: '14.0.0-develop.1',
49
+ publishDate: 1696927504,
50
+ version: '14.0.0-develop.11',
51
51
  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',
52
52
  };
53
53
 
@@ -73,6 +73,9 @@ class SpreadsheetService {
73
73
  get formulaListId() {
74
74
  return `k-spreadsheet-${spreadsheetCounter}-formula-list`;
75
75
  }
76
+ get tablistId() {
77
+ return `k-spreadsheet-${spreadsheetCounter}-tablist`;
78
+ }
76
79
  notifySheetsChange(actionType, sheetInfo) {
77
80
  const sheets = this.spreadsheet.sheets();
78
81
  this.sheetsChanged.next({ sheets, sheet: sheetInfo, actionType });
@@ -262,7 +265,7 @@ class FormulaInputDirective {
262
265
  this.spreadsheetService = spreadsheetService;
263
266
  this.hostClasses = true;
264
267
  this.ariaHasPopup = 'menu';
265
- this.ariaExpanded = null;
268
+ this.ariaExpanded = 'false';
266
269
  this.focusedItem = () => this.list?.element.nativeElement.querySelector('.k-focus');
267
270
  this.unfocus = () => {
268
271
  const focused = this.focusedItem();
@@ -289,7 +292,7 @@ class FormulaInputDirective {
289
292
  };
290
293
  }
291
294
  get ariaControls() {
292
- return this.ariaExpanded ? this.spreadsheetService.formulaListId : null;
295
+ return this.ariaExpanded === 'true' ? this.spreadsheetService.formulaListId : null;
293
296
  }
294
297
  get listElement() {
295
298
  return this.list?.element.nativeElement.firstElementChild;
@@ -346,12 +349,12 @@ class FormulaInputDirective {
346
349
  this.list = list;
347
350
  list.data = this.data;
348
351
  list.itemClick = this.handler;
349
- this.ariaExpanded = true;
352
+ this.ariaExpanded = 'true';
350
353
  },
351
354
  close: () => {
352
355
  this.popupRef && this.popupRef.close();
353
356
  this.popupRef = null;
354
- this.ariaExpanded = null;
357
+ this.ariaExpanded = 'false';
355
358
  },
356
359
  position: () => {
357
360
  // contentKey++;
@@ -492,6 +495,9 @@ const commandSVGIcons = {
492
495
  fontFamily: fontFamilyIcon
493
496
  };
494
497
 
498
+ /**
499
+ * @hidden
500
+ */
495
501
  class SpreadsheetLoadFileComponent extends ToolBarToolComponent {
496
502
  constructor(localization, spreadsheetService, toolbar) {
497
503
  super();
@@ -796,7 +802,7 @@ FontFamilyDropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
796
802
  </span>
797
803
  </ng-template>
798
804
  </kendo-dropdownlist>
799
- `, isInline: true, components: [{ type: i1$3.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "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"] }], directives: [{ type: i1$3.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
805
+ `, isInline: true, components: [{ type: i1$3.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"] }], directives: [{ type: i1$3.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
800
806
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FontFamilyDropDownListComponent, decorators: [{
801
807
  type: Component,
802
808
  args: [{
@@ -838,7 +844,7 @@ FontSizeDropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
838
844
  (valueChange)="onValueChange($event)"
839
845
  [leftRightArrowsNavigation]="false"
840
846
  [fillMode]="fillMode"></kendo-dropdownlist>
841
- `, isInline: true, components: [{ type: i1$3.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "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"] }] });
847
+ `, isInline: true, components: [{ type: i1$3.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"] }] });
842
848
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FontSizeDropDownListComponent, decorators: [{
843
849
  type: Component,
844
850
  args: [{
@@ -1431,9 +1437,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1431
1437
  * @hidden
1432
1438
  */
1433
1439
  class NameBoxComponent {
1434
- constructor(ngZone, host) {
1440
+ constructor(ngZone, host, localization) {
1435
1441
  this.ngZone = ngZone;
1436
1442
  this.host = host;
1443
+ this.localization = localization;
1437
1444
  this.hostClass = true;
1438
1445
  this.valueNormalizer = (text) => text.pipe(map((content) => ({ name: content })));
1439
1446
  }
@@ -1459,6 +1466,9 @@ class NameBoxComponent {
1459
1466
  }
1460
1467
  };
1461
1468
  }
1469
+ get title() {
1470
+ return this.localization.get('nameBox');
1471
+ }
1462
1472
  onSelectionChange(value) {
1463
1473
  const editor = this.spreadsheetWidget.view.nameEditor;
1464
1474
  if (editor && value) {
@@ -1477,7 +1487,7 @@ class NameBoxComponent {
1477
1487
  }
1478
1488
  ;
1479
1489
  }
1480
- NameBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NameBoxComponent, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1490
+ NameBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NameBoxComponent, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: SpreadsheetLocalizationService }], target: i0.ɵɵFactoryTarget.Component });
1481
1491
  NameBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: { data: "data", spreadsheetWidget: "spreadsheetWidget" }, host: { listeners: { "keydown.enter": "keyDownHandler()" }, properties: { "class.k-spreadsheet-name-editor": "this.hostClass" } }, viewQueries: [{ propertyName: "combobox", first: true, predicate: ["combobox"], descendants: true }], ngImport: i0, template: `
1482
1492
  <kendo-combobox #combobox
1483
1493
  [popupSettings]="{popupClass: 'k-spreadsheet-names-popup'}"
@@ -1491,8 +1501,9 @@ NameBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
1491
1501
  [value]="value"
1492
1502
  (open)="onOpen()"
1493
1503
  [valueNormalizer]="valueNormalizer"
1504
+ [attr.title]="title"
1494
1505
  ></kendo-combobox>
1495
- `, isInline: true, components: [{ type: i1$3.ComboBoxComponent, selector: "kendo-combobox", inputs: ["showStickyHeader", "focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "iconClass", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoComboBox"] }] });
1506
+ `, isInline: true, components: [{ type: i1$3.ComboBoxComponent, selector: "kendo-combobox", inputs: ["icon", "svgIcon", "showStickyHeader", "focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoComboBox"] }] });
1496
1507
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NameBoxComponent, decorators: [{
1497
1508
  type: Component,
1498
1509
  args: [{
@@ -1510,10 +1521,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1510
1521
  [value]="value"
1511
1522
  (open)="onOpen()"
1512
1523
  [valueNormalizer]="valueNormalizer"
1524
+ [attr.title]="title"
1513
1525
  ></kendo-combobox>
1514
1526
  `
1515
1527
  }]
1516
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }]; }, propDecorators: { hostClass: [{
1528
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: SpreadsheetLocalizationService }]; }, propDecorators: { hostClass: [{
1517
1529
  type: HostBinding,
1518
1530
  args: ['class.k-spreadsheet-name-editor']
1519
1531
  }], keyDownHandler: [{
@@ -1549,7 +1561,7 @@ ActionDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
1549
1561
  <p>Are you sure you want to proceed?</p>
1550
1562
  </ng-container>
1551
1563
 
1552
- <form class="k-form k-form-md" *ngIf="commandName === 'rename'">
1564
+ <form class="k-form k-form-md" *ngIf="commandName === 'rename'" method="dialog">
1553
1565
  <div class="k-form-field">
1554
1566
  <label class="k-label k-form-label">Rename sheet</label>
1555
1567
  <div class="k-form-field-wrap">
@@ -1571,7 +1583,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1571
1583
  <p>Are you sure you want to proceed?</p>
1572
1584
  </ng-container>
1573
1585
 
1574
- <form class="k-form k-form-md" *ngIf="commandName === 'rename'">
1586
+ <form class="k-form k-form-md" *ngIf="commandName === 'rename'" method="dialog">
1575
1587
  <div class="k-form-field">
1576
1588
  <label class="k-label k-form-label">Rename sheet</label>
1577
1589
  <div class="k-form-field-wrap">
@@ -1615,9 +1627,16 @@ class SheetsBarComponent {
1615
1627
  };
1616
1628
  this.actionsCallback = {
1617
1629
  copy: (sheetInfo) => {
1618
- sheetInfo.copies ? sheetInfo.copies += 1 : sheetInfo.copies = 1;
1630
+ let copies = 0;
1631
+ const regex = this.getCopyRegex(sheetInfo.text);
1632
+ this.sheets.forEach(sheet => {
1633
+ const isPresent = regex.test(sheet.text);
1634
+ if (isPresent) {
1635
+ copies += 1;
1636
+ }
1637
+ });
1619
1638
  const sheetToCopy = this.spreadsheetService.spreadsheet.sheets().find(s => s.name() === sheetInfo.text);
1620
- const newName = `${sheetToCopy.name()} (${sheetInfo.copies})`;
1639
+ const newName = `${sheetInfo.text} (${copies + 1})`;
1621
1640
  this.spreadsheetService.spreadsheet.insertSheet({ data: { ...sheetToCopy.toJSON(), name: newName }, index: sheetInfo.index + 1 });
1622
1641
  this.selectSheet(newName);
1623
1642
  },
@@ -1636,14 +1655,25 @@ class SheetsBarComponent {
1636
1655
  get sheetsMenuList() {
1637
1656
  return this.sheets?.map(sheet => ({ text: sheet.text, icon: 'eye', svgIcon: this.eyeIcon }));
1638
1657
  }
1658
+ get tablistId() {
1659
+ return this.spreadsheetService.tablistId;
1660
+ }
1639
1661
  ngAfterViewInit() {
1640
1662
  if (!isDocumentAvailable() || !this.element.nativeElement) {
1641
1663
  return;
1642
1664
  }
1643
1665
  const prevBtn = this.element.nativeElement.querySelector('.k-tabstrip-prev');
1644
1666
  const nextBtn = this.element.nativeElement.querySelector('.k-tabstrip-next');
1667
+ const tablist = this.element.nativeElement.querySelector('.k-tabstrip-items');
1645
1668
  this.renderer.addClass(prevBtn, 'k-order-1');
1646
1669
  this.renderer.addClass(nextBtn, 'k-order-2');
1670
+ this.renderer.setAttribute(tablist, 'id', this.tablistId);
1671
+ this.tabListSub = this.renderer.listen(tablist, 'keydown', this.onTabListKeyDown.bind(this));
1672
+ }
1673
+ ngOnDestroy() {
1674
+ if (this.tabListSub) {
1675
+ this.tabListSub();
1676
+ }
1647
1677
  }
1648
1678
  onTabSelect(ev) {
1649
1679
  if (ev.title !== this.activeSheet) {
@@ -1658,6 +1688,8 @@ class SheetsBarComponent {
1658
1688
  }
1659
1689
  onClose() {
1660
1690
  this.openedDdb = null;
1691
+ const activeTabIdx = this.sheets.findIndex(sheet => sheet.active);
1692
+ this.tabstrip.selectTab(activeTabIdx);
1661
1693
  }
1662
1694
  onActionClick(dataItem, sheet) {
1663
1695
  if (dataItem.disabled) {
@@ -1674,16 +1706,19 @@ class SheetsBarComponent {
1674
1706
  const sheet = this.sheets.find(s => s.text === item.text);
1675
1707
  this.selectSheet(sheet.text);
1676
1708
  }
1709
+ messageFor(key) {
1710
+ return this.localization.get(key);
1711
+ }
1677
1712
  openDialog(dataItem, sheet) {
1678
1713
  const dialogSettings = {
1679
1714
  appendTo: this.spreadsheetService.dialogContainer,
1680
- title: this.localization.get(dataItem.commandName),
1715
+ title: this.messageFor(dataItem.commandName),
1681
1716
  content: ActionDialogComponent,
1682
1717
  actions: [{
1683
- text: this.localization.get(dataItem.dialogButton),
1718
+ text: this.messageFor(dataItem.dialogButton),
1684
1719
  themeColor: 'primary'
1685
1720
  }, {
1686
- text: this.localization.get('dialogCancel')
1721
+ text: this.messageFor('dialogCancel')
1687
1722
  }],
1688
1723
  actionsLayout: 'stretched',
1689
1724
  autoFocusedElement: '.k-textbox .k-input-inner, .k-button-solid-primary'
@@ -1692,7 +1727,7 @@ class SheetsBarComponent {
1692
1727
  const dialogInstance = dialog.dialog.instance;
1693
1728
  const dialogContent = dialog.content.instance;
1694
1729
  dialogInstance.action.pipe(take(1)).subscribe((event) => {
1695
- if (event.text === this.localization.get(dataItem.dialogButton)) {
1730
+ if (event.text === this.messageFor(dataItem.dialogButton)) {
1696
1731
  const sheetsBar = this.spreadsheetService.spreadsheet.view.sheetsbar;
1697
1732
  if (sheetsBar) {
1698
1733
  dataItem.commandName === 'delete' ? sheetsBar.onSheetRemove(sheet.text) : sheetsBar.onSheetRename(dialogContent.value, this.sheets.indexOf(sheet));
@@ -1706,6 +1741,11 @@ class SheetsBarComponent {
1706
1741
  commandName: dataItem.commandName
1707
1742
  });
1708
1743
  }
1744
+ getCopyRegex(sheetName) {
1745
+ const newName = sheetName.replaceAll('(', '\\(').replaceAll(')', '\\)');
1746
+ const st = `(${newName})\\s?\\(`;
1747
+ return new RegExp(st, 's');
1748
+ }
1709
1749
  selectSheet(sheetName) {
1710
1750
  const spreadsheetSheet = this.spreadsheetService.spreadsheet.sheets().find(s => s.name() === sheetName);
1711
1751
  this.spreadsheetService.spreadsheet.activeSheet(spreadsheetSheet);
@@ -1713,11 +1753,25 @@ class SheetsBarComponent {
1713
1753
  this.spreadsheetService.activeSheetChanged.next(spreadsheetSheet);
1714
1754
  this.notifySheetsChange();
1715
1755
  }
1756
+ onTabListKeyDown(ev) {
1757
+ const buttonEl = ev.target.querySelector('.k-dropdown-button');
1758
+ const index = Array.from(this.actionDdbRefs).findIndex(el => el.nativeElement === buttonEl);
1759
+ const ddb = Array.from(this.actionDdbs)[index];
1760
+ if (!ddb) {
1761
+ return;
1762
+ }
1763
+ const altKey = ev.altKey;
1764
+ const arrowDown = ev.keyCode === Keys.ArrowDown;
1765
+ const shouldOpenDdb = altKey && arrowDown && !ddb.isOpen;
1766
+ if (shouldOpenDdb) {
1767
+ ev.preventDefault();
1768
+ ddb.togglePopupVisibility();
1769
+ }
1770
+ }
1716
1771
  notifySheetsChange() {
1717
1772
  this.ngZone.run(() => {
1718
1773
  const newSheets = this.spreadsheetService.spreadsheet.sheets();
1719
1774
  const sheetDesc = mapToSheetDescriptor(newSheets);
1720
- console.log(newSheets, 'new');
1721
1775
  this.sheets = sheetDesc.map((item, index, items) => ({
1722
1776
  ...item,
1723
1777
  inEdit: false,
@@ -1732,53 +1786,53 @@ class SheetsBarComponent {
1732
1786
  }
1733
1787
  }
1734
1788
  SheetsBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SheetsBarComponent, deps: [{ token: SpreadsheetService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SpreadsheetLocalizationService }, { token: i1$4.DialogService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1735
- SheetsBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: { sheets: "sheets", sheetDescriptors: "sheetDescriptors" }, host: { properties: { "class.k-spreadsheet-sheets-bar": "this.hostClasses" } }, ngImport: i0, template: `
1736
- <button kendoButton
1737
- title="Add new sheet"
1789
+ SheetsBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SheetsBarComponent, 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 }], ngImport: i0, template: `
1790
+ <button kendoButton #addButton
1791
+ [title]="messageFor('addSheet')"
1738
1792
  type="button"
1739
1793
  fillMode="flat"
1740
1794
  class="k-spreadsheet-sheet-add"
1741
1795
  icon="plus"
1742
1796
  [svgIcon]="plusIcon"
1743
- [kendoEventsOutsideAngular]="{click: onAddClick}">
1797
+ [kendoEventsOutsideAngular]="{click: onAddClick}"
1798
+ [attr.aria-controls]="tablistId">
1744
1799
  </button>
1745
- <kendo-dropdownbutton #menuDdb
1800
+ <kendo-dropdownbutton #menuButton
1746
1801
  fillMode="flat"
1747
1802
  buttonClass="k-spreadsheet-sheets-menu"
1748
1803
  icon="menu"
1749
1804
  [svgIcon]="menuIcon"
1750
1805
  [data]="sheetsMenuList"
1751
1806
  (itemClick)="onMenuItemClick($event)"
1752
- (open)="onOpen(menuDdb)">
1807
+ (open)="onOpen(menuButton)"
1808
+ [buttonAttributes]="{title: messageFor('sheetsMenu')}"
1809
+ [attr.aria-controls]="tablistId">
1753
1810
  </kendo-dropdownbutton>
1754
- <kendo-tabstrip
1811
+ <kendo-tabstrip #tabstrip
1755
1812
  [tabPosition]="'bottom'"
1756
1813
  [showContentArea]="false"
1757
1814
  [scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
1758
1815
  class="k-spreadsheet-sheets k-overflow-hidden"
1759
- (tabSelect)="onTabSelect($event)"
1760
- [keepTabContent]="true">
1761
- <ng-container *ngFor="let sheet of sheets">
1762
- <kendo-tabstrip-tab
1816
+ (tabSelect)="onTabSelect($event)">
1817
+ <kendo-tabstrip-tab *ngFor="let sheet of sheets"
1763
1818
  [title]="sheet.text"
1764
1819
  [selected]="sheet.text === activeSheet">
1765
- <ng-template kendoTabTemplate>
1766
- <span class="k-link">{{sheet.text}}</span>
1767
- <kendo-dropdownbutton #sheetDdb
1768
- fillMode="flat"
1769
- icon="caret-alt-down"
1770
- [svgIcon]="caretAltDownIcon"
1771
- buttonClass="k-menu-button"
1772
- [data]="sheet.sheetActions"
1773
- [buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
1774
- (open)="onOpen(sheetDdb)"
1775
- (close)="onClose()"
1776
- (click)="$event.stopPropagation()"
1777
- (itemClick)="onActionClick($event, sheet)">
1778
- </kendo-dropdownbutton>
1779
- </ng-template>
1780
- </kendo-tabstrip-tab>
1781
- </ng-container>
1820
+ <ng-template kendoTabTemplate>
1821
+ <span class="k-link">{{sheet.text}}</span>
1822
+ <kendo-dropdownbutton #sheetDdb
1823
+ fillMode="flat"
1824
+ icon="caret-alt-down"
1825
+ [svgIcon]="caretAltDownIcon"
1826
+ buttonClass="k-menu-button"
1827
+ [data]="sheet.sheetActions"
1828
+ [buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
1829
+ (open)="onOpen(sheetDdb)"
1830
+ (close)="onClose()"
1831
+ (click)="$event.stopPropagation()"
1832
+ (itemClick)="onActionClick($event, sheet)">
1833
+ </kendo-dropdownbutton>
1834
+ </ng-template>
1835
+ </kendo-tabstrip-tab>
1782
1836
  </kendo-tabstrip>
1783
1837
  `, isInline: true, components: [{ type: i4.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i4.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { type: i5$1.TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { type: i5$1.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }], directives: [{ type: i3.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5$1.TabTemplateDirective, selector: "[kendoTabTemplate]" }] });
1784
1838
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SheetsBarComponent, decorators: [{
@@ -1786,52 +1840,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1786
1840
  args: [{
1787
1841
  selector: '[kendoSpreadsheetSheetsBar]',
1788
1842
  template: `
1789
- <button kendoButton
1790
- title="Add new sheet"
1843
+ <button kendoButton #addButton
1844
+ [title]="messageFor('addSheet')"
1791
1845
  type="button"
1792
1846
  fillMode="flat"
1793
1847
  class="k-spreadsheet-sheet-add"
1794
1848
  icon="plus"
1795
1849
  [svgIcon]="plusIcon"
1796
- [kendoEventsOutsideAngular]="{click: onAddClick}">
1850
+ [kendoEventsOutsideAngular]="{click: onAddClick}"
1851
+ [attr.aria-controls]="tablistId">
1797
1852
  </button>
1798
- <kendo-dropdownbutton #menuDdb
1853
+ <kendo-dropdownbutton #menuButton
1799
1854
  fillMode="flat"
1800
1855
  buttonClass="k-spreadsheet-sheets-menu"
1801
1856
  icon="menu"
1802
1857
  [svgIcon]="menuIcon"
1803
1858
  [data]="sheetsMenuList"
1804
1859
  (itemClick)="onMenuItemClick($event)"
1805
- (open)="onOpen(menuDdb)">
1860
+ (open)="onOpen(menuButton)"
1861
+ [buttonAttributes]="{title: messageFor('sheetsMenu')}"
1862
+ [attr.aria-controls]="tablistId">
1806
1863
  </kendo-dropdownbutton>
1807
- <kendo-tabstrip
1864
+ <kendo-tabstrip #tabstrip
1808
1865
  [tabPosition]="'bottom'"
1809
1866
  [showContentArea]="false"
1810
1867
  [scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
1811
1868
  class="k-spreadsheet-sheets k-overflow-hidden"
1812
- (tabSelect)="onTabSelect($event)"
1813
- [keepTabContent]="true">
1814
- <ng-container *ngFor="let sheet of sheets">
1815
- <kendo-tabstrip-tab
1869
+ (tabSelect)="onTabSelect($event)">
1870
+ <kendo-tabstrip-tab *ngFor="let sheet of sheets"
1816
1871
  [title]="sheet.text"
1817
1872
  [selected]="sheet.text === activeSheet">
1818
- <ng-template kendoTabTemplate>
1819
- <span class="k-link">{{sheet.text}}</span>
1820
- <kendo-dropdownbutton #sheetDdb
1821
- fillMode="flat"
1822
- icon="caret-alt-down"
1823
- [svgIcon]="caretAltDownIcon"
1824
- buttonClass="k-menu-button"
1825
- [data]="sheet.sheetActions"
1826
- [buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
1827
- (open)="onOpen(sheetDdb)"
1828
- (close)="onClose()"
1829
- (click)="$event.stopPropagation()"
1830
- (itemClick)="onActionClick($event, sheet)">
1831
- </kendo-dropdownbutton>
1832
- </ng-template>
1833
- </kendo-tabstrip-tab>
1834
- </ng-container>
1873
+ <ng-template kendoTabTemplate>
1874
+ <span class="k-link">{{sheet.text}}</span>
1875
+ <kendo-dropdownbutton #sheetDdb
1876
+ fillMode="flat"
1877
+ icon="caret-alt-down"
1878
+ [svgIcon]="caretAltDownIcon"
1879
+ buttonClass="k-menu-button"
1880
+ [data]="sheet.sheetActions"
1881
+ [buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
1882
+ (open)="onOpen(sheetDdb)"
1883
+ (close)="onClose()"
1884
+ (click)="$event.stopPropagation()"
1885
+ (itemClick)="onActionClick($event, sheet)">
1886
+ </kendo-dropdownbutton>
1887
+ </ng-template>
1888
+ </kendo-tabstrip-tab>
1835
1889
  </kendo-tabstrip>
1836
1890
  `
1837
1891
  }]
@@ -1842,6 +1896,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1842
1896
  type: Input
1843
1897
  }], sheetDescriptors: [{
1844
1898
  type: Input
1899
+ }], addButton: [{
1900
+ type: ViewChild,
1901
+ args: ['addButton']
1902
+ }], menuButton: [{
1903
+ type: ViewChild,
1904
+ args: ['menuButton']
1905
+ }], tabstrip: [{
1906
+ type: ViewChild,
1907
+ args: ['tabstrip']
1908
+ }], actionDdbs: [{
1909
+ type: ViewChildren,
1910
+ args: ['sheetDdb']
1911
+ }], actionDdbRefs: [{
1912
+ type: ViewChildren,
1913
+ args: ['sheetDdb', { read: ElementRef }]
1845
1914
  }] } });
1846
1915
 
1847
1916
  /**
@@ -1850,7 +1919,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1850
1919
  class MessagesDirective extends ComponentMessages {
1851
1920
  }
1852
1921
  MessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1853
- MessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: MessagesDirective, selector: "[kendoSpreadsheetMessages]", inputs: { home: "home", file: "file", insert: "insert", 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", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", delete: "delete", rename: "rename" }, usesInheritance: true, ngImport: i0 });
1922
+ MessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: MessagesDirective, selector: "[kendoSpreadsheetMessages]", inputs: { home: "home", file: "file", insert: "insert", 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", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", delete: "delete", rename: "rename", nameBox: "nameBox", addSheet: "addSheet", sheetsMenu: "sheetsMenu" }, usesInheritance: true, ngImport: i0 });
1854
1923
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, decorators: [{
1855
1924
  type: Directive,
1856
1925
  args: [{
@@ -1916,6 +1985,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1916
1985
  type: Input
1917
1986
  }], rename: [{
1918
1987
  type: Input
1988
+ }], nameBox: [{
1989
+ type: Input
1990
+ }], addSheet: [{
1991
+ type: Input
1992
+ }], sheetsMenu: [{
1993
+ type: Input
1919
1994
  }] } });
1920
1995
 
1921
1996
  /**
@@ -2010,8 +2085,6 @@ class SpreadsheetCommandBaseDirective {
2010
2085
  this.spreadsheetService = spreadsheetService;
2011
2086
  this.toolsService = toolsService;
2012
2087
  this.subs = new Subscription();
2013
- // this.toolsService.zone.runOutsideAngular(() => {
2014
- // setTimeout(() => {
2015
2088
  const text = this.localization.get(this.command);
2016
2089
  if (text) {
2017
2090
  this.button.showText = 'overflow';
@@ -2029,11 +2102,6 @@ class SpreadsheetCommandBaseDirective {
2029
2102
  this.subs.add(this.toolsService.stateChange.subscribe(state => {
2030
2103
  this.toolsService.ngZone.onStable.pipe(take(1)).subscribe(() => this.button.selected = state[command]);
2031
2104
  }));
2032
- // this.toolsService.zone.run(() => {
2033
- // this.toolsService.needsCheck.next();
2034
- // });
2035
- // });
2036
- //});
2037
2105
  }
2038
2106
  ngOnInit() {
2039
2107
  this.subs.add(this.button.click.subscribe((this.clickHandler.bind(this))));
@@ -2472,14 +2540,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2472
2540
  * Represents the [Kendo UI Spreadsheet component for Angular]({% slug overview_spreadsheet %}).
2473
2541
  */
2474
2542
  class SpreadsheetComponent {
2475
- constructor(ngZone, intl, host, localization, spreadsheetService, toolsService, renderer) {
2543
+ constructor(ngZone, intl, host, localization, spreadsheetService, toolsService) {
2476
2544
  this.ngZone = ngZone;
2477
2545
  this.intl = intl;
2478
2546
  this.host = host;
2479
2547
  this.localization = localization;
2480
2548
  this.spreadsheetService = spreadsheetService;
2481
2549
  this.toolsService = toolsService;
2482
- this.renderer = renderer;
2483
2550
  this.hostClass = true;
2484
2551
  this.role = 'application';
2485
2552
  /**
@@ -2496,13 +2563,13 @@ class SpreadsheetComponent {
2496
2563
  /**
2497
2564
  * The initial column width in pixels.
2498
2565
  *
2499
- * @default 64
2566
+ * @default 100
2500
2567
  */
2501
2568
  this.columnWidth = 100;
2502
2569
  /**
2503
2570
  * The height of the header row in pixels.
2504
2571
  *
2505
- * @default 20
2572
+ * @default 30
2506
2573
  */
2507
2574
  this.headerHeight = 30;
2508
2575
  /**
@@ -2510,11 +2577,11 @@ class SpreadsheetComponent {
2510
2577
  *
2511
2578
  * @default 32
2512
2579
  */
2513
- this.headerWidth = 100;
2580
+ this.headerWidth = 32;
2514
2581
  /**
2515
2582
  * The initial row height in pixels.
2516
2583
  *
2517
- * @default 20
2584
+ * @default 30
2518
2585
  */
2519
2586
  this.rowHeight = 30;
2520
2587
  /**
@@ -2720,7 +2787,6 @@ class SpreadsheetComponent {
2720
2787
  this.ngZone.run(() => this.spreadsheetService.currentActiveSheet = name);
2721
2788
  }
2722
2789
  onSheetsChanged(e) {
2723
- console.log(e, 'sheet ch');
2724
2790
  this.ngZone.run(() => {
2725
2791
  this.sheets = mapToSheetDescriptor(e.sheets);
2726
2792
  this.updateActiveSheet(this.spreadsheetService.activeSheet);
@@ -2743,9 +2809,8 @@ class SpreadsheetComponent {
2743
2809
  defaultCellStyle: this.defaultCellStyle,
2744
2810
  excel: this.excel,
2745
2811
  headerHeight: this.headerHeight,
2746
- headerWidth: this.headerHeight,
2812
+ headerWidth: this.headerWidth,
2747
2813
  images: this.images,
2748
- names: this.names,
2749
2814
  rowHeight: this.rowHeight,
2750
2815
  rows: this.rows,
2751
2816
  formulaBarInputRef: { current: this.formulaBarInputRef.current },
@@ -2754,8 +2819,8 @@ class SpreadsheetComponent {
2754
2819
  };
2755
2820
  }
2756
2821
  }
2757
- SpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1$5.IntlService }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
2758
- SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetComponent, selector: "kendo-spreadsheet", inputs: { menuItems: "menuItems", overflow: "overflow", activeSheet: "activeSheet", sheets: "sheets", columns: "columns", columnWidth: "columnWidth", defaultCellStyle: "defaultCellStyle", headerHeight: "headerHeight", headerWidth: "headerWidth", rowHeight: "rowHeight", rows: "rows", names: "names", 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: [
2822
+ SpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1$5.IntlService }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Component });
2823
+ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetComponent, selector: "kendo-spreadsheet", inputs: { menuItems: "menuItems", overflow: "overflow", 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: [
2759
2824
  SpreadsheetLocalizationService,
2760
2825
  {
2761
2826
  provide: LocalizationService,
@@ -2829,7 +2894,13 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
2829
2894
  i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
2830
2895
  rename="Rename Sheet"
2831
2896
  i18n-delete="kendo.spreadsheet.delete|The title of the Delete sheet dialog."
2832
- delete="Delete Sheet">
2897
+ delete="Delete Sheet"
2898
+ i18n-nameBox="kendo.spreadsheet.nameBox|The title of the Name Box input."
2899
+ nameBox="Name Box"
2900
+ i18n-addSheet="kendo.spreadsheet.addSheet|The title of the Add new sheet button."
2901
+ addSheet="Add New Sheet"
2902
+ i18n-sheetsMenu="kendo.spreadsheet.sheetsMenu|The title of the Sheets menu button."
2903
+ sheetsMenu="All Sheets">
2833
2904
  </ng-container>
2834
2905
  <div class="k-spreadsheet-header">
2835
2906
  <kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
@@ -2886,14 +2957,12 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
2886
2957
  <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
2887
2958
  <div class="k-spreadsheet-formula-bar">
2888
2959
  <span class="k-separator k-separator-vertical"></span>
2889
- <button kendoButton
2890
- icon="formula-fx"
2891
- [svgIcon]="formulaFxIcon"
2892
- [fillMode]="'flat'">
2893
- </button>
2960
+ <kendo-icon-wrapper
2961
+ name="formula-fx"
2962
+ [svgIcon]="formulaFxIcon">
2963
+ </kendo-icon-wrapper>
2894
2964
  <span class="k-separator k-separator-vertical"></span>
2895
2965
  <div #formulaBar kendoSpreadsheetFormulaInput class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
2896
- <div class="k-widget k-tooltip" style="position: absolute; display: none;">A1</div>
2897
2966
  </div>
2898
2967
  </div>
2899
2968
  <div class="k-spreadsheet-view">
@@ -2912,7 +2981,7 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
2912
2981
  <ng-container #dialogContainer></ng-container>
2913
2982
 
2914
2983
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
2915
- `, isInline: true, components: [{ type: i5$2.MenuComponent, selector: "kendo-menu", inputs: ["menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { type: i5$2.MenuItemComponent, selector: "kendo-menu-item", inputs: ["text", "url", "disabled", "cssClass", "cssStyle", "icon", "svgIcon", "data", "separator"] }, { type: i1$2.ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "tabindex", "size", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { type: SpreadsheetLoadFileComponent, selector: "kendo-spreadsheet-load-file-tool" }, { type: i1$2.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"] }, { type: i1$2.ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { type: i1$2.ToolBarSeparatorComponent, selector: "kendo-toolbar-separator", exportAs: ["kendoToolBarSeparator"] }, { type: SpreadsheetFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]" }, { type: SpreadsheetFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]" }, { type: SpreadsheetForeColorComponent, selector: "kendo-spreadsheet-forecolor-tool" }, { type: SpreadsheetBackColorComponent, selector: "kendo-spreadsheet-backcolor-tool" }, { type: i1$2.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"] }, { type: NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: ["data", "spreadsheetWidget"] }, { type: i4.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: ["sheets", "sheetDescriptors"] }, { type: i3.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoSpreadsheetLocalizedMessages]" }, { type: MainMenuDirective, selector: "[kendoSpreadsheetMenu]" }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: SpreadsheetSaveFileDirective, selector: "[kendoSpreadsheetSaveFile]" }, { type: SpreadsheetUndoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]" }, { type: SpreadsheetRedoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]" }, { type: SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { type: SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { type: SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { type: SpreadsheetTextAlignDirective, selector: "[kendoSpreadsheetTextAlign]" }, { type: SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { type: SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { type: SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]" }, { type: SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]" }, { type: SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]" }, { type: SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]" }, { type: SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]" }, { type: SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]" }, { type: FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]" }] });
2984
+ `, isInline: true, components: [{ type: i5$2.MenuComponent, selector: "kendo-menu", inputs: ["menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { type: i5$2.MenuItemComponent, selector: "kendo-menu-item", inputs: ["text", "url", "disabled", "cssClass", "cssStyle", "icon", "svgIcon", "data", "separator"] }, { type: i1$2.ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "tabindex", "size", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { type: SpreadsheetLoadFileComponent, selector: "kendo-spreadsheet-load-file-tool" }, { type: i1$2.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"] }, { type: i1$2.ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { type: i1$2.ToolBarSeparatorComponent, selector: "kendo-toolbar-separator", exportAs: ["kendoToolBarSeparator"] }, { type: SpreadsheetFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]" }, { type: SpreadsheetFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]" }, { type: SpreadsheetForeColorComponent, selector: "kendo-spreadsheet-forecolor-tool" }, { type: SpreadsheetBackColorComponent, selector: "kendo-spreadsheet-backcolor-tool" }, { type: i1$2.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"] }, { type: NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: ["data", "spreadsheetWidget"] }, { type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: ["sheets", "sheetDescriptors"] }, { type: i3.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoSpreadsheetLocalizedMessages]" }, { type: MainMenuDirective, selector: "[kendoSpreadsheetMenu]" }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: SpreadsheetSaveFileDirective, selector: "[kendoSpreadsheetSaveFile]" }, { type: SpreadsheetUndoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]" }, { type: SpreadsheetRedoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]" }, { type: SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { type: SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { type: SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { type: SpreadsheetTextAlignDirective, selector: "[kendoSpreadsheetTextAlign]" }, { type: SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { type: SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { type: SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]" }, { type: SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]" }, { type: SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]" }, { type: SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]" }, { type: SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]" }, { type: SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]" }, { type: FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]" }] });
2916
2985
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, decorators: [{
2917
2986
  type: Component,
2918
2987
  args: [{
@@ -2993,7 +3062,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2993
3062
  i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
2994
3063
  rename="Rename Sheet"
2995
3064
  i18n-delete="kendo.spreadsheet.delete|The title of the Delete sheet dialog."
2996
- delete="Delete Sheet">
3065
+ delete="Delete Sheet"
3066
+ i18n-nameBox="kendo.spreadsheet.nameBox|The title of the Name Box input."
3067
+ nameBox="Name Box"
3068
+ i18n-addSheet="kendo.spreadsheet.addSheet|The title of the Add new sheet button."
3069
+ addSheet="Add New Sheet"
3070
+ i18n-sheetsMenu="kendo.spreadsheet.sheetsMenu|The title of the Sheets menu button."
3071
+ sheetsMenu="All Sheets">
2997
3072
  </ng-container>
2998
3073
  <div class="k-spreadsheet-header">
2999
3074
  <kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
@@ -3050,14 +3125,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3050
3125
  <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
3051
3126
  <div class="k-spreadsheet-formula-bar">
3052
3127
  <span class="k-separator k-separator-vertical"></span>
3053
- <button kendoButton
3054
- icon="formula-fx"
3055
- [svgIcon]="formulaFxIcon"
3056
- [fillMode]="'flat'">
3057
- </button>
3128
+ <kendo-icon-wrapper
3129
+ name="formula-fx"
3130
+ [svgIcon]="formulaFxIcon">
3131
+ </kendo-icon-wrapper>
3058
3132
  <span class="k-separator k-separator-vertical"></span>
3059
3133
  <div #formulaBar kendoSpreadsheetFormulaInput class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
3060
- <div class="k-widget k-tooltip" style="position: absolute; display: none;">A1</div>
3061
3134
  </div>
3062
3135
  </div>
3063
3136
  <div class="k-spreadsheet-view">
@@ -3078,7 +3151,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3078
3151
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
3079
3152
  `,
3080
3153
  }]
3081
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1$5.IntlService }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i0.Renderer2 }]; }, propDecorators: { formulaBarInputRef: [{
3154
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1$5.IntlService }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; }, propDecorators: { formulaBarInputRef: [{
3082
3155
  type: ViewChild,
3083
3156
  args: ['formulaBar', { read: FormulaInputDirective }]
3084
3157
  }], formulaCellInputRef: [{
@@ -3118,8 +3191,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3118
3191
  type: Input
3119
3192
  }], rows: [{
3120
3193
  type: Input
3121
- }], names: [{
3122
- type: Input
3123
3194
  }], images: [{
3124
3195
  type: Input
3125
3196
  }], excel: [{
@@ -3172,26 +3243,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3172
3243
  }]
3173
3244
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
3174
3245
 
3175
- /**
3176
- * @hidden
3177
- */
3178
- class RemoveDirective {
3179
- constructor() {
3180
- this.hostDisplay = 'none';
3181
- }
3182
- }
3183
- RemoveDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RemoveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3184
- RemoveDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: RemoveDirective, selector: "[kendoRemoveDirective]", host: { properties: { "style.display": "this.hostDisplay" } }, ngImport: i0 });
3185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RemoveDirective, decorators: [{
3186
- type: Directive,
3187
- args: [{
3188
- selector: '[kendoRemoveDirective]',
3189
- }]
3190
- }], propDecorators: { hostDisplay: [{
3191
- type: HostBinding,
3192
- args: ['style.display']
3193
- }] } });
3194
-
3195
3246
  const DIRECTIVES = [
3196
3247
  SpreadsheetComponent,
3197
3248
  MessagesDirective,
@@ -3226,8 +3277,7 @@ const DIRECTIVES = [
3226
3277
  FontSizeDropDownListComponent,
3227
3278
  DialogContentComponent,
3228
3279
  MainMenuDirective,
3229
- ActionDialogComponent,
3230
- RemoveDirective
3280
+ ActionDialogComponent
3231
3281
  ];
3232
3282
  const EXPORTS = [
3233
3283
  SpreadsheetComponent,
@@ -3294,8 +3344,7 @@ SpreadsheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
3294
3344
  FontSizeDropDownListComponent,
3295
3345
  DialogContentComponent,
3296
3346
  MainMenuDirective,
3297
- ActionDialogComponent,
3298
- RemoveDirective], imports: [CommonModule,
3347
+ ActionDialogComponent], imports: [CommonModule,
3299
3348
  ButtonsModule,
3300
3349
  ComboBoxModule,
3301
3350
  DropDownListModule,
@@ -3378,5 +3427,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3378
3427
  * Generated bundle index. Do not edit.
3379
3428
  */
3380
3429
 
3381
- export { CustomMessagesComponent, FormulaInputDirective, FormulaListComponent, NameBoxComponent, SheetsBarComponent, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetBackColorComponent, SpreadsheetBoldDirective, SpreadsheetComponent, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetForeColorComponent, SpreadsheetFormatDirective, SpreadsheetGridLinesDirective, SpreadsheetItalicDirective, SpreadsheetLoadFileComponent, SpreadsheetModule, SpreadsheetRedoDirective, SpreadsheetSaveFileDirective, SpreadsheetTextAlignDirective as SpreadsheetTextAlignComponent, SpreadsheetTextWrapDirective, SpreadsheetUnderlineDirective, SpreadsheetUndoDirective };
3430
+ export { CustomMessagesComponent, FormulaInputDirective, FormulaListComponent, NameBoxComponent, SheetsBarComponent, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetBackColorComponent, SpreadsheetBoldDirective, SpreadsheetComponent, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetForeColorComponent, SpreadsheetFormatDirective, SpreadsheetGridLinesDirective, SpreadsheetItalicDirective, SpreadsheetLoadFileComponent, SpreadsheetModule, SpreadsheetRedoDirective, SpreadsheetSaveFileDirective, SpreadsheetTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetUnderlineDirective, SpreadsheetUndoDirective };
3382
3431