@progress/kendo-angular-spreadsheet 13.6.0-develop.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/LICENSE.md +11 -0
  2. package/NOTICE.txt +654 -0
  3. package/README.md +32 -0
  4. package/action-bar/formula-input.directive.d.ts +33 -0
  5. package/action-bar/list.component.d.ts +23 -0
  6. package/action-bar/namebox.component.d.ts +30 -0
  7. package/common/main-menu.directive.d.ts +17 -0
  8. package/common/sheet-changes.d.ts +23 -0
  9. package/common/spreadsheet.service.d.ts +28 -0
  10. package/esm2020/action-bar/formula-input.directive.mjs +142 -0
  11. package/esm2020/action-bar/list.component.mjs +75 -0
  12. package/esm2020/action-bar/namebox.component.mjs +110 -0
  13. package/esm2020/common/main-menu.directive.mjs +25 -0
  14. package/esm2020/common/sheet-changes.mjs +5 -0
  15. package/esm2020/common/spreadsheet.service.mjs +42 -0
  16. package/esm2020/index.mjs +12 -0
  17. package/esm2020/localization/custom-messages.component.mjs +42 -0
  18. package/esm2020/localization/localized-messages.directive.mjs +33 -0
  19. package/esm2020/localization/messages.mjs +80 -0
  20. package/esm2020/localization/spreadsheet-localization.service.mjs +31 -0
  21. package/esm2020/models/events.mjs +5 -0
  22. package/esm2020/models/index.mjs +7 -0
  23. package/esm2020/models/main-menu-item.mjs +5 -0
  24. package/esm2020/models/sheet-info.mjs +5 -0
  25. package/esm2020/package-metadata.mjs +15 -0
  26. package/esm2020/progress-kendo-angular-spreadsheet.mjs +8 -0
  27. package/esm2020/sheets-bar/action-dialog.component.mjs +68 -0
  28. package/esm2020/sheets-bar/remove.directive.mjs +25 -0
  29. package/esm2020/sheets-bar/sheets-bar.component.mjs +278 -0
  30. package/esm2020/sheets-bar/utils.mjs +45 -0
  31. package/esm2020/spreadsheet.component.mjs +725 -0
  32. package/esm2020/spreadsheet.module.mjs +235 -0
  33. package/esm2020/tools/align-tool.directive.mjs +58 -0
  34. package/esm2020/tools/colorpicker/spreadsheet-backcolor.component.mjs +98 -0
  35. package/esm2020/tools/colorpicker/spreadsheet-forecolor.component.mjs +98 -0
  36. package/esm2020/tools/font-family/font-family-dropdownlist.component.mjs +57 -0
  37. package/esm2020/tools/font-family/spreadsheet-fontfamily-tool.component.mjs +92 -0
  38. package/esm2020/tools/font-size/font-size-dropdownlist.component.mjs +42 -0
  39. package/esm2020/tools/font-size/spreadsheet-fontsize-tool.component.mjs +92 -0
  40. package/esm2020/tools/format-tool.directive.mjs +61 -0
  41. package/esm2020/tools/gridlines-tool.directive.mjs +46 -0
  42. package/esm2020/tools/history/redo-tool.mjs +36 -0
  43. package/esm2020/tools/history/undo-tool.mjs +36 -0
  44. package/esm2020/tools/index.mjs +20 -0
  45. package/esm2020/tools/load-file.component.mjs +186 -0
  46. package/esm2020/tools/save-file-tool.directive.mjs +52 -0
  47. package/esm2020/tools/shared/command-icons.mjs +71 -0
  48. package/esm2020/tools/shared/commands.mjs +5 -0
  49. package/esm2020/tools/shared/constants.mjs +61 -0
  50. package/esm2020/tools/shared/dialog-content.component.mjs +114 -0
  51. package/esm2020/tools/shared/spreadsheet-command-base.mjs +75 -0
  52. package/esm2020/tools/shared/spreadsheet-command-button.mjs +25 -0
  53. package/esm2020/tools/shared/spreadsheet-dropdown-tools-base.mjs +184 -0
  54. package/esm2020/tools/shared/spreadsheet-dropdownlist.base.mjs +50 -0
  55. package/esm2020/tools/tables/add-column-left-button.directive.mjs +36 -0
  56. package/esm2020/tools/tables/add-column-right-button.directive.mjs +36 -0
  57. package/esm2020/tools/tables/add-row-above-button.directive.mjs +36 -0
  58. package/esm2020/tools/tables/add-row-below-button.directive.mjs +36 -0
  59. package/esm2020/tools/tables/delete-column-button.directive.mjs +34 -0
  60. package/esm2020/tools/tables/delete-row-button.directive.mjs +34 -0
  61. package/esm2020/tools/tables/index.mjs +10 -0
  62. package/esm2020/tools/text-wrap-tool.directive.mjs +47 -0
  63. package/esm2020/tools/tools.service.mjs +60 -0
  64. package/esm2020/tools/typographical-emphasis/bold-tool.directive.mjs +36 -0
  65. package/esm2020/tools/typographical-emphasis/italic-tool.directive.mjs +36 -0
  66. package/esm2020/tools/typographical-emphasis/underline-tool.directive.mjs +36 -0
  67. package/esm2020/tools/utils.mjs +13 -0
  68. package/esm2020/utils.mjs +25 -0
  69. package/fesm2015/progress-kendo-angular-spreadsheet.mjs +3372 -0
  70. package/fesm2020/progress-kendo-angular-spreadsheet.mjs +3382 -0
  71. package/index.d.ts +13 -0
  72. package/localization/custom-messages.component.d.ts +18 -0
  73. package/localization/localized-messages.directive.d.ts +16 -0
  74. package/localization/messages.d.ts +133 -0
  75. package/localization/spreadsheet-localization.service.d.ts +14 -0
  76. package/models/events.d.ts +65 -0
  77. package/models/index.d.ts +7 -0
  78. package/models/main-menu-item.d.ts +19 -0
  79. package/models/sheet-info.d.ts +26 -0
  80. package/package-metadata.d.ts +9 -0
  81. package/package.json +65 -0
  82. package/progress-kendo-angular-spreadsheet.d.ts +9 -0
  83. package/schematics/collection.json +12 -0
  84. package/schematics/ngAdd/index.js +13 -0
  85. package/schematics/ngAdd/schema.json +24 -0
  86. package/sheets-bar/action-dialog.component.d.ts +19 -0
  87. package/sheets-bar/remove.directive.d.ts +13 -0
  88. package/sheets-bar/sheets-bar.component.d.ts +53 -0
  89. package/sheets-bar/utils.d.ts +10 -0
  90. package/spreadsheet.component.d.ts +176 -0
  91. package/spreadsheet.module.d.ts +62 -0
  92. package/tools/align-tool.directive.d.ts +25 -0
  93. package/tools/colorpicker/spreadsheet-backcolor.component.d.ts +20 -0
  94. package/tools/colorpicker/spreadsheet-forecolor.component.d.ts +20 -0
  95. package/tools/font-family/font-family-dropdownlist.component.d.ts +13 -0
  96. package/tools/font-family/spreadsheet-fontfamily-tool.component.d.ts +24 -0
  97. package/tools/font-size/font-size-dropdownlist.component.d.ts +13 -0
  98. package/tools/font-size/spreadsheet-fontsize-tool.component.d.ts +24 -0
  99. package/tools/format-tool.directive.d.ts +36 -0
  100. package/tools/gridlines-tool.directive.d.ts +19 -0
  101. package/tools/history/redo-tool.d.ts +19 -0
  102. package/tools/history/undo-tool.d.ts +19 -0
  103. package/tools/index.d.ts +20 -0
  104. package/tools/load-file.component.d.ts +41 -0
  105. package/tools/save-file-tool.directive.d.ts +22 -0
  106. package/tools/shared/command-icons.d.ts +14 -0
  107. package/tools/shared/commands.d.ts +8 -0
  108. package/tools/shared/constants.d.ts +50 -0
  109. package/tools/shared/dialog-content.component.d.ts +21 -0
  110. package/tools/shared/spreadsheet-command-base.d.ts +29 -0
  111. package/tools/shared/spreadsheet-command-button.d.ts +23 -0
  112. package/tools/shared/spreadsheet-dropdown-tools-base.d.ts +76 -0
  113. package/tools/shared/spreadsheet-dropdownlist.base.d.ts +25 -0
  114. package/tools/tables/add-column-left-button.directive.d.ts +18 -0
  115. package/tools/tables/add-column-right-button.directive.d.ts +18 -0
  116. package/tools/tables/add-row-above-button.directive.d.ts +18 -0
  117. package/tools/tables/add-row-below-button.directive.d.ts +18 -0
  118. package/tools/tables/delete-column-button.directive.d.ts +18 -0
  119. package/tools/tables/delete-row-button.directive.d.ts +18 -0
  120. package/tools/tables/index.d.ts +10 -0
  121. package/tools/text-wrap-tool.directive.d.ts +19 -0
  122. package/tools/tools.service.d.ts +21 -0
  123. package/tools/typographical-emphasis/bold-tool.directive.d.ts +18 -0
  124. package/tools/typographical-emphasis/italic-tool.directive.d.ts +18 -0
  125. package/tools/typographical-emphasis/underline-tool.directive.d.ts +18 -0
  126. package/tools/utils.d.ts +8 -0
  127. package/utils.d.ts +9 -0
