@progress/kendo-angular-spreadsheet 14.0.0-develop.4 → 14.0.0-develop.6

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.
@@ -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 { EventEmitter, Injectable, Output, Inject, Optional, Component, HostBinding, Input, Directive, forwardRef, ElementRef, ViewChild, InjectionToken, HostListener, ViewContainerRef, NgModule } from '@angular/core';
6
+ import { EventEmitter, Injectable, 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';
@@ -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, Keys, isDocumentAvailable, shouldShowValidationUI, EventsModule, WatermarkModule } from '@progress/kendo-angular-common';
15
+ import { isPresent, hasObservers, isDocumentAvailable, Keys, 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: 1696225092,
50
- version: '14.0.0-develop.4',
49
+ publishDate: 1696405867,
50
+ version: '14.0.0-develop.6',
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
 
@@ -177,6 +177,9 @@ class SpreadsheetService {
177
177
  get formulaListId() {
178
178
  return `k-spreadsheet-${spreadsheetCounter}-formula-list`;
179
179
  }
180
+ get tablistId() {
181
+ return `k-spreadsheet-${spreadsheetCounter}-tablist`;
182
+ }
180
183
  notifySheetsChange(actionType, sheetInfo) {
181
184
  const sheets = this.spreadsheet.sheets();
182
185
  this.sheetsChanged.next({ sheets, sheet: sheetInfo, actionType });
@@ -265,7 +268,7 @@ class FormulaInputDirective {
265
268
  this.spreadsheetService = spreadsheetService;
266
269
  this.hostClasses = true;
267
270
  this.ariaHasPopup = 'menu';
268
- this.ariaExpanded = null;
271
+ this.ariaExpanded = 'false';
269
272
  this.focusedItem = () => { var _a; return (_a = this.list) === null || _a === void 0 ? void 0 : _a.element.nativeElement.querySelector('.k-focus'); };
270
273
  this.unfocus = () => {
271
274
  const focused = this.focusedItem();
@@ -293,7 +296,7 @@ class FormulaInputDirective {
293
296
  };
294
297
  }
295
298
  get ariaControls() {
296
- return this.ariaExpanded ? this.spreadsheetService.formulaListId : null;
299
+ return this.ariaExpanded === 'true' ? this.spreadsheetService.formulaListId : null;
297
300
  }
298
301
  get listElement() {
299
302
  var _a;
@@ -353,12 +356,12 @@ class FormulaInputDirective {
353
356
  this.list = list;
354
357
  list.data = this.data;
355
358
  list.itemClick = this.handler;
356
- this.ariaExpanded = true;
359
+ this.ariaExpanded = 'true';
357
360
  },
358
361
  close: () => {
359
362
  this.popupRef && this.popupRef.close();
360
363
  this.popupRef = null;
361
- this.ariaExpanded = null;
364
+ this.ariaExpanded = 'false';
362
365
  },
363
366
  position: () => {
364
367
  // contentKey++;
@@ -499,6 +502,9 @@ const commandSVGIcons = {
499
502
  fontFamily: fontFamilyIcon
500
503
  };
501
504
 
505
+ /**
506
+ * @hidden
507
+ */
502
508
  class SpreadsheetLoadFileComponent extends ToolBarToolComponent {
503
509
  constructor(localization, spreadsheetService, toolbar) {
504
510
  super();
@@ -1612,57 +1618,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1612
1618
  }]
1613
1619
  }], ctorParameters: function () { return [{ type: i1$4.DialogRef }]; } });
1614
1620
 
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
-
1666
1621
  /**
1667
1622
  * @hidden
1668
1623
  */
@@ -1683,7 +1638,6 @@ class SheetsBarComponent {
1683
1638
  this.selected = false;
1684
1639
  this.openedDdb = null;
1685
1640
  this.eyeIcon = eyeIcon;
1686
- this.focusedEl = null;
1687
1641
  this.onAddClick = () => {
1688
1642
  if (this.spreadsheetService.spreadsheet) {
1689
1643
  this.spreadsheetService.spreadsheet.view.sheetsbar.onAddSelect();
@@ -1692,9 +1646,16 @@ class SheetsBarComponent {
1692
1646
  };
1693
1647
  this.actionsCallback = {
1694
1648
  copy: (sheetInfo) => {
1695
- sheetInfo.copies ? sheetInfo.copies += 1 : sheetInfo.copies = 1;
1649
+ let copies = 0;
1650
+ const regex = this.getCopyRegex(sheetInfo.text);
1651
+ this.sheets.forEach(sheet => {
1652
+ const isPresent = regex.test(sheet.text);
1653
+ if (isPresent) {
1654
+ copies += 1;
1655
+ }
1656
+ });
1696
1657
  const sheetToCopy = this.spreadsheetService.spreadsheet.sheets().find(s => s.name() === sheetInfo.text);
1697
- const newName = `${sheetToCopy.name()} (${sheetInfo.copies})`;
1658
+ const newName = `${sheetInfo.text} (${copies + 1})`;
1698
1659
  this.spreadsheetService.spreadsheet.insertSheet({ data: Object.assign(Object.assign({}, sheetToCopy.toJSON()), { name: newName }), index: sheetInfo.index + 1 });
1699
1660
  this.selectSheet(newName);
1700
1661
  },
@@ -1707,14 +1668,6 @@ class SheetsBarComponent {
1707
1668
  }
1708
1669
  };
1709
1670
  }
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
- }
1718
1671
  get activeSheet() {
1719
1672
  var _a, _b;
1720
1673
  return (_b = (_a = this.spreadsheetService.spreadsheet) === null || _a === void 0 ? void 0 : _a.activeSheet()) === null || _b === void 0 ? void 0 : _b.name();
@@ -1723,30 +1676,24 @@ class SheetsBarComponent {
1723
1676
  var _a;
1724
1677
  return (_a = this.sheets) === null || _a === void 0 ? void 0 : _a.map(sheet => ({ text: sheet.text, icon: 'eye', svgIcon: this.eyeIcon }));
1725
1678
  }
1679
+ get tablistId() {
1680
+ return this.spreadsheetService.tablistId;
1681
+ }
1726
1682
  ngAfterViewInit() {
1727
1683
  if (!isDocumentAvailable() || !this.element.nativeElement) {
1728
1684
  return;
1729
1685
  }
1730
1686
  const prevBtn = this.element.nativeElement.querySelector('.k-tabstrip-prev');
1731
1687
  const nextBtn = this.element.nativeElement.querySelector('.k-tabstrip-next');
1688
+ const tablist = this.element.nativeElement.querySelector('.k-tabstrip-items');
1732
1689
  this.renderer.addClass(prevBtn, 'k-order-1');
1733
1690
  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));
1691
+ this.renderer.setAttribute(tablist, 'id', this.tablistId);
1692
+ this.tabListSub = this.renderer.listen(tablist, 'keydown', this.onTabListKeyDown.bind(this));
1736
1693
  }
1737
1694
  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;
1695
+ if (this.tabListSub) {
1696
+ this.tabListSub();
1750
1697
  }
1751
1698
  }
1752
1699
  onTabSelect(ev) {
@@ -1762,6 +1709,8 @@ class SheetsBarComponent {
1762
1709
  }
1763
1710
  onClose() {
1764
1711
  this.openedDdb = null;
1712
+ const activeTabIdx = this.sheets.findIndex(sheet => sheet.active);
1713
+ this.tabstrip.selectTab(activeTabIdx);
1765
1714
  }
1766
1715
  onActionClick(dataItem, sheet) {
1767
1716
  if (dataItem.disabled) {
@@ -1813,6 +1762,11 @@ class SheetsBarComponent {
1813
1762
  commandName: dataItem.commandName
1814
1763
  });
1815
1764
  }
1765
+ getCopyRegex(sheetName) {
1766
+ const newName = sheetName.replaceAll('(', '\\(').replaceAll(')', '\\)');
1767
+ const st = `(${newName})\\s?\\(`;
1768
+ return new RegExp(st, 's');
1769
+ }
1816
1770
  selectSheet(sheetName) {
1817
1771
  const spreadsheetSheet = this.spreadsheetService.spreadsheet.sheets().find(s => s.name() === sheetName);
1818
1772
  this.spreadsheetService.spreadsheet.activeSheet(spreadsheetSheet);
@@ -1820,6 +1774,21 @@ class SheetsBarComponent {
1820
1774
  this.spreadsheetService.activeSheetChanged.next(spreadsheetSheet);
1821
1775
  this.notifySheetsChange();
1822
1776
  }
1777
+ onTabListKeyDown(ev) {
1778
+ const buttonEl = ev.target.querySelector('.k-dropdown-button');
1779
+ const index = Array.from(this.actionDdbRefs).findIndex(el => el.nativeElement === buttonEl);
1780
+ const ddb = Array.from(this.actionDdbs)[index];
1781
+ if (!ddb) {
1782
+ return;
1783
+ }
1784
+ const altKey = ev.altKey;
1785
+ const arrowDown = ev.keyCode === Keys.ArrowDown;
1786
+ const shouldOpenDdb = altKey && arrowDown && !ddb.isOpen;
1787
+ if (shouldOpenDdb) {
1788
+ ev.preventDefault();
1789
+ ddb.togglePopupVisibility();
1790
+ }
1791
+ }
1823
1792
  notifySheetsChange() {
1824
1793
  this.ngZone.run(() => {
1825
1794
  const newSheets = this.spreadsheetService.spreadsheet.sheets();
@@ -1827,60 +1796,9 @@ class SheetsBarComponent {
1827
1796
  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) })));
1828
1797
  });
