@progress/kendo-angular-spreadsheet 14.0.0-develop.2 → 14.0.0-develop.3

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.
@@ -12,7 +12,7 @@ import { formulaFxIcon, trashIcon, copyIcon, pencilIcon, arrowRightIcon, arrowLe
12
12
  import * as i1 from '@progress/kendo-angular-l10n';
13
13
  import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
14
14
  import * as i3 from '@progress/kendo-angular-common';
15
- import { isPresent, hasObservers, isDocumentAvailable, shouldShowValidationUI, EventsModule, WatermarkModule } from '@progress/kendo-angular-common';
15
+ import { isPresent, hasObservers, Keys, isDocumentAvailable, shouldShowValidationUI, EventsModule, WatermarkModule } from '@progress/kendo-angular-common';
16
16
  import * as i1$1 from '@progress/kendo-angular-popup';
17
17
  import { PopupService, PopupModule } from '@progress/kendo-angular-popup';
18
18
  import { Subject, Subscription } from 'rxjs';
@@ -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: 1695996313,
50
- version: '14.0.0-develop.2',
49
+ publishDate: 1696001484,
50
+ version: '14.0.0-develop.3',
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
 
@@ -1450,9 +1450,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1450
1450
  * @hidden
1451
1451
  */
1452
1452
  class NameBoxComponent {
1453
- constructor(ngZone, host) {
1453
+ constructor(ngZone, host, localization) {
1454
1454
  this.ngZone = ngZone;
1455
1455
  this.host = host;
1456
+ this.localization = localization;
1456
1457
  this.hostClass = true;
1457
1458
  this.valueNormalizer = (text) => text.pipe(map((content) => ({ name: content })));
1458
1459
  }
@@ -1478,6 +1479,9 @@ class NameBoxComponent {
1478
1479
  }
1479
1480
  };
1480
1481
  }
1482
+ get title() {
1483
+ return this.localization.get('nameBox');
1484
+ }
1481
1485
  onSelectionChange(value) {
1482
1486
  const editor = this.spreadsheetWidget.view.nameEditor;
1483
1487
  if (editor && value) {
@@ -1496,7 +1500,7 @@ class NameBoxComponent {
1496
1500
  }
1497
1501
  ;
1498
1502
  }
1499
- 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 });
1503
+ 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 });
1500
1504
  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: `
1501
1505
  <kendo-combobox #combobox
1502
1506
  [popupSettings]="{popupClass: 'k-spreadsheet-names-popup'}"
@@ -1510,6 +1514,7 @@ NameBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
1510
1514
  [value]="value"
1511
1515
  (open)="onOpen()"
1512
1516
  [valueNormalizer]="valueNormalizer"
1517
+ [attr.title]="title"
1513
1518
  ></kendo-combobox>
1514
1519
  `, 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"] }] });
