@progress/kendo-angular-spreadsheet 14.2.0-develop.3 → 14.2.0-develop.5

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.
@@ -0,0 +1,37 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { LocalizationService } from '@progress/kendo-angular-l10n';
6
+ import { DialogService } from '@progress/kendo-angular-dialog';
7
+ import { ViewContainerRef } from '@angular/core';
8
+ import { Range, Sheet, SpreadsheetWidget } from '@progress/kendo-spreadsheet-common';
9
+ import { Subject } from 'rxjs';
10
+ import { SheetsChanges } from './sheet-changes';
11
+ import { SheetInfo } from '../models';
12
+ import { SpreadsheetService } from './spreadsheet.service';
13
+ import * as i0 from "@angular/core";
14
+ /**
15
+ * @hidden
16
+ */
17
+ export declare class ErrorHandlingService {
18
+ private spreadsheetService;
19
+ private localization;
20
+ private dialogService;
21
+ spreadsheet: SpreadsheetWidget;
22
+ sheetsChanged: Subject<SheetsChanges>;
23
+ activeSheetChanged: Subject<Sheet>;
24
+ selectionChanged: Subject<Range>;
25
+ dialogContainer: ViewContainerRef;
26
+ constructor(spreadsheetService: SpreadsheetService, localization: LocalizationService, dialogService: DialogService);
27
+ set currentActiveSheet(value: string);
28
+ get currentActiveSheet(): string;
29
+ get activeSheet(): string;
30
+ private _currentActiveSheet;
31
+ notifySheetsChange(actionType: string, sheetInfo?: SheetInfo): void;
32
+ handleErrorMessage(messageData: any): void;
33
+ private openDialog;
34
+ private messageFor;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<ErrorHandlingService, never>;
36
+ static ɵprov: i0.ɵɵInjectableDeclaration<ErrorHandlingService>;
37
+ }
@@ -0,0 +1,74 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { LocalizationService } from '@progress/kendo-angular-l10n';
6
+ import { DialogService } from '@progress/kendo-angular-dialog';
7
+ import { Injectable } from '@angular/core';
8
+ import { Subject } from 'rxjs';
9
+ import { SpreadsheetService } from './spreadsheet.service';
10
+ import { take } from 'rxjs/operators';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "./spreadsheet.service";
13
+ import * as i2 from "@progress/kendo-angular-l10n";
14
+ import * as i3 from "@progress/kendo-angular-dialog";
15
+ /**
16
+ * @hidden
17
+ */
18
+ export class ErrorHandlingService {
19
+ constructor(spreadsheetService, localization, dialogService) {
20
+ this.spreadsheetService = spreadsheetService;
21
+ this.localization = localization;
22
+ this.dialogService = dialogService;
23
+ this.sheetsChanged = new Subject();
24
+ this.activeSheetChanged = new Subject();
25
+ this.selectionChanged = new Subject();
26
+ }
27
+ set currentActiveSheet(value) {
28
+ this._currentActiveSheet = value;
29
+ }
30
+ get currentActiveSheet() {
31
+ return this._currentActiveSheet;
32
+ }
33
+ get activeSheet() {
34
+ return this.spreadsheet.activeSheet()?.name();
35
+ }
36
+ notifySheetsChange(actionType, sheetInfo) {
37
+ const sheets = this.spreadsheet.sheets();
38
+ this.sheetsChanged.next({ sheets, sheet: sheetInfo, actionType });
39
+ }
40
+ handleErrorMessage(messageData) {
41
+ this.openDialog(messageData);
42
+ }
43
+ openDialog(messageData) {
44
+ const dialogSettings = {
45
+ appendTo: this.spreadsheetService.dialogContainer,
46
+ title: this.messageFor('dialogError'),
47
+ content: this.messageFor(messageData.name),
48
+ actions: [{
49
+ text: this.messageFor('dialogOk'),
50
+ themeColor: 'primary'
51
+ }],
52
+ width: 400,
53
+ actionsLayout: 'start'
54
+ };
55
+ const dialog = this.dialogService.open(dialogSettings);
56
+ const dialogInstance = dialog.dialog?.instance;
57
+ dialogInstance.action.pipe(take(1)).subscribe((event) => {
58
+ if (event.text === this.messageFor('dialogOk')) {
59
+ messageData.close();
60
+ }
61
+ });
62
+ dialogInstance.close.pipe(take(1)).subscribe(() => {
63
+ messageData.close();
64
+ });
65
+ }
66
+ messageFor(text) {
67
+ return this.localization.get(text);
68
+ }
69
+ }
70
+ ErrorHandlingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ErrorHandlingService, deps: [{ token: i1.SpreadsheetService }, { token: i2.LocalizationService }, { token: i3.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
71
+ ErrorHandlingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ErrorHandlingService });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ErrorHandlingService, decorators: [{
73
+ type: Injectable
74
+ }], ctorParameters: function () { return [{ type: i1.SpreadsheetService }, { type: i2.LocalizationService }, { type: i3.DialogService }]; } });
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
11
11
  export class MessagesDirective extends ComponentMessages {
12
12
  }