1829
1798
  }
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
- }
1881
1799
  }
1882
1800
  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 });
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: `
1801
+ 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: `
1884
1802
  <button kendoButton #addButton
1885
1803
  [title]="messageFor('addSheet')"
1886
1804
  type="button"
@@ -1889,7 +1807,7 @@ SheetsBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
1889
1807
  icon="plus"
1890
1808
  [svgIcon]="plusIcon"
1891
1809
  [kendoEventsOutsideAngular]="{click: onAddClick}"
1892
- [tabIndex]="-1">
1810
+ [attr.aria-controls]="tablistId">
1893
1811
  </button>
1894
1812
  <kendo-dropdownbutton #menuButton
1895
1813
  fillMode="flat"
@@ -1899,16 +1817,14 @@ SheetsBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
1899
1817
  [data]="sheetsMenuList"
1900
1818
  (itemClick)="onMenuItemClick($event)"
1901
1819
  (open)="onOpen(menuButton)"
1902
- [buttonAttributes]="{title: messageFor('sheetsMenu')}"
1903
- [tabIndex]="-1">
1820
+ [buttonAttributes]="{title: messageFor('sheetsMenu'), ariaControls: tablistId}">
1904
1821
  </kendo-dropdownbutton>
1905
- <kendo-tabstrip #tabstrip kendoSpreadsheetTabStrip
1822
+ <kendo-tabstrip #tabstrip
1906
1823
  [tabPosition]="'bottom'"