1515
1520
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NameBoxComponent, decorators: [{
@@ -1529,10 +1534,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1529
1534
  [value]="value"
1530
1535
  (open)="onOpen()"
1531
1536
  [valueNormalizer]="valueNormalizer"
1537
+ [attr.title]="title"
1532
1538
  ></kendo-combobox>
1533
1539
  `
1534
1540
  }]
1535
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }]; }, propDecorators: { hostClass: [{
1541
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: SpreadsheetLocalizationService }]; }, propDecorators: { hostClass: [{
1536
1542
  type: HostBinding,
1537
1543
  args: ['class.k-spreadsheet-name-editor']
1538
1544
  }], keyDownHandler: [{
@@ -1568,7 +1574,7 @@ ActionDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
1568
1574
  <p>Are you sure you want to proceed?</p>
1569
1575
  </ng-container>
1570
1576
 
1571
- <form class="k-form k-form-md" *ngIf="commandName === 'rename'">
1577
+ <form class="k-form k-form-md" *ngIf="commandName === 'rename'" method="dialog">
1572
1578
  <div class="k-form-field">
1573
1579
  <label class="k-label k-form-label">Rename sheet</label>
1574
1580
  <div class="k-form-field-wrap">
@@ -1590,7 +1596,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1590
1596
  <p>Are you sure you want to proceed?</p>
1591
1597
  </ng-container>
1592
1598
 
1593
- <form class="k-form k-form-md" *ngIf="commandName === 'rename'">
1599
+ <form class="k-form k-form-md" *ngIf="commandName === 'rename'" method="dialog">
1594
1600
  <div class="k-form-field">
1595
1601
  <label class="k-label k-form-label">Rename sheet</label>
1596
1602
  <div class="k-form-field-wrap">
@@ -1606,6 +1612,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1606
1612
  }]
1607
1613
  }], ctorParameters: function () { return [{ type: i1$4.DialogRef }]; } });
1608
1614
 
1615
+ /**
1616
+ * @hidden
1617
+ */
1618
+ class SpreadsheetTabStripDirective {
1619
+ constructor(host) {
1620
+ this.host = host;
1621
+ this.navigationEnd = new EventEmitter();
1622
+ }
1623
+ ngAfterViewInit() {
1624
+ this.host.tablist.nativeElement.addEventListener('keydown', this.onKeyDown.bind(this), true);
1625
+ }
1626
+ ngOnDestroy() {
1627
+ this.host.tablist.nativeElement.removeEventListener('keydown', this.onKeyDown.bind(this), true);
1628
+ }
1629
+ get isLastActive() {
1630
+ const lastIndex = this.host.tabs.length - 1;
1631
+ return Array.from(this.host.tabs)[lastIndex].selected;
1632
+ }
1633
+ get isFirstActive() {
1634
+ return Array.from(this.host.tabs)[0].selected;
1635
+ }
1636
+ onKeyDown(ev) {
1637
+ switch (ev.keyCode) {
1638
+ case Keys.ArrowLeft:
1639
+ if (this.isFirstActive) {
1640
+ ev.stopImmediatePropagation();
1641
+ this.navigationEnd.emit('first');
1642
+ }
1643
+ break;
1644
+ case Keys.ArrowRight:
1645
+ if (this.isLastActive) {
1646
+ ev.stopImmediatePropagation();
1647
+ this.navigationEnd.emit('last');
1648
+ }
1649
+ break;
1650
+ default:
1651
+ break;
1652
+ }
1653
+ }
1654
+ }
1655
+ SpreadsheetTabStripDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetTabStripDirective, deps: [{ token: i5$1.TabStripComponent }], target: i0.ɵɵFactoryTarget.Directive });
1656
+ SpreadsheetTabStripDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetTabStripDirective, selector: "[kendoSpreadsheetTabStrip]", outputs: { navigationEnd: "navigationEnd" }, ngImport: i0 });
1657
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetTabStripDirective, decorators: [{
1658
+ type: Directive,
1659
+ args: [{
1660
+ selector: '[kendoSpreadsheetTabStrip]',
1661
+ }]
1662
+ }], ctorParameters: function () { return [{ type: i5$1.TabStripComponent }]; }, propDecorators: { navigationEnd: [{
1663
+ type: Output
1664
+ }] } });
1665
+
1609
1666
  /**
1610
1667
  * @hidden
1611
1668
  */
@@ -1626,6 +1683,7 @@ class SheetsBarComponent {
1626
1683
  this.selected = false;
1627
1684
  this.openedDdb = null;
1628
1685
  this.eyeIcon = eyeIcon;
1686
+ this.focusedEl = null;
1629
1687
  this.onAddClick = () => {
1630
1688
  if (this.spreadsheetService.spreadsheet) {
1631
1689
  this.spreadsheetService.spreadsheet.view.sheetsbar.onAddSelect();
@@ -1649,6 +1707,14 @@ class SheetsBarComponent {
1649
1707
  }
1650
1708
  };
1651
1709
  }
1710
+ /**
1711
+ * @hidden
1712
+ */
1713
+ onFocus() {
1714
+ this.renderer.setAttribute(this.element.nativeElement, 'tabindex', '-1');
1715
+ this.addButton.focus();
1716
+ this.focusedEl = this.addButton;
1717
+ }
1652
1718
  get activeSheet() {
1653
1719
  var _a, _b;
1654
1720
  return (_b = (_a = this.spreadsheetService.spreadsheet) === null || _a === void 0 ? void 0 : _a.activeSheet()) === null || _b === void 0 ? void 0 : _b.name();
@@ -1665,6 +1731,23 @@ class SheetsBarComponent {
1665
1731
  const nextBtn = this.element.nativeElement.querySelector('.k-tabstrip-next');
1666
1732
  this.renderer.addClass(prevBtn, 'k-order-1');
1667
1733
  this.renderer.addClass(nextBtn, 'k-order-2');
1734
+ this.renderer.setAttribute(this.element.nativeElement, 'tabindex', '0');
1735
+ this.hostKeyDownSub = this.renderer.listen(this.element.nativeElement, 'keydown', (ev) => this.onHostKeyDown(ev));
1736
+ }
1737
+ ngOnDestroy() {
1738
+ if (this.hostKeyDownSub) {
1739
+ this.hostKeyDownSub();
1740
+ }
1741
+ }
1742
+ onTabStripNavigationEnd(ev) {
1743
+ if (ev === 'last') {
1744
+ this.addButton.focus();
1745
+ this.focusedEl = this.addButton;
1746
+ }
1747
+ else {
1748
+ this.menuButton.focus();
1749
+ this.focusedEl = this.menuButton;
1750
+ }
1668
1751
  }
1669
1752
  onTabSelect(ev) {
1670
1753
  if (ev.title !== this.activeSheet) {
@@ -1695,16 +1778,19 @@ class SheetsBarComponent {
1695
1778
  const sheet = this.sheets.find(s => s.text === item.text);
1696
1779
  this.selectSheet(sheet.text);
1697
1780
  }
1781
+ messageFor(key) {
1782
+ return this.localization.get(key);
1783
+ }
1698
1784
  openDialog(dataItem, sheet) {
1699
1785
  const dialogSettings = {
1700
1786
  appendTo: this.spreadsheetService.dialogContainer,
1701
- title: this.localization.get(dataItem.commandName),
1787
+ title: this.messageFor(dataItem.commandName),
1702
1788
  content: ActionDialogComponent,
1703
1789
  actions: [{
1704
- text: this.localization.get(dataItem.dialogButton),
1790
+ text: this.messageFor(dataItem.dialogButton),
1705
1791
  themeColor: 'primary'
1706
1792
  }, {
1707
- text: this.localization.get('dialogCancel')
1793
+ text: this.messageFor('dialogCancel')
1708
1794
  }],
1709
1795
  actionsLayout: 'stretched',
1710
1796
  autoFocusedElement: '.k-textbox .k-input-inner, .k-button-solid-primary'
@@ -1713,7 +1799,7 @@ class SheetsBarComponent {
1713
1799
  const dialogInstance = dialog.dialog.instance;
1714
1800
  const dialogContent = dialog.content.instance;
1715
1801
  dialogInstance.action.pipe(take(1)).subscribe((event) => {
1716
- if (event.text === this.localization.get(dataItem.dialogButton)) {
1802
+ if (event.text === this.messageFor(dataItem.dialogButton)) {
1717
1803
  const sheetsBar = this.spreadsheetService.spreadsheet.view.sheetsbar;
1718
1804
  if (sheetsBar) {
1719
1805
  dataItem.commandName === 'delete' ? sheetsBar.onSheetRemove(sheet.text) : sheetsBar.onSheetRename(dialogContent.value, this.sheets.indexOf(sheet));
@@ -1738,112 +1824,164 @@ class SheetsBarComponent {
1738
1824
  this.ngZone.run(() => {
1739
1825
  const newSheets = this.spreadsheetService.spreadsheet.sheets();
1740
1826
  const sheetDesc = mapToSheetDescriptor(newSheets);
1741
- console.log(newSheets, 'new');
1742
1827
  this.sheets = sheetDesc.map((item, index, items) => (Object.assign(Object.assign({}, item), { inEdit: false, first: index === 0, last: index === items.length - 1, text: item.name, active: (item.name === this.activeSheet) || items.length === 1, index, sheetActions: getSheetActions(index, items) })));
1743
1828
  });
1744
1829
  }
1830
+ onHostKeyDown(ev) {
1831
+ const activeSheetIndex = this.sheets.find(s => s.name === this.activeSheet).index;
1832
+ switch (ev.keyCode) {
1833
+ case Keys.ArrowRight:
1834
+ this.focusNext(activeSheetIndex);
1835
+ break;
1836
+ case Keys.ArrowLeft:
1837
+ this.focusPrev(activeSheetIndex);
1838
+ break;
1839
+ case Keys.Tab:
1840
+ this.resetNavigation();
1841
+ break;
1842
+ default:
1843
+ break;
1844
+ }
1845
+ }
1846
+ focusNext(sheetIndex) {
1847
+ switch (this.focusedEl) {
1848
+ case this.addButton:
1849
+ this.menuButton.focus();
1850
+ this.focusedEl = this.menuButton;
1851
+ break;
1852
+ case this.menuButton:
1853
+ this.tabstrip.selectTab(sheetIndex);
1854
+ this.focusedEl = this.tabstrip;
1855
+ break;
1856
+ default:
1857
+ break;
1858
+ }
1859
+ }
1860
+ focusPrev(sheetIndex) {
1861
+ switch (this.focusedEl) {
1862
+ case this.addButton:
1863
+ this.tabstrip.selectTab(sheetIndex);
1864
+ this.focusedEl = this.tabstrip;
1865
+ break;
1866
+ case this.menuButton:
1867
+ this.addButton.focus();
1868
+ this.focusedEl = this.addButton;
1869
+ break;
1870
+ default:
1871
+ break;
1872
+ }
1873
+ }
1874
+ resetNavigation() {
1875
+ if (this.focusedEl !== this.tabstrip) {
1876
+ this.focusedEl.blur();
1877
+ }
1878
+ this.focusedEl = null;
1879
+ this.renderer.setAttribute(this.element.nativeElement, 'tabindex', '0');
1880
+ }
1745
1881
  }
1746
1882
  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 });
1747
- 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: `
1748
- <button kendoButton
1749
- title="Add new sheet"
1883
+ SheetsBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: { sheets: "sheets", sheetDescriptors: "sheetDescriptors" }, host: { listeners: { "focus": "onFocus()" }, 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 }], ngImport: i0, template: `
1884
+ <button kendoButton #addButton
1885
+ [title]="messageFor('addSheet')"
1750
1886
  type="button"
1751
1887
  fillMode="flat"
1752
1888
  class="k-spreadsheet-sheet-add"
1753
1889
  icon="plus"
1754
1890
  [svgIcon]="plusIcon"
1755
- [kendoEventsOutsideAngular]="{click: onAddClick}">
1891
+ [kendoEventsOutsideAngular]="{click: onAddClick}"
1892
+ [tabIndex]="-1">
1756
1893
  </button>
1757
- <kendo-dropdownbutton #menuDdb
1894
+ <kendo-dropdownbutton #menuButton
1758
1895
  fillMode="flat"
1759
1896
  buttonClass="k-spreadsheet-sheets-menu"
1760
1897
  icon="menu"
1761
1898
  [svgIcon]="menuIcon"
1762
1899
  [data]="sheetsMenuList"
1763
1900
  (itemClick)="onMenuItemClick($event)"
1764
- (open)="onOpen(menuDdb)">
1901
+ (open)="onOpen(menuButton)"
1902
+ [buttonAttributes]="{title: messageFor('sheetsMenu')}"
1903
+ [tabIndex]="-1">
1765
1904
  </kendo-dropdownbutton>
1766
- <kendo-tabstrip
1905
+ <kendo-tabstrip #tabstrip kendoSpreadsheetTabStrip
1767
1906
  [tabPosition]="'bottom'"
1768
1907
  [showContentArea]="false"
1769
1908
  [scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
1770
1909
  class="k-spreadsheet-sheets k-overflow-hidden"
1771
1910
  (tabSelect)="onTabSelect($event)"
1772
- [keepTabContent]="true">
1773
- <ng-container *ngFor="let sheet of sheets">
1774
- <kendo-tabstrip-tab
1911
+ (navigationEnd)="onTabStripNavigationEnd($event)">
1912
+ <kendo-tabstrip-tab *ngFor="let sheet of sheets"
1775
1913
  [title]="sheet.text"
1776
1914
  [selected]="sheet.text === activeSheet">
1777
- <ng-template kendoTabTemplate>
1778
- <span class="k-link">{{sheet.text}}</span>
1779
- <kendo-dropdownbutton #sheetDdb
1780
- fillMode="flat"
1781
- icon="caret-alt-down"
1782
- [svgIcon]="caretAltDownIcon"
1783
- buttonClass="k-menu-button"
1784
- [data]="sheet.sheetActions"
1785
- [buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
1786
- (open)="onOpen(sheetDdb)"
1787
- (close)="onClose()"
1788
- (click)="$event.stopPropagation()"
1789
- (itemClick)="onActionClick($event, sheet)">
1790
- </kendo-dropdownbutton>
1791
- </ng-template>
1792
- </kendo-tabstrip-tab>
1793
- </ng-container>
1915
+ <ng-template kendoTabTemplate>
1916
+ <span class="k-link">{{sheet.text}}</span>
1917
+ <kendo-dropdownbutton #sheetDdb
1918
+ fillMode="flat"
1919
+ icon="caret-alt-down"
1920
+ [svgIcon]="caretAltDownIcon"
1921
+ buttonClass="k-menu-button"
1922
+ [data]="sheet.sheetActions"
1923
+ [buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
1924
+ (open)="onOpen(sheetDdb)"
1925
+ (close)="onClose()"
1926
+ (click)="$event.stopPropagation()"
1927
+ (itemClick)="onActionClick($event, sheet)">
1928
+ </kendo-dropdownbutton>
1929
+ </ng-template>
1930
+ </kendo-tabstrip-tab>
1794
1931
  </kendo-tabstrip>
1795
- `, 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]" }] });
1932
+ `, 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: SpreadsheetTabStripDirective, selector: "[kendoSpreadsheetTabStrip]", outputs: ["navigationEnd"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5$1.TabTemplateDirective, selector: "[kendoTabTemplate]" }] });
1796
1933
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SheetsBarComponent, decorators: [{
1797
1934
  type: Component,
1798
1935
  args: [{
1799
1936
  selector: '[kendoSpreadsheetSheetsBar]',
1800
1937
  template: `