13
13
  MessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
14
- 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", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", dialogInsert: "dialogInsert", dialogRemoveLink: "dialogRemoveLink", delete: "delete", rename: "rename", nameBox: "nameBox", addSheet: "addSheet", sheetsMenu: "sheetsMenu", view: "view", merge: "merge", insertLink: "insertLink", increaseDecimal: "increaseDecimal", decreaseDecimal: "decreaseDecimal", increaseFontSize: "increaseFontSize", decreaseFontSize: "decreaseFontSize" }, usesInheritance: true, ngImport: i0 });
14
+ 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", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", dialogInsert: "dialogInsert", dialogRemoveLink: "dialogRemoveLink", delete: "delete", rename: "rename", nameBox: "nameBox", addSheet: "addSheet", sheetsMenu: "sheetsMenu", view: "view", merge: "merge", insertLink: "insertLink", increaseDecimal: "increaseDecimal", decreaseDecimal: "decreaseDecimal", increaseFontSize: "increaseFontSize", decreaseFontSize: "decreaseFontSize", openUnsupported: "openUnsupported", modifyMerged: "modifyMerged", cannotModifyDisabled: "cannotModifyDisabled", dialogOk: "dialogOk", dialogError: "dialogError", duplicateSheetName: "duplicateSheetName" }, usesInheritance: true, ngImport: i0 });
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
@@ -107,4 +107,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
107
107
  type: Input
108
108
  }], decreaseFontSize: [{
109
109
  type: Input
110
+ }], openUnsupported: [{
111
+ type: Input
112
+ }], modifyMerged: [{
113
+ type: Input
114
+ }], cannotModifyDisabled: [{
115
+ type: Input
116
+ }], dialogOk: [{
117
+ type: Input
118
+ }], dialogError: [{
119
+ type: Input
120
+ }], duplicateSheetName: [{
121
+ type: Input
110
122
  }] } });
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-spreadsheet',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1700729956,
13
- version: '14.2.0-develop.3',
12
+ publishDate: 1700836865,
13
+ version: '14.2.0-develop.5',
14
14
  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',
15
15
  };
@@ -18,60 +18,63 @@ import { PopupService } from '@progress/kendo-angular-popup';
18
18
  import { FormulaInputDirective } from './action-bar/formula-input.directive';
19
19
  import { take } from 'rxjs/operators';
20
20
  import { getSheetActions } from './sheets-bar/utils';
21
+ import { ErrorHandlingService } from './common/error-handling.service';
21
22
  import * as i0 from "@angular/core";
22
23
  import * as i1 from "@progress/kendo-angular-intl";
23
24
  import * as i2 from "@progress/kendo-angular-l10n";
24
25
  import * as i3 from "./common/spreadsheet.service";
25
26
  import * as i4 from "./tools/tools.service";