1907
1824
  [showContentArea]="false"
1908
1825
  [scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
1909
1826
  class="k-spreadsheet-sheets k-overflow-hidden"
1910
- (tabSelect)="onTabSelect($event)"
1911
- (navigationEnd)="onTabStripNavigationEnd($event)">
1827
+ (tabSelect)="onTabSelect($event)">
1912
1828
  <kendo-tabstrip-tab *ngFor="let sheet of sheets"
1913
1829
  [title]="sheet.text"
1914
1830
  [selected]="sheet.text === activeSheet">
@@ -1929,7 +1845,7 @@ SheetsBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
1929
1845
  </ng-template>
1930
1846
  </kendo-tabstrip-tab>
1931
1847
  </kendo-tabstrip>
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]" }] });
1848
+ `, 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]" }] });
1933
1849
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SheetsBarComponent, decorators: [{
1934
1850
  type: Component,
1935
1851
  args: [{
@@ -1943,7 +1859,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1943
1859
  icon="plus"
1944
1860
  [svgIcon]="plusIcon"
1945
1861
  [kendoEventsOutsideAngular]="{click: onAddClick}"
1946
- [tabIndex]="-1">
1862
+ [attr.aria-controls]="tablistId">
1947
1863
  </button>
1948
1864
  <kendo-dropdownbutton #menuButton
1949
1865
  fillMode="flat"
@@ -1953,16 +1869,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1953
1869
  [data]="sheetsMenuList"
1954
1870
  (itemClick)="onMenuItemClick($event)"
1955
1871
  (open)="onOpen(menuButton)"
1956
- [buttonAttributes]="{title: messageFor('sheetsMenu')}"
1957
- [tabIndex]="-1">
1872
+ [buttonAttributes]="{title: messageFor('sheetsMenu'), ariaControls: tablistId}">
1958
1873
  </kendo-dropdownbutton>
1959
- <kendo-tabstrip #tabstrip kendoSpreadsheetTabStrip
1874
+ <kendo-tabstrip #tabstrip
1960
1875
  [tabPosition]="'bottom'"
1961
1876
  [showContentArea]="false"
1962
1877
  [scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
1963
1878
  class="k-spreadsheet-sheets k-overflow-hidden"
1964
- (tabSelect)="onTabSelect($event)"
1965
- (navigationEnd)="onTabStripNavigationEnd($event)">
1879
+ (tabSelect)="onTabSelect($event)">
1966
1880
  <kendo-tabstrip-tab *ngFor="let sheet of sheets"
1967
1881
  [title]="sheet.text"
1968
1882
  [selected]="sheet.text === activeSheet">
@@ -1992,9 +1906,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1992
1906
  type: Input
1993
1907
  }], sheetDescriptors: [{
1994
1908
  type: Input
1995
- }], onFocus: [{
1996
- type: HostListener,
1997
- args: ['focus']
1998
1909
  }], addButton: [{
1999
1910
  type: ViewChild,
2000
1911
  args: ['addButton']
@@ -2004,6 +1915,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2004
1915
  }], tabstrip: [{
2005
1916
  type: ViewChild,
2006
1917
  args: ['tabstrip']
1918
+ }], actionDdbs: [{
1919
+ type: ViewChildren,
1920
+ args: ['sheetDdb']
1921
+ }], actionDdbRefs: [{
1922
+ type: ViewChildren,
1923
+ args: ['sheetDdb', { read: ElementRef }]
2007
1924
  }] } });
2008
1925
 
2009
1926
  /**
@@ -2632,14 +2549,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2632
2549
  * Represents the [Kendo UI Spreadsheet component for Angular]({% slug overview_spreadsheet %}).
2633
2550
  */
2634
2551
  class SpreadsheetComponent {
2635
- constructor(ngZone, intl, host, localization, spreadsheetService, toolsService, renderer) {
2552
+ constructor(ngZone, intl, host, localization, spreadsheetService, toolsService) {
2636
2553
  this.ngZone = ngZone;
2637
2554
  this.intl = intl;
2638
2555
  this.host = host;
2639
2556
  this.localization = localization;
2640
2557
  this.spreadsheetService = spreadsheetService;
2641
2558
  this.toolsService = toolsService;
2642
- this.renderer = renderer;
2643
2559
  this.hostClass = true;
2644
2560
  this.role = 'application';
2645
2561
  /**
@@ -2656,13 +2572,13 @@ class SpreadsheetComponent {
2656
2572
  /**
2657
2573
  * The initial column width in pixels.
2658
2574
  *
2659
- * @default 64
2575
+ * @default 100
2660
2576
  */
2661
2577
  this.columnWidth = 100;
2662
2578
  /**
2663
2579
  * The height of the header row in pixels.
2664
2580
  *
2665
- * @default 20
2581
+ * @default 30
2666
2582
  */
2667
2583
  this.headerHeight = 30;
2668
2584
  /**
@@ -2670,11 +2586,11 @@ class SpreadsheetComponent {
2670
2586
  *
2671
2587
  * @default 32
2672
2588
  */
2673
- this.headerWidth = 100;
2589
+ this.headerWidth = 32;
2674
2590
  /**
2675
2591
  * The initial row height in pixels.
2676
2592
  *
2677
- * @default 20
2593
+ * @default 30
2678
2594
  */
2679
2595
  this.rowHeight = 30;
2680
2596
  /**
@@ -2889,11 +2805,11 @@ class SpreadsheetComponent {
2889
2805
  toString: (value, fmt) => this.intl.toString(value, fmt),
2890
2806
  format: (fmt, ...values) => this.intl.format(fmt, ...values)
2891
2807
  }
2892
- }), { columns: this.columns, columnWidth: this.columnWidth, defaultCellStyle: this.defaultCellStyle, excel: this.excel, headerHeight: this.headerHeight, headerWidth: this.headerHeight, images: this.images, names: this.names, rowHeight: this.rowHeight, rows: this.rows, formulaBarInputRef: { current: this.formulaBarInputRef.current }, formulaCellInputRef: { current: this.formulaCellInputRef.current }, nameBoxRef: { current: this.nameBoxRef.current } });
2808
+ }), { columns: this.columns, columnWidth: this.columnWidth, defaultCellStyle: this.defaultCellStyle, excel: this.excel, headerHeight: this.headerHeight, headerWidth: this.headerWidth, images: this.images, rowHeight: this.rowHeight, rows: this.rows, formulaBarInputRef: { current: this.formulaBarInputRef.current }, formulaCellInputRef: { current: this.formulaCellInputRef.current }, nameBoxRef: { current: this.nameBoxRef.current } });
2893
2809
  }
2894
2810
  }
2895
- 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 });
2896
- 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: [
2811
+ 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 });
2812
+ 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: [
2897
2813
  SpreadsheetLocalizationService,
2898
2814
  {
2899
2815
  provide: LocalizationService,
@@ -3224,7 +3140,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3224
3140
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
3225
3141
  `,