1801
- <button kendoButton
1802
- title="Add new sheet"
1938
+ <button kendoButton #addButton
1939
+ [title]="messageFor('addSheet')"
1803
1940
  type="button"
1804
1941
  fillMode="flat"
1805
1942
  class="k-spreadsheet-sheet-add"
1806
1943
  icon="plus"
1807
1944
  [svgIcon]="plusIcon"
1808
- [kendoEventsOutsideAngular]="{click: onAddClick}">
1945
+ [kendoEventsOutsideAngular]="{click: onAddClick}"
1946
+ [tabIndex]="-1">
1809
1947
  </button>
1810
- <kendo-dropdownbutton #menuDdb
1948
+ <kendo-dropdownbutton #menuButton
1811
1949
  fillMode="flat"
1812
1950
  buttonClass="k-spreadsheet-sheets-menu"
1813
1951
  icon="menu"
1814
1952
  [svgIcon]="menuIcon"
1815
1953
  [data]="sheetsMenuList"
1816
1954
  (itemClick)="onMenuItemClick($event)"
1817
- (open)="onOpen(menuDdb)">
1955
+ (open)="onOpen(menuButton)"
1956
+ [buttonAttributes]="{title: messageFor('sheetsMenu')}"
1957
+ [tabIndex]="-1">
1818
1958
  </kendo-dropdownbutton>