26
- import * as i5 from "@progress/kendo-angular-menu";
27
- import * as i6 from "@progress/kendo-angular-toolbar";
28
- import * as i7 from "./tools/load-file.component";
29
- import * as i8 from "./tools/font-family/spreadsheet-fontfamily-tool.component";
30
- import * as i9 from "./tools/font-size/spreadsheet-fontsize-tool.component";
31
- import * as i10 from "./tools/colorpicker/spreadsheet-forecolor.component";
32
- import * as i11 from "./tools/colorpicker/spreadsheet-backcolor.component";
33
- import * as i12 from "./action-bar/namebox.component";
34
- import * as i13 from "@progress/kendo-angular-icons";
35
- import * as i14 from "./sheets-bar/sheets-bar.component";
36
- import * as i15 from "@progress/kendo-angular-common";
37
- import * as i16 from "./localization/localized-messages.directive";
38
- import * as i17 from "./common/main-menu.directive";
39
- import * as i18 from "@angular/common";
40
- import * as i19 from "./tools/save-file-tool.directive";
41
- import * as i20 from "./tools/history/undo-tool";
42
- import * as i21 from "./tools/history/redo-tool";
43
- import * as i22 from "./tools/font-size/increase-font-tool.directive";
44
- import * as i23 from "./tools/font-size/decrease-font-tool.directive";
45
- import * as i24 from "./tools/typographical-emphasis/bold-tool.directive";
46
- import * as i25 from "./tools/typographical-emphasis/italic-tool.directive";
47
- import * as i26 from "./tools/typographical-emphasis/underline-tool.directive";
48
- import * as i27 from "./tools/align/horizontal-align-tool.directive";
49
- import * as i28 from "./tools/align/vertical-align-tool.directive";
50
- import * as i29 from "./tools/text-wrap-tool.directive";
51
- import * as i30 from "./tools/format-tool.directive";
52
- import * as i31 from "./tools/insert/insert-link-tool.directive";
53
- import * as i32 from "./tools/tables/add-column-left-button.directive";
54
- import * as i33 from "./tools/tables/add-column-right-button.directive";
55
- import * as i34 from "./tools/tables/add-row-below-button.directive";
56
- import * as i35 from "./tools/tables/add-row-above-button.directive";
57
- import * as i36 from "./tools/tables/delete-column-button.directive";
58
- import * as i37 from "./tools/tables/delete-row-button.directive";
59
- import * as i38 from "./tools/decrease-decimal-tool.directive";
60
- import * as i39 from "./tools/increase-decimal-tool.directive";
61
- import * as i40 from "./tools/tables/merge-tool.directive";
62
- import * as i41 from "./tools/gridlines-tool.directive";
63
- import * as i42 from "./action-bar/formula-input.directive";
27
+ import * as i5 from "./common/error-handling.service";
28
+ import * as i6 from "@progress/kendo-angular-menu";
29
+ import * as i7 from "@progress/kendo-angular-toolbar";
30
+ import * as i8 from "./tools/load-file.component";
31
+ import * as i9 from "./tools/font-family/spreadsheet-fontfamily-tool.component";
32
+ import * as i10 from "./tools/font-size/spreadsheet-fontsize-tool.component";
33
+ import * as i11 from "./tools/colorpicker/spreadsheet-forecolor.component";
34
+ import * as i12 from "./tools/colorpicker/spreadsheet-backcolor.component";
35
+ import * as i13 from "./action-bar/namebox.component";
36
+ import * as i14 from "@progress/kendo-angular-icons";
37
+ import * as i15 from "./sheets-bar/sheets-bar.component";
38
+ import * as i16 from "@progress/kendo-angular-common";
39
+ import * as i17 from "./localization/localized-messages.directive";
40
+ import * as i18 from "./common/main-menu.directive";
41
+ import * as i19 from "@angular/common";
42
+ import * as i20 from "./tools/save-file-tool.directive";
43
+ import * as i21 from "./tools/history/undo-tool";
44
+ import * as i22 from "./tools/history/redo-tool";
45
+ import * as i23 from "./tools/font-size/increase-font-tool.directive";
46
+ import * as i24 from "./tools/font-size/decrease-font-tool.directive";
47
+ import * as i25 from "./tools/typographical-emphasis/bold-tool.directive";
48
+ import * as i26 from "./tools/typographical-emphasis/italic-tool.directive";
49
+ import * as i27 from "./tools/typographical-emphasis/underline-tool.directive";
50
+ import * as i28 from "./tools/align/horizontal-align-tool.directive";
51
+ import * as i29 from "./tools/align/vertical-align-tool.directive";
52
+ import * as i30 from "./tools/text-wrap-tool.directive";
53
+ import * as i31 from "./tools/format-tool.directive";
54
+ import * as i32 from "./tools/insert/insert-link-tool.directive";
55
+ import * as i33 from "./tools/tables/add-column-left-button.directive";
56
+ import * as i34 from "./tools/tables/add-column-right-button.directive";
57
+ import * as i35 from "./tools/tables/add-row-below-button.directive";
58
+ import * as i36 from "./tools/tables/add-row-above-button.directive";
59
+ import * as i37 from "./tools/tables/delete-column-button.directive";
60
+ import * as i38 from "./tools/tables/delete-row-button.directive";
61
+ import * as i39 from "./tools/decrease-decimal-tool.directive";
62
+ import * as i40 from "./tools/increase-decimal-tool.directive";
63
+ import * as i41 from "./tools/tables/merge-tool.directive";
64
+ import * as i42 from "./tools/gridlines-tool.directive";
65
+ import * as i43 from "./action-bar/formula-input.directive";
64
66
  /**
65
67
  * Represents the [Kendo UI Spreadsheet component for Angular]({% slug overview_spreadsheet %}).
66
68
  */