3226
3142
  }]
3227
- }], 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: [{
3143
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1$5.IntlService }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; }, propDecorators: { formulaBarInputRef: [{
3228
3144
  type: ViewChild,
3229
3145
  args: ['formulaBar', { read: FormulaInputDirective }]
3230
3146
  }], formulaCellInputRef: [{
@@ -3264,8 +3180,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3264
3180
  type: Input
3265
3181
  }], rows: [{
3266
3182
  type: Input
3267
- }], names: [{
3268
- type: Input
3269
3183
  }], images: [{
3270
3184
  type: Input
3271
3185
  }], excel: [{
@@ -3352,8 +3266,7 @@ const DIRECTIVES = [
3352
3266
  FontSizeDropDownListComponent,
3353
3267
  DialogContentComponent,
3354
3268
  MainMenuDirective,
3355
- ActionDialogComponent,
3356
- SpreadsheetTabStripDirective
3269
+ ActionDialogComponent
3357
3270
  ];
3358
3271
  const EXPORTS = [
3359
3272
  SpreadsheetComponent,
@@ -3420,8 +3333,7 @@ SpreadsheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
3420
3333
  FontSizeDropDownListComponent,
3421
3334
  DialogContentComponent,
3422
3335
  MainMenuDirective,
3423
- ActionDialogComponent,
3424
- SpreadsheetTabStripDirective], imports: [CommonModule,
3336
+ ActionDialogComponent], imports: [CommonModule,
3425
3337
  ButtonsModule,
3426
3338
  ComboBoxModule,
3427
3339
  DropDownListModule,
@@ -3504,5 +3416,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3504
3416
  * Generated bundle index. Do not edit.
3505
3417
  */
3506
3418
 
3507
- 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 };
3419
+ 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 };
3508
3420