1819
- <kendo-tabstrip
1959
+ <kendo-tabstrip #tabstrip kendoSpreadsheetTabStrip
1820
1960
  [tabPosition]="'bottom'"
1821
1961
  [showContentArea]="false"
1822
1962
  [scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
1823
1963
  class="k-spreadsheet-sheets k-overflow-hidden"
1824
1964
  (tabSelect)="onTabSelect($event)"
1825
- [keepTabContent]="true">
1826
- <ng-container *ngFor="let sheet of sheets">
1827
- <kendo-tabstrip-tab
1965
+ (navigationEnd)="onTabStripNavigationEnd($event)">
1966
+ <kendo-tabstrip-tab *ngFor="let sheet of sheets"
1828
1967
  [title]="sheet.text"
1829
1968
  [selected]="sheet.text === activeSheet">
1830
- <ng-template kendoTabTemplate>
1831
- <span class="k-link">{{sheet.text}}</span>
1832
- <kendo-dropdownbutton #sheetDdb
1833
- fillMode="flat"
1834
- icon="caret-alt-down"
1835
- [svgIcon]="caretAltDownIcon"
1836
- buttonClass="k-menu-button"
1837
- [data]="sheet.sheetActions"
1838
- [buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
1839
- (open)="onOpen(sheetDdb)"
1840
- (close)="onClose()"
1841
- (click)="$event.stopPropagation()"
1842
- (itemClick)="onActionClick($event, sheet)">
1843
- </kendo-dropdownbutton>
1844
- </ng-template>
1845
- </kendo-tabstrip-tab>
1846
- </ng-container>
1969
+ <ng-template kendoTabTemplate>
1970
+ <span class="k-link">{{sheet.text}}</span>
1971
+ <kendo-dropdownbutton #sheetDdb
1972
+ fillMode="flat"
1973
+ icon="caret-alt-down"
1974
+ [svgIcon]="caretAltDownIcon"
1975
+ buttonClass="k-menu-button"
1976
+ [data]="sheet.sheetActions"
1977
+ [buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
1978
+ (open)="onOpen(sheetDdb)"
1979
+ (close)="onClose()"
1980
+ (click)="$event.stopPropagation()"
1981
+ (itemClick)="onActionClick($event, sheet)">
1982
+ </kendo-dropdownbutton>
1983
+ </ng-template>
1984
+ </kendo-tabstrip-tab>
1847
1985
  </kendo-tabstrip>
1848
1986
  `
1849
1987
  }]
@@ -1854,6 +1992,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1854
1992
  type: Input
1855
1993
  }], sheetDescriptors: [{
1856
1994
  type: Input
1995
+ }], onFocus: [{
1996
+ type: HostListener,
1997
+ args: ['focus']
1998
+ }], addButton: [{
1999
+ type: ViewChild,
2000
+ args: ['addButton']
2001
+ }], menuButton: [{
2002
+ type: ViewChild,
2003
+ args: ['menuButton']
2004
+ }], tabstrip: [{
2005
+ type: ViewChild,
2006
+ args: ['tabstrip']
1857
2007
  }] } });
1858
2008
 
1859
2009
  /**
@@ -1862,7 +2012,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1862
2012
  class MessagesDirective extends ComponentMessages {
1863
2013
  }
1864
2014
  MessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1865
- 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 });
2015
+ 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 });
1866
2016
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, decorators: [{
1867
2017
  type: Directive,
1868
2018
  args: [{
@@ -1928,6 +2078,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1928
2078
  type: Input
1929
2079
  }], rename: [{
1930
2080
  type: Input
2081
+ }], nameBox: [{
2082
+ type: Input
2083
+ }], addSheet: [{
2084
+ type: Input
2085
+ }], sheetsMenu: [{
2086
+ type: Input
1931
2087
  }] } });
1932
2088
 
1933
2089
  /**
@@ -2019,8 +2175,6 @@ class SpreadsheetCommandBaseDirective {
2019
2175
  this.spreadsheetService = spreadsheetService;
2020
2176
  this.toolsService = toolsService;
2021
2177
  this.subs = new Subscription();
2022
- // this.toolsService.zone.runOutsideAngular(() => {
2023
- // setTimeout(() => {
2024
2178
  const text = this.localization.get(this.command);
2025
2179
  if (text) {
2026
2180
  this.button.showText = 'overflow';
@@ -2038,11 +2192,6 @@ class SpreadsheetCommandBaseDirective {
2038
2192
  this.subs.add(this.toolsService.stateChange.subscribe(state => {
2039
2193
  this.toolsService.ngZone.onStable.pipe(take(1)).subscribe(() => this.button.selected = state[command]);
2040
2194
  }));
2041
- // this.toolsService.zone.run(() => {
2042
- // this.toolsService.needsCheck.next();
2043
- // });
2044
- // });
2045
- //});
2046
2195
  }
2047
2196
  ngOnInit() {
2048
2197
  this.subs.add(this.button.click.subscribe((this.clickHandler.bind(this))));
@@ -2726,7 +2875,6 @@ class SpreadsheetComponent {
2726
2875
  this.ngZone.run(() => this.spreadsheetService.currentActiveSheet = name);
2727
2876
  }
2728
2877
  onSheetsChanged(e) {
2729
- console.log(e, 'sheet ch');
2730
2878
  this.ngZone.run(() => {
2731
2879
  this.sheets = mapToSheetDescriptor(e.sheets);
2732
2880
  this.updateActiveSheet(this.spreadsheetService.activeSheet);
@@ -2819,7 +2967,13 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
2819
2967
  i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
2820
2968
  rename="Rename Sheet"
2821
2969
  i18n-delete="kendo.spreadsheet.delete|The title of the Delete sheet dialog."
2822
- delete="Delete Sheet">
2970
+ delete="Delete Sheet"
2971
+ i18n-nameBox="kendo.spreadsheet.nameBox|The title of the Name Box input."
2972
+ nameBox="Name Box"
2973
+ i18n-addSheet="kendo.spreadsheet.addSheet|The title of the Add new sheet button."
2974
+ addSheet="Add New Sheet"
2975
+ i18n-sheetsMenu="kendo.spreadsheet.sheetsMenu|The title of the Sheets menu button."
2976
+ sheetsMenu="All Sheets">
2823
2977
  </ng-container>
2824
2978
  <div class="k-spreadsheet-header">
2825
2979
  <kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
@@ -2876,14 +3030,12 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
2876
3030
  <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
2877
3031
  <div class="k-spreadsheet-formula-bar">
2878
3032
  <span class="k-separator k-separator-vertical"></span>
2879
- <button kendoButton
2880
- icon="formula-fx"
2881
- [svgIcon]="formulaFxIcon"
2882
- [fillMode]="'flat'">
2883
- </button>
3033
+ <kendo-icon-wrapper
3034
+ name="formula-fx"
3035
+ [svgIcon]="formulaFxIcon">
3036
+ </kendo-icon-wrapper>
2884
3037
  <span class="k-separator k-separator-vertical"></span>
2885
3038
  <div #formulaBar kendoSpreadsheetFormulaInput class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
2886
- <div class="k-widget k-tooltip" style="position: absolute; display: none;">A1</div>
2887
3039
  </div>
2888
3040
  </div>
2889
3041
  <div class="k-spreadsheet-view">
@@ -2902,7 +3054,7 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
2902
3054
  <ng-container #dialogContainer></ng-container>
2903
3055
 
2904
3056
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
2905
- `, 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]" }] });
3057
+ `, 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]" }] });
2906
3058
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, decorators: [{
2907
3059
  type: Component,
2908
3060
  args: [{
@@ -2983,7 +3135,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2983
3135
  i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
2984
3136
  rename="Rename Sheet"
2985
3137
  i18n-delete="kendo.spreadsheet.delete|The title of the Delete sheet dialog."
2986
- delete="Delete Sheet">
3138
+ delete="Delete Sheet"
3139
+ i18n-nameBox="kendo.spreadsheet.nameBox|The title of the Name Box input."
3140
+ nameBox="Name Box"
3141
+ i18n-addSheet="kendo.spreadsheet.addSheet|The title of the Add new sheet button."
3142
+ addSheet="Add New Sheet"
3143
+ i18n-sheetsMenu="kendo.spreadsheet.sheetsMenu|The title of the Sheets menu button."
3144
+ sheetsMenu="All Sheets">
2987
3145
  </ng-container>
2988
3146
  <div class="k-spreadsheet-header">
2989
3147
  <kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
@@ -3040,14 +3198,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3040
3198
  <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
3041
3199
  <div class="k-spreadsheet-formula-bar">
3042
3200
  <span class="k-separator k-separator-vertical"></span>
3043
- <button kendoButton
3044
- icon="formula-fx"
3045
- [svgIcon]="formulaFxIcon"
3046
- [fillMode]="'flat'">
3047
- </button>
3201
+ <kendo-icon-wrapper
3202
+ name="formula-fx"
3203
+ [svgIcon]="formulaFxIcon">
3204
+ </kendo-icon-wrapper>
3048
3205
  <span class="k-separator k-separator-vertical"></span>
3049
3206
  <div #formulaBar kendoSpreadsheetFormulaInput class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
3050
- <div class="k-widget k-tooltip" style="position: absolute; display: none;">A1</div>
3051
3207
  </div>
3052
3208
  </div>
3053
3209
  <div class="k-spreadsheet-view">
@@ -3162,26 +3318,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3162
3318
  }]
3163
3319
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
3164
3320
 
3165
- /**
3166
- * @hidden
3167
- */
3168
- class RemoveDirective {
3169
- constructor() {
3170
- this.hostDisplay = 'none';
3171
- }
3172
- }
3173
- RemoveDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RemoveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3174
- RemoveDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: RemoveDirective, selector: "[kendoRemoveDirective]", host: { properties: { "style.display": "this.hostDisplay" } }, ngImport: i0 });
3175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RemoveDirective, decorators: [{
3176
- type: Directive,
3177
- args: [{
3178
- selector: '[kendoRemoveDirective]',
3179
- }]
3180
- }], propDecorators: { hostDisplay: [{
3181
- type: HostBinding,
3182
- args: ['style.display']
3183
- }] } });
3184
-
3185
3321
  const DIRECTIVES = [
3186
3322
  SpreadsheetComponent,
3187
3323
  MessagesDirective,
@@ -3217,7 +3353,7 @@ const DIRECTIVES = [
3217
3353
  DialogContentComponent,
3218
3354
  MainMenuDirective,
3219
3355
  ActionDialogComponent,
3220
- RemoveDirective
3356
+ SpreadsheetTabStripDirective
3221
3357
  ];
3222
3358
  const EXPORTS = [
3223
3359
  SpreadsheetComponent,
@@ -3285,7 +3421,7 @@ SpreadsheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
3285
3421
  DialogContentComponent,
3286
3422
  MainMenuDirective,
3287
3423
  ActionDialogComponent,
3288
- RemoveDirective], imports: [CommonModule,
3424
+ SpreadsheetTabStripDirective], imports: [CommonModule,
3289
3425
  ButtonsModule,
3290
3426
  ComboBoxModule,
3291
3427
  DropDownListModule,