@progress/kendo-angular-spreadsheet 14.3.0-develop.1 → 14.3.0-develop.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/action-bar/formula-input.directive.d.ts +2 -1
- package/action-bar/list.component.d.ts +2 -1
- package/common/spreadsheet.service.d.ts +1 -0
- package/esm2020/action-bar/formula-input.directive.mjs +22 -2
- package/esm2020/action-bar/list.component.mjs +7 -1
- package/esm2020/common/error-handling.service.mjs +14 -1
- package/esm2020/common/spreadsheet.service.mjs +1 -0
- package/esm2020/localization/messages.mjs +15 -1
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/sheets-bar/action-dialog.component.mjs +1 -1
- package/esm2020/sheets-bar/sheets-bar.component.mjs +136 -59
- package/esm2020/sheets-bar/utils.mjs +22 -18
- package/esm2020/spreadsheet.component.mjs +72 -10
- package/esm2020/tools/align/horizontal-align-tool.directive.mjs +1 -3
- package/esm2020/tools/align/vertical-align-tool.directive.mjs +1 -3
- package/esm2020/tools/insert/insert-link-dialog.component.mjs +1 -1
- package/esm2020/utils.mjs +6 -1
- package/fesm2015/progress-kendo-angular-spreadsheet.mjs +280 -92
- package/fesm2020/progress-kendo-angular-spreadsheet.mjs +296 -100
- package/localization/messages.d.ts +36 -1
- package/models/sheet-info.d.ts +1 -0
- package/package.json +13 -13
- package/schematics/ngAdd/index.js +1 -1
- package/sheets-bar/sheets-bar.component.d.ts +6 -3
- package/sheets-bar/utils.d.ts +1 -1
- package/spreadsheet.component.d.ts +12 -1
- package/utils.d.ts +4 -0
@@ -8,7 +8,7 @@ import { validatePackage } from '@progress/kendo-licensing';
|
|
8
8
|
import { SpreadsheetWidget } from '@progress/kendo-spreadsheet-common';
|
9
9
|
import * as i1$4 from '@progress/kendo-angular-intl';
|
10
10
|
import { localeData, IntlModule } from '@progress/kendo-angular-intl';
|
11
|
-
import { formulaFxIcon, trashIcon, copyIcon, pencilIcon, arrowRightIcon, arrowLeftIcon, alignCenterIcon, alignJustifyIcon, alignLeftIcon, alignRightIcon, alignTopIcon, alignMiddleIcon, alignBottomIcon, dropletIcon, boldIcon, foregroundColorIcon, italicIcon, arrowRotateCwIcon, underlineIcon, arrowRotateCcwIcon, textWrapIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, tableRowDeleteIcon, tableColumnDeleteIcon, bordersNoneIcon, folderOpenIcon, downloadIcon, customFormatIcon, fontSizeIcon, fontFamilyIcon, cellsMergeIcon, cellsMergeHorizontallyIcon, cellsMergeVerticallyIcon, tableUnmergeIcon, linkIcon, fontGrowIcon, fontShrinkIcon, decimalDecreaseIcon, decimalIncreaseIcon, cutIcon, clipboardIcon,
|
11
|
+
import { formulaFxIcon, trashIcon, copyIcon, pencilIcon, eyeSlashIcon, arrowRightIcon, arrowLeftIcon, alignCenterIcon, alignJustifyIcon, alignLeftIcon, alignRightIcon, alignTopIcon, alignMiddleIcon, alignBottomIcon, dropletIcon, boldIcon, foregroundColorIcon, italicIcon, arrowRotateCwIcon, underlineIcon, arrowRotateCcwIcon, textWrapIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, tableRowDeleteIcon, tableColumnDeleteIcon, bordersNoneIcon, folderOpenIcon, downloadIcon, customFormatIcon, fontSizeIcon, fontFamilyIcon, cellsMergeIcon, cellsMergeHorizontallyIcon, cellsMergeVerticallyIcon, tableUnmergeIcon, linkIcon, fontGrowIcon, fontShrinkIcon, decimalDecreaseIcon, decimalIncreaseIcon, cutIcon, clipboardIcon, eyeIcon, plusIcon, menuIcon, caretAltDownIcon, caretAltLeftIcon, caretAltRightIcon } from '@progress/kendo-svg-icons';
|
12
12
|
import * as i2 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';
|
@@ -47,8 +47,8 @@ const packageMetadata = {
|
|
47
47
|
name: '@progress/kendo-angular-spreadsheet',
|
48
48
|
productName: 'Kendo UI for Angular',
|
49
49
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
50
|
-
publishDate:
|
51
|
-
version: '14.3.0-develop.
|
50
|
+
publishDate: 1702298332,
|
51
|
+
version: '14.3.0-develop.10',
|
52
52
|
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',
|
53
53
|
};
|
54
54
|
|
@@ -150,10 +150,15 @@ const mapToSheetDescriptor = (sheetsArray) => {
|
|
150
150
|
name: sheet.name(),
|
151
151
|
rows: sheet._rows,
|
152
152
|
selection: sheet.selection(),
|
153
|
-
showGridLines: sheet.showGridLines
|
153
|
+
showGridLines: sheet.showGridLines,
|
154
|
+
state: sheet.state()
|
154
155
|
};
|
155
156
|
});
|
156
157
|
};
|
158
|
+
/**
|
159
|
+
* @hidden
|
160
|
+
*/
|
161
|
+
const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
|
157
162
|
|
158
163
|
let spreadsheetCounter = 0;
|
159
164
|
/**
|
@@ -162,6 +167,7 @@ let spreadsheetCounter = 0;
|
|
162
167
|
class SpreadsheetService {
|
163
168
|
constructor() {
|
164
169
|
this.sheetsChanged = new Subject();
|
170
|
+
this.onSheetsBarFocus = new Subject();
|
165
171
|
this.activeSheetChanged = new Subject();
|
166
172
|
this.selectionChanged = new Subject();
|
167
173
|
spreadsheetCounter++;
|
@@ -212,10 +218,12 @@ class FormulaListComponent {
|
|
212
218
|
}
|
213
219
|
}
|
214
220
|
FormulaListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormulaListComponent, deps: [{ token: i0.ElementRef }, { token: SpreadsheetService }], target: i0.ɵɵFactoryTarget.Component });
|
215
|
-
FormulaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FormulaListComponent, selector: "kendo-spreadsheet-formula-list", inputs: { data: "data", itemClick: "itemClick" }, host: { properties: { "attr.id": "this.id" } }, ngImport: i0, template: `
|
221
|
+
FormulaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FormulaListComponent, selector: "kendo-spreadsheet-formula-list", inputs: { maxHeight: "maxHeight", data: "data", itemClick: "itemClick" }, host: { properties: { "attr.id": "this.id" } }, ngImport: i0, template: `
|
216
222
|
<ul #ulRef
|
217
223
|
class="k-spreadsheet-formula-list k-list-ul k-list-md k-group k-reset"
|
218
224
|
role="menu"
|
225
|
+
[style.overflowY]="'auto'"
|
226
|
+
[style.maxHeight]="maxHeight"
|
219
227
|
[kendoEventsOutsideAngular]="{mousedown: handleMouseDown}">
|
220
228
|
<li *ngFor="let item of data"
|
221
229
|
(click)="itemClick(item.text)"
|
@@ -237,6 +245,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
237
245
|
<ul #ulRef
|
238
246
|
class="k-spreadsheet-formula-list k-list-ul k-list-md k-group k-reset"
|
239
247
|
role="menu"
|
248
|
+
[style.overflowY]="'auto'"
|
249
|
+
[style.maxHeight]="maxHeight"
|
240
250
|
[kendoEventsOutsideAngular]="{mousedown: handleMouseDown}">
|
241
251
|
<li *ngFor="let item of data"
|
242
252
|
(click)="itemClick(item.text)"
|
@@ -254,6 +264,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
254
264
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SpreadsheetService }]; }, propDecorators: { id: [{
|
255
265
|
type: HostBinding,
|
256
266
|
args: ['attr.id']
|
267
|
+
}], maxHeight: [{
|
268
|
+
type: Input
|
257
269
|
}], data: [{
|
258
270
|
type: Input
|
259
271
|
}], itemClick: [{
|
@@ -296,6 +308,23 @@ class FormulaInputDirective {
|
|
296
308
|
}
|
297
309
|
if (next) {
|
298
310
|
next.classList.add('k-focus');
|
311
|
+
const { offsetTop, offsetHeight, parentElement } = next;
|
312
|
+
if (dir > 0) {
|
313
|
+
if (offsetTop + offsetHeight >= parentElement.offsetHeight + parentElement.scrollTop) {
|
314
|
+
parentElement.scrollTop = Math.min(parentElement.scrollTop + offsetHeight, parentElement.scrollHeight - parentElement.offsetHeight);
|
315
|
+
}
|
316
|
+
if (next === items[0]) {
|
317
|
+
next.scrollIntoView();
|
318
|
+
}
|
319
|
+
}
|
320
|
+
else {
|
321
|
+
if (offsetTop <= parentElement.scrollTop) {
|
322
|
+
parentElement.scrollTop = Math.max(parentElement.scrollTop - offsetHeight, 0);
|
323
|
+
}
|
324
|
+
if (next === items[items.length - 1]) {
|
325
|
+
next.scrollIntoView();
|
326
|
+
}
|
327
|
+
}
|
299
328
|
}
|
300
329
|
};
|
301
330
|
}
|
@@ -363,6 +392,7 @@ class FormulaInputDirective {
|
|
363
392
|
this.list = list;
|
364
393
|
list.data = this.data;
|
365
394
|
list.itemClick = this.handler;
|
395
|
+
list.maxHeight = this.formulaListMaxHeight;
|
366
396
|
this.ariaExpanded = 'true';
|
367
397
|
},
|
368
398
|
close: () => {
|
@@ -381,7 +411,7 @@ class FormulaInputDirective {
|
|
381
411
|
}
|
382
412
|
}
|
383
413
|
FormulaInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormulaInputDirective, deps: [{ token: i0.ElementRef }, { token: i1.PopupService }, { token: SpreadsheetService }, { token: SpreadsheetLocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
|
384
|
-
FormulaInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]", host: { properties: { "class.k-spreadsheet-formula-input": "this.hostClasses", "attr.title": "this.title", "attr.role": "this.role", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-controls": "this.ariaControls" } }, ngImport: i0 });
|
414
|
+
FormulaInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]", inputs: { formulaListMaxHeight: "formulaListMaxHeight" }, host: { properties: { "class.k-spreadsheet-formula-input": "this.hostClasses", "attr.title": "this.title", "attr.role": "this.role", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-controls": "this.ariaControls" } }, ngImport: i0 });
|
385
415
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormulaInputDirective, decorators: [{
|
386
416
|
type: Directive,
|
387
417
|
args: [{
|
@@ -405,46 +435,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
405
435
|
}], ariaControls: [{
|
406
436
|
type: HostBinding,
|
407
437
|
args: ['attr.aria-controls']
|
438
|
+
}], formulaListMaxHeight: [{
|
439
|
+
type: Input
|
408
440
|
}] } });
|
409
441
|
|
410
442
|
/**
|
411
443
|
* @hidden
|
412
444
|
*/
|
413
|
-
const getSheetActions = (
|
445
|
+
const getSheetActions = (items, item) => {
|
446
|
+
const visibleItems = items.filter(item => item.state === 'visible');
|
447
|
+
const itemIndex = item ? visibleItems.findIndex(i => i === item) : 0;
|
414
448
|
return [{
|
415
|
-
|
449
|
+
messageKey: 'sheetDelete',
|
416
450
|
icon: 'trash',
|
417
451
|
svgIcon: trashIcon,
|
418
452
|
commandName: 'delete',
|
419
453
|
dialogButton: 'dialogDelete',
|
420
|
-
disabled:
|
421
|
-
},
|
422
|
-
|
423
|
-
text: 'Duplicate',
|
454
|
+
disabled: visibleItems.length === 1
|
455
|
+
}, {
|
456
|
+
messageKey: 'sheetDuplicate',
|
424
457
|
icon: 'copy',
|
425
458
|
svgIcon: copyIcon,
|
426
459
|
commandName: 'copy'
|
427
|
-
},
|
428
|
-
|
429
|
-
text: 'Rename',
|
460
|
+
}, {
|
461
|
+
messageKey: 'sheetRename',
|
430
462
|
icon: 'pencil',
|
431
463
|
svgIcon: pencilIcon,
|
432
464
|
commandName: 'rename',
|
433
465
|
dialogButton: 'dialogRename'
|
434
|
-
},
|
435
|
-
|
436
|
-
|
466
|
+
}, {
|
467
|
+
messageKey: 'sheetHide',
|
468
|
+
icon: 'eye-slash',
|
469
|
+
svgIcon: eyeSlashIcon,
|
470
|
+
commandName: 'hide',
|
471
|
+
disabled: visibleItems.length === 1
|
472
|
+
}, {
|
473
|
+
messageKey: 'sheetMoveRight',
|
437
474
|
icon: 'arrow-right',
|
438
475
|
svgIcon: arrowRightIcon,
|
439
476
|
commandName: 'move',
|
440
|
-
disabled:
|
441
|
-
},
|
442
|
-
|
443
|
-
text: 'Move Left',
|
477
|
+
disabled: visibleItems.length === 1 || itemIndex === visibleItems.length - 1
|
478
|
+
}, {
|
479
|
+
messageKey: 'sheetMoveLeft',
|
444
480
|
icon: 'arrow-left',
|
445
481
|
svgIcon: arrowLeftIcon,
|
446
482
|
commandName: 'move',
|
447
|
-
disabled:
|
483
|
+
disabled: visibleItems.length === 1 || itemIndex === 0
|
448
484
|
}];
|
449
485
|
};
|
450
486
|
|
@@ -479,10 +515,22 @@ class ErrorHandlingService {
|
|
479
515
|
}
|
480
516
|
openDialog(messageData) {
|
481
517
|
var _a;
|
518
|
+
let dialogContent;
|
519
|
+
if (messageData.name === 'message') {
|
520
|
+
const localizationMsg = this.messageFor('invalidNameError');
|
521
|
+
let inputValue = messageData.text.split(' ').pop();
|
522
|
+
if (messageData.text.startsWith('Parse')) {
|
523
|
+
inputValue = inputValue.substring(0, inputValue.length - 1);
|
524
|
+
}
|
525
|
+
dialogContent = replaceMessagePlaceholder(localizationMsg, 'inputValue', inputValue);
|
526
|
+
}
|
527
|
+
else {
|
528
|
+
dialogContent = this.messageFor(messageData.name);
|
529
|
+
}
|
482
530
|
const dialogSettings = {
|
483
531
|
appendTo: this.spreadsheetService.dialogContainer,
|
484
532
|
title: this.messageFor('dialogError'),
|
485
|
-
content:
|
533
|
+
content: dialogContent,
|
486
534
|
actions: [{
|
487
535
|
text: this.messageFor('dialogOk'),
|
488
536
|
themeColor: 'primary'
|
@@ -639,7 +687,7 @@ InsertLinkDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
639
687
|
</kendo-textbox>
|
640
688
|
</div>
|
641
689
|
</form>
|
642
|
-
`, isInline: true, components: [{ type: i2$1.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }] });
|
690
|
+
`, isInline: true, components: [{ type: i2$1.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }] });
|
643
691
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: InsertLinkDialogComponent, decorators: [{
|
644
692
|
type: Component,
|
645
693
|
args: [{
|
@@ -1761,7 +1809,7 @@ ActionDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
1761
1809
|
</div>
|
1762
1810
|
</div>
|
1763
1811
|
</form>
|
1764
|
-
`, isInline: true, components: [{ type: i2$1.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
1812
|
+
`, isInline: true, components: [{ type: i2$1.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
1765
1813
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ActionDialogComponent, decorators: [{
|
1766
1814
|
type: Component,
|
1767
1815
|
args: [{
|
@@ -1799,14 +1847,23 @@ class SheetsBarComponent {
|
|
1799
1847
|
this.dialogService = dialogService;
|
1800
1848
|
this.ngZone = ngZone;
|
1801
1849
|
this.hostClasses = true;
|
1850
|
+
this.subs = new Subscription();
|
1802
1851
|
this.plusIcon = plusIcon;
|
1803
1852
|
this.menuIcon = menuIcon;
|
1804
1853
|
this.caretAltDownIcon = caretAltDownIcon;
|
1805
1854
|
this.caretAltLeftIcon = caretAltLeftIcon;
|
1806
1855
|
this.caretAltRightIcon = caretAltRightIcon;
|
1807
1856
|
this.selected = false;
|
1857
|
+
this.sheetsMenuList = [];
|
1808
1858
|
this.openedDdb = null;
|
1809
|
-
this.
|
1859
|
+
this.hiddenStateIcons = {
|
1860
|
+
hidden: 'eye-slash',
|
1861
|
+
visible: 'eye'
|
1862
|
+
};
|
1863
|
+
this.hiddenStateSVGIcons = {
|
1864
|
+
hidden: eyeSlashIcon,
|
1865
|
+
visible: eyeIcon
|
1866
|
+
};
|
1810
1867
|
this.onAddClick = () => {
|
1811
1868
|
if (this.spreadsheetService.spreadsheet) {
|
1812
1869
|
this.spreadsheetService.spreadsheet.view.sheetsbar.onAddSelect();
|
@@ -1828,23 +1885,55 @@ class SheetsBarComponent {
|
|
1828
1885
|
this.spreadsheetService.spreadsheet.insertSheet({ data: Object.assign(Object.assign({}, sheetToCopy.toJSON()), { name: newName }), index: sheetInfo.index + 1 });
|
1829
1886
|
this.selectSheet(newName);
|
1830
1887
|
},
|
1831
|
-
move: (sheetInfo,
|
1832
|
-
const
|
1833
|
-
|
1888
|
+
move: (sheetInfo, itemKey) => {
|
1889
|
+
const isMoveRight = itemKey === 'sheetMoveRight';
|
1890
|
+
let oldIndex = -1;
|
1891
|
+
let newIndex = -1;
|
1892
|
+
const sheets = this.spreadsheetService.spreadsheet.sheets();
|
1893
|
+
if (isMoveRight) {
|
1894
|
+
for (let i = 0; i < sheets.length; i++) {
|
1895
|
+
if (sheets[i].name() === sheetInfo.text) {
|
1896
|
+
oldIndex = i;
|
1897
|
+
}
|
1898
|
+
if (oldIndex > -1 && i > oldIndex && sheets[i]._state() === 'visible') {
|
1899
|
+
newIndex = i;
|
1900
|
+
break;
|
1901
|
+
}
|
1902
|
+
}
|
1903
|
+
}
|
1904
|
+
else {
|
1905
|
+
for (let i = sheets.length - 1; i >= 0; i--) {
|
1906
|
+
if (sheets[i].name() === sheetInfo.text) {
|
1907
|
+
oldIndex = i;
|
1908
|
+
}
|
1909
|
+
if (oldIndex > -1 && (i < oldIndex) && sheets[i]._state() === 'visible') {
|
1910
|
+
newIndex = i;
|
1911
|
+
break;
|
1912
|
+
}
|
1913
|
+
}
|
1914
|
+
}
|
1834
1915
|
const sheetsBar = this.spreadsheetService.spreadsheet.view.sheetsbar;
|
1835
1916
|
sheetsBar.onSheetReorderEnd({ oldIndex, newIndex });
|
1917
|
+
this.selectSheet(sheetInfo.text);
|
1918
|
+
this.notifySheetsChange();
|
1919
|
+
},
|
1920
|
+
hide: (sheet) => {
|
1921
|
+
sheet.state = 'hidden';
|
1922
|
+
const sheets = this.spreadsheetService.spreadsheet.sheets();
|
1923
|
+
const sheetIndex = sheets.findIndex(s => s.name() === sheet.text);
|
1924
|
+
sheets[sheetIndex]._state('hidden');
|
1925
|
+
const newSelectedIndex = sheetIndex < sheets.length - 1 ? sheetIndex + 1 : 0;
|
1926
|
+
const sheetToSelect = sheets[newSelectedIndex].name();
|
1927
|
+
this.selectSheet(sheetToSelect);
|
1836
1928
|
this.notifySheetsChange();
|
1837
1929
|
}
|
1838
1930
|
};
|
1931
|
+
this.subs.add(spreadsheetService.onSheetsBarFocus.subscribe(() => ngZone.run(() => this.tabstrip.selectTab(this.sheets.findIndex(sh => sh.text === spreadsheetService.currentActiveSheet)))));
|
1839
1932
|
}
|
1840
1933
|
get activeSheet() {
|
1841
1934
|
var _a, _b;
|
1842
1935
|
return (_b = (_a = this.spreadsheetService.spreadsheet) === null || _a === void 0 ? void 0 : _a.activeSheet()) === null || _b === void 0 ? void 0 : _b.name();
|
1843
1936
|
}
|
1844
|
-
get sheetsMenuList() {
|
1845
|
-
var _a;
|
1846
|
-
return (_a = this.sheets) === null || _a === void 0 ? void 0 : _a.map(sheet => ({ text: sheet.text, icon: 'eye', svgIcon: this.eyeIcon }));
|
1847
|
-
}
|
1848
1937
|
get tablistId() {
|
1849
1938
|
return this.spreadsheetService.tablistId;
|
1850
1939
|
}
|
@@ -1860,10 +1949,24 @@ class SheetsBarComponent {
|
|
1860
1949
|
this.renderer.setAttribute(tablist, 'id', this.tablistId);
|
1861
1950
|
this.tabListSub = this.renderer.listen(tablist, 'keydown', this.onTabListKeyDown.bind(this));
|
1862
1951
|
}
|
1952
|
+
ngOnChanges(changes) {
|
1953
|
+
var _a, _b;
|
1954
|
+
if (changes['sheets']) {
|
1955
|
+
this.sheetsMenuList = (_a = this.sheets) === null || _a === void 0 ? void 0 : _a.map(sheet => ({
|
1956
|
+
text: sheet.text,
|
1957
|
+
icon: this.hiddenStateIcons[sheet.state],
|
1958
|
+
svgIcon: this.hiddenStateSVGIcons[sheet.state]
|
1959
|
+
}));
|
1960
|
+
this.sheets = (_b = changes['sheets'].currentValue) === null || _b === void 0 ? void 0 : _b.map((sheet, _, items) => (Object.assign(Object.assign({}, sheet), { sheetActions: getSheetActions(items, sheet)
|
1961
|
+
.map(item => (Object.assign(Object.assign({}, item), { text: this.messageFor(item.messageKey) }))) })));
|
1962
|
+
}
|
1963
|
+
;
|
1964
|
+
}
|
1863
1965
|
ngOnDestroy() {
|
1864
1966
|
if (this.tabListSub) {
|
1865
1967
|
this.tabListSub();
|
1866
1968
|
}
|
1969
|
+
this.subs.unsubscribe();
|
1867
1970
|
}
|
1868
1971
|
onTabSelect(ev) {
|
1869
1972
|
if (ev.title !== this.activeSheet) {
|
@@ -1889,11 +1992,13 @@ class SheetsBarComponent {
|
|
1889
1992
|
this.openDialog(dataItem, sheet);
|
1890
1993
|
}
|
1891
1994
|
else {
|
1892
|
-
this.actionsCallback[dataItem.commandName](sheet, dataItem.
|
1995
|
+
this.actionsCallback[dataItem.commandName](sheet, dataItem.messageKey);
|
1893
1996
|
}
|
1894
1997
|
}
|
1895
1998
|
onMenuItemClick(item) {
|
1896
1999
|
const sheet = this.sheets.find(s => s.text === item.text);
|
2000
|
+
sheet.state = 'visible';
|
2001
|
+
this.spreadsheetService.spreadsheet.sheets().find(sh => sh.name() === sheet.text)._state('visible');
|
1897
2002
|
this.selectSheet(sheet.text);
|
1898
2003
|
}
|
1899
2004
|
messageFor(key) {
|
@@ -1920,7 +2025,9 @@ class SheetsBarComponent {
|
|
1920
2025
|
if (event.text === this.messageFor(dataItem.dialogButton)) {
|
1921
2026
|
const sheetsBar = this.spreadsheetService.spreadsheet.view.sheetsbar;
|
1922
2027
|
if (sheetsBar) {
|
1923
|
-
|
2028
|
+
const allSheets = this.spreadsheetService.spreadsheet.sheets();
|
2029
|
+
const sheetIndex = allSheets.findIndex(s => s.name() === sheet.text);
|
2030
|
+
dataItem.commandName === 'delete' ? sheetsBar.onSheetRemove(sheet.text) : sheetsBar.onSheetRename(dialogContent.value, sheetIndex);
|
1924
2031
|
this.notifySheetsChange();
|
1925
2032
|
}
|
1926
2033
|
}
|
@@ -1960,14 +2067,23 @@ class SheetsBarComponent {
|
|
1960
2067
|
}
|
1961
2068
|
notifySheetsChange() {
|
1962
2069
|
this.ngZone.run(() => {
|
2070
|
+
var _a;
|
1963
2071
|
const newSheets = this.spreadsheetService.spreadsheet.sheets();
|
1964
2072
|
const sheetDesc = mapToSheetDescriptor(newSheets);
|
1965
|
-
this.sheets = sheetDesc
|
2073
|
+
this.sheets = sheetDesc
|
2074
|
+
.flatMap((item, index, items) => item.state === 'visible' ? [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(items, item)
|
2075
|
+
.map(item => (Object.assign(Object.assign({}, item), { text: this.messageFor(item.messageKey) }))) })] : []);
|
2076
|
+
this.sheetsMenuList = (_a = this.sheets) === null || _a === void 0 ? void 0 : _a.map(sheet => ({
|
2077
|
+
text: sheet.text,
|
2078
|
+
icon: this.hiddenStateIcons[sheet.state],
|
2079
|
+
svgIcon: this.hiddenStateSVGIcons[sheet.state]
|
2080
|
+
}));
|
1966
2081
|
});
|
2082
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => this.spreadsheetService.spreadsheet.view.clipboard.focus());
|
1967
2083
|
}
|
1968
2084
|
}
|
1969
2085
|
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$1.DialogService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
1970
|
-
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: `
|
2086
|
+
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 }], usesOnChanges: true, ngImport: i0, template: `
|
1971
2087
|
<button kendoButton #addButton
|
1972
2088
|
[title]="messageFor('addSheet')"
|
1973
2089
|
type="button"
|
@@ -1995,27 +2111,30 @@ SheetsBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
1995
2111
|
[scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
|
1996
2112
|
class="k-spreadsheet-sheets k-overflow-hidden"
|
1997
2113
|
(tabSelect)="onTabSelect($event)">
|
1998
|
-
<
|
1999
|
-
|
2000
|
-
|
2001
|
-
|
2002
|
-
|
2003
|
-
<
|
2004
|
-
|
2005
|
-
|
2006
|
-
|
2007
|
-
|
2008
|
-
|
2009
|
-
|
2010
|
-
|
2011
|
-
|
2012
|
-
|
2013
|
-
|
2014
|
-
|
2015
|
-
|
2016
|
-
|
2114
|
+
<ng-container *ngFor="let sheet of sheets">
|
2115
|
+
<kendo-tabstrip-tab
|
2116
|
+
*ngIf="sheet.state === 'visible'"
|
2117
|
+
[title]="sheet.text"
|
2118
|
+
[selected]="sheet.text === activeSheet">
|
2119
|
+
<ng-template kendoTabTemplate>
|
2120
|
+
<span class="k-link">{{sheet.text}}</span>
|
2121
|
+
<kendo-dropdownbutton #sheetDdb
|
2122
|
+
fillMode="flat"
|
2123
|
+
icon="caret-alt-down"
|
2124
|
+
[svgIcon]="caretAltDownIcon"
|
2125
|
+
buttonClass="k-menu-button"
|
2126
|
+
[data]="sheet.sheetActions"
|
2127
|
+
[buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
|
2128
|
+
(open)="onOpen(sheetDdb)"
|
2129
|
+
(close)="onClose()"
|
2130
|
+
(click)="$event.stopPropagation()"
|
2131
|
+
(itemClick)="onActionClick($event, sheet)">
|
2132
|
+
</kendo-dropdownbutton>
|
2133
|
+
</ng-template>
|
2134
|
+
</kendo-tabstrip-tab>
|
2135
|
+
</ng-container>
|
2017
2136
|
</kendo-tabstrip>
|
2018
|
-
`, 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]" }] });
|
2137
|
+
`, 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: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5$1.TabTemplateDirective, selector: "[kendoTabTemplate]" }] });
|
2019
2138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SheetsBarComponent, decorators: [{
|
2020
2139
|
type: Component,
|
2021
2140
|
args: [{
|
@@ -2048,25 +2167,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
2048
2167
|
[scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
|
2049
2168
|
class="k-spreadsheet-sheets k-overflow-hidden"
|
2050
2169
|
(tabSelect)="onTabSelect($event)">
|
2051
|
-
<
|
2052
|
-
|
2053
|
-
|
2054
|
-
|
2055
|
-
|
2056
|
-
<
|
2057
|
-
|
2058
|
-
|
2059
|
-
|
2060
|
-
|
2061
|
-
|
2062
|
-
|
2063
|
-
|
2064
|
-
|
2065
|
-
|
2066
|
-
|
2067
|
-
|
2068
|
-
|
2069
|
-
|
2170
|
+
<ng-container *ngFor="let sheet of sheets">
|
2171
|
+
<kendo-tabstrip-tab
|
2172
|
+
*ngIf="sheet.state === 'visible'"
|
2173
|
+
[title]="sheet.text"
|
2174
|
+
[selected]="sheet.text === activeSheet">
|
2175
|
+
<ng-template kendoTabTemplate>
|
2176
|
+
<span class="k-link">{{sheet.text}}</span>
|
2177
|
+
<kendo-dropdownbutton #sheetDdb
|
2178
|
+
fillMode="flat"
|
2179
|
+
icon="caret-alt-down"
|
2180
|
+
[svgIcon]="caretAltDownIcon"
|
2181
|
+
buttonClass="k-menu-button"
|
2182
|
+
[data]="sheet.sheetActions"
|
2183
|
+
[buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
|
2184
|
+
(open)="onOpen(sheetDdb)"
|
2185
|
+
(close)="onClose()"
|
2186
|
+
(click)="$event.stopPropagation()"
|
2187
|
+
(itemClick)="onActionClick($event, sheet)">
|
2188
|
+
</kendo-dropdownbutton>
|
2189
|
+
</ng-template>
|
2190
|
+
</kendo-tabstrip-tab>
|
2191
|
+
</ng-container>
|
2070
2192
|
</kendo-tabstrip>
|
2071
2193
|
`
|
2072
2194
|
}]
|
@@ -2100,7 +2222,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
2100
2222
|
class MessagesDirective extends ComponentMessages {
|
2101
2223
|
}
|
2102
2224
|
MessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
2103
|
-
MessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: MessagesDirective, selector: "[kendoSpreadsheetMessages]", inputs: { home: "home", file: "file", insert: "insert", formatTab: "formatTab", saveFile: "saveFile", loadFile: "loadFile", bold: "bold", italic: "italic", underline: "underline", format: "format", fontFamily: "fontFamily", fontSize: "fontSize", undo: "undo", redo: "redo", background: "background", color: "color", gridLines: "gridLines", addColumnLeft: "addColumnLeft", addColumnRight: "addColumnRight", addRowBelow: "addRowBelow", addRowAbove: "addRowAbove", deleteColumn: "deleteColumn", deleteRow: "deleteRow", wrap: "wrap", align: "align", alignHorizontal: "alignHorizontal", alignVertical: "alignVertical", alignLeft: "alignLeft", alignCenter: "alignCenter", alignRight: "alignRight", alignJustify: "alignJustify", alignTop: "alignTop", alignMiddle: "alignMiddle", alignBottom: "alignBottom", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", dialogInsert: "dialogInsert", dialogRemoveLink: "dialogRemoveLink", delete: "delete", rename: "rename", nameBox: "nameBox", formulaInput: "formulaInput", addSheet: "addSheet", sheetsMenu: "sheetsMenu", view: "view", merge: "merge", mergeHorizontally: "mergeHorizontally", mergeVertically: "mergeVertically", mergeAll: "mergeAll", unmerge: "unmerge", insertLink: "insertLink", increaseDecimal: "increaseDecimal", decreaseDecimal: "decreaseDecimal", increaseFontSize: "increaseFontSize", decreaseFontSize: "decreaseFontSize", openUnsupported: "openUnsupported", modifyMerged: "modifyMerged", cannotModifyDisabled: "cannotModifyDisabled", dialogOk: "dialogOk", dialogError: "dialogError", duplicateSheetName: "duplicateSheetName", copy: "copy", cut: "cut", paste: "paste", hideRow: "hideRow", unhideRow: "unhideRow", hideColumn: "hideColumn", unhideColumn: "unhideColumn" }, usesInheritance: true, ngImport: i0 });
|
2225
|
+
MessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: MessagesDirective, selector: "[kendoSpreadsheetMessages]", inputs: { home: "home", file: "file", insert: "insert", formatTab: "formatTab", saveFile: "saveFile", loadFile: "loadFile", bold: "bold", italic: "italic", underline: "underline", format: "format", fontFamily: "fontFamily", fontSize: "fontSize", undo: "undo", redo: "redo", background: "background", color: "color", gridLines: "gridLines", addColumnLeft: "addColumnLeft", addColumnRight: "addColumnRight", addRowBelow: "addRowBelow", addRowAbove: "addRowAbove", deleteColumn: "deleteColumn", deleteRow: "deleteRow", wrap: "wrap", align: "align", alignHorizontal: "alignHorizontal", alignVertical: "alignVertical", alignLeft: "alignLeft", alignCenter: "alignCenter", alignRight: "alignRight", alignJustify: "alignJustify", alignTop: "alignTop", alignMiddle: "alignMiddle", alignBottom: "alignBottom", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", dialogInsert: "dialogInsert", dialogRemoveLink: "dialogRemoveLink", delete: "delete", rename: "rename", nameBox: "nameBox", formulaInput: "formulaInput", addSheet: "addSheet", sheetsMenu: "sheetsMenu", view: "view", merge: "merge", mergeHorizontally: "mergeHorizontally", mergeVertically: "mergeVertically", mergeAll: "mergeAll", unmerge: "unmerge", insertLink: "insertLink", increaseDecimal: "increaseDecimal", decreaseDecimal: "decreaseDecimal", increaseFontSize: "increaseFontSize", decreaseFontSize: "decreaseFontSize", openUnsupported: "openUnsupported", modifyMerged: "modifyMerged", cannotModifyDisabled: "cannotModifyDisabled", dialogOk: "dialogOk", dialogError: "dialogError", duplicateSheetName: "duplicateSheetName", copy: "copy", cut: "cut", paste: "paste", hideRow: "hideRow", unhideRow: "unhideRow", hideColumn: "hideColumn", unhideColumn: "unhideColumn", sheetDelete: "sheetDelete", sheetRename: "sheetRename", sheetHide: "sheetHide", sheetDuplicate: "sheetDuplicate", sheetMoveLeft: "sheetMoveLeft", sheetMoveRight: "sheetMoveRight", invalidNameError: "invalidNameError" }, usesInheritance: true, ngImport: i0 });
|
2104
2226
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, decorators: [{
|
2105
2227
|
type: Directive,
|
2106
2228
|
args: [{
|
@@ -2246,6 +2368,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
2246
2368
|
type: Input
|
2247
2369
|
}], unhideColumn: [{
|
2248
2370
|
type: Input
|
2371
|
+
}], sheetDelete: [{
|
2372
|
+
type: Input
|
2373
|
+
}], sheetRename: [{
|
2374
|
+
type: Input
|
2375
|
+
}], sheetHide: [{
|
2376
|
+
type: Input
|
2377
|
+
}], sheetDuplicate: [{
|
2378
|
+
type: Input
|
2379
|
+
}], sheetMoveLeft: [{
|
2380
|
+
type: Input
|
2381
|
+
}], sheetMoveRight: [{
|
2382
|
+
type: Input
|
2383
|
+
}], invalidNameError: [{
|
2384
|
+
type: Input
|
2249
2385
|
}] } });
|
2250
2386
|
|
2251
2387
|
/**
|
@@ -2594,9 +2730,7 @@ class SpreadsheetHorizontalTextAlignDirective {
|
|
2594
2730
|
host.icon = commandIcons[this.commandName];
|
2595
2731
|
host.arrowIcon = true;
|
2596
2732
|
host.fillMode = 'flat';
|
2597
|
-
host.data = ALIGNS
|
2598
|
-
.filter(value => value.commandName === 'textAlign')
|
2599
|
-
.map(item => (Object.assign(Object.assign({}, item), { textKey: localization.get(item.commandId) })));
|
2733
|
+
host.data = ALIGNS.flatMap(item => item.commandName === 'textAlign' ? [Object.assign(Object.assign({}, item), { textKey: localization.get(item.commandId) })] : []);
|
2600
2734
|
this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
|
2601
2735
|
host.title = localization.get(this.commandName);
|
2602
2736
|
host.textField = 'textKey';
|
@@ -2638,9 +2772,7 @@ class SpreadsheetVerticalTextAlignDirective {
|
|
2638
2772
|
host.icon = commandIcons[this.commandName];
|
2639
2773
|
host.arrowIcon = true;
|
2640
2774
|
host.fillMode = 'flat';
|
2641
|
-
host.data = ALIGNS
|
2642
|
-
.filter(value => value.commandName === 'verticalAlign')
|
2643
|
-
.map(item => (Object.assign(Object.assign({}, item), { textKey: localization.get(item.commandId) })));
|
2775
|
+
host.data = ALIGNS.flatMap(item => item.commandName === 'verticalAlign' ? [Object.assign(Object.assign({}, item), { textKey: localization.get(item.commandId) })] : []);
|
2644
2776
|
this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
|
2645
2777
|
host.title = localization.get(this.commandName);
|
2646
2778
|
host.textField = 'textKey';
|
@@ -3108,6 +3240,13 @@ class SpreadsheetComponent {
|
|
3108
3240
|
* @default false
|
3109
3241
|
*/
|
3110
3242
|
this.overflow = false;
|
3243
|
+
/**
|
3244
|
+
* Sets the height of the formula list container.
|
3245
|
+
* Accepts same values as the CSS [`style.height`](https://developer.mozilla.org/en-US/docs/Web/CSS/height) property.
|
3246
|
+
*
|
3247
|
+
* @default '300px'
|
3248
|
+
*/
|
3249
|
+
this.formulaListMaxHeight = '300px';
|
3111
3250
|
/**
|
3112
3251
|
* The number of columns in the document.
|
3113
3252
|
*
|
@@ -3179,6 +3318,16 @@ class SpreadsheetComponent {
|
|
3179
3318
|
this.showLicenseWatermark = false;
|
3180
3319
|
this.contextMenuItems = [];
|
3181
3320
|
this.subs = new Subscription();
|
3321
|
+
/**
|
3322
|
+
* @hidden
|
3323
|
+
*/
|
3324
|
+
this.onKeyDown = (e) => {
|
3325
|
+
const isCtrl = e.ctrlKey || e.metaKey;
|
3326
|
+
const shift = e.shiftKey;
|
3327
|
+
if (isCtrl && shift && e.keyCode === Keys.KeyS) {
|
3328
|
+
this.spreadsheetService.onSheetsBarFocus.next();
|
3329
|
+
}
|
3330
|
+
};
|
3182
3331
|
this.onChange = (e) => {
|
3183
3332
|
hasObservers(this.change) && this.change.emit(e);
|
3184
3333
|
this.spreadsheetService.selectionChanged.next(e.range);
|
@@ -3273,7 +3422,7 @@ class SpreadsheetComponent {
|
|
3273
3422
|
* An array which defines the document sheets and their content.
|
3274
3423
|
*/
|
3275
3424
|
set sheets(value) {
|
3276
|
-
const items = value.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
|
3425
|
+
const items = value.map((item, index, items) => (Object.assign(Object.assign({}, item), { state: item.state || 'visible', inEdit: false, first: index === 0, last: index === items.length - 1, text: item.name, active: (item.name === this.activeSheet) || items.length === 1, index })));
|
3277
3426
|
this._sheetsInfo = items;
|
3278
3427
|
}
|
3279
3428
|
get sheetsInfo() {
|
@@ -3295,6 +3444,7 @@ class SpreadsheetComponent {
|
|
3295
3444
|
spreadsheet.bind('changeFormat', this.onChangeFormat);
|
3296
3445
|
spreadsheet.bind('excelImport', this.onExcelImport);
|
3297
3446
|
spreadsheet.bind('excelExport', this.onExcelExport);
|
3447
|
+
spreadsheet.bind('keydown', this.onKeyDown);
|
3298
3448
|
spreadsheet.view.bind('update', this.updateState);
|
3299
3449
|
spreadsheet.view.bind('message', this.onMessage);
|
3300
3450
|
spreadsheet.bind('contextmenu', this.onContextMenu.bind(this));
|
@@ -3306,7 +3456,7 @@ class SpreadsheetComponent {
|
|
3306
3456
|
if (!this.sheetsInfo) {
|
3307
3457
|
this.ngZone.run(() => {
|
3308
3458
|
const defaultSheetDescriptors = mapToSheetDescriptor([spreadsheet === null || spreadsheet === void 0 ? void 0 : spreadsheet.activeSheet()]);
|
3309
|
-
this._sheetsInfo = [Object.assign(Object.assign({ text: this.spreadsheetService.currentActiveSheet, first: true, last: true }, defaultSheetDescriptors), { sheetActions: getSheetActions(
|
3459
|
+
this._sheetsInfo = [Object.assign(Object.assign({ text: this.spreadsheetService.currentActiveSheet, first: true, last: true, state: 'visible' }, defaultSheetDescriptors), { sheetActions: getSheetActions(defaultSheetDescriptors).map(item => (Object.assign(Object.assign({}, item), { text: this.messageFor(item.messageKey) }))) })];
|
3310
3460
|
});
|
3311
3461
|
}
|
3312
3462
|
});
|
@@ -3612,7 +3762,7 @@ class SpreadsheetComponent {
|
|
3612
3762
|
}
|
3613
3763
|
}
|
3614
3764
|
SpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1$4.IntlService }, { token: i0.ElementRef }, { token: i2.LocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ErrorHandlingService }, { token: i1$1.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
3615
|
-
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: [
|
3765
|
+
SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetComponent, selector: "kendo-spreadsheet", inputs: { menuItems: "menuItems", overflow: "overflow", formulaListMaxHeight: "formulaListMaxHeight", activeSheet: "activeSheet", sheets: "sheets", columns: "columns", columnWidth: "columnWidth", defaultCellStyle: "defaultCellStyle", headerHeight: "headerHeight", headerWidth: "headerWidth", rowHeight: "rowHeight", rows: "rows", images: "images", excel: "excel" }, outputs: { change: "change", formatChange: "formatChange", selectionChange: "selectionChange", excelExport: "excelExport", excelImport: "excelImport", activeSheetChange: "activeSheetChange" }, host: { properties: { "class.k-spreadsheet": "this.hostClass", "attr.role": "this.role" } }, providers: [
|
3616
3766
|
SpreadsheetLocalizationService,
|
3617
3767
|
{
|
3618
3768
|
provide: LocalizationService,
|
@@ -3767,7 +3917,21 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
3767
3917
|
i18n-hideColumn="kendo.spreadsheet.hideColumn|The Hide column command text."
|
3768
3918
|
hideColumn="Hide"
|
3769
3919
|
i18n-unhideColumn="kendo.spreadsheet.unhideColumn|The Unhide column command text."
|
3770
|
-
unhideColumn="Unhide"
|
3920
|
+
unhideColumn="Unhide"
|
3921
|
+
i18n-sheetDelete="kendo.spreadsheet.sheetDelete|The text of the Sheet menu Delete option."
|
3922
|
+
sheetDelete="Delete"
|
3923
|
+
i18n-sheetRename="kendo.spreadsheet.sheetRename|The text of the Sheet menu Rename option."
|
3924
|
+
sheetRename="Rename"
|
3925
|
+
i18n-sheetDuplicate="kendo.spreadsheet.sheetDuplicate|The text of the Sheet menu Duplicate option."
|
3926
|
+
sheetDuplicate="Duplicate"
|
3927
|
+
i18n-sheetHide="kendo.spreadsheet.sheetHide|The text of the Sheet menu Hide option."
|
3928
|
+
sheetHide="Hide"
|
3929
|
+
i18n-sheetMoveLeft="kendo.spreadsheet.sheetMoveLeft|The text of the Sheet menu Move Left option."
|
3930
|
+
sheetMoveLeft="Move Left"
|
3931
|
+
i18n-sheetMoveRight="kendo.spreadsheet.sheetMoveRight|The text of the Sheet menu Move Right option."
|
3932
|
+
sheetMoveRight="Move Right"
|
3933
|
+
i18n-invalidNameError="kendo.spreadsheet.invalidNameError|The content of the dialog that warns about invalid name input."
|
3934
|
+
invalidNameError="{{ 'Invalid name: {inputValue}' }}">
|
3771
3935
|
</ng-container>
|
3772
3936
|
<div class="k-spreadsheet-header">
|
3773
3937
|
<kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
|
@@ -3848,7 +4012,11 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
3848
4012
|
[svgIcon]="formulaFxIcon">
|
3849
4013
|
</kendo-icon-wrapper>
|
3850
4014
|
<span class="k-separator k-separator-vertical"></span>
|
3851
|
-
<div
|
4015
|
+
<div
|
4016
|
+
#formulaBar
|
4017
|
+
kendoSpreadsheetFormulaInput
|
4018
|
+
[formulaListMaxHeight]="formulaListMaxHeight"
|
4019
|
+
class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
|
3852
4020
|
</div>
|
3853
4021
|
</div>
|
3854
4022
|
<div class="k-spreadsheet-view">
|
@@ -3872,7 +4040,7 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
3872
4040
|
(select)="onContextMenuSelect($event)"></kendo-contextmenu>
|
3873
4041
|
|
3874
4042
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
3875
|
-
`, isInline: true, components: [{ type: i7$1.MenuComponent, selector: "kendo-menu", inputs: ["menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { type: i7$1.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: i7$1.ContextMenuComponent, selector: "kendo-contextmenu", inputs: ["showOn", "target", "filter", "alignToAnchor", "vertical", "popupAnimate", "popupAlign", "anchorAlign", "collision", "appendTo", "ariaLabel"], outputs: ["popupOpen", "popupClose", "select", "open", "close"], exportAs: ["kendoContextMenu"] }, { 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: SpreadsheetIncreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseFontSize]" }, { type: SpreadsheetDecreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseFontSize]" }, { type: SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { type: SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { type: SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { type: SpreadsheetHorizontalTextAlignDirective, selector: "[kendoSpreadsheetHorizontalTextAlign]" }, { type: SpreadsheetVerticalTextAlignDirective, selector: "[kendoSpreadsheetVerticalTextAlign]" }, { type: SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { type: SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { type: SpreadsheetInsertLinkDirective, selector: "kendo-toolbar-button[kendoSpreadsheetInsertLink]" }, { 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: SpreadsheetDecreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseDecimal]" }, { type: SpreadsheetIncreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseDecimal]" }, { type: SpreadsheetMergeDirective, selector: "[kendoSpreadsheetMerge]" }, { type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { type: FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]" }] });
|
4043
|
+
`, isInline: true, components: [{ type: i7$1.MenuComponent, selector: "kendo-menu", inputs: ["menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { type: i7$1.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: i7$1.ContextMenuComponent, selector: "kendo-contextmenu", inputs: ["showOn", "target", "filter", "alignToAnchor", "vertical", "popupAnimate", "popupAlign", "anchorAlign", "collision", "appendTo", "ariaLabel"], outputs: ["popupOpen", "popupClose", "select", "open", "close"], exportAs: ["kendoContextMenu"] }, { 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: SpreadsheetIncreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseFontSize]" }, { type: SpreadsheetDecreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseFontSize]" }, { type: SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { type: SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { type: SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { type: SpreadsheetHorizontalTextAlignDirective, selector: "[kendoSpreadsheetHorizontalTextAlign]" }, { type: SpreadsheetVerticalTextAlignDirective, selector: "[kendoSpreadsheetVerticalTextAlign]" }, { type: SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { type: SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { type: SpreadsheetInsertLinkDirective, selector: "kendo-toolbar-button[kendoSpreadsheetInsertLink]" }, { 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: SpreadsheetDecreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseDecimal]" }, { type: SpreadsheetIncreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseDecimal]" }, { type: SpreadsheetMergeDirective, selector: "[kendoSpreadsheetMerge]" }, { type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { type: FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]", inputs: ["formulaListMaxHeight"] }] });
|
3876
4044
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, decorators: [{
|
3877
4045
|
type: Component,
|
3878
4046
|
args: [{
|
@@ -4034,7 +4202,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
4034
4202
|
i18n-hideColumn="kendo.spreadsheet.hideColumn|The Hide column command text."
|
4035
4203
|
hideColumn="Hide"
|
4036
4204
|
i18n-unhideColumn="kendo.spreadsheet.unhideColumn|The Unhide column command text."
|
4037
|
-
unhideColumn="Unhide"
|
4205
|
+
unhideColumn="Unhide"
|
4206
|
+
i18n-sheetDelete="kendo.spreadsheet.sheetDelete|The text of the Sheet menu Delete option."
|
4207
|
+
sheetDelete="Delete"
|
4208
|
+
i18n-sheetRename="kendo.spreadsheet.sheetRename|The text of the Sheet menu Rename option."
|
4209
|
+
sheetRename="Rename"
|
4210
|
+
i18n-sheetDuplicate="kendo.spreadsheet.sheetDuplicate|The text of the Sheet menu Duplicate option."
|
4211
|
+
sheetDuplicate="Duplicate"
|
4212
|
+
i18n-sheetHide="kendo.spreadsheet.sheetHide|The text of the Sheet menu Hide option."
|
4213
|
+
sheetHide="Hide"
|
4214
|
+
i18n-sheetMoveLeft="kendo.spreadsheet.sheetMoveLeft|The text of the Sheet menu Move Left option."
|
4215
|
+
sheetMoveLeft="Move Left"
|
4216
|
+
i18n-sheetMoveRight="kendo.spreadsheet.sheetMoveRight|The text of the Sheet menu Move Right option."
|
4217
|
+
sheetMoveRight="Move Right"
|
4218
|
+
i18n-invalidNameError="kendo.spreadsheet.invalidNameError|The content of the dialog that warns about invalid name input."
|
4219
|
+
invalidNameError="{{ 'Invalid name: {inputValue}' }}">
|
4038
4220
|
</ng-container>
|
4039
4221
|
<div class="k-spreadsheet-header">
|
4040
4222
|
<kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
|
@@ -4115,7 +4297,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
4115
4297
|
[svgIcon]="formulaFxIcon">
|
4116
4298
|
</kendo-icon-wrapper>
|
4117
4299
|
<span class="k-separator k-separator-vertical"></span>
|
4118
|
-
<div
|
4300
|
+
<div
|
4301
|
+
#formulaBar
|
4302
|
+
kendoSpreadsheetFormulaInput
|
4303
|
+
[formulaListMaxHeight]="formulaListMaxHeight"
|
4304
|
+
class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
|
4119
4305
|
</div>
|
4120
4306
|
</div>
|
4121
4307
|
<div class="k-spreadsheet-view">
|
@@ -4166,6 +4352,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
4166
4352
|
type: Input
|
4167
4353
|
}], overflow: [{
|
4168
4354
|
type: Input
|
4355
|
+
}], formulaListMaxHeight: [{
|
4356
|
+
type: Input
|
4169
4357
|
}], activeSheet: [{
|
4170
4358
|
type: Input
|
4171
4359
|
}], sheets: [{
|