@progress/kendo-angular-spreadsheet 14.3.0-develop.1 → 14.3.0-develop.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 { Subject, Subscription } from 'rxjs';
|
13
13
|
import * as i2 from '@progress/kendo-angular-l10n';
|
14
14
|
import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
|
@@ -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: 1702311309,
|
51
|
+
version: '14.3.0-develop.11',
|
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
|
|
@@ -59,6 +59,7 @@ let spreadsheetCounter = 0;
|
|
59
59
|
class SpreadsheetService {
|
60
60
|
constructor() {
|
61
61
|
this.sheetsChanged = new Subject();
|
62
|
+
this.onSheetsBarFocus = new Subject();
|
62
63
|
this.activeSheetChanged = new Subject();
|
63
64
|
this.selectionChanged = new Subject();
|
64
65
|
spreadsheetCounter++;
|
@@ -188,10 +189,15 @@ const mapToSheetDescriptor = (sheetsArray) => {
|
|
188
189
|
name: sheet.name(),
|
189
190
|
rows: sheet._rows,
|
190
191
|
selection: sheet.selection(),
|
191
|
-
showGridLines: sheet.showGridLines
|
192
|
+
showGridLines: sheet.showGridLines,
|
193
|
+
state: sheet.state()
|
192
194
|
};
|
193
195
|
});
|
194
196
|
};
|
197
|
+
/**
|
198
|
+
* @hidden
|
199
|
+
*/
|
200
|
+
const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
|
195
201
|
|
196
202
|
/**
|
197
203
|
* @hidden
|
@@ -209,10 +215,12 @@ class FormulaListComponent {
|
|
209
215
|
}
|
210
216
|
}
|
211
217
|
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 });
|
212
|
-
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: `
|
218
|
+
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: `
|
213
219
|
<ul #ulRef
|
214
220
|
class="k-spreadsheet-formula-list k-list-ul k-list-md k-group k-reset"
|
215
221
|
role="menu"
|
222
|
+
[style.overflowY]="'auto'"
|
223
|
+
[style.maxHeight]="maxHeight"
|
216
224
|
[kendoEventsOutsideAngular]="{mousedown: handleMouseDown}">
|
217
225
|
<li *ngFor="let item of data"
|
218
226
|
(click)="itemClick(item.text)"
|
@@ -234,6 +242,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
234
242
|
<ul #ulRef
|
235
243
|
class="k-spreadsheet-formula-list k-list-ul k-list-md k-group k-reset"
|
236
244
|
role="menu"
|
245
|
+
[style.overflowY]="'auto'"
|
246
|
+
[style.maxHeight]="maxHeight"
|
237
247
|
[kendoEventsOutsideAngular]="{mousedown: handleMouseDown}">
|
238
248
|
<li *ngFor="let item of data"
|
239
249
|
(click)="itemClick(item.text)"
|
@@ -251,6 +261,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
251
261
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SpreadsheetService }]; }, propDecorators: { id: [{
|
252
262
|
type: HostBinding,
|
253
263
|
args: ['attr.id']
|
264
|
+
}], maxHeight: [{
|
265
|
+
type: Input
|
254
266
|
}], data: [{
|
255
267
|
type: Input
|
256
268
|
}], itemClick: [{
|
@@ -292,6 +304,23 @@ class FormulaInputDirective {
|
|
292
304
|
}
|
293
305
|
if (next) {
|
294
306
|
next.classList.add('k-focus');
|
307
|
+
const { offsetTop, offsetHeight, parentElement } = next;
|
308
|
+
if (dir > 0) {
|
309
|
+
if (offsetTop + offsetHeight >= parentElement.offsetHeight + parentElement.scrollTop) {
|
310
|
+
parentElement.scrollTop = Math.min(parentElement.scrollTop + offsetHeight, parentElement.scrollHeight - parentElement.offsetHeight);
|
311
|
+
}
|
312
|
+
if (next === items[0]) {
|
313
|
+
next.scrollIntoView();
|
314
|
+
}
|
315
|
+
}
|
316
|
+
else {
|
317
|
+
if (offsetTop <= parentElement.scrollTop) {
|
318
|
+
parentElement.scrollTop = Math.max(parentElement.scrollTop - offsetHeight, 0);
|
319
|
+
}
|
320
|
+
if (next === items[items.length - 1]) {
|
321
|
+
next.scrollIntoView();
|
322
|
+
}
|
323
|
+
}
|
295
324
|
}
|
296
325
|
};
|
297
326
|
}
|
@@ -356,6 +385,7 @@ class FormulaInputDirective {
|
|
356
385
|
this.list = list;
|
357
386
|
list.data = this.data;
|
358
387
|
list.itemClick = this.handler;
|
388
|
+
list.maxHeight = this.formulaListMaxHeight;
|
359
389
|
this.ariaExpanded = 'true';
|
360
390
|
},
|
361
391
|
close: () => {
|
@@ -374,7 +404,7 @@ class FormulaInputDirective {
|
|
374
404
|
}
|
375
405
|
}
|
376
406
|
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 });
|
377
|
-
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 });
|
407
|
+
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 });
|
378
408
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormulaInputDirective, decorators: [{
|
379
409
|
type: Directive,
|
380
410
|
args: [{
|
@@ -398,46 +428,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
398
428
|
}], ariaControls: [{
|
399
429
|
type: HostBinding,
|
400
430
|
args: ['attr.aria-controls']
|
431
|
+
}], formulaListMaxHeight: [{
|
432
|
+
type: Input
|
401
433
|
}] } });
|
402
434
|
|
403
435
|
/**
|
404
436
|
* @hidden
|
405
437
|
*/
|
406
|
-
const getSheetActions = (
|
438
|
+
const getSheetActions = (items, item) => {
|
439
|
+
const visibleItems = items.filter(item => item.state === 'visible');
|
440
|
+
const itemIndex = item ? visibleItems.findIndex(i => i === item) : 0;
|
407
441
|
return [{
|
408
|
-
|
442
|
+
messageKey: 'sheetDelete',
|
409
443
|
icon: 'trash',
|
410
444
|
svgIcon: trashIcon,
|
411
445
|
commandName: 'delete',
|
412
446
|
dialogButton: 'dialogDelete',
|
413
|
-
disabled:
|
414
|
-
},
|
415
|
-
|
416
|
-
text: 'Duplicate',
|
447
|
+
disabled: visibleItems.length === 1
|
448
|
+
}, {
|
449
|
+
messageKey: 'sheetDuplicate',
|
417
450
|
icon: 'copy',
|
418
451
|
svgIcon: copyIcon,
|
419
452
|
commandName: 'copy'
|
420
|
-
},
|
421
|
-
|
422
|
-
text: 'Rename',
|
453
|
+
}, {
|
454
|
+
messageKey: 'sheetRename',
|
423
455
|
icon: 'pencil',
|
424
456
|
svgIcon: pencilIcon,
|
425
457
|
commandName: 'rename',
|
426
458
|
dialogButton: 'dialogRename'
|
427
|
-
},
|
428
|
-
|
429
|
-
|
459
|
+
}, {
|
460
|
+
messageKey: 'sheetHide',
|
461
|
+
icon: 'eye-slash',
|
462
|
+
svgIcon: eyeSlashIcon,
|
463
|
+
commandName: 'hide',
|
464
|
+
disabled: visibleItems.length === 1
|
465
|
+
}, {
|
466
|
+
messageKey: 'sheetMoveRight',
|
430
467
|
icon: 'arrow-right',
|
431
468
|
svgIcon: arrowRightIcon,
|
432
469
|
commandName: 'move',
|
433
|
-
disabled:
|
434
|
-
},
|
435
|
-
|
436
|
-
text: 'Move Left',
|
470
|
+
disabled: visibleItems.length === 1 || itemIndex === visibleItems.length - 1
|
471
|
+
}, {
|
472
|
+
messageKey: 'sheetMoveLeft',
|
437
473
|
icon: 'arrow-left',
|
438
474
|
svgIcon: arrowLeftIcon,
|
439
475
|
commandName: 'move',
|
440
|
-
disabled:
|
476
|
+
disabled: visibleItems.length === 1 || itemIndex === 0
|
441
477
|
}];
|
442
478
|
};
|
443
479
|
|
@@ -470,10 +506,22 @@ class ErrorHandlingService {
|
|
470
506
|
this.openDialog(messageData);
|
471
507
|
}
|
472
508
|
openDialog(messageData) {
|
509
|
+
let dialogContent;
|
510
|
+
if (messageData.name === 'message') {
|
511
|
+
const localizationMsg = this.messageFor('invalidNameError');
|
512
|
+
let inputValue = messageData.text.split(' ').pop();
|
513
|
+
if (messageData.text.startsWith('Parse')) {
|
514
|
+
inputValue = inputValue.substring(0, inputValue.length - 1);
|
515
|
+
}
|
516
|
+
dialogContent = replaceMessagePlaceholder(localizationMsg, 'inputValue', inputValue);
|
517
|
+
}
|
518
|
+
else {
|
519
|
+
dialogContent = this.messageFor(messageData.name);
|
520
|
+
}
|
473
521
|
const dialogSettings = {
|
474
522
|
appendTo: this.spreadsheetService.dialogContainer,
|
475
523
|
title: this.messageFor('dialogError'),
|
476
|
-
content:
|
524
|
+
content: dialogContent,
|
477
525
|
actions: [{
|
478
526
|
text: this.messageFor('dialogOk'),
|
479
527
|
themeColor: 'primary'
|
@@ -630,7 +678,7 @@ InsertLinkDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
630
678
|
</kendo-textbox>
|
631
679
|
</div>
|
632
680
|
</form>
|
633
|
-
`, 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"] }] });
|
681
|
+
`, 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"] }] });
|
634
682
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: InsertLinkDialogComponent, decorators: [{
|
635
683
|
type: Component,
|
636
684
|
args: [{
|
@@ -1740,7 +1788,7 @@ ActionDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
1740
1788
|
</div>
|
1741
1789
|
</div>
|
1742
1790
|
</form>
|
1743
|
-
`, 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"] }] });
|
1791
|
+
`, 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"] }] });
|
1744
1792
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ActionDialogComponent, decorators: [{
|
1745
1793
|
type: Component,
|
1746
1794
|
args: [{
|
@@ -1778,14 +1826,23 @@ class SheetsBarComponent {
|
|
1778
1826
|
this.dialogService = dialogService;
|
1779
1827
|
this.ngZone = ngZone;
|
1780
1828
|
this.hostClasses = true;
|
1829
|
+
this.subs = new Subscription();
|
1781
1830
|
this.plusIcon = plusIcon;
|
1782
1831
|
this.menuIcon = menuIcon;
|
1783
1832
|
this.caretAltDownIcon = caretAltDownIcon;
|
1784
1833
|
this.caretAltLeftIcon = caretAltLeftIcon;
|
1785
1834
|
this.caretAltRightIcon = caretAltRightIcon;
|
1786
1835
|
this.selected = false;
|
1836
|
+
this.sheetsMenuList = [];
|
1787
1837
|
this.openedDdb = null;
|
1788
|
-
this.
|
1838
|
+
this.hiddenStateIcons = {
|
1839
|
+
hidden: 'eye-slash',
|
1840
|
+
visible: 'eye'
|
1841
|
+
};
|
1842
|
+
this.hiddenStateSVGIcons = {
|
1843
|
+
hidden: eyeSlashIcon,
|
1844
|
+
visible: eyeIcon
|
1845
|
+
};
|
1789
1846
|
this.onAddClick = () => {
|
1790
1847
|
if (this.spreadsheetService.spreadsheet) {
|
1791
1848
|
this.spreadsheetService.spreadsheet.view.sheetsbar.onAddSelect();
|
@@ -1807,21 +1864,54 @@ class SheetsBarComponent {
|
|
1807
1864
|
this.spreadsheetService.spreadsheet.insertSheet({ data: { ...sheetToCopy.toJSON(), name: newName }, index: sheetInfo.index + 1 });
|
1808
1865
|
this.selectSheet(newName);
|
1809
1866
|
},
|
1810
|
-
move: (sheetInfo,
|
1811
|
-
const
|
1812
|
-
|
1867
|
+
move: (sheetInfo, itemKey) => {
|
1868
|
+
const isMoveRight = itemKey === 'sheetMoveRight';
|
1869
|
+
let oldIndex = -1;
|
1870
|
+
let newIndex = -1;
|
1871
|
+
const sheets = this.spreadsheetService.spreadsheet.sheets();
|
1872
|
+
if (isMoveRight) {
|
1873
|
+
for (let i = 0; i < sheets.length; i++) {
|
1874
|
+
if (sheets[i].name() === sheetInfo.text) {
|
1875
|
+
oldIndex = i;
|
1876
|
+
}
|
1877
|
+
if (oldIndex > -1 && i > oldIndex && sheets[i]._state() === 'visible') {
|
1878
|
+
newIndex = i;
|
1879
|
+
break;
|
1880
|
+
}
|
1881
|
+
}
|
1882
|
+
}
|
1883
|
+
else {
|
1884
|
+
for (let i = sheets.length - 1; i >= 0; i--) {
|
1885
|
+
if (sheets[i].name() === sheetInfo.text) {
|
1886
|
+
oldIndex = i;
|
1887
|
+
}
|
1888
|
+
if (oldIndex > -1 && (i < oldIndex) && sheets[i]._state() === 'visible') {
|
1889
|
+
newIndex = i;
|
1890
|
+
break;
|
1891
|
+
}
|
1892
|
+
}
|
1893
|
+
}
|
1813
1894
|
const sheetsBar = this.spreadsheetService.spreadsheet.view.sheetsbar;
|
1814
1895
|
sheetsBar.onSheetReorderEnd({ oldIndex, newIndex });
|
1896
|
+
this.selectSheet(sheetInfo.text);
|
1897
|
+
this.notifySheetsChange();
|
1898
|
+
},
|
1899
|
+
hide: (sheet) => {
|
1900
|
+
sheet.state = 'hidden';
|
1901
|
+
const sheets = this.spreadsheetService.spreadsheet.sheets();
|
1902
|
+
const sheetIndex = sheets.findIndex(s => s.name() === sheet.text);
|
1903
|
+
sheets[sheetIndex]._state('hidden');
|
1904
|
+
const newSelectedIndex = sheetIndex < sheets.length - 1 ? sheetIndex + 1 : 0;
|
1905
|
+
const sheetToSelect = sheets[newSelectedIndex].name();
|
1906
|
+
this.selectSheet(sheetToSelect);
|
1815
1907
|
this.notifySheetsChange();
|
1816
1908
|
}
|
1817
1909
|
};
|
1910
|
+
this.subs.add(spreadsheetService.onSheetsBarFocus.subscribe(() => ngZone.run(() => this.tabstrip.selectTab(this.sheets.findIndex(sh => sh.text === spreadsheetService.currentActiveSheet)))));
|
1818
1911
|
}
|
1819
1912
|
get activeSheet() {
|
1820
1913
|
return this.spreadsheetService.spreadsheet?.activeSheet()?.name();
|
1821
1914
|
}
|
1822
|
-
get sheetsMenuList() {
|
1823
|
-
return this.sheets?.map(sheet => ({ text: sheet.text, icon: 'eye', svgIcon: this.eyeIcon }));
|
1824
|
-
}
|
1825
1915
|
get tablistId() {
|
1826
1916
|
return this.spreadsheetService.tablistId;
|
1827
1917
|
}
|
@@ -1837,10 +1927,26 @@ class SheetsBarComponent {
|
|
1837
1927
|
this.renderer.setAttribute(tablist, 'id', this.tablistId);
|
1838
1928
|
this.tabListSub = this.renderer.listen(tablist, 'keydown', this.onTabListKeyDown.bind(this));
|
1839
1929
|
}
|
1930
|
+
ngOnChanges(changes) {
|
1931
|
+
if (changes['sheets']) {
|
1932
|
+
this.sheetsMenuList = this.sheets?.map(sheet => ({
|
1933
|
+
text: sheet.text,
|
1934
|
+
icon: this.hiddenStateIcons[sheet.state],
|
1935
|
+
svgIcon: this.hiddenStateSVGIcons[sheet.state]
|
1936
|
+
}));
|
1937
|
+
this.sheets = changes['sheets'].currentValue?.map((sheet, _, items) => ({
|
1938
|
+
...sheet,
|
1939
|
+
sheetActions: getSheetActions(items, sheet)
|
1940
|
+
.map(item => ({ ...item, text: this.messageFor(item.messageKey) }))
|
1941
|
+
}));
|
1942
|
+
}
|
1943
|
+
;
|
1944
|
+
}
|
1840
1945
|
ngOnDestroy() {
|
1841
1946
|
if (this.tabListSub) {
|
1842
1947
|
this.tabListSub();
|
1843
1948
|
}
|
1949
|
+
this.subs.unsubscribe();
|
1844
1950
|
}
|
1845
1951
|
onTabSelect(ev) {
|
1846
1952
|
if (ev.title !== this.activeSheet) {
|
@@ -1866,11 +1972,13 @@ class SheetsBarComponent {
|
|
1866
1972
|
this.openDialog(dataItem, sheet);
|
1867
1973
|
}
|
1868
1974
|
else {
|
1869
|
-
this.actionsCallback[dataItem.commandName](sheet, dataItem.
|
1975
|
+
this.actionsCallback[dataItem.commandName](sheet, dataItem.messageKey);
|
1870
1976
|
}
|
1871
1977
|
}
|
1872
1978
|
onMenuItemClick(item) {
|
1873
1979
|
const sheet = this.sheets.find(s => s.text === item.text);
|
1980
|
+
sheet.state = 'visible';
|
1981
|
+
this.spreadsheetService.spreadsheet.sheets().find(sh => sh.name() === sheet.text)._state('visible');
|
1874
1982
|
this.selectSheet(sheet.text);
|
1875
1983
|
}
|
1876
1984
|
messageFor(key) {
|
@@ -1897,7 +2005,9 @@ class SheetsBarComponent {
|
|
1897
2005
|
if (event.text === this.messageFor(dataItem.dialogButton)) {
|
1898
2006
|
const sheetsBar = this.spreadsheetService.spreadsheet.view.sheetsbar;
|
1899
2007
|
if (sheetsBar) {
|
1900
|
-
|
2008
|
+
const allSheets = this.spreadsheetService.spreadsheet.sheets();
|
2009
|
+
const sheetIndex = allSheets.findIndex(s => s.name() === sheet.text);
|
2010
|
+
dataItem.commandName === 'delete' ? sheetsBar.onSheetRemove(sheet.text) : sheetsBar.onSheetRename(dialogContent.value, sheetIndex);
|
1901
2011
|
this.notifySheetsChange();
|
1902
2012
|
}
|
1903
2013
|
}
|
@@ -1939,21 +2049,29 @@ class SheetsBarComponent {
|
|
1939
2049
|
this.ngZone.run(() => {
|
1940
2050
|
const newSheets = this.spreadsheetService.spreadsheet.sheets();
|
1941
2051
|
const sheetDesc = mapToSheetDescriptor(newSheets);
|
1942
|
-
this.sheets = sheetDesc
|
1943
|
-
|
1944
|
-
|
1945
|
-
|
1946
|
-
|
1947
|
-
|
1948
|
-
|
1949
|
-
|
1950
|
-
|
2052
|
+
this.sheets = sheetDesc
|
2053
|
+
.flatMap((item, index, items) => item.state === 'visible' ? [{
|
2054
|
+
...item,
|
2055
|
+
inEdit: false,
|
2056
|
+
first: index === 0,
|
2057
|
+
last: index === items.length - 1,
|
2058
|
+
text: item.name,
|
2059
|
+
active: (item.name === this.activeSheet) || items.length === 1,
|
2060
|
+
index,
|
2061
|
+
sheetActions: getSheetActions(items, item)
|
2062
|
+
.map(item => ({ ...item, text: this.messageFor(item.messageKey) }))
|
2063
|
+
}] : []);
|
2064
|
+
this.sheetsMenuList = this.sheets?.map(sheet => ({
|
2065
|
+
text: sheet.text,
|
2066
|
+
icon: this.hiddenStateIcons[sheet.state],
|
2067
|
+
svgIcon: this.hiddenStateSVGIcons[sheet.state]
|
1951
2068
|
}));
|
1952
2069
|
});
|
2070
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => this.spreadsheetService.spreadsheet.view.clipboard.focus());
|
1953
2071
|
}
|
1954
2072
|
}
|
1955
2073
|
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 });
|
1956
|
-
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: `
|
2074
|
+
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: `
|
1957
2075
|
<button kendoButton #addButton
|
1958
2076
|
[title]="messageFor('addSheet')"
|
1959
2077
|
type="button"
|
@@ -1981,27 +2099,30 @@ SheetsBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
1981
2099
|
[scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
|
1982
2100
|
class="k-spreadsheet-sheets k-overflow-hidden"
|
1983
2101
|
(tabSelect)="onTabSelect($event)">
|
1984
|
-
<
|
1985
|
-
|
1986
|
-
|
1987
|
-
|
1988
|
-
|
1989
|
-
<
|
1990
|
-
|
1991
|
-
|
1992
|
-
|
1993
|
-
|
1994
|
-
|
1995
|
-
|
1996
|
-
|
1997
|
-
|
1998
|
-
|
1999
|
-
|
2000
|
-
|
2001
|
-
|
2002
|
-
|
2102
|
+
<ng-container *ngFor="let sheet of sheets">
|
2103
|
+
<kendo-tabstrip-tab
|
2104
|
+
*ngIf="sheet.state === 'visible'"
|
2105
|
+
[title]="sheet.text"
|
2106
|
+
[selected]="sheet.text === activeSheet">
|
2107
|
+
<ng-template kendoTabTemplate>
|
2108
|
+
<span class="k-link">{{sheet.text}}</span>
|
2109
|
+
<kendo-dropdownbutton #sheetDdb
|
2110
|
+
fillMode="flat"
|
2111
|
+
icon="caret-alt-down"
|
2112
|
+
[svgIcon]="caretAltDownIcon"
|
2113
|
+
buttonClass="k-menu-button"
|
2114
|
+
[data]="sheet.sheetActions"
|
2115
|
+
[buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
|
2116
|
+
(open)="onOpen(sheetDdb)"
|
2117
|
+
(close)="onClose()"
|
2118
|
+
(click)="$event.stopPropagation()"
|
2119
|
+
(itemClick)="onActionClick($event, sheet)">
|
2120
|
+
</kendo-dropdownbutton>
|
2121
|
+
</ng-template>
|
2122
|
+
</kendo-tabstrip-tab>
|
2123
|
+
</ng-container>
|
2003
2124
|
</kendo-tabstrip>
|
2004
|
-
`, 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]" }] });
|
2125
|
+
`, 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]" }] });
|
2005
2126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SheetsBarComponent, decorators: [{
|
2006
2127
|
type: Component,
|
2007
2128
|
args: [{
|
@@ -2034,25 +2155,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
2034
2155
|
[scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
|
2035
2156
|
class="k-spreadsheet-sheets k-overflow-hidden"
|
2036
2157
|
(tabSelect)="onTabSelect($event)">
|
2037
|
-
<
|
2038
|
-
|
2039
|
-
|
2040
|
-
|
2041
|
-
|
2042
|
-
<
|
2043
|
-
|
2044
|
-
|
2045
|
-
|
2046
|
-
|
2047
|
-
|
2048
|
-
|
2049
|
-
|
2050
|
-
|
2051
|
-
|
2052
|
-
|
2053
|
-
|
2054
|
-
|
2055
|
-
|
2158
|
+
<ng-container *ngFor="let sheet of sheets">
|
2159
|
+
<kendo-tabstrip-tab
|
2160
|
+
*ngIf="sheet.state === 'visible'"
|
2161
|
+
[title]="sheet.text"
|
2162
|
+
[selected]="sheet.text === activeSheet">
|
2163
|
+
<ng-template kendoTabTemplate>
|
2164
|
+
<span class="k-link">{{sheet.text}}</span>
|
2165
|
+
<kendo-dropdownbutton #sheetDdb
|
2166
|
+
fillMode="flat"
|
2167
|
+
icon="caret-alt-down"
|
2168
|
+
[svgIcon]="caretAltDownIcon"
|
2169
|
+
buttonClass="k-menu-button"
|
2170
|
+
[data]="sheet.sheetActions"
|
2171
|
+
[buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
|
2172
|
+
(open)="onOpen(sheetDdb)"
|
2173
|
+
(close)="onClose()"
|
2174
|
+
(click)="$event.stopPropagation()"
|
2175
|
+
(itemClick)="onActionClick($event, sheet)">
|
2176
|
+
</kendo-dropdownbutton>
|
2177
|
+
</ng-template>
|
2178
|
+
</kendo-tabstrip-tab>
|
2179
|
+
</ng-container>
|
2056
2180
|
</kendo-tabstrip>
|
2057
2181
|
`
|
2058
2182
|
}]
|
@@ -2086,7 +2210,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
2086
2210
|
class MessagesDirective extends ComponentMessages {
|
2087
2211
|
}
|
2088
2212
|
MessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
2089
|
-
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 });
|
2213
|
+
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 });
|
2090
2214
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, decorators: [{
|
2091
2215
|
type: Directive,
|
2092
2216
|
args: [{
|
@@ -2232,6 +2356,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
2232
2356
|
type: Input
|
2233
2357
|
}], unhideColumn: [{
|
2234
2358
|
type: Input
|
2359
|
+
}], sheetDelete: [{
|
2360
|
+
type: Input
|
2361
|
+
}], sheetRename: [{
|
2362
|
+
type: Input
|
2363
|
+
}], sheetHide: [{
|
2364
|
+
type: Input
|
2365
|
+
}], sheetDuplicate: [{
|
2366
|
+
type: Input
|
2367
|
+
}], sheetMoveLeft: [{
|
2368
|
+
type: Input
|
2369
|
+
}], sheetMoveRight: [{
|
2370
|
+
type: Input
|
2371
|
+
}], invalidNameError: [{
|
2372
|
+
type: Input
|
2235
2373
|
}] } });
|
2236
2374
|
|
2237
2375
|
/**
|
@@ -2581,9 +2719,7 @@ class SpreadsheetHorizontalTextAlignDirective {
|
|
2581
2719
|
host.icon = commandIcons[this.commandName];
|
2582
2720
|
host.arrowIcon = true;
|
2583
2721
|
host.fillMode = 'flat';
|
2584
|
-
host.data = ALIGNS
|
2585
|
-
.filter(value => value.commandName === 'textAlign')
|
2586
|
-
.map(item => ({ ...item, textKey: localization.get(item.commandId) }));
|
2722
|
+
host.data = ALIGNS.flatMap(item => item.commandName === 'textAlign' ? [{ ...item, textKey: localization.get(item.commandId) }] : []);
|
2587
2723
|
this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
|
2588
2724
|
host.title = localization.get(this.commandName);
|
2589
2725
|
host.textField = 'textKey';
|
@@ -2625,9 +2761,7 @@ class SpreadsheetVerticalTextAlignDirective {
|
|
2625
2761
|
host.icon = commandIcons[this.commandName];
|
2626
2762
|
host.arrowIcon = true;
|
2627
2763
|
host.fillMode = 'flat';
|
2628
|
-
host.data = ALIGNS
|
2629
|
-
.filter(value => value.commandName === 'verticalAlign')
|
2630
|
-
.map(item => ({ ...item, textKey: localization.get(item.commandId) }));
|
2764
|
+
host.data = ALIGNS.flatMap(item => item.commandName === 'verticalAlign' ? [{ ...item, textKey: localization.get(item.commandId) }] : []);
|
2631
2765
|
this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
|
2632
2766
|
host.title = localization.get(this.commandName);
|
2633
2767
|
host.textField = 'textKey';
|
@@ -3094,6 +3228,13 @@ class SpreadsheetComponent {
|
|
3094
3228
|
* @default false
|
3095
3229
|
*/
|
3096
3230
|
this.overflow = false;
|
3231
|
+
/**
|
3232
|
+
* Sets the height of the formula list container.
|
3233
|
+
* Accepts same values as the CSS [`style.height`](https://developer.mozilla.org/en-US/docs/Web/CSS/height) property.
|
3234
|
+
*
|
3235
|
+
* @default '300px'
|
3236
|
+
*/
|
3237
|
+
this.formulaListMaxHeight = '300px';
|
3097
3238
|
/**
|
3098
3239
|
* The number of columns in the document.
|
3099
3240
|
*
|
@@ -3165,6 +3306,16 @@ class SpreadsheetComponent {
|
|
3165
3306
|
this.showLicenseWatermark = false;
|
3166
3307
|
this.contextMenuItems = [];
|
3167
3308
|
this.subs = new Subscription();
|
3309
|
+
/**
|
3310
|
+
* @hidden
|
3311
|
+
*/
|
3312
|
+
this.onKeyDown = (e) => {
|
3313
|
+
const isCtrl = e.ctrlKey || e.metaKey;
|
3314
|
+
const shift = e.shiftKey;
|
3315
|
+
if (isCtrl && shift && e.keyCode === Keys.KeyS) {
|
3316
|
+
this.spreadsheetService.onSheetsBarFocus.next();
|
3317
|
+
}
|
3318
|
+
};
|
3168
3319
|
this.onChange = (e) => {
|
3169
3320
|
hasObservers(this.change) && this.change.emit(e);
|
3170
3321
|
this.spreadsheetService.selectionChanged.next(e.range);
|
@@ -3258,13 +3409,13 @@ class SpreadsheetComponent {
|
|
3258
3409
|
set sheets(value) {
|
3259
3410
|
const items = value.map((item, index, items) => ({
|
3260
3411
|
...item,
|
3412
|
+
state: item.state || 'visible',
|
3261
3413
|
inEdit: false,
|
3262
3414
|
first: index === 0,
|
3263
3415
|
last: index === items.length - 1,
|
3264
3416
|
text: item.name,
|
3265
3417
|
active: (item.name === this.activeSheet) || items.length === 1,
|
3266
|
-
index
|
3267
|
-
sheetActions: getSheetActions(index, items)
|
3418
|
+
index
|
3268
3419
|
}));
|
3269
3420
|
this._sheetsInfo = items;
|
3270
3421
|
}
|
@@ -3286,6 +3437,7 @@ class SpreadsheetComponent {
|
|
3286
3437
|
spreadsheet.bind('changeFormat', this.onChangeFormat);
|
3287
3438
|
spreadsheet.bind('excelImport', this.onExcelImport);
|
3288
3439
|
spreadsheet.bind('excelExport', this.onExcelExport);
|
3440
|
+
spreadsheet.bind('keydown', this.onKeyDown);
|
3289
3441
|
spreadsheet.view.bind('update', this.updateState);
|
3290
3442
|
spreadsheet.view.bind('message', this.onMessage);
|
3291
3443
|
spreadsheet.bind('contextmenu', this.onContextMenu.bind(this));
|
@@ -3297,7 +3449,13 @@ class SpreadsheetComponent {
|
|
3297
3449
|
if (!this.sheetsInfo) {
|
3298
3450
|
this.ngZone.run(() => {
|
3299
3451
|
const defaultSheetDescriptors = mapToSheetDescriptor([spreadsheet?.activeSheet()]);
|
3300
|
-
this._sheetsInfo = [{
|
3452
|
+
this._sheetsInfo = [{
|
3453
|
+
text: this.spreadsheetService.currentActiveSheet,
|
3454
|
+
first: true, last: true,
|
3455
|
+
state: 'visible',
|
3456
|
+
...defaultSheetDescriptors,
|
3457
|
+
sheetActions: getSheetActions(defaultSheetDescriptors).map(item => ({ ...item, text: this.messageFor(item.messageKey) }))
|
3458
|
+
}];
|
3301
3459
|
});
|
3302
3460
|
}
|
3303
3461
|
});
|
@@ -3617,7 +3775,7 @@ class SpreadsheetComponent {
|
|
3617
3775
|
}
|
3618
3776
|
}
|
3619
3777
|
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 });
|
3620
|
-
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: [
|
3778
|
+
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: [
|
3621
3779
|
SpreadsheetLocalizationService,
|
3622
3780
|
{
|
3623
3781
|
provide: LocalizationService,
|
@@ -3772,7 +3930,21 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
3772
3930
|
i18n-hideColumn="kendo.spreadsheet.hideColumn|The Hide column command text."
|
3773
3931
|
hideColumn="Hide"
|
3774
3932
|
i18n-unhideColumn="kendo.spreadsheet.unhideColumn|The Unhide column command text."
|
3775
|
-
unhideColumn="Unhide"
|
3933
|
+
unhideColumn="Unhide"
|
3934
|
+
i18n-sheetDelete="kendo.spreadsheet.sheetDelete|The text of the Sheet menu Delete option."
|
3935
|
+
sheetDelete="Delete"
|
3936
|
+
i18n-sheetRename="kendo.spreadsheet.sheetRename|The text of the Sheet menu Rename option."
|
3937
|
+
sheetRename="Rename"
|
3938
|
+
i18n-sheetDuplicate="kendo.spreadsheet.sheetDuplicate|The text of the Sheet menu Duplicate option."
|
3939
|
+
sheetDuplicate="Duplicate"
|
3940
|
+
i18n-sheetHide="kendo.spreadsheet.sheetHide|The text of the Sheet menu Hide option."
|
3941
|
+
sheetHide="Hide"
|
3942
|
+
i18n-sheetMoveLeft="kendo.spreadsheet.sheetMoveLeft|The text of the Sheet menu Move Left option."
|
3943
|
+
sheetMoveLeft="Move Left"
|
3944
|
+
i18n-sheetMoveRight="kendo.spreadsheet.sheetMoveRight|The text of the Sheet menu Move Right option."
|
3945
|
+
sheetMoveRight="Move Right"
|
3946
|
+
i18n-invalidNameError="kendo.spreadsheet.invalidNameError|The content of the dialog that warns about invalid name input."
|
3947
|
+
invalidNameError="{{ 'Invalid name: {inputValue}' }}">
|
3776
3948
|
</ng-container>
|
3777
3949
|
<div class="k-spreadsheet-header">
|
3778
3950
|
<kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
|
@@ -3853,7 +4025,11 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
3853
4025
|
[svgIcon]="formulaFxIcon">
|
3854
4026
|
</kendo-icon-wrapper>
|
3855
4027
|
<span class="k-separator k-separator-vertical"></span>
|
3856
|
-
<div
|
4028
|
+
<div
|
4029
|
+
#formulaBar
|
4030
|
+
kendoSpreadsheetFormulaInput
|
4031
|
+
[formulaListMaxHeight]="formulaListMaxHeight"
|
4032
|
+
class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
|
3857
4033
|
</div>
|
3858
4034
|
</div>
|
3859
4035
|
<div class="k-spreadsheet-view">
|
@@ -3877,7 +4053,7 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
3877
4053
|
(select)="onContextMenuSelect($event)"></kendo-contextmenu>
|
3878
4054
|
|
3879
4055
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
3880
|
-
`, 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]" }] });
|
4056
|
+
`, 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"] }] });
|
3881
4057
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, decorators: [{
|
3882
4058
|
type: Component,
|
3883
4059
|
args: [{
|
@@ -4039,7 +4215,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
4039
4215
|
i18n-hideColumn="kendo.spreadsheet.hideColumn|The Hide column command text."
|
4040
4216
|
hideColumn="Hide"
|
4041
4217
|
i18n-unhideColumn="kendo.spreadsheet.unhideColumn|The Unhide column command text."
|
4042
|
-
unhideColumn="Unhide"
|
4218
|
+
unhideColumn="Unhide"
|
4219
|
+
i18n-sheetDelete="kendo.spreadsheet.sheetDelete|The text of the Sheet menu Delete option."
|
4220
|
+
sheetDelete="Delete"
|
4221
|
+
i18n-sheetRename="kendo.spreadsheet.sheetRename|The text of the Sheet menu Rename option."
|
4222
|
+
sheetRename="Rename"
|
4223
|
+
i18n-sheetDuplicate="kendo.spreadsheet.sheetDuplicate|The text of the Sheet menu Duplicate option."
|
4224
|
+
sheetDuplicate="Duplicate"
|
4225
|
+
i18n-sheetHide="kendo.spreadsheet.sheetHide|The text of the Sheet menu Hide option."
|
4226
|
+
sheetHide="Hide"
|
4227
|
+
i18n-sheetMoveLeft="kendo.spreadsheet.sheetMoveLeft|The text of the Sheet menu Move Left option."
|
4228
|
+
sheetMoveLeft="Move Left"
|
4229
|
+
i18n-sheetMoveRight="kendo.spreadsheet.sheetMoveRight|The text of the Sheet menu Move Right option."
|
4230
|
+
sheetMoveRight="Move Right"
|
4231
|
+
i18n-invalidNameError="kendo.spreadsheet.invalidNameError|The content of the dialog that warns about invalid name input."
|
4232
|
+
invalidNameError="{{ 'Invalid name: {inputValue}' }}">
|
4043
4233
|
</ng-container>
|
4044
4234
|
<div class="k-spreadsheet-header">
|
4045
4235
|
<kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
|
@@ -4120,7 +4310,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
4120
4310
|
[svgIcon]="formulaFxIcon">
|
4121
4311
|
</kendo-icon-wrapper>
|
4122
4312
|
<span class="k-separator k-separator-vertical"></span>
|
4123
|
-
<div
|
4313
|
+
<div
|
4314
|
+
#formulaBar
|
4315
|
+
kendoSpreadsheetFormulaInput
|
4316
|
+
[formulaListMaxHeight]="formulaListMaxHeight"
|
4317
|
+
class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
|
4124
4318
|
</div>
|
4125
4319
|
</div>
|
4126
4320
|
<div class="k-spreadsheet-view">
|
@@ -4171,6 +4365,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
4171
4365
|
type: Input
|
4172
4366
|
}], overflow: [{
|
4173
4367
|
type: Input
|
4368
|
+
}], formulaListMaxHeight: [{
|
4369
|
+
type: Input
|
4174
4370
|
}], activeSheet: [{
|
4175
4371
|
type: Input
|
4176
4372
|
}], sheets: [{
|