@@ -0,0 +1,725 @@
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 { Component, ElementRef, EventEmitter, HostBinding, Input, NgZone, Output, Renderer2, ViewChild, ViewContainerRef } from '@angular/core';
6
+ import { validatePackage } from '@progress/kendo-licensing';
7
+ import { packageMetadata } from './package-metadata';
8
+ import { SpreadsheetWidget } from '@progress/kendo-spreadsheet-common';
9
+ import { localeData, IntlService } from '@progress/kendo-angular-intl';
10
+ import { downloadIcon, folderOpenIcon, formulaFxIcon } from '@progress/kendo-svg-icons';
11
+ import { SpreadsheetService } from './common/spreadsheet.service';
12
+ import { SpreadsheetToolsService } from './tools/tools.service';
13
+ import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
14
+ import { SpreadsheetLocalizationService } from './localization/spreadsheet-localization.service';
15
+ import { hasObservers, isDocumentAvailable, isPresent, shouldShowValidationUI } from '@progress/kendo-angular-common';
16
+ import { mapToSheetDescriptor } from './utils';
17
+ import { PopupService } from '@progress/kendo-angular-popup';
18
+ import { FormulaInputDirective } from './action-bar/formula-input.directive';
19
+ import { take } from 'rxjs/operators';
20
+ import { getSheetActions } from './sheets-bar/utils';
21
+ import * as i0 from "@angular/core";
22
+ import * as i1 from "@progress/kendo-angular-intl";
23
+ import * as i2 from "@progress/kendo-angular-l10n";
24
+ import * as i3 from "./common/spreadsheet.service";
25
+ 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-buttons";
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/typographical-emphasis/bold-tool.directive";
44
+ import * as i23 from "./tools/typographical-emphasis/italic-tool.directive";
45
+ import * as i24 from "./tools/typographical-emphasis/underline-tool.directive";
46
+ import * as i25 from "./tools/align-tool.directive";
47
+ import * as i26 from "./tools/text-wrap-tool.directive";
48
+ import * as i27 from "./tools/format-tool.directive";
49
+ import * as i28 from "./tools/gridlines-tool.directive";
50
+ import * as i29 from "./tools/tables/add-column-left-button.directive";
51
+ import * as i30 from "./tools/tables/add-column-right-button.directive";
52
+ import * as i31 from "./tools/tables/add-row-below-button.directive";
53
+ import * as i32 from "./tools/tables/add-row-above-button.directive";
54
+ import * as i33 from "./tools/tables/delete-column-button.directive";
55
+ import * as i34 from "./tools/tables/delete-row-button.directive";
56
+ import * as i35 from "./action-bar/formula-input.directive";
57
+ /**
58
+ * Represents the [Kendo UI Spreadsheet component for Angular]({% slug overview_spreadsheet %}).
59
+ */
60
+ export class SpreadsheetComponent {
61
+ constructor(ngZone, intl, host, localization, spreadsheetService, toolsService, renderer) {
62
+ this.ngZone = ngZone;
63
+ this.intl = intl;
64
+ this.host = host;
65
+ this.localization = localization;
66
+ this.spreadsheetService = spreadsheetService;
67
+ this.toolsService = toolsService;
68
+ this.renderer = renderer;
69
+ this.hostClass = true;
70
+ this.role = 'application';
71
+ /**
72
+ * Sets the overflow option of the built-in Toolbar components.
73
+ * @default false
74
+ */
75
+ this.overflow = false;
76
+ /**
77
+ * The number of columns in the document.
78
+ *
79
+ * @default 50
80
+ */
81
+ this.columns = 50;
82
+ /**
83
+ * The initial column width in pixels.
84
+ *
85
+ * @default 64
86
+ */
87
+ this.columnWidth = 100;
88
+ /**
89
+ * The height of the header row in pixels.
90
+ *
91
+ * @default 20
92
+ */
93
+ this.headerHeight = 30;
94
+ /**
95
+ * The width of the header column in pixels.
96
+ *
97
+ * @default 32
98
+ */
99
+ this.headerWidth = 100;
100
+ /**
101
+ * The initial row height in pixels.
102
+ *
103
+ * @default 20
104
+ */
105
+ this.rowHeight = 30;
106
+ /**
107
+ * The number of rows in the document.
108
+ *
109
+ * @default 200
110
+ */
111
+ this.rows = 200;
112
+ /**
113
+ * Fired when a value in the Spreadsheet is changed. Exposes the `SpreadsheetWidget` instance and the selected `Range` as event data.
114
+ */
115
+ this.change = new EventEmitter();
116
+ /**
117
+ * Fired when the selected range format is changed from the UI. Exposes the `SpreadsheetWidget` instance and the selected `Range` as event data.
118
+ */
119
+ this.formatChange = new EventEmitter();
120
+ /**
121
+ * Fired when the selection is changed by the end user. Exposes the `SpreadsheetWidget` instance and the selected `Range` as event data.
122
+ */
123
+ this.selectionChange = new EventEmitter();
124
+ /**
125
+ * Fired when the end user clicks the Export to Excel toolbar button.
126
+ * The event is preventable and exposes the `Workbook` object, a `preventDefault` method
127
+ * (if invoked, the generated file will not be saved), and the SpreadsheetWidget instance.
128
+ */
129
+ this.excelExport = new EventEmitter();
130
+ /**
131
+ * Fired when the end user clicks the Open toolbar button.
132
+ * The event is preventable and exposes the selected `File` or `Blob`, a `preventDefault` method
133
+ * (if invoked, the selected file will not be loaded), and the SpreadsheetWidget instance.
134
+ */
135
+ this.excelImport = new EventEmitter();
136
+ /**
137
+ * Fired when the active sheet is about to change.
138
+ * The event exposes the new active `Sheet` and the SpreadsheetWidget instance.
139
+ */
140
+ this.activeSheetChange = new EventEmitter();
141
+ this.formulaFxIcon = formulaFxIcon;
142
+ this.folderOpenIcon = folderOpenIcon;
143
+ this.downloadIcon = downloadIcon;
144
+ /**
145
+ * @hidden
146
+ */
147
+ this.showLicenseWatermark = false;
148
+ this.onChange = (e) => hasObservers(this.change) && this.change.emit(e);
149
+ this.onSelectionChange = (e) => hasObservers(this.selectionChange) && this.selectionChange.emit(e);
150
+ this.onChangeFormat = (e) => hasObservers(this.formatChange) && this.formatChange.emit(e);
151
+ this.onExcelExport = (e) => hasObservers(this.excelExport) && this.excelExport.emit(e);
152
+ this.onExcelImport = (e) => hasObservers(this.excelImport) && this.excelImport.emit(e);
153
+ this.onActiveSheetChanged = (sheet) => {
154
+ const eventArgs = { sender: this.spreadsheetService.spreadsheet, sheet };
155
+ hasObservers(this.activeSheetChange) && this.activeSheetChange.emit(eventArgs);
156
+ };
157
+ this.updateState = (e) => {
158
+ this.toolsService.updateTools(e);
159
+ if (e.reason?.sheetSelection) {
160
+ this.sheets = mapToSheetDescriptor(this.spreadsheetService.spreadsheet.sheets());
161
+ }
162
+ };
163
+ const isValid = validatePackage(packageMetadata);
164
+ this.showLicenseWatermark = shouldShowValidationUI(isValid);
165
+ ngZone.onStable.pipe(take(1)).subscribe(() => {
166
+ if (!this.menuItems) {
167
+ this._menuItems = [{
168
+ id: 'file',
169
+ text: this.messageFor('file')
170
+ }, {
171
+ id: 'home',
172
+ text: this.messageFor('home'),
173
+ active: true,
174
+ cssClass: 'k-active'
175
+ }, {
176
+ id: 'insert',
177
+ text: this.messageFor('insert')
178
+ }];
179
+ }
180
+ this.selectedMenuItem = this.menuItems[1];
181
+ });
182
+ }
183
+ /**
184
+ * The menu items configuration.
185
+ */
186
+ set menuItems(items) {
187
+ this._menuItems = [];
188
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
189
+ const normalizedItems = items.map(item => ({
190
+ active: item.active,
191
+ text: this.messageFor(item.id),
192
+ cssClass: item.active ? 'k-active' : null,
193
+ id: item.id
194
+ }));
195
+ this._menuItems = normalizedItems;
196
+ const activeItemIndex = this.menuItems.findIndex(item => item.active);
197
+ this.selectedMenuItem = this.menuItems[activeItemIndex > -1 ? activeItemIndex : 0];
198
+ });
199
+ }
200
+ get menuItems() {
201
+ return this._menuItems;
202
+ }
203
+ /**
204
+ * The name of the currently active sheet. Must match one of the sheet names.
205
+ */
206
+ set activeSheet(value) {
207
+ this._activeSheet = value;
208
+ this.spreadsheetService.spreadsheet?.view?.sheetsbar.onSheetSelect(this.activeSheet);
209
+ }
210
+ get activeSheet() {
211
+ return this._activeSheet || this.spreadsheetService.spreadsheet?.activeSheet()?.name();
212
+ }
213
+ /**
214
+ * An array which defines the document sheets and their content.
215
+ */
216
+ set sheets(value) {
217
+ const items = value.map((item, index, items) => ({
218
+ ...item,
219
+ inEdit: false,
220
+ first: index === 0,
221
+ last: index === items.length - 1,
222
+ text: item.name,
223
+ active: (item.name === this.activeSheet) || items.length === 1,
224
+ index,
225
+ sheetActions: getSheetActions(index, items)
226
+ }));
227
+ this._sheetsInfo = items;
228
+ }
229
+ get sheetsInfo() {
230
+ return this._sheetsInfo;
231
+ }
232
+ get spreadsheetWidget() {
233
+ return this.spreadsheetService.spreadsheet;
234
+ }
235
+ ngAfterViewInit() {
236
+ if (!isDocumentAvailable()) {
237
+ return;
238
+ }
239
+ this.ngZone.runOutsideAngular(() => {
240
+ setTimeout(() => {
241
+ const spreadsheet = this.spreadsheetService.spreadsheet = new SpreadsheetWidget(this.host.nativeElement, this.options);
242
+ spreadsheet.bind('select', this.onSelectionChange);
243
+ spreadsheet.bind('change', this.onChange);
244
+ spreadsheet.bind('changeFormat', this.onChangeFormat);
245
+ spreadsheet.bind('excelImport', this.onExcelImport);
246
+ spreadsheet.bind('excelExport', this.onExcelExport);
247
+ spreadsheet.view.bind('update', this.updateState);
248
+ const sheet = spreadsheet.activeSheet();
249
+ if (sheet) {
250
+ this.updateState({ range: sheet.range(sheet.activeCell()) });
251
+ }
252
+ this.updateActiveSheet(this.activeSheet || spreadsheet?.activeSheet()?.name());
253
+ if (!this.sheetsInfo) {
254
+ this.ngZone.run(() => {
255
+ const defaultSheetDescriptors = mapToSheetDescriptor([spreadsheet?.activeSheet()]);
256
+ this._sheetsInfo = [{ text: this.spreadsheetService.currentActiveSheet, first: true, last: true, ...defaultSheetDescriptors, sheetActions: getSheetActions(0, defaultSheetDescriptors) }];
257
+ });
258
+ }
259
+ });
260
+ this.spreadsheetService.sheetsChanged.subscribe(this.onSheetsChanged.bind(this));
261
+ this.spreadsheetService.activeSheetChanged.subscribe(this.onActiveSheetChanged.bind(this));
262
+ this.spreadsheetService.dialogContainer = this.dialogContainer;
263
+ });
264
+ }
265
+ ngOnChanges(changes) {
266
+ const dynamicOptions = [
267
+ 'columns',
268
+ 'columnWidth',
269
+ 'defaultCellStyle',
270
+ 'excel',
271
+ 'headerHeight',
272
+ 'headerWidth',
273
+ 'images',
274
+ 'names',
275
+ 'rowHeight',
276
+ 'rows'
277
+ ];
278
+ const changedDynamicOptions = dynamicOptions.filter(o => isPresent(changes[o] && !changes[o].firstChange));
279
+ if (this.spreadsheetWidget && changedDynamicOptions.length) {
280
+ const newOptions = this.spreadsheetWidget.toJSON();
281
+ changedDynamicOptions.forEach(o => newOptions[o] = changes[o].currentValue);
282
+ this.spreadsheetWidget.fromJSON(newOptions);
283
+ }
284
+ }
285
+ /**
286
+ * @hidden
287
+ */
288
+ messageFor(key) {
289
+ return this.localization.get(key);
290
+ }
291
+ /**
292
+ * @hidden
293
+ */
294
+ onMenuItemSelect(e) {
295
+ const selectedMenuItem = this.menuItems.find(item => item.text === e.item.text);
296
+ const previousSelectedItem = this.menuItems.find(item => item.active);
297
+ if (selectedMenuItem !== previousSelectedItem) {
298
+ this._menuItems.forEach((item, idx) => {
299
+ item.active = idx === +e.index;
300
+ item.cssClass = idx === +e.index ? 'k-active' : null;
301
+ });
302
+ this.selectedMenuItem = this.menuItems.find(item => item.active);
303
+ }
304
+ }
305
+ updateActiveSheet(name) {
306
+ this.ngZone.run(() => this.spreadsheetService.currentActiveSheet = name);
307
+ }
308
+ onSheetsChanged(e) {
309
+ console.log(e, 'sheet ch');
310
+ this.ngZone.run(() => {
311
+ this.sheets = mapToSheetDescriptor(e.sheets);
312
+ this.updateActiveSheet(this.spreadsheetService.activeSheet);
313
+ });
314
+ }
315
+ get options() {
316
+ return {
317
+ activeSheet: this.activeSheet,
318
+ ...{
319
+ sheets: this.sheetsInfo,
320
+ intl: {
321
+ localeInfo: () => localeData(this.intl.localeId),
322
+ parseDate: (value, fmt) => this.intl.parseDate(value, fmt),
323
+ toString: (value, fmt) => this.intl.toString(value, fmt),
324
+ format: (fmt, ...values) => this.intl.format(fmt, ...values)
325
+ }
326
+ },
327
+ columns: this.columns,
328
+ columnWidth: this.columnWidth,
329
+ defaultCellStyle: this.defaultCellStyle,
330
+ excel: this.excel,
331
+ headerHeight: this.headerHeight,
332
+ headerWidth: this.headerHeight,
333
+ images: this.images,
334
+ names: this.names,
335
+ rowHeight: this.rowHeight,
336
+ rows: this.rows,
337
+ formulaBarInputRef: { current: this.formulaBarInputRef.current },
338
+ formulaCellInputRef: { current: this.formulaCellInputRef.current },
339
+ nameBoxRef: { current: this.nameBoxRef.current }
340
+ };
341
+ }
342
+ }
343
+ 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: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
344
+ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetComponent, selector: "kendo-spreadsheet", inputs: { menuItems: "menuItems", overflow: "overflow", activeSheet: "activeSheet", sheets: "sheets", columns: "columns", columnWidth: "columnWidth", defaultCellStyle: "defaultCellStyle", headerHeight: "headerHeight", headerWidth: "headerWidth", rowHeight: "rowHeight", rows: "rows", names: "names", images: "images", excel: "excel" }, outputs: { change: "change", formatChange: "formatChange", selectionChange: "selectionChange", excelExport: "excelExport", excelImport: "excelImport", activeSheetChange: "activeSheetChange" }, host: { properties: { "class.k-spreadsheet": "this.hostClass", "attr.role": "this.role" } }, providers: [
345
+ SpreadsheetLocalizationService,
346
+ {
347
+ provide: LocalizationService,
348
+ useExisting: SpreadsheetLocalizationService
349
+ },
350
+ {
351
+ provide: L10N_PREFIX,
352
+ useValue: 'kendo.spreadsheet'
353
+ },
354
+ SpreadsheetToolsService,
355
+ PopupService
356
+ ], 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: `
357
+ <ng-container
358
+ kendoSpreadsheetLocalizedMessages
359
+ i18n-background="kendo.spreadsheet.background|The title of the tool that changes the text background color."
360
+ background="Background color"
361
+ i18n-color="kendo.spreadsheet.color|The title of the tool that changes the text font color."
362
+ color="Font color"
363
+ i18n-bold="kendo.spreadsheet.bold|The title of the Bold tool."
364
+ bold="Bold"
365
+ i18n-italic="kendo.spreadsheet.italic|The title of the Italic tool."
366
+ italic="Italic"
367
+ i18n-underline="kendo.spreadsheet.underline|The title of the Underline tool."
368
+ underline="Underline"
369
+ i18n-loadFile="kendo.spreadsheet.loadFile|The title of the Load File tool."
370
+ loadFile="Open..."
371
+ i18n-saveFile="kendo.spreadsheet.saveFile|The title of the Save File tool."
372
+ saveFile="Export..."
373
+ i18n-format="kendo.spreadsheet.format|The text of the Format tool."
374
+ format="Custom format..."
375
+ i18n-fontFamily="kendo.spreadsheet.fontFamily|The text of the Font Family tool."
376
+ fontFamily="Font"
377
+ i18n-fontSize="kendo.spreadsheet.fontSize|The text of the Font Size tool."
378
+ fontSize="Font size"
379
+ i18n-home="kendo.spreadsheet.home|The text of the Home toolbar tab."
380
+ home="Home"
381
+ i18n-file="kendo.spreadsheet.file|The text of the File toolbar tab."
382
+ file="File"
383
+ i18n-insert="kendo.spreadsheet.insert|The text of the Insert toolbar tab."
384
+ insert="Insert"
385
+ i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
386
+ undo="Undo"
387
+ i18n-redo="kendo.spreadsheet.redo|The title of the Redo tool."
388
+ redo="Redo"
389
+ i18n-gridLines="kendo.spreadsheet.gridLines|The title of the Grid Lines tool."
390
+ gridLines="Toggle grid lines"
391
+ i18n-addColumnLeft="kendo.spreadsheet.addColumnLeft|The title of the tool that adds new column before currently selected column."
392
+ addColumnLeft="Add column left"
393
+ i18n-addColumnRight="kendo.spreadsheet.addColumnRight|The title of the tool that adds new column after currently selected column."
394
+ addColumnRight="Add column right"
395
+ i18n-addRowBelow="kendo.spreadsheet.addRowBelow|The title of the tool that adds new row below currently selected row."
396
+ addRowBelow="Add row below"
397
+ i18n-addRowAbove="kendo.spreadsheet.addRowAbove|The title of the tool that adds new row above currently selected row."
398
+ addRowAbove="Add row above"
399
+ i18n-deleteColumn="kendo.spreadsheet.deleteColumn|The title of the tool that deletes a column."
400
+ deleteColumn="Delete column"
401
+ i18n-deleteRow="kendo.spreadsheet.deleteRow|The title of the tool that deletes a row."
402
+ deleteRow="Delete row"
403
+ i18n-wrap="kendo.spreadsheet.wrap|The title of the Text Wrap tool."
404
+ wrap="Text wrap"
405
+ i18n-align="kendo.spreadsheet.align|The title of the Text Align tool."
406
+ align="Align"
407
+ i18n-dialogApply="kendo.spreadsheet.dialogApply|The text of the **Apply** button in all Spreadsheet dialogs."
408
+ dialogApply="Apply"
409
+ i18n-dialogCancel="kendo.spreadsheet.dialogCancel|The text of the **Cancel** button in all Spreadsheet dialogs."
410
+ dialogCancel="Cancel"
411
+ i18n-dialogDelete="kendo.spreadsheet.dialogDelete|The text of the **Delete** button in the Delete sheet dialog."
412
+ dialogDelete="Delete"
413
+ i18n-dialogRename="kendo.spreadsheet.dialogRename|The text of the **Rename** button in the Rename sheet dialog."
414
+ dialogRename="Rename"
415
+ i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
416
+ rename="Rename Sheet"
417
+ i18n-delete="kendo.spreadsheet.delete|The title of the Delete sheet dialog."
418
+ delete="Delete Sheet">
419
+ </ng-container>
420
+ <div class="k-spreadsheet-header">
421
+ <kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
422
+ <kendo-menu-item *ngFor="let item of menuItems" [text]="item.text" [cssClass]="item.cssClass"></kendo-menu-item>
423
+ </kendo-menu>
424
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'file'"
425
+ [attr.aria-label]="messageFor('file')"
426
+ class="k-spreadsheet-toolbar"
427
+ [overflow]="overflow">
428
+ <kendo-spreadsheet-load-file-tool></kendo-spreadsheet-load-file-tool>
429
+ <kendo-toolbar-button kendoSpreadsheetSaveFile></kendo-toolbar-button>
430
+ </kendo-toolbar>
431
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'home'"
432
+ [attr.aria-label]="messageFor('home')"
433
+ class="k-spreadsheet-toolbar"
434
+ [overflow]="overflow">
435
+ <kendo-toolbar-buttongroup>
436
+ <kendo-toolbar-button kendoSpreadsheetUndo></kendo-toolbar-button>
437
+ <kendo-toolbar-button kendoSpreadsheetRedo></kendo-toolbar-button>
438
+ </kendo-toolbar-buttongroup>
439
+ <kendo-toolbar-separator></kendo-toolbar-separator>
440
+ <kendo-toolbar-dropdownlist kendoSpreadsheetFontFamily></kendo-toolbar-dropdownlist>
441
+ <kendo-toolbar-dropdownlist kendoSpreadsheetFontSize></kendo-toolbar-dropdownlist>
442
+ <kendo-toolbar-buttongroup>
443
+ <kendo-toolbar-button kendoSpreadsheetBold></kendo-toolbar-button>
444
+ <kendo-toolbar-button kendoSpreadsheetItalic></kendo-toolbar-button>
445
+ <kendo-toolbar-button kendoSpreadsheetUnderline></kendo-toolbar-button>
446
+ </kendo-toolbar-buttongroup>
447
+ <kendo-spreadsheet-forecolor-tool></kendo-spreadsheet-forecolor-tool>
448
+ <kendo-toolbar-separator></kendo-toolbar-separator>
449
+ <kendo-spreadsheet-backcolor-tool></kendo-spreadsheet-backcolor-tool>
450
+ <kendo-toolbar-separator></kendo-toolbar-separator>
451
+ <kendo-toolbar-dropdownbutton kendoSpreadsheetTextAlign></kendo-toolbar-dropdownbutton>
452
+ <kendo-toolbar-button kendoSpreadsheetTextWrap></kendo-toolbar-button>
453
+ <kendo-toolbar-separator></kendo-toolbar-separator>
454
+ <kendo-toolbar-dropdownbutton kendoSpreadsheetFormat></kendo-toolbar-dropdownbutton>
455
+ <kendo-toolbar-separator></kendo-toolbar-separator>
456
+ <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
457
+ </kendo-toolbar>
458
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'insert'"
459
+ [attr.aria-label]="messageFor('insert')"
460
+ class="k-spreadsheet-toolbar"
461
+ [overflow]="overflow">
462
+ <kendo-toolbar-button kendoSpreadsheetAddColumnLeftButton></kendo-toolbar-button>
463
+ <kendo-toolbar-button kendoSpreadsheetAddColumnRightButton></kendo-toolbar-button>
464
+ <kendo-toolbar-button kendoSpreadsheetAddRowBelowButton></kendo-toolbar-button>
465
+ <kendo-toolbar-button kendoSpreadsheetAddRowAboveButton></kendo-toolbar-button>
466
+ <kendo-toolbar-separator></kendo-toolbar-separator>
467
+ <kendo-toolbar-button kendoSpreadsheetDeleteColumnButton></kendo-toolbar-button>
468
+ <kendo-toolbar-button kendoSpreadsheetDeleteRowButton></kendo-toolbar-button>
469
+ </kendo-toolbar>
470
+ </div>
471
+ <div class="k-spreadsheet-action-bar">
472
+ <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
473
+ <div class="k-spreadsheet-formula-bar">
474
+ <span class="k-separator k-separator-vertical"></span>
475
+ <button kendoButton
476
+ icon="formula-fx"
477
+ [svgIcon]="formulaFxIcon"
478
+ [fillMode]="'flat'">
479
+ </button>
480
+ <span class="k-separator k-separator-vertical"></span>
481
+ <div #formulaBar kendoSpreadsheetFormulaInput class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
482
+ <div class="k-widget k-tooltip" style="position: absolute; display: none;">A1</div>
483
+ </div>
484
+ </div>
485
+ <div class="k-spreadsheet-view">
486
+ <div class="k-spreadsheet-fixed-container"></div>
487
+ <div class="k-spreadsheet-scroller">
488
+ <div class="k-spreadsheet-view-size"></div>
489
+ </div>
490
+ <div tabIndex="0" class="k-spreadsheet-clipboard" contentEditable="true"></div>
491
+ <div #formulaCell kendoSpreadsheetFormulaInput class="k-spreadsheet-cell-editor" data-role="formulainput"></div>
492
+ </div>
493
+ <div class="k-spreadsheet-sheets-bar"
494
+ kendoSpreadsheetSheetsBar
495
+ [sheets]="sheetsInfo"
496
+ [sheetDescriptors]="sheets">
497
+ </div>
498
+ <ng-container #dialogContainer></ng-container>
499
+
500
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
501
+ `, 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.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: 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.SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { type: i23.SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { type: i24.SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { type: i25.SpreadsheetTextAlignDirective, selector: "[kendoSpreadsheetTextAlign]" }, { type: i26.SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { type: i27.SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { type: i28.SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { type: i29.SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]" }, { type: i30.SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]" }, { type: i31.SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]" }, { type: i32.SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]" }, { type: i33.SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]" }, { type: i34.SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]" }, { type: i35.FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]" }] });
502
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, decorators: [{
503
+ type: Component,
504
+ args: [{
505
+ exportAs: 'kendo-spreadsheet',
506
+ selector: 'kendo-spreadsheet',
507
+ providers: [
508
+ SpreadsheetLocalizationService,
509
+ {
510
+ provide: LocalizationService,
511
+ useExisting: SpreadsheetLocalizationService
512
+ },
513
+ {
514
+ provide: L10N_PREFIX,
515
+ useValue: 'kendo.spreadsheet'
516
+ },
517
+ SpreadsheetToolsService,
518
+ PopupService
519
+ ],
520
+ template: `
521
+ <ng-container
522
+ kendoSpreadsheetLocalizedMessages
523
+ i18n-background="kendo.spreadsheet.background|The title of the tool that changes the text background color."
524
+ background="Background color"
525
+ i18n-color="kendo.spreadsheet.color|The title of the tool that changes the text font color."
526
+ color="Font color"
527
+ i18n-bold="kendo.spreadsheet.bold|The title of the Bold tool."
528
+ bold="Bold"
529
+ i18n-italic="kendo.spreadsheet.italic|The title of the Italic tool."
530
+ italic="Italic"
531
+ i18n-underline="kendo.spreadsheet.underline|The title of the Underline tool."
532
+ underline="Underline"
533
+ i18n-loadFile="kendo.spreadsheet.loadFile|The title of the Load File tool."
534
+ loadFile="Open..."
535
+ i18n-saveFile="kendo.spreadsheet.saveFile|The title of the Save File tool."
536
+ saveFile="Export..."
537
+ i18n-format="kendo.spreadsheet.format|The text of the Format tool."
538
+ format="Custom format..."
539
+ i18n-fontFamily="kendo.spreadsheet.fontFamily|The text of the Font Family tool."
540
+ fontFamily="Font"
541
+ i18n-fontSize="kendo.spreadsheet.fontSize|The text of the Font Size tool."
542
+ fontSize="Font size"
543
+ i18n-home="kendo.spreadsheet.home|The text of the Home toolbar tab."
544
+ home="Home"
545
+ i18n-file="kendo.spreadsheet.file|The text of the File toolbar tab."
546
+ file="File"
547
+ i18n-insert="kendo.spreadsheet.insert|The text of the Insert toolbar tab."
548
+ insert="Insert"
549
+ i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
550
+ undo="Undo"
551
+ i18n-redo="kendo.spreadsheet.redo|The title of the Redo tool."
552
+ redo="Redo"
553
+ i18n-gridLines="kendo.spreadsheet.gridLines|The title of the Grid Lines tool."
554
+ gridLines="Toggle grid lines"
555
+ i18n-addColumnLeft="kendo.spreadsheet.addColumnLeft|The title of the tool that adds new column before currently selected column."
556
+ addColumnLeft="Add column left"
557
+ i18n-addColumnRight="kendo.spreadsheet.addColumnRight|The title of the tool that adds new column after currently selected column."
558
+ addColumnRight="Add column right"
559
+ i18n-addRowBelow="kendo.spreadsheet.addRowBelow|The title of the tool that adds new row below currently selected row."
560
+ addRowBelow="Add row below"
561
+ i18n-addRowAbove="kendo.spreadsheet.addRowAbove|The title of the tool that adds new row above currently selected row."
562
+ addRowAbove="Add row above"
563
+ i18n-deleteColumn="kendo.spreadsheet.deleteColumn|The title of the tool that deletes a column."
564
+ deleteColumn="Delete column"
565
+ i18n-deleteRow="kendo.spreadsheet.deleteRow|The title of the tool that deletes a row."
566
+ deleteRow="Delete row"
567
+ i18n-wrap="kendo.spreadsheet.wrap|The title of the Text Wrap tool."
568
+ wrap="Text wrap"
569
+ i18n-align="kendo.spreadsheet.align|The title of the Text Align tool."
570
+ align="Align"
571
+ i18n-dialogApply="kendo.spreadsheet.dialogApply|The text of the **Apply** button in all Spreadsheet dialogs."
572
+ dialogApply="Apply"
573
+ i18n-dialogCancel="kendo.spreadsheet.dialogCancel|The text of the **Cancel** button in all Spreadsheet dialogs."
574
+ dialogCancel="Cancel"
575
+ i18n-dialogDelete="kendo.spreadsheet.dialogDelete|The text of the **Delete** button in the Delete sheet dialog."
576
+ dialogDelete="Delete"
577
+ i18n-dialogRename="kendo.spreadsheet.dialogRename|The text of the **Rename** button in the Rename sheet dialog."
578
+ dialogRename="Rename"
579
+ i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
580
+ rename="Rename Sheet"
581
+ i18n-delete="kendo.spreadsheet.delete|The title of the Delete sheet dialog."
582
+ delete="Delete Sheet">
583
+ </ng-container>
584
+ <div class="k-spreadsheet-header">
585
+ <kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
586
+ <kendo-menu-item *ngFor="let item of menuItems" [text]="item.text" [cssClass]="item.cssClass"></kendo-menu-item>
587
+ </kendo-menu>
588
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'file'"
589
+ [attr.aria-label]="messageFor('file')"
590
+ class="k-spreadsheet-toolbar"
591
+ [overflow]="overflow">
592
+ <kendo-spreadsheet-load-file-tool></kendo-spreadsheet-load-file-tool>
593
+ <kendo-toolbar-button kendoSpreadsheetSaveFile></kendo-toolbar-button>
594
+ </kendo-toolbar>
595
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'home'"
596
+ [attr.aria-label]="messageFor('home')"
597
+ class="k-spreadsheet-toolbar"
598
+ [overflow]="overflow">
599
+ <kendo-toolbar-buttongroup>
600
+ <kendo-toolbar-button kendoSpreadsheetUndo></kendo-toolbar-button>
601
+ <kendo-toolbar-button kendoSpreadsheetRedo></kendo-toolbar-button>
602
+ </kendo-toolbar-buttongroup>
603
+ <kendo-toolbar-separator></kendo-toolbar-separator>
604
+ <kendo-toolbar-dropdownlist kendoSpreadsheetFontFamily></kendo-toolbar-dropdownlist>
605
+ <kendo-toolbar-dropdownlist kendoSpreadsheetFontSize></kendo-toolbar-dropdownlist>
606
+ <kendo-toolbar-buttongroup>
607
+ <kendo-toolbar-button kendoSpreadsheetBold></kendo-toolbar-button>
608
+ <kendo-toolbar-button kendoSpreadsheetItalic></kendo-toolbar-button>
609
+ <kendo-toolbar-button kendoSpreadsheetUnderline></kendo-toolbar-button>
610
+ </kendo-toolbar-buttongroup>
611
+ <kendo-spreadsheet-forecolor-tool></kendo-spreadsheet-forecolor-tool>
612
+ <kendo-toolbar-separator></kendo-toolbar-separator>
613
+ <kendo-spreadsheet-backcolor-tool></kendo-spreadsheet-backcolor-tool>
614
+ <kendo-toolbar-separator></kendo-toolbar-separator>
615
+ <kendo-toolbar-dropdownbutton kendoSpreadsheetTextAlign></kendo-toolbar-dropdownbutton>
616
+ <kendo-toolbar-button kendoSpreadsheetTextWrap></kendo-toolbar-button>
617
+ <kendo-toolbar-separator></kendo-toolbar-separator>
618
+ <kendo-toolbar-dropdownbutton kendoSpreadsheetFormat></kendo-toolbar-dropdownbutton>
619
+ <kendo-toolbar-separator></kendo-toolbar-separator>
620
+ <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
621
+ </kendo-toolbar>
622
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'insert'"
623
+ [attr.aria-label]="messageFor('insert')"
624
+ class="k-spreadsheet-toolbar"
625
+ [overflow]="overflow">
626
+ <kendo-toolbar-button kendoSpreadsheetAddColumnLeftButton></kendo-toolbar-button>
627
+ <kendo-toolbar-button kendoSpreadsheetAddColumnRightButton></kendo-toolbar-button>
628
+ <kendo-toolbar-button kendoSpreadsheetAddRowBelowButton></kendo-toolbar-button>
629
+ <kendo-toolbar-button kendoSpreadsheetAddRowAboveButton></kendo-toolbar-button>
630
+ <kendo-toolbar-separator></kendo-toolbar-separator>
631
+ <kendo-toolbar-button kendoSpreadsheetDeleteColumnButton></kendo-toolbar-button>
632
+ <kendo-toolbar-button kendoSpreadsheetDeleteRowButton></kendo-toolbar-button>
633
+ </kendo-toolbar>
634
+ </div>
635
+ <div class="k-spreadsheet-action-bar">
636
+ <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
637
+ <div class="k-spreadsheet-formula-bar">
638
+ <span class="k-separator k-separator-vertical"></span>
639
+ <button kendoButton
640
+ icon="formula-fx"
641
+ [svgIcon]="formulaFxIcon"
642
+ [fillMode]="'flat'">
643
+ </button>
644
+ <span class="k-separator k-separator-vertical"></span>
645
+ <div #formulaBar kendoSpreadsheetFormulaInput class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
646
+ <div class="k-widget k-tooltip" style="position: absolute; display: none;">A1</div>
647
+ </div>
648
+ </div>
649
+ <div class="k-spreadsheet-view">
650
+ <div class="k-spreadsheet-fixed-container"></div>
651
+ <div class="k-spreadsheet-scroller">
652
+ <div class="k-spreadsheet-view-size"></div>
653
+ </div>
654
+ <div tabIndex="0" class="k-spreadsheet-clipboard" contentEditable="true"></div>
655
+ <div #formulaCell kendoSpreadsheetFormulaInput class="k-spreadsheet-cell-editor" data-role="formulainput"></div>
656
+ </div>
657
+ <div class="k-spreadsheet-sheets-bar"
658
+ kendoSpreadsheetSheetsBar
659
+ [sheets]="sheetsInfo"
660
+ [sheetDescriptors]="sheets">
661
+ </div>
662
+ <ng-container #dialogContainer></ng-container>
663
+
664
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
665
+ `,
666
+ }]
667
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.IntlService }, { type: i0.ElementRef }, { type: i2.LocalizationService }, { type: i3.SpreadsheetService }, { type: i4.SpreadsheetToolsService }, { type: i0.Renderer2 }]; }, propDecorators: { formulaBarInputRef: [{
668
+ type: ViewChild,
669
+ args: ['formulaBar', { read: FormulaInputDirective }]
670
+ }], formulaCellInputRef: [{
671
+ type: ViewChild,
672
+ args: ['formulaCell', { read: FormulaInputDirective }]
673
+ }], nameBoxRef: [{
674
+ type: ViewChild,
675
+ args: ['nameBox']
676
+ }], dialogContainer: [{
677
+ type: ViewChild,
678
+ args: ['dialogContainer', { read: ViewContainerRef }]
679
+ }], hostClass: [{
680
+ type: HostBinding,
681
+ args: ['class.k-spreadsheet']
682
+ }], role: [{
683
+ type: HostBinding,
684
+ args: ['attr.role']
685
+ }], menuItems: [{
686
+ type: Input
687
+ }], overflow: [{
688
+ type: Input
689
+ }], activeSheet: [{
690
+ type: Input
691
+ }], sheets: [{
692
+ type: Input
693
+ }], columns: [{
694
+ type: Input
695
+ }], columnWidth: [{
696
+ type: Input
697
+ }], defaultCellStyle: [{
698
+ type: Input
699
+ }], headerHeight: [{
700
+ type: Input
701
+ }], headerWidth: [{
702
+ type: Input
703
+ }], rowHeight: [{
704
+ type: Input
705
+ }], rows: [{
706
+ type: Input
707
+ }], names: [{
708
+ type: Input
709
+ }], images: [{
710
+ type: Input
711
+ }], excel: [{
712
+ type: Input
713
+ }], change: [{
714
+ type: Output
715
+ }], formatChange: [{
716
+ type: Output
717
+ }], selectionChange: [{
718
+ type: Output
719
+ }], excelExport: [{
720
+ type: Output
721
+ }], excelImport: [{
722
+ type: Output
723
+ }], activeSheetChange: [{
724
+ type: Output
725
+ }] } });