67
69
  export class SpreadsheetComponent {
68
- constructor(ngZone, intl, host, localization, spreadsheetService, toolsService) {
70
+ constructor(ngZone, intl, host, localization, spreadsheetService, toolsService, errorService) {
69
71
  this.ngZone = ngZone;
70
72
  this.intl = intl;
71
73
  this.host = host;
72
74
  this.localization = localization;
73
75
  this.spreadsheetService = spreadsheetService;
74
76
  this.toolsService = toolsService;
77
+ this.errorService = errorService;
75
78
  this.hostClass = true;
76
79
  this.role = 'application';
77
80
  /**
@@ -177,6 +180,11 @@ export class SpreadsheetComponent {
177
180
  this.sheets = mapToSheetDescriptor(this.spreadsheetService.spreadsheet.sheets());
178
181
  }
179
182
  };
183
+ this.onMessage = (e) => {
184
+ this.ngZone.run(() => {
185
+ this.errorService.handleErrorMessage(e);
186
+ });
187
+ };
180
188
  const isValid = validatePackage(packageMetadata);
181
189
  this.showLicenseWatermark = shouldShowValidationUI(isValid);
182
190
  ngZone.onStable.pipe(take(1)).subscribe(() => {
@@ -268,6 +276,7 @@ export class SpreadsheetComponent {
268
276
  spreadsheet.bind('excelImport', this.onExcelImport);
269
277
  spreadsheet.bind('excelExport', this.onExcelExport);
270
278
  spreadsheet.view.bind('update', this.updateState);
279
+ spreadsheet.view.bind('message', this.onMessage);
271
280
  const sheet = spreadsheet.activeSheet();
272
281
  if (sheet) {
273
282
  this.updateState({ range: sheet.range(sheet.activeCell()) });
@@ -361,7 +370,7 @@ export class SpreadsheetComponent {
361
370
  };
362
371
  }
363
372
  }
364
- SpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1.IntlService }, { token: i0.ElementRef }, { token: i2.LocalizationService }, { token: i3.SpreadsheetService }, { token: i4.SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Component });
373
+ SpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1.IntlService }, { token: i0.ElementRef }, { token: i2.LocalizationService }, { token: i3.SpreadsheetService }, { token: i4.SpreadsheetToolsService }, { token: i5.ErrorHandlingService }], target: i0.ɵɵFactoryTarget.Component });
365
374
  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: [
366
375
  SpreadsheetLocalizationService,
367
376
  {
@@ -373,7 +382,8 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
373
382
  useValue: 'kendo.spreadsheet'
374
383
  },
375
384
  SpreadsheetToolsService,
376
- PopupService
385
+ PopupService,
386
+ ErrorHandlingService
377
387
  ], viewQueries: [{ propertyName: "formulaBarInputRef", first: true, predicate: ["formulaBar"], descendants: true, read: FormulaInputDirective }, { propertyName: "formulaCellInputRef", first: true, predicate: ["formulaCell"], descendants: true, read: FormulaInputDirective }, { propertyName: "nameBoxRef", first: true, predicate: ["nameBox"], descendants: true }, { propertyName: "dialogContainer", first: true, predicate: ["dialogContainer"], descendants: true, read: ViewContainerRef }], exportAs: ["kendo-spreadsheet"], usesOnChanges: true, ngImport: i0, template: `
378
388
  <ng-container
379
389
  kendoSpreadsheetLocalizedMessages
@@ -466,7 +476,20 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
466
476
  i18n-addSheet="kendo.spreadsheet.addSheet|The title of the Add new sheet button."
467
477
  addSheet="Add New Sheet"
468
478
  i18n-sheetsMenu="kendo.spreadsheet.sheetsMenu|The title of the Sheets menu button."
469
- sheetsMenu="All Sheets">
479
+ sheetsMenu="All Sheets"
480
+ i18n-openUnsupported="kendo.spreadsheet.openUnsupported|The content of the dialog that warns about an unsupported file type."
481
+ openUnsupported="Unsupported format. Please select an .xlsx file."
482
+ i18n-modifyMerged="kendo.spreadsheet.modifyMerged|The content of the dialog that warns about modifying a merged cell."
483
+ modifyMerged="Cannot change part of a merged cell."
484
+ i18n-cannotModifyDisabled="kendo.spreadsheet.cannotModifyDisabled|The content of the dialog that warns about modifying a disabled cell."
485
+ cannotModifyDisabled="Cannot modify disabled cells."
486
+ i18n-dialogOk="kendo.spreadsheet.dialogOk|The text of the **OK** dialog button."
487
+ dialogOk="OK"
488
+ i18n-dialogError="kendo.spreadsheet.dialogError|The title of an error dialog."
489
+ dialogError="Error"
490
+ i18n-duplicateSheetName="kendo.spreadsheet.duplicateSheetName|The content of the dialog that warns about duplicated sheet name."
491
+ duplicateSheetName="There is an existing sheet with this name. Please enter another name."
492
+ >
470
493
  </ng-container>
471
494
  <div class="k-spreadsheet-header">
472
495
  <kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
@@ -566,7 +589,7 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
566
589
  <ng-container #dialogContainer></ng-container>
567
590
 
568
591
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
569
- `, isInline: true, components: [{ type: i5.MenuComponent, selector: "kendo-menu", inputs: ["menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { type: i5.MenuItemComponent, selector: "kendo-menu-item", inputs: ["text", "url", "disabled", "cssClass", "cssStyle", "icon", "svgIcon", "data", "separator"] }, { type: i6.ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "tabindex", "size", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { type: i7.SpreadsheetLoadFileComponent, selector: "kendo-spreadsheet-load-file-tool" }, { type: i6.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: i6.ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { type: i6.ToolBarSeparatorComponent, selector: "kendo-toolbar-separator", exportAs: ["kendoToolBarSeparator"] }, { type: i8.SpreadsheetFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]" }, { type: i9.SpreadsheetFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]" }, { type: i10.SpreadsheetForeColorComponent, selector: "kendo-spreadsheet-forecolor-tool" }, { type: i11.SpreadsheetBackColorComponent, selector: "kendo-spreadsheet-backcolor-tool" }, { type: i6.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: i12.NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: ["data", "spreadsheetWidget"] }, { type: i13.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i14.SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: ["sheets", "sheetDescriptors"] }, { type: i15.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], directives: [{ type: i16.LocalizedMessagesDirective, selector: "[kendoSpreadsheetLocalizedMessages]" }, { type: i17.MainMenuDirective, selector: "[kendoSpreadsheetMenu]" }, { type: i18.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i18.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i19.SpreadsheetSaveFileDirective, selector: "[kendoSpreadsheetSaveFile]" }, { type: i20.SpreadsheetUndoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]" }, { type: i21.SpreadsheetRedoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]" }, { type: i22.SpreadsheetIncreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseFontSize]" }, { type: i23.SpreadsheetDecreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseFontSize]" }, { type: i24.SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { type: i25.SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { type: i26.SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { type: i27.SpreadsheetHorizontalTextAlignDirective, selector: "[kendoSpreadsheetHorizontalTextAlign]" }, { type: i28.SpreadsheetVerticalTextAlignDirective, selector: "[kendoSpreadsheetVerticalTextAlign]" }, { type: i29.SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { type: i30.SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { type: i31.SpreadsheetInsertLinkDirective, selector: "kendo-toolbar-button[kendoSpreadsheetInsertLink]" }, { type: i32.SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]" }, { type: i33.SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]" }, { type: i34.SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]" }, { type: i35.SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]" }, { type: i36.SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]" }, { type: i37.SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]" }, { type: i38.SpreadsheetDecreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseDecimal]" }, { type: i39.SpreadsheetIncreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseDecimal]" }, { type: i40.SpreadsheetMergeDirective, selector: "[kendoSpreadsheetMerge]" }, { type: i41.SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { type: i42.FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]" }] });
592
+ `, isInline: true, components: [{ type: i6.MenuComponent, selector: "kendo-menu", inputs: ["menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { type: i6.MenuItemComponent, selector: "kendo-menu-item", inputs: ["text", "url", "disabled", "cssClass", "cssStyle", "icon", "svgIcon", "data", "separator"] }, { type: i7.ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "tabindex", "size", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { type: i8.SpreadsheetLoadFileComponent, selector: "kendo-spreadsheet-load-file-tool" }, { type: i7.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: i7.ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { type: i7.ToolBarSeparatorComponent, selector: "kendo-toolbar-separator", exportAs: ["kendoToolBarSeparator"] }, { type: i9.SpreadsheetFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]" }, { type: i10.SpreadsheetFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]" }, { type: i11.SpreadsheetForeColorComponent, selector: "kendo-spreadsheet-forecolor-tool" }, { type: i12.SpreadsheetBackColorComponent, selector: "kendo-spreadsheet-backcolor-tool" }, { type: i7.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: i13.NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: ["data", "spreadsheetWidget"] }, { type: i14.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i15.SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: ["sheets", "sheetDescriptors"] }, { type: i16.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], directives: [{ type: i17.LocalizedMessagesDirective, selector: "[kendoSpreadsheetLocalizedMessages]" }, { type: i18.MainMenuDirective, selector: "[kendoSpreadsheetMenu]" }, { type: i19.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i19.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i20.SpreadsheetSaveFileDirective, selector: "[kendoSpreadsheetSaveFile]" }, { type: i21.SpreadsheetUndoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]" }, { type: i22.SpreadsheetRedoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]" }, { type: i23.SpreadsheetIncreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseFontSize]" }, { type: i24.SpreadsheetDecreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseFontSize]" }, { type: i25.SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { type: i26.SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { type: i27.SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { type: i28.SpreadsheetHorizontalTextAlignDirective, selector: "[kendoSpreadsheetHorizontalTextAlign]" }, { type: i29.SpreadsheetVerticalTextAlignDirective, selector: "[kendoSpreadsheetVerticalTextAlign]" }, { type: i30.SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { type: i31.SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { type: i32.SpreadsheetInsertLinkDirective, selector: "kendo-toolbar-button[kendoSpreadsheetInsertLink]" }, { type: i33.SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]" }, { type: i34.SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]" }, { type: i35.SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]" }, { type: i36.SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]" }, { type: i37.SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]" }, { type: i38.SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]" }, { type: i39.SpreadsheetDecreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseDecimal]" }, { type: i40.SpreadsheetIncreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseDecimal]" }, { type: i41.SpreadsheetMergeDirective, selector: "[kendoSpreadsheetMerge]" }, { type: i42.SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { type: i43.FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]" }] });
570
593
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, decorators: [{
571
594
  type: Component,
572
595
  args: [{
@@ -583,7 +606,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
583
606
  useValue: 'kendo.spreadsheet'
584
607
  },
585
608
  SpreadsheetToolsService,
586
- PopupService
609
+ PopupService,
610
+ ErrorHandlingService
587
611
  ],
588
612
  template: `
589
613
  <ng-container
@@ -677,7 +701,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
677
701
  i18n-addSheet="kendo.spreadsheet.addSheet|The title of the Add new sheet button."
678
702
  addSheet="Add New Sheet"
679
703
  i18n-sheetsMenu="kendo.spreadsheet.sheetsMenu|The title of the Sheets menu button."
680
- sheetsMenu="All Sheets">
704
+ sheetsMenu="All Sheets"
705
+ i18n-openUnsupported="kendo.spreadsheet.openUnsupported|The content of the dialog that warns about an unsupported file type."
706
+ openUnsupported="Unsupported format. Please select an .xlsx file."
707
+ i18n-modifyMerged="kendo.spreadsheet.modifyMerged|The content of the dialog that warns about modifying a merged cell."
708
+ modifyMerged="Cannot change part of a merged cell."
709
+ i18n-cannotModifyDisabled="kendo.spreadsheet.cannotModifyDisabled|The content of the dialog that warns about modifying a disabled cell."
710
+ cannotModifyDisabled="Cannot modify disabled cells."
711
+ i18n-dialogOk="kendo.spreadsheet.dialogOk|The text of the **OK** dialog button."
712
+ dialogOk="OK"
713
+ i18n-dialogError="kendo.spreadsheet.dialogError|The title of an error dialog."
714
+ dialogError="Error"
715
+ i18n-duplicateSheetName="kendo.spreadsheet.duplicateSheetName|The content of the dialog that warns about duplicated sheet name."
716
+ duplicateSheetName="There is an existing sheet with this name. Please enter another name."
717
+ >
681
718
  </ng-container>
682
719
  <div class="k-spreadsheet-header">
683
720
  <kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
@@ -779,7 +816,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
779
816
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
780
817
  `,
781
818
  }]
782
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.IntlService }, { type: i0.ElementRef }, { type: i2.LocalizationService }, { type: i3.SpreadsheetService }, { type: i4.SpreadsheetToolsService }]; }, propDecorators: { formulaBarInputRef: [{
819
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.IntlService }, { type: i0.ElementRef }, { type: i2.LocalizationService }, { type: i3.SpreadsheetService }, { type: i4.SpreadsheetToolsService }, { type: i5.ErrorHandlingService }]; }, propDecorators: { formulaBarInputRef: [{
783
820
  type: ViewChild,
784
821
  args: ['formulaBar', { read: FormulaInputDirective }]
785
822
  }], formulaCellInputRef: [{
@@ -29,7 +29,7 @@ export class SpreadsheetLoadFileComponent extends ToolBarToolComponent {
29
29
  this.onFileSelect = (e) => {
30
30
  const file = e.target.files[0];
31
31
  if (file) {
32
- this.spreadsheetService.spreadsheet.fromFile(file);
32
+ this.spreadsheetService.spreadsheet.executeCommand({ command: 'OpenCommand', options: { file } });
33
33
  e.target.value = null;
34
34
  }
35
35
  };