@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,3382 @@
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 * as i0 from '@angular/core';
6
+ import { Injectable, EventEmitter, Output, Inject, Optional, Component, HostBinding, Input, Directive, forwardRef, ElementRef, ViewChild, InjectionToken, HostListener, ViewContainerRef, NgModule } from '@angular/core';
7
+ import { validatePackage } from '@progress/kendo-licensing';
8
+ import { SpreadsheetWidget } from '@progress/kendo-spreadsheet-common';
9
+ import * as i1$5 from '@progress/kendo-angular-intl';
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, plusIcon, menuIcon, caretAltDownIcon, caretAltLeftIcon, caretAltRightIcon, eyeIcon } from '@progress/kendo-svg-icons';
12
+ import { Subject, Subscription } from 'rxjs';
13
+ import * as i1 from '@progress/kendo-angular-l10n';
14
+ import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
15
+ import * as i3 from '@progress/kendo-angular-common';
16
+ import { isPresent, hasObservers, isDocumentAvailable, shouldShowValidationUI, EventsModule, WatermarkModule } from '@progress/kendo-angular-common';
17
+ import * as i1$1 from '@progress/kendo-angular-popup';
18
+ import { PopupService, PopupModule } from '@progress/kendo-angular-popup';
19
+ import * as i6 from '@progress/kendo-angular-icons';
20
+ import { IconsModule } from '@progress/kendo-angular-icons';
21
+ import * as i7 from '@angular/common';
22
+ import { CommonModule } from '@angular/common';
23
+ import { take, map } from 'rxjs/operators';
24
+ import * as i5$2 from '@progress/kendo-angular-menu';
25
+ import { MenuModule } from '@progress/kendo-angular-menu';
26
+ import * as i1$2 from '@progress/kendo-angular-toolbar';
27
+ import { ToolBarToolComponent, ToolBarComponent, ToolBarModule } from '@progress/kendo-angular-toolbar';
28
+ import * as i4 from '@progress/kendo-angular-buttons';
29
+ import { ButtonsModule } from '@progress/kendo-angular-buttons';
30
+ import * as i1$4 from '@progress/kendo-angular-dialog';
31
+ import { DialogContentBase, DialogModule } from '@progress/kendo-angular-dialog';
32
+ import * as i1$3 from '@progress/kendo-angular-dropdowns';
33
+ import { DropDownListComponent, ComboBoxModule, DropDownListModule } from '@progress/kendo-angular-dropdowns';
34
+ import * as i5 from '@progress/kendo-angular-inputs';
35
+ import { InputsModule } from '@progress/kendo-angular-inputs';
36
+ import * as i5$1 from '@progress/kendo-angular-layout';
37
+ import { TabStripModule } from '@progress/kendo-angular-layout';
38
+ import { saveAs } from '@progress/kendo-file-saver';
39
+ import { Workbook } from '@progress/kendo-ooxml';
40
+ import { LabelModule } from '@progress/kendo-angular-label';
41
+
42
+ /**
43
+ * @hidden
44
+ */
45
+ const packageMetadata = {
46
+ name: '@progress/kendo-angular-spreadsheet',
47
+ productName: 'Kendo UI for Angular',
48
+ productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
49
+ publishDate: 1695882759,
50
+ version: '13.6.0-develop.6',
51
+ licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning',
52
+ };
53
+
54
+ let spreadsheetCounter = 0;
55
+ /**
56
+ * @hidden
57
+ */
58
+ class SpreadsheetService {
59
+ constructor() {
60
+ this.sheetsChanged = new Subject();
61
+ this.activeSheetChanged = new Subject();
62
+ spreadsheetCounter++;
63
+ }
64
+ set currentActiveSheet(value) {
65
+ this._currentActiveSheet = value;
66
+ }
67
+ get currentActiveSheet() {
68
+ return this._currentActiveSheet;
69
+ }
70
+ get activeSheet() {
71
+ return this.spreadsheet.activeSheet()?.name();
72
+ }
73
+ get formulaListId() {
74
+ return `k-spreadsheet-${spreadsheetCounter}-formula-list`;
75
+ }
76
+ notifySheetsChange(actionType, sheetInfo) {
77
+ const sheets = this.spreadsheet.sheets();
78
+ this.sheetsChanged.next({ sheets, sheet: sheetInfo, actionType });
79
+ }
80
+ }
81
+ SpreadsheetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
82
+ SpreadsheetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetService, providedIn: 'root' });
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetService, decorators: [{
84
+ type: Injectable,
85
+ args: [{
86
+ providedIn: 'root'
87
+ }]
88
+ }], ctorParameters: function () { return []; } });
89
+
90
+ /**
91
+ * @hidden
92
+ */
93
+ class SpreadsheetToolsService {
94
+ constructor(ngZone) {
95
+ this.ngZone = ngZone;
96
+ this.stateChange = new EventEmitter();
97
+ this.toolsFunctions = [
98
+ 'bold',
99
+ 'italic',
100
+ 'underline',
101
+ 'fontFamily',
102
+ 'fontSize',
103
+ 'color',
104
+ 'background',
105
+ 'textAlign',
106
+ 'verticalAlign',
107
+ 'wrap',
108
+ 'gridLines',
109
+ 'format'
110
+ ];
111
+ this._toolsState = {};
112
+ this.updateTools = (e) => {
113
+ this.ngZone.run(() => {
114
+ const state = {};
115
+ this.toolsFunctions.forEach(tool => {
116
+ if (typeof e.range[tool] === 'function') {
117
+ state[tool] = e.range[tool]();
118
+ }
119
+ else if (tool === 'gridLines') {
120
+ state[tool] = e.range.sheet().showGridLines();
121
+ }
122
+ });
123
+ if (this.toolsFunctions.some(k => state[k] !== this.toolsState[k])) {
124
+ this.toolsState = state;
125
+ this.stateChange.emit(state);
126
+ }
127
+ });
128
+ };
129
+ }
130
+ set toolsState(state) {
131
+ this._toolsState = state;
132
+ }
133
+ get toolsState() {
134
+ return this._toolsState;
135
+ }
136
+ }
137
+ SpreadsheetToolsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetToolsService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
138
+ SpreadsheetToolsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetToolsService });
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetToolsService, decorators: [{
140
+ type: Injectable
141
+ }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { stateChange: [{
142
+ type: Output
143
+ }] } });
144
+
145
+ /**
146
+ * @hidden
147
+ */
148
+ class SpreadsheetLocalizationService extends LocalizationService {
149
+ constructor(prefix, messageService, _rtl) {
150
+ super(prefix, messageService, _rtl);
151
+ }
152
+ }
153
+ SpreadsheetLocalizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetLocalizationService, deps: [{ token: L10N_PREFIX }, { token: i1.MessageService, optional: true }, { token: RTL, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
154
+ SpreadsheetLocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetLocalizationService });
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetLocalizationService, decorators: [{
156
+ type: Injectable
157
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
158
+ type: Inject,
159
+ args: [L10N_PREFIX]
160
+ }] }, { type: i1.MessageService, decorators: [{
161
+ type: Optional
162
+ }] }, { type: undefined, decorators: [{
163
+ type: Optional
164
+ }, {
165
+ type: Inject,
166
+ args: [RTL]
167
+ }] }]; } });
168
+
169
+ /**
170
+ * @hidden
171
+ */
172
+ const mapToSheetDescriptor = (sheetsArray) => {
173
+ return sheetsArray.map((sheet) => {
174
+ return {
175
+ activeCell: sheet.activeCell(),
176
+ columns: sheet._columns,
177
+ defaultCellStyle: sheet._defaultCellStyle,
178
+ drawings: sheet._drawings,
179
+ frozenColumns: sheet.frozenColumns,
180
+ frozenRows: sheet.frozenRows,
181
+ hyperlinks: sheet._hyperlinks,
182
+ mergedCells: sheet.mergedCells,
183
+ name: sheet.name(),
184
+ rows: sheet._rows,
185
+ selection: sheet.selection(),
186
+ showGridLines: sheet.showGridLines
187
+ };
188
+ });
189
+ };
190
+
191
+ /**
192
+ * @hidden
193
+ */
194
+ class FormulaListComponent {
195
+ constructor(element, spreadsheetService) {
196
+ this.element = element;
197
+ this.spreadsheetService = spreadsheetService;
198
+ this.id = this.spreadsheetService.formulaListId;
199
+ this.data = [];
200
+ this.formulaFxIcon = formulaFxIcon;
201
+ this.handleMouseDown = (ev) => {
202
+ ev.preventDefault();
203
+ };
204
+ }
205
+ }
206
+ 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 });
207
+ 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: `
208
+ <ul #ulRef
209
+ class="k-spreadsheet-formula-list k-list-ul k-list-md k-group k-reset"
210
+ role="menu"
211
+ [kendoEventsOutsideAngular]="{mousedown: handleMouseDown}">
212
+ <li *ngFor="let item of data"
213
+ (click)="itemClick(item.text)"
214
+ class="k-list-item"
215
+ role="menuitem">
216
+ <kendo-icon-wrapper
217
+ [svgIcon]="formulaFxIcon"
218
+ name="formula-fx"
219
+ ></kendo-icon-wrapper>
220
+ <span className="k-list-item-text">{{item.text}}</span>
221
+ </li>
222
+ </ul>
223
+ `, isInline: true, components: [{ type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i3.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormulaListComponent, decorators: [{
225
+ type: Component,
226
+ args: [{
227
+ selector: 'kendo-spreadsheet-formula-list',
228
+ template: `
229
+ <ul #ulRef
230
+ class="k-spreadsheet-formula-list k-list-ul k-list-md k-group k-reset"
231
+ role="menu"
232
+ [kendoEventsOutsideAngular]="{mousedown: handleMouseDown}">
233
+ <li *ngFor="let item of data"
234
+ (click)="itemClick(item.text)"
235
+ class="k-list-item"
236
+ role="menuitem">
237
+ <kendo-icon-wrapper
238
+ [svgIcon]="formulaFxIcon"
239
+ name="formula-fx"
240
+ ></kendo-icon-wrapper>
241
+ <span className="k-list-item-text">{{item.text}}</span>
242
+ </li>
243
+ </ul>
244
+ `
245
+ }]
246
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SpreadsheetService }]; }, propDecorators: { id: [{
247
+ type: HostBinding,
248
+ args: ['attr.id']
249
+ }], data: [{
250
+ type: Input
251
+ }], itemClick: [{
252
+ type: Input
253
+ }] } });
254
+
255
+ /**
256
+ * @hidden
257
+ */
258
+ class FormulaInputDirective {
259
+ constructor(element, popupService, spreadsheetService) {
260
+ this.element = element;
261
+ this.popupService = popupService;
262
+ this.spreadsheetService = spreadsheetService;
263
+ this.hostClasses = true;
264
+ this.ariaHasPopup = 'menu';
265
+ this.ariaExpanded = null;
266
+ this.focusedItem = () => this.list?.element.nativeElement.querySelector('.k-focus');
267
+ this.unfocus = () => {
268
+ const focused = this.focusedItem();
269
+ if (focused) {
270
+ focused.classList.remove('k-focus');
271
+ }
272
+ };
273
+ this.focusNext = (dir) => {
274
+ const element = this.list?.element.nativeElement.firstElementChild;
275
+ const items = Array.from((element && element.children) || []);
276
+ const focused = this.focusedItem();
277
+ let next;
278
+ if (focused) {
279
+ const index = items.indexOf(focused);
280
+ focused.classList.remove('k-focus');
281
+ next = items[index + dir] ? items[index + dir] : (dir === 1 ? items[0] : items[items.length - 1]);
282
+ }
283
+ else {
284
+ next = (dir === 1 ? items[0] : items[items.length - 1]);
285
+ }
286
+ if (next) {
287
+ next.classList.add('k-focus');
288
+ }
289
+ };
290
+ }
291
+ get ariaControls() {
292
+ return this.ariaExpanded ? this.spreadsheetService.formulaListId : null;
293
+ }
294
+ get listElement() {
295
+ return this.list?.element.nativeElement.firstElementChild;
296
+ }
297
+ get current() {
298
+ return {
299
+ element: this.element.nativeElement,
300
+ list: {
301
+ element: this.list?.element.nativeElement,
302
+ data: (d) => {
303
+ if (d) {
304
+ this.data = d;
305
+ this.list && (this.list.data = d);
306
+ }
307
+ else {
308
+ return this.data;
309
+ }
310
+ },
311
+ itemClick: (handler) => {
312
+ this.handler = handler;
313
+ },
314
+ value: () => { return {}; },
315
+ focus: () => {
316
+ const items = Array.from(this.listElement?.children || []);
317
+ return items.indexOf(this.focusedItem());
318
+ },
319
+ focusNext: () => this.focusNext(1),
320
+ focusPrev: () => this.focusNext(-1),
321
+ focusFirst: () => {
322
+ const list = this.listElement;
323
+ if (list && list.children.item(0)) {
324
+ this.unfocus();
325
+ list.children.item(0).classList.add('k-focus');
326
+ }
327
+ },
328
+ focusLast: () => {
329
+ const list = this.listElement;
330
+ if (list && list.children.length) {
331
+ this.unfocus();
332
+ list.children.item(list.children.length - 1).classList.add('k-focus');
333
+ }
334
+ },
335
+ },
336
+ popup: {
337
+ open: () => {
338
+ this.popupRef && this.popupRef.close();
339
+ this.popupRef = null;
340
+ this.popupRef = this.popupService.open({
341
+ anchor: this.element,
342
+ content: FormulaListComponent,
343
+ animate: { direction: 'down', duration: 100 }
344
+ });
345
+ const list = this.popupRef.content.instance;
346
+ this.list = list;
347
+ list.data = this.data;
348
+ list.itemClick = this.handler;
349
+ this.ariaExpanded = true;
350
+ },
351
+ close: () => {
352
+ this.popupRef && this.popupRef.close();
353
+ this.popupRef = null;
354
+ this.ariaExpanded = null;
355
+ },
356
+ position: () => {
357
+ // contentKey++;
358
+ },
359
+ visible: () => {
360
+ return this.popupRef;
361
+ }
362
+ }
363
+ };
364
+ }
365
+ }
366
+ FormulaInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormulaInputDirective, deps: [{ token: i0.ElementRef }, { token: i1$1.PopupService }, { token: SpreadsheetService }], target: i0.ɵɵFactoryTarget.Directive });
367
+ 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.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-controls": "this.ariaControls" } }, ngImport: i0 });
368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormulaInputDirective, decorators: [{
369
+ type: Directive,
370
+ args: [{
371
+ selector: '[kendoSpreadsheetFormulaInput]',
372
+ }]
373
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.PopupService }, { type: SpreadsheetService }]; }, propDecorators: { hostClasses: [{
374
+ type: HostBinding,
375
+ args: ['class.k-spreadsheet-formula-input']
376
+ }], ariaHasPopup: [{
377
+ type: HostBinding,
378
+ args: ['attr.aria-haspopup']
379
+ }], ariaExpanded: [{
380
+ type: HostBinding,
381
+ args: ['attr.aria-expanded']
382
+ }], ariaControls: [{
383
+ type: HostBinding,
384
+ args: ['attr.aria-controls']
385
+ }] } });
386
+
387
+ /**
388
+ * @hidden
389
+ */
390
+ const getSheetActions = (index, items) => {
391
+ return [{
392
+ text: 'Delete',
393
+ icon: 'trash',
394
+ svgIcon: trashIcon,
395
+ commandName: 'delete',
396
+ dialogButton: 'dialogDelete',
397
+ disabled: items.length === 1
398
+ },
399
+ {
400
+ text: 'Duplicate',
401
+ icon: 'copy',
402
+ svgIcon: copyIcon,
403
+ commandName: 'copy'
404
+ },
405
+ {
406
+ text: 'Rename',
407
+ icon: 'pencil',
408
+ svgIcon: pencilIcon,
409
+ commandName: 'rename',
410
+ dialogButton: 'dialogRename'
411
+ },
412
+ {
413
+ text: 'Move Right',
414
+ icon: 'arrow-right',
415
+ svgIcon: arrowRightIcon,
416
+ commandName: 'move',
417
+ disabled: index === items.length - 1
418
+ },
419
+ {
420
+ text: 'Move Left',
421
+ icon: 'arrow-left',
422
+ svgIcon: arrowLeftIcon,
423
+ commandName: 'move',
424
+ disabled: index === 0
425
+ }];
426
+ };
427
+
428
+ /**
429
+ * @hidden
430
+ */
431
+ const commandIcons = {
432
+ alignCenter: 'align-center',
433
+ alignJustify: 'align-justify',
434
+ alignLeft: 'align-left',
435
+ alignRight: 'align-right',
436
+ alignTop: 'align-top',
437
+ alignMiddle: 'align-middle',
438
+ alignBottom: 'align-bottom',
439
+ align: 'align-left',
440
+ background: 'droplet',
441
+ bold: 'bold',
442
+ color: 'foreground-color',
443
+ italic: 'italic',
444
+ redo: 'arrow-rotate-cw',
445
+ underline: 'underline',
446
+ undo: 'arrow-rotate-ccw',
447
+ wrap: 'text-wrap',
448
+ addColumnLeft: 'table-column-insert-left',
449
+ addColumnRight: 'table-column-insert-right',
450
+ addRowAbove: 'table-row-insert-above',
451
+ addRowBelow: 'table-row-insert-below',
452
+ deleteRow: 'table-row-delete',
453
+ deleteColumn: 'table-column-delete',
454
+ gridLines: 'borders-none',
455
+ folderOpen: 'folder-open',
456
+ download: 'download',
457
+ format: 'custom-format',
458
+ fontSize: 'font-size',
459
+ fontFamily: 'font-family'
460
+ };
461
+ /**
462
+ * @hidden
463
+ */
464
+ const commandSVGIcons = {
465
+ alignCenter: alignCenterIcon,
466
+ alignJustify: alignJustifyIcon,
467
+ alignLeft: alignLeftIcon,
468
+ alignRight: alignRightIcon,
469
+ alignTop: alignTopIcon,
470
+ alignMiddle: alignMiddleIcon,
471
+ alignBottom: alignBottomIcon,
472
+ align: alignLeftIcon,
473
+ background: dropletIcon,
474
+ bold: boldIcon,
475
+ color: foregroundColorIcon,
476
+ italic: italicIcon,
477
+ redo: arrowRotateCwIcon,
478
+ underline: underlineIcon,
479
+ undo: arrowRotateCcwIcon,
480
+ wrap: textWrapIcon,
481
+ addColumnLeft: tableColumnInsertLeftIcon,
482
+ addColumnRight: tableColumnInsertRightIcon,
483
+ addRowAbove: tableRowInsertAboveIcon,
484
+ addRowBelow: tableRowInsertBelowIcon,
485
+ deleteRow: tableRowDeleteIcon,
486
+ deleteColumn: tableColumnDeleteIcon,
487
+ gridLines: bordersNoneIcon,
488
+ folderOpen: folderOpenIcon,
489
+ download: downloadIcon,
490
+ format: customFormatIcon,
491
+ fontSize: fontSizeIcon,
492
+ fontFamily: fontFamilyIcon
493
+ };
494
+
495
+ class SpreadsheetLoadFileComponent extends ToolBarToolComponent {
496
+ constructor(localization, spreadsheetService, toolbar) {
497
+ super();
498
+ this.localization = localization;
499
+ this.spreadsheetService = spreadsheetService;
500
+ this.toolbar = toolbar;
501
+ this.icon = commandIcons['folderOpen'];
502
+ this.svgIcon = commandSVGIcons['folderOpen'];
503
+ this.tabindex = -1;
504
+ this.onFileSelect = (e) => {
505
+ const file = e.target.files[0];
506
+ if (file) {
507
+ this.spreadsheetService.spreadsheet.fromFile(file);
508
+ e.target.value = null;
509
+ }
510
+ };
511
+ }
512
+ /**
513
+ * @hidden
514
+ */
515
+ messageFor(key) {
516
+ return this.localization.get(key);
517
+ }
518
+ /**
519
+ * @hidden
520
+ */
521
+ canFocus() {
522
+ return true;
523
+ }
524
+ /**
525
+ * @hidden
526
+ */
527
+ focus() {
528
+ this.tabindex = 0;
529
+ if (this.overflows) {
530
+ this.overflowButtonElement.nativeElement.focus();
531
+ }
532
+ else {
533
+ this.button.focus();
534
+ }
535
+ }
536
+ /**
537
+ * @hidden
538
+ */
539
+ handleKey() {
540
+ this.tabindex = -1;
541
+ return false;
542
+ }
543
+ }
544
+ SpreadsheetLoadFileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetLoadFileComponent, deps: [{ token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
545
+ SpreadsheetLoadFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetLoadFileComponent, selector: "kendo-spreadsheet-load-file-tool", providers: [
546
+ {
547
+ provide: ToolBarToolComponent,
548
+ useExisting: forwardRef(() => SpreadsheetLoadFileComponent),
549
+ },
550
+ ], viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "overflowButtonElement", first: true, predicate: ["overflowButton"], descendants: true, read: ElementRef }, { propertyName: "button", first: true, predicate: ["button"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
551
+ <ng-template #toolbarTemplate>
552
+ <button
553
+ #button
554
+ type="button"
555
+ kendoButton
556
+ [title]="messageFor('loadFile')"
557
+ fillMode="flat"
558
+ [icon]="icon"
559
+ [svgIcon]="svgIcon"
560
+ (click)="fileSelectEl.click()"></button>
561
+ <input
562
+ #fileSelectEl
563
+ type="file"
564
+ (change)="onFileSelect($event)"
565
+ [style.display]="'none'"
566
+ aria-hidden="true"
567
+ accept=".xlsx,.XLSX" />
568
+ </ng-template>
569
+ <ng-template #popupTemplate>
570
+ <div
571
+ #overflowButton
572
+ tabindex="-1"
573
+ role="menuitem"
574
+ class="k-item k-menu-item"
575
+ (click)="toolbar.toggle(false); popupFileSelectEl.click()">
576
+ <span
577
+ class="k-link k-menu-link">
578
+ <kendo-icon-wrapper
579
+ [name]="icon"
580
+ [svgIcon]="svgIcon"
581
+ ></kendo-icon-wrapper>
582
+ <span class="k-menu-link-text">{{messageFor('loadFile')}}</span>
583
+ </span>
584
+ <input
585
+ #popupFileSelectEl
586
+ type="file"
587
+ (change)="onFileSelect($event)"
588
+ [style.display]="'none'"
589
+ aria-hidden="true"
590
+ accept=".xlsx,.XLSX" />
591
+ </div>
592
+ </ng-template>
593
+ `, 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: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
594
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetLoadFileComponent, decorators: [{
595
+ type: Component,
596
+ args: [{
597
+ selector: 'kendo-spreadsheet-load-file-tool',
598
+ providers: [
599
+ {
600
+ provide: ToolBarToolComponent,
601
+ useExisting: forwardRef(() => SpreadsheetLoadFileComponent),
602
+ },
603
+ ],
604
+ template: `
605
+ <ng-template #toolbarTemplate>
606
+ <button
607
+ #button
608
+ type="button"
609
+ kendoButton
610
+ [title]="messageFor('loadFile')"
611
+ fillMode="flat"
612
+ [icon]="icon"
613
+ [svgIcon]="svgIcon"
614
+ (click)="fileSelectEl.click()"></button>
615
+ <input
616
+ #fileSelectEl
617
+ type="file"
618
+ (change)="onFileSelect($event)"
619
+ [style.display]="'none'"
620
+ aria-hidden="true"
621
+ accept=".xlsx,.XLSX" />
622
+ </ng-template>
623
+ <ng-template #popupTemplate>
624
+ <div
625
+ #overflowButton
626
+ tabindex="-1"
627
+ role="menuitem"
628
+ class="k-item k-menu-item"
629
+ (click)="toolbar.toggle(false); popupFileSelectEl.click()">
630
+ <span
631
+ class="k-link k-menu-link">
632
+ <kendo-icon-wrapper
633
+ [name]="icon"
634
+ [svgIcon]="svgIcon"
635
+ ></kendo-icon-wrapper>
636
+ <span class="k-menu-link-text">{{messageFor('loadFile')}}</span>
637
+ </span>
638
+ <input
639
+ #popupFileSelectEl
640
+ type="file"
641
+ (change)="onFileSelect($event)"
642
+ [style.display]="'none'"
643
+ aria-hidden="true"
644
+ accept=".xlsx,.XLSX" />
645
+ </div>
646
+ </ng-template>
647
+ `
648
+ }]
649
+ }], ctorParameters: function () { return [{ type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: i1$2.ToolBarComponent, decorators: [{
650
+ type: Inject,
651
+ args: [ToolBarComponent]
652
+ }] }]; }, propDecorators: { toolbarTemplate: [{
653
+ type: ViewChild,
654
+ args: ['toolbarTemplate', { static: true }]
655
+ }], popupTemplate: [{
656
+ type: ViewChild,
657
+ args: ['popupTemplate', { static: true }]
658
+ }], overflowButtonElement: [{
659
+ type: ViewChild,
660
+ args: ['overflowButton', { read: ElementRef, static: false }]
661
+ }], button: [{
662
+ type: ViewChild,
663
+ args: ['button']
664
+ }] } });
665
+
666
+ const DEFAULT_FONT_FAMILY = 'Arial';
667
+ const DEFAULT_FONT_SIZE = 12;
668
+ /**
669
+ * @hidden
670
+ */
671
+ const DEFAULT_FONT_VALUES = {
672
+ fontSize: DEFAULT_FONT_SIZE,
673
+ fontFamily: DEFAULT_FONT_FAMILY
674
+ };
675
+ /**
676
+ * @hidden
677
+ */
678
+ const FONT_FAMILIES = ['Arial', 'Courier New', 'Georgia', 'Times New Roman', 'Trebuchet MS', 'Verdana'];
679
+ /**
680
+ * @hidden
681
+ */
682
+ const FONT_SIZES = [8, 9, 10, 11, 12, 13, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72];
683
+ /**
684
+ * @hidden
685
+ */
686
+ const FONT_DATA = {
687
+ fontFamily: FONT_FAMILIES,
688
+ fontSize: FONT_SIZES
689
+ };
690
+ /**
691
+ * @hidden
692
+ */
693
+ const FORMATS = [
694
+ { text: 'Automatic', value: null },
695
+ { text: 'Text', value: '@' },
696
+ { text: 'Number', value: '#,0.00' },
697
+ { text: 'Percent', value: '0.00%' },
698
+ { text: 'Financial', value: '_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)' },
699
+ { text: 'Currency', value: '$#,##0.00;[Red]$#,##0.00' },
700
+ { text: 'Date', value: 'm/d/yyyy' },
701
+ { text: 'Time', value: 'h:mm:ss AM/PM' },
702
+ { text: 'Date time', value: 'm/d/yyyy h:mm' },
703
+ { text: 'Duration', value: '[h]:mm:ss' }
704
+ ];
705
+ /**
706
+ * @hidden
707
+ */
708
+ const ALIGNS = [
709
+ { icon: 'align-left', svgIcon: commandSVGIcons.alignLeft, textKey: 'Align Left', commandName: 'textAlign', value: 'left', cssClass: '' },
710
+ { icon: 'align-center', svgIcon: commandSVGIcons.alignCenter, textKey: 'Align Center', commandName: 'textAlign', value: 'center', cssClass: '' },
711
+ { icon: 'align-right', svgIcon: commandSVGIcons.alignRight, textKey: 'Align Right', commandName: 'textAlign', value: 'right', cssClass: '' },
712
+ { icon: 'align-justify', svgIcon: commandSVGIcons.alignJustify, textKey: 'Align Justify', commandName: 'textAlign', value: 'justify', cssClass: '' },
713
+ { icon: 'align-top', svgIcon: commandSVGIcons.alignTop, textKey: 'Align Top', commandName: 'verticalAlign', value: 'top', cssClass: '' },
714
+ { icon: 'align-middle', svgIcon: commandSVGIcons.alignMiddle, textKey: 'Align Middle', commandName: 'verticalAlign', value: 'center', cssClass: '' },
715
+ { icon: 'align-bottom', svgIcon: commandSVGIcons.alignBottom, textKey: 'Align Bottom', commandName: 'verticalAlign', value: 'bottom', cssClass: '' }
716
+ ];
717
+ /**
718
+ * @hidden
719
+ */
720
+ const MY_TOKEN = new InjectionToken('COMMAND_TOKEN');
721
+
722
+ /**
723
+ * @hidden
724
+ */
725
+ function outerWidth(element) {
726
+ let width = element.offsetWidth;
727
+ const style = getComputedStyle(element);
728
+ width += parseFloat(style.marginLeft) || 0 + parseFloat(style.marginRight) || 0;
729
+ return width;
730
+ }
731
+
732
+ /**
733
+ * @hidden
734
+ */
735
+ class DropDownListBase {
736
+ constructor() {
737
+ this.display = 'inline-flex';
738
+ this.fillMode = 'flat';
739
+ this.valueChange = new EventEmitter();
740
+ }
741
+ onValueChange(value) {
742
+ this.valueChange.emit(value);
743
+ }
744
+ focus() {
745
+ this.dropDownList.focus();
746
+ }
747
+ }
748
+ DropDownListBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropDownListBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
749
+ DropDownListBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: DropDownListBase, selector: "kendo-spreadsheet-dropdownlist-base", inputs: { data: "data", value: "value", title: "title", tabindex: "tabindex" }, outputs: { valueChange: "valueChange" }, host: { properties: { "style.display": "this.display" } }, viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }, { propertyName: "dropDownList", first: true, predicate: ["element"], descendants: true, read: DropDownListComponent, static: true }], ngImport: i0 });
750
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DropDownListBase, decorators: [{
751
+ type: Directive,
752
+ args: [{
753
+ selector: 'kendo-spreadsheet-dropdownlist-base'
754
+ }]
755
+ }], propDecorators: { display: [{
756
+ type: HostBinding,
757
+ args: ['style.display']
758
+ }], data: [{
759
+ type: Input
760
+ }], value: [{
761
+ type: Input
762
+ }], title: [{
763
+ type: Input
764
+ }], tabindex: [{
765
+ type: Input
766
+ }], valueChange: [{
767
+ type: Output
768
+ }], element: [{
769
+ type: ViewChild,
770
+ args: ['element', { static: true }]
771
+ }], dropDownList: [{
772
+ type: ViewChild,
773
+ args: ['element', { read: DropDownListComponent, static: true }]
774
+ }] } });
775
+
776
+ /**
777
+ * @hidden
778
+ */
779
+ class FontFamilyDropDownListComponent extends DropDownListBase {
780
+ }
781
+ FontFamilyDropDownListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FontFamilyDropDownListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
782
+ FontFamilyDropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FontFamilyDropDownListComponent, selector: "kendo-spreadsheet-fontfamily-dropdownlist", usesInheritance: true, ngImport: i0, template: `
783
+ <kendo-dropdownlist
784
+ #element
785
+ [data]="data"
786
+ [(value)]="value"
787
+ [attr.title]="title"
788
+ [tabindex]="tabindex"
789
+ (valueChange)="onValueChange($event)"
790
+ [leftRightArrowsNavigation]="false"
791
+ [fillMode]="fillMode"
792
+ [attr.title]="title">
793
+ <ng-template kendoDropDownListItemTemplate let-dataItem>
794
+ <span [ngStyle]="{ 'font-family': dataItem }">
795
+ {{ dataItem }}
796
+ </span>
797
+ </ng-template>
798
+ </kendo-dropdownlist>
799
+ `, isInline: true, components: [{ type: i1$3.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i1$3.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
800
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FontFamilyDropDownListComponent, decorators: [{
801
+ type: Component,
802
+ args: [{
803
+ selector: 'kendo-spreadsheet-fontfamily-dropdownlist',
804
+ template: `
805
+ <kendo-dropdownlist
806
+ #element
807
+ [data]="data"
808
+ [(value)]="value"
809
+ [attr.title]="title"
810
+ [tabindex]="tabindex"
811
+ (valueChange)="onValueChange($event)"
812
+ [leftRightArrowsNavigation]="false"
813
+ [fillMode]="fillMode"
814
+ [attr.title]="title">
815
+ <ng-template kendoDropDownListItemTemplate let-dataItem>
816
+ <span [ngStyle]="{ 'font-family': dataItem }">
817
+ {{ dataItem }}
818
+ </span>
819
+ </ng-template>
820
+ </kendo-dropdownlist>
821
+ `
822
+ }]
823
+ }] });
824
+
825
+ /**
826
+ * @hidden
827
+ */
828
+ class FontSizeDropDownListComponent extends DropDownListBase {
829
+ }
830
+ FontSizeDropDownListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FontSizeDropDownListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
831
+ FontSizeDropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FontSizeDropDownListComponent, selector: "kendo-spreadsheet-fontsize-dropdownlist", usesInheritance: true, ngImport: i0, template: `
832
+ <kendo-dropdownlist
833
+ #element
834
+ [data]="data"
835
+ [(value)]="value"
836
+ [attr.title]="title"
837
+ [tabindex]="tabindex"
838
+ (valueChange)="onValueChange($event)"
839
+ [leftRightArrowsNavigation]="false"
840
+ [fillMode]="fillMode"></kendo-dropdownlist>
841
+ `, isInline: true, components: [{ type: i1$3.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }] });
842
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FontSizeDropDownListComponent, decorators: [{
843
+ type: Component,
844
+ args: [{
845
+ selector: 'kendo-spreadsheet-fontsize-dropdownlist',
846
+ template: `
847
+ <kendo-dropdownlist
848
+ #element
849
+ [data]="data"
850
+ [(value)]="value"
851
+ [attr.title]="title"
852
+ [tabindex]="tabindex"
853
+ (valueChange)="onValueChange($event)"
854
+ [leftRightArrowsNavigation]="false"
855
+ [fillMode]="fillMode"></kendo-dropdownlist>
856
+ `
857
+ }]
858
+ }] });
859
+
860
+ /**
861
+ * @hidden
862
+ */
863
+ class DialogContentComponent extends DialogContentBase {
864
+ constructor(dialog) {
865
+ super(dialog);
866
+ this.dialog = dialog;
867
+ this.data = [];
868
+ }
869
+ setData(args) {
870
+ this.data = args.data;
871
+ this.value = args.value;
872
+ this.tabindex = args.tabindex;
873
+ this.componentType = args.componentType;
874
+ }
875
+ }
876
+ DialogContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DialogContentComponent, deps: [{ token: i1$4.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
877
+ DialogContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DialogContentComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
878
+ <div
879
+ [ngSwitch]="componentType"
880
+ class="k-d-flex k-align-items-center k-justify-content-center">
881
+ <kendo-spreadsheet-fontfamily-dropdownlist
882
+ *ngSwitchCase="'fontFamily'"
883
+ [data]="data"
884
+ [(value)]="value"
885
+ [attr.title]="title"
886
+ [tabindex]="tabindex"
887
+ [style.width.em]="13"
888
+ ></kendo-spreadsheet-fontfamily-dropdownlist>
889
+ <kendo-spreadsheet-fontsize-dropdownlist
890
+ *ngSwitchCase="'fontSize'"
891
+ [data]="data"
892
+ [(value)]="value"
893
+ [attr.title]="title"
894
+ [tabindex]="tabindex"
895
+ [style.width.em]="13"
896
+ ></kendo-spreadsheet-fontsize-dropdownlist>
897
+ <kendo-colorpicker
898
+ *ngSwitchCase="'color'"
899
+ [attr.title]="title"
900
+ [format]="'hex'"
901
+ [(value)]="value"
902
+ [tabindex]="tabindex"
903
+ [clearButton]="false"
904
+ fillMode="flat"
905
+ ></kendo-colorpicker>
906
+ <kendo-colorpicker
907
+ *ngSwitchCase="'background'"
908
+ [attr.title]="title"
909
+ [format]="'hex'"
910
+ [(value)]="value"
911
+ [tabindex]="tabindex"
912
+ [clearButton]="false"
913
+ fillMode="flat"
914
+ ></kendo-colorpicker>
915
+ </div>
916
+ `, isInline: true, components: [{ type: FontFamilyDropDownListComponent, selector: "kendo-spreadsheet-fontfamily-dropdownlist" }, { type: FontSizeDropDownListComponent, selector: "kendo-spreadsheet-fontsize-dropdownlist" }, { type: i5.ColorPickerComponent, selector: "kendo-colorpicker", inputs: ["views", "view", "activeView", "readonly", "disabled", "format", "value", "popupSettings", "paletteSettings", "gradientSettings", "icon", "iconClass", "svgIcon", "clearButton", "tabindex", "preview", "actionsLayout", "size", "rounded", "fillMode"], outputs: ["valueChange", "open", "close", "focus", "blur", "cancel", "activeColorClick", "clearButtonClick", "activeViewChange"], exportAs: ["kendoColorPicker"] }], directives: [{ type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
917
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DialogContentComponent, decorators: [{
918
+ type: Component,
919
+ args: [{
920
+ template: `
921
+ <div
922
+ [ngSwitch]="componentType"
923
+ class="k-d-flex k-align-items-center k-justify-content-center">
924
+ <kendo-spreadsheet-fontfamily-dropdownlist
925
+ *ngSwitchCase="'fontFamily'"
926
+ [data]="data"
927
+ [(value)]="value"
928
+ [attr.title]="title"
929
+ [tabindex]="tabindex"
930
+ [style.width.em]="13"
931
+ ></kendo-spreadsheet-fontfamily-dropdownlist>
932
+ <kendo-spreadsheet-fontsize-dropdownlist
933
+ *ngSwitchCase="'fontSize'"
934
+ [data]="data"
935
+ [(value)]="value"
936
+ [attr.title]="title"
937
+ [tabindex]="tabindex"
938
+ [style.width.em]="13"
939
+ ></kendo-spreadsheet-fontsize-dropdownlist>
940
+ <kendo-colorpicker
941
+ *ngSwitchCase="'color'"
942
+ [attr.title]="title"
943
+ [format]="'hex'"
944
+ [(value)]="value"
945
+ [tabindex]="tabindex"
946
+ [clearButton]="false"
947
+ fillMode="flat"
948
+ ></kendo-colorpicker>
949
+ <kendo-colorpicker
950
+ *ngSwitchCase="'background'"
951
+ [attr.title]="title"
952
+ [format]="'hex'"
953
+ [(value)]="value"
954
+ [tabindex]="tabindex"
955
+ [clearButton]="false"
956
+ fillMode="flat"
957
+ ></kendo-colorpicker>
958
+ </div>
959
+ `
960
+ }]
961
+ }], ctorParameters: function () { return [{ type: i1$4.DialogRef }]; } });
962
+
963
+ /**
964
+ * @hidden
965
+ */
966
+ class SpreadsheetDropDownToolBase extends ToolBarToolComponent {
967
+ constructor(command, dialogService, localization, spreadsheetService, toolsService, toolbar) {
968
+ super();
969
+ this.command = command;
970
+ this.dialogService = dialogService;
971
+ this.localization = localization;
972
+ this.spreadsheetService = spreadsheetService;
973
+ this.toolsService = toolsService;
974
+ this.toolbar = toolbar;
975
+ /**
976
+ * Fires when the user updates the value of the drop-down list.
977
+ */
978
+ this.valueChange = new EventEmitter();
979
+ this.tabindex = -1;
980
+ this.svgIcon = commandSVGIcons[this.command];
981
+ this.icon = commandIcons[this.command];
982
+ this.value = DEFAULT_FONT_VALUES[this.command];
983
+ this.data = FONT_DATA[this.command];
984
+ }
985
+ ngOnInit() {
986
+ this.value = this.toolsService.toolsState[this.command];
987
+ this.subs = this.toolsService.stateChange.subscribe(state => {
988
+ this.value = state[this.command];
989
+ });
990
+ }
991
+ ngOnDestroy() {
992
+ if (this.subs) {
993
+ this.subs.unsubscribe();
994
+ }
995
+ }
996
+ /**
997
+ * @hidden
998
+ */
999
+ messageFor(key) {
1000
+ return this.localization.get(key);
1001
+ }
1002
+ /**
1003
+ * @hidden
1004
+ */
1005
+ onValueChange(ev) {
1006
+ if (isPresent(ev)) {
1007
+ if (hasObservers(this.valueChange)) {
1008
+ this.valueChange.emit(ev);
1009
+ }
1010
+ const options = {
1011
+ command: 'PropertyChangeCommand',
1012
+ options: { property: this.command, value: ev || null }
1013
+ };
1014
+ this.spreadsheetService.spreadsheet.executeCommand(options);
1015
+ }
1016
+ }
1017
+ /**
1018
+ * @hidden
1019
+ */
1020
+ get outerWidth() {
1021
+ if (this.element) {
1022
+ return outerWidth(this.element.nativeElement);
1023
+ }
1024
+ }
1025
+ /**
1026
+ * @hidden
1027
+ */
1028
+ openDialog() {
1029
+ const dialogSettings = {
1030
+ appendTo: this.spreadsheetService.dialogContainer,
1031
+ title: this.messageFor(this.command),
1032
+ content: DialogContentComponent,
1033
+ actions: [{
1034
+ text: this.messageFor('dialogApply'),
1035
+ themeColor: 'primary'
1036
+ }, {
1037
+ text: this.messageFor('dialogCancel')
1038
+ }],
1039
+ actionsLayout: 'start',
1040
+ width: 400,
1041
+ autoFocusedElement: '.k-dropdownlist'
1042
+ };
1043
+ this.toolbar.toggle(false);
1044
+ const dialog = this.dialogService.open(dialogSettings);
1045
+ const dialogInstance = dialog.dialog.instance;
1046
+ const dialogContent = dialog.content.instance;
1047
+ dialogInstance.action.pipe(take(1)).subscribe((event) => {
1048
+ if (event.text === this.messageFor('dialogApply')) {
1049
+ const options = {
1050
+ command: 'PropertyChangeCommand',
1051
+ options: { property: this.command, value: dialogContent.value || null }
1052
+ };
1053
+ this.spreadsheetService.spreadsheet.executeCommand(options);
1054
+ }
1055
+ this.toolbar.toggle();
1056
+ });
1057
+ dialogInstance.close.pipe(take(1)).subscribe(() => {
1058
+ this.toolbar.toggle();
1059
+ });
1060
+ dialogContent.setData({
1061
+ data: this.data,
1062
+ value: this.value,
1063
+ tabindex: this.tabindex,
1064
+ componentType: this.command,
1065
+ title: this.localization.get(this.command)
1066
+ });
1067
+ }
1068
+ /**
1069
+ * @hidden
1070
+ */
1071
+ focus(e) {
1072
+ this.tabindex = 0;
1073
+ if (e instanceof PointerEvent) {
1074
+ return;
1075
+ }
1076
+ if (this.overflows) {
1077
+ this.popupButton.nativeElement.focus();
1078
+ }
1079
+ else {
1080
+ this.dropDownListRef.focus();
1081
+ }
1082
+ }
1083
+ /**
1084
+ * @hidden
1085
+ */
1086
+ canFocus() {
1087
+ return true;
1088
+ }
1089
+ /**
1090
+ * @hidden
1091
+ */
1092
+ handleKey() {
1093
+ this.tabindex = -1;
1094
+ return false;
1095
+ }
1096
+ }
1097
+ SpreadsheetDropDownToolBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetDropDownToolBase, deps: [{ token: MY_TOKEN }, { token: i1$4.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: i1$2.ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
1098
+ SpreadsheetDropDownToolBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetDropDownToolBase, selector: "ng-component", outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "element", first: true, predicate: ["element"], descendants: true, read: ElementRef }, { propertyName: "dropDownListRef", first: true, predicate: ["element"], descendants: true }, { propertyName: "popupButton", first: true, predicate: ["popupButton"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
1099
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetDropDownToolBase, decorators: [{
1100
+ type: Component,
1101
+ args: [{
1102
+ template: ``
1103
+ }]
1104
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1105
+ type: Inject,
1106
+ args: [MY_TOKEN]
1107
+ }] }, { type: i1$4.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent }]; }, propDecorators: { toolbarTemplate: [{
1108
+ type: ViewChild,
1109
+ args: ['toolbarTemplate', { static: true }]
1110
+ }], popupTemplate: [{
1111
+ type: ViewChild,
1112
+ args: ['popupTemplate', { static: true }]
1113
+ }], element: [{
1114
+ type: ViewChild,
1115
+ args: ['element', { read: ElementRef }]
1116
+ }], dropDownListRef: [{
1117
+ type: ViewChild,
1118
+ args: ['element']
1119
+ }], popupButton: [{
1120
+ type: ViewChild,
1121
+ args: ['popupButton', { read: ElementRef }]
1122
+ }], valueChange: [{
1123
+ type: Output
1124
+ }] } });
1125
+
1126
+ /**
1127
+ * A component which configures an existing `DropDownListComponent` as a Spreadsheet tool
1128
+ * ([see example](ToDo).
1129
+ * The component associates a `kendo-toolbar-dropdownlist` with a Spreadsheet command that changes the font family of a content block and
1130
+ * automatically defines the options of the drop-down list and sets its values ([see example](ToDo).
1131
+ *
1132
+ * @hidden
1133
+ */
1134
+ class SpreadsheetFontFamilyComponent extends SpreadsheetDropDownToolBase {
1135
+ constructor(dialogService, localization, spreadsheetService, toolsService, toolbar) {
1136
+ super('fontFamily', dialogService, localization, spreadsheetService, toolsService, toolbar);
1137
+ }
1138
+ }
1139
+ SpreadsheetFontFamilyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetFontFamilyComponent, deps: [{ token: i1$4.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
1140
+ SpreadsheetFontFamilyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetFontFamilyComponent) }], usesInheritance: true, ngImport: i0, template: `
1141
+ <ng-template #toolbarTemplate>
1142
+ <kendo-spreadsheet-fontfamily-dropdownlist
1143
+ #element
1144
+ [data]="data"
1145
+ [(value)]="value"
1146
+ [title]="messageFor(command)"
1147
+ [tabindex]="tabindex"
1148
+ (valueChange)="onValueChange($event)"></kendo-spreadsheet-fontfamily-dropdownlist>
1149
+ </ng-template>
1150
+ <ng-template #popupTemplate>
1151
+ <div #popupButton
1152
+ [tabindex]="tabindex"
1153
+ role="menuitem"
1154
+ class="k-item k-menu-item"
1155
+ (click)="openDialog()">
1156
+ <span
1157
+ class="k-link k-menu-link">
1158
+ <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
1159
+ <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
1160
+ </span>
1161
+ </div>
1162
+ </ng-template>
1163
+ `, isInline: true, components: [{ type: FontFamilyDropDownListComponent, selector: "kendo-spreadsheet-fontfamily-dropdownlist" }, { type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetFontFamilyComponent, decorators: [{
1165
+ type: Component,
1166
+ args: [{
1167
+ providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetFontFamilyComponent) }],
1168
+ selector: 'kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]',
1169
+ template: `
1170
+ <ng-template #toolbarTemplate>
1171
+ <kendo-spreadsheet-fontfamily-dropdownlist
1172
+ #element
1173
+ [data]="data"
1174
+ [(value)]="value"
1175
+ [title]="messageFor(command)"
1176
+ [tabindex]="tabindex"
1177
+ (valueChange)="onValueChange($event)"></kendo-spreadsheet-fontfamily-dropdownlist>
1178
+ </ng-template>
1179
+ <ng-template #popupTemplate>
1180
+ <div #popupButton
1181
+ [tabindex]="tabindex"
1182
+ role="menuitem"
1183
+ class="k-item k-menu-item"
1184
+ (click)="openDialog()">
1185
+ <span
1186
+ class="k-link k-menu-link">
1187
+ <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
1188
+ <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
1189
+ </span>
1190
+ </div>
1191
+ </ng-template>
1192
+ `
1193
+ }]
1194
+ }], ctorParameters: function () { return [{ type: i1$4.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent, decorators: [{
1195
+ type: Inject,
1196
+ args: [ToolBarComponent]
1197
+ }] }]; } });
1198
+
1199
+ /**
1200
+ * A component which configures an existing `DropDownListComponent` as a Spreadsheet tool
1201
+ * ([see example](ToDo).
1202
+ * The component associates a `kendo-toolbar-dropdownlist` with a Spreadsheet command that changes the font size of a content block and
1203
+ * automatically defines the options of the drop-down list and sets its values ([see example](ToDo).
1204
+ *
1205
+ * @hidden
1206
+ */
1207
+ class SpreadsheetFontSizeComponent extends SpreadsheetDropDownToolBase {
1208
+ constructor(dialogService, localization, spreadsheetService, toolsService, toolbar) {
1209
+ super('fontSize', dialogService, localization, spreadsheetService, toolsService, toolbar);
1210
+ }
1211
+ }
1212
+ SpreadsheetFontSizeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetFontSizeComponent, deps: [{ token: i1$4.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
1213
+ SpreadsheetFontSizeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetFontSizeComponent) }], usesInheritance: true, ngImport: i0, template: `
1214
+ <ng-template #toolbarTemplate>
1215
+ <kendo-spreadsheet-fontsize-dropdownlist
1216
+ #element
1217
+ [data]="data"
1218
+ [(value)]="value"
1219
+ [title]="messageFor(command)"
1220
+ [tabindex]="tabindex"
1221
+ (valueChange)="onValueChange($event)"></kendo-spreadsheet-fontsize-dropdownlist>
1222
+ </ng-template>
1223
+ <ng-template #popupTemplate>
1224
+ <div #popupButton
1225
+ [tabindex]="tabindex"
1226
+ role="menuitem"
1227
+ class="k-item k-menu-item"
1228
+ (click)="openDialog()">
1229
+ <span
1230
+ class="k-link k-menu-link">
1231
+ <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
1232
+ <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
1233
+ </span>
1234
+ </div>
1235
+ </ng-template>
1236
+ `, isInline: true, components: [{ type: FontSizeDropDownListComponent, selector: "kendo-spreadsheet-fontsize-dropdownlist" }, { type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetFontSizeComponent, decorators: [{
1238
+ type: Component,
1239
+ args: [{
1240
+ providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetFontSizeComponent) }],
1241
+ selector: 'kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]',
1242
+ template: `
1243
+ <ng-template #toolbarTemplate>
1244
+ <kendo-spreadsheet-fontsize-dropdownlist
1245
+ #element
1246
+ [data]="data"
1247
+ [(value)]="value"
1248
+ [title]="messageFor(command)"
1249
+ [tabindex]="tabindex"
1250
+ (valueChange)="onValueChange($event)"></kendo-spreadsheet-fontsize-dropdownlist>
1251
+ </ng-template>
1252
+ <ng-template #popupTemplate>
1253
+ <div #popupButton
1254
+ [tabindex]="tabindex"
1255
+ role="menuitem"
1256
+ class="k-item k-menu-item"
1257
+ (click)="openDialog()">
1258
+ <span
1259
+ class="k-link k-menu-link">
1260
+ <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
1261
+ <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
1262
+ </span>
1263
+ </div>
1264
+ </ng-template>
1265
+ `
1266
+ }]
1267
+ }], ctorParameters: function () { return [{ type: i1$4.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent, decorators: [{
1268
+ type: Inject,
1269
+ args: [ToolBarComponent]
1270
+ }] }]; } });
1271
+
1272
+ /**
1273
+ * A component which changes the color of the text ([more information](ToDo).
1274
+ * @hidden
1275
+ */
1276
+ class SpreadsheetForeColorComponent extends SpreadsheetDropDownToolBase {
1277
+ constructor(dialogService, localization, spreadsheetService, toolsService, toolbar) {
1278
+ super('color', dialogService, localization, spreadsheetService, toolsService, toolbar);
1279
+ }
1280
+ }
1281
+ SpreadsheetForeColorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetForeColorComponent, deps: [{ token: i1$4.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
1282
+ SpreadsheetForeColorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetForeColorComponent, selector: "kendo-spreadsheet-forecolor-tool", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetForeColorComponent) }], usesInheritance: true, ngImport: i0, template: `
1283
+ <ng-template #toolbarTemplate>
1284
+ <kendo-colorpicker
1285
+ #element
1286
+ [attr.title]="messageFor(command)"
1287
+ [format]="'hex'"
1288
+ [(value)]="value"
1289
+ [tabindex]="tabindex"
1290
+ (valueChange)="onValueChange($event)"
1291
+ [clearButton]="false"
1292
+ fillMode="flat"
1293
+ [icon]="icon"
1294
+ [svgIcon]="svgIcon"
1295
+ [preview]="true"></kendo-colorpicker>
1296
+ </ng-template>
1297
+ <ng-template #popupTemplate>
1298
+ <div #popupButton
1299
+ [tabindex]="tabindex"
1300
+ role="menuitem"
1301
+ class="k-item k-menu-item"
1302
+ (click)="openDialog();">
1303
+ <span
1304
+ class="k-link k-menu-link">
1305
+ <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
1306
+ <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
1307
+ </span>
1308
+ </div>
1309
+ </ng-template>
1310
+ `, isInline: true, components: [{ type: i5.ColorPickerComponent, selector: "kendo-colorpicker", inputs: ["views", "view", "activeView", "readonly", "disabled", "format", "value", "popupSettings", "paletteSettings", "gradientSettings", "icon", "iconClass", "svgIcon", "clearButton", "tabindex", "preview", "actionsLayout", "size", "rounded", "fillMode"], outputs: ["valueChange", "open", "close", "focus", "blur", "cancel", "activeColorClick", "clearButtonClick", "activeViewChange"], exportAs: ["kendoColorPicker"] }, { type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1311
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetForeColorComponent, decorators: [{
1312
+ type: Component,
1313
+ args: [{
1314
+ providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetForeColorComponent) }],
1315
+ selector: 'kendo-spreadsheet-forecolor-tool',
1316
+ template: `
1317
+ <ng-template #toolbarTemplate>
1318
+ <kendo-colorpicker
1319
+ #element
1320
+ [attr.title]="messageFor(command)"
1321
+ [format]="'hex'"
1322
+ [(value)]="value"
1323
+ [tabindex]="tabindex"
1324
+ (valueChange)="onValueChange($event)"
1325
+ [clearButton]="false"
1326
+ fillMode="flat"
1327
+ [icon]="icon"
1328
+ [svgIcon]="svgIcon"
1329
+ [preview]="true"></kendo-colorpicker>
1330
+ </ng-template>
1331
+ <ng-template #popupTemplate>
1332
+ <div #popupButton
1333
+ [tabindex]="tabindex"
1334
+ role="menuitem"
1335
+ class="k-item k-menu-item"
1336
+ (click)="openDialog();">
1337
+ <span
1338
+ class="k-link k-menu-link">
1339
+ <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
1340
+ <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
1341
+ </span>
1342
+ </div>
1343
+ </ng-template>
1344
+ `
1345
+ }]
1346
+ }], ctorParameters: function () { return [{ type: i1$4.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent, decorators: [{
1347
+ type: Inject,
1348
+ args: [ToolBarComponent]
1349
+ }] }]; } });
1350
+
1351
+ /**
1352
+ * A component which changes the background color of the text ([more information](ToDo).
1353
+ * @hidden
1354
+ */
1355
+ class SpreadsheetBackColorComponent extends SpreadsheetDropDownToolBase {
1356
+ constructor(dialogService, localization, spreadsheetService, toolsService, toolbar) {
1357
+ super('background', dialogService, localization, spreadsheetService, toolsService, toolbar);
1358
+ }
1359
+ }
1360
+ SpreadsheetBackColorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetBackColorComponent, deps: [{ token: i1$4.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
1361
+ SpreadsheetBackColorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetBackColorComponent, selector: "kendo-spreadsheet-backcolor-tool", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetBackColorComponent) }], usesInheritance: true, ngImport: i0, template: `
1362
+ <ng-template #toolbarTemplate>
1363
+ <kendo-colorpicker
1364
+ #element
1365
+ [attr.title]="messageFor(command)"
1366
+ [format]="'hex'"
1367
+ [(value)]="value"
1368
+ [tabindex]="tabindex"
1369
+ (valueChange)="onValueChange($event)"
1370
+ [clearButton]="false"
1371
+ fillMode="flat"
1372
+ [icon]="icon"
1373
+ [preview]="true"
1374
+ [svgIcon]="svgIcon"></kendo-colorpicker>
1375
+ </ng-template>
1376
+ <ng-template #popupTemplate>
1377
+ <div #popupButton
1378
+ [tabindex]="tabindex"
1379
+ role="menuitem"
1380
+ class="k-item k-menu-item"
1381
+ (click)="openDialog();">
1382
+ <span
1383
+ class="k-link k-menu-link">
1384
+ <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
1385
+ <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
1386
+ </span>
1387
+ </div>
1388
+ </ng-template>
1389
+ `, isInline: true, components: [{ type: i5.ColorPickerComponent, selector: "kendo-colorpicker", inputs: ["views", "view", "activeView", "readonly", "disabled", "format", "value", "popupSettings", "paletteSettings", "gradientSettings", "icon", "iconClass", "svgIcon", "clearButton", "tabindex", "preview", "actionsLayout", "size", "rounded", "fillMode"], outputs: ["valueChange", "open", "close", "focus", "blur", "cancel", "activeColorClick", "clearButtonClick", "activeViewChange"], exportAs: ["kendoColorPicker"] }, { type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetBackColorComponent, decorators: [{
1391
+ type: Component,
1392
+ args: [{
1393
+ providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetBackColorComponent) }],
1394
+ selector: 'kendo-spreadsheet-backcolor-tool',
1395
+ template: `
1396
+ <ng-template #toolbarTemplate>
1397
+ <kendo-colorpicker
1398
+ #element
1399
+ [attr.title]="messageFor(command)"
1400
+ [format]="'hex'"
1401
+ [(value)]="value"
1402
+ [tabindex]="tabindex"
1403
+ (valueChange)="onValueChange($event)"
1404
+ [clearButton]="false"
1405
+ fillMode="flat"
1406
+ [icon]="icon"
1407
+ [preview]="true"
1408
+ [svgIcon]="svgIcon"></kendo-colorpicker>
1409
+ </ng-template>
1410
+ <ng-template #popupTemplate>
1411
+ <div #popupButton
1412
+ [tabindex]="tabindex"
1413
+ role="menuitem"
1414
+ class="k-item k-menu-item"
1415
+ (click)="openDialog();">
1416
+ <span
1417
+ class="k-link k-menu-link">
1418
+ <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
1419
+ <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
1420
+ </span>
1421
+ </div>
1422
+ </ng-template>
1423
+ `
1424
+ }]
1425
+ }], ctorParameters: function () { return [{ type: i1$4.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent, decorators: [{
1426
+ type: Inject,
1427
+ args: [ToolBarComponent]
1428
+ }] }]; } });
1429
+
1430
+ /**
1431
+ * @hidden
1432
+ */
1433
+ class NameBoxComponent {
1434
+ constructor(ngZone, host) {
1435
+ this.ngZone = ngZone;
1436
+ this.host = host;
1437
+ this.hostClass = true;
1438
+ this.valueNormalizer = (text) => text.pipe(map((content) => ({ name: content })));
1439
+ }
1440
+ keyDownHandler() {
1441
+ const editor = this.spreadsheetWidget.view.nameEditor;
1442
+ if (editor) {
1443
+ const name = this.host.nativeElement.querySelector('.k-input-inner').value;
1444
+ editor.trigger('enter', { value: name });
1445
+ }
1446
+ }
1447
+ get current() {
1448
+ return {
1449
+ value: (val) => {
1450
+ if (val === undefined) {
1451
+ const item = this.combobox && this.combobox.value;
1452
+ return item ? (item.name || item) : item;
1453
+ }
1454
+ else {
1455
+ this.ngZone.run(() => {
1456
+ this.value = { name: val } || null;
1457
+ });
1458
+ }
1459
+ }
1460
+ };
1461
+ }
1462
+ onSelectionChange(value) {
1463
+ const editor = this.spreadsheetWidget.view.nameEditor;
1464
+ if (editor && value) {
1465
+ const name = value.name;
1466
+ if (name !== this.value.name) {
1467
+ editor.trigger('select', { name });
1468
+ this.value = { name };
1469
+ }
1470
+ }
1471
+ }
1472
+ onOpen() {
1473
+ const editor = this.spreadsheetWidget.view.nameEditor;
1474
+ if (editor) {
1475
+ this.data = editor.readData();
1476
+ }
1477
+ }
1478
+ ;
1479
+ }
1480
+ NameBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NameBoxComponent, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1481
+ NameBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: { data: "data", spreadsheetWidget: "spreadsheetWidget" }, host: { listeners: { "keydown.enter": "keyDownHandler()" }, properties: { "class.k-spreadsheet-name-editor": "this.hostClass" } }, viewQueries: [{ propertyName: "combobox", first: true, predicate: ["combobox"], descendants: true }], ngImport: i0, template: `
1482
+ <kendo-combobox #combobox
1483
+ [popupSettings]="{popupClass: 'k-spreadsheet-names-popup'}"
1484
+ fillMode="flat"
1485
+ [clearButton]="false"
1486
+ textField="name"
1487
+ valueField="name"
1488
+ [data]="data"
1489
+ [allowCustom]="true"
1490
+ (selectionChange)="onSelectionChange($event)"
1491
+ [value]="value"
1492
+ (open)="onOpen()"
1493
+ [valueNormalizer]="valueNormalizer"
1494
+ ></kendo-combobox>
1495
+ `, isInline: true, components: [{ type: i1$3.ComboBoxComponent, selector: "kendo-combobox", inputs: ["showStickyHeader", "focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "iconClass", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoComboBox"] }] });
1496
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NameBoxComponent, decorators: [{
1497
+ type: Component,
1498
+ args: [{
1499
+ selector: '[kendoSpreadsheetNameBox]',
1500
+ template: `
1501
+ <kendo-combobox #combobox
1502
+ [popupSettings]="{popupClass: 'k-spreadsheet-names-popup'}"
1503
+ fillMode="flat"
1504
+ [clearButton]="false"
1505
+ textField="name"
1506
+ valueField="name"
1507
+ [data]="data"
1508
+ [allowCustom]="true"
1509
+ (selectionChange)="onSelectionChange($event)"
1510
+ [value]="value"
1511
+ (open)="onOpen()"
1512
+ [valueNormalizer]="valueNormalizer"
1513
+ ></kendo-combobox>
1514
+ `
1515
+ }]
1516
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }]; }, propDecorators: { hostClass: [{
1517
+ type: HostBinding,
1518
+ args: ['class.k-spreadsheet-name-editor']
1519
+ }], keyDownHandler: [{
1520
+ type: HostListener,
1521
+ args: ['keydown.enter']
1522
+ }], combobox: [{
1523
+ type: ViewChild,
1524
+ args: ['combobox']
1525
+ }], data: [{
1526
+ type: Input
1527
+ }], spreadsheetWidget: [{
1528
+ type: Input
1529
+ }] } });
1530
+
1531
+ /**
1532
+ * @hidden
1533
+ */
1534
+ class ActionDialogComponent extends DialogContentBase {
1535
+ constructor(dialog) {
1536
+ super(dialog);
1537
+ this.dialog = dialog;
1538
+ }
1539
+ setData(args) {
1540
+ this.value = args.value;
1541
+ this.tabindex = args.tabindex;
1542
+ this.commandName = args.commandName;
1543
+ }
1544
+ }
1545
+ ActionDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ActionDialogComponent, deps: [{ token: i1$4.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
1546
+ ActionDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ActionDialogComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1547
+ <ng-container *ngIf="commandName === 'delete'">
1548
+ <p>The deleted sheet data will be lost.</p>
1549
+ <p>Are you sure you want to proceed?</p>
1550
+ </ng-container>
1551
+
1552
+ <form class="k-form k-form-md" *ngIf="commandName === 'rename'">
1553
+ <div class="k-form-field">
1554
+ <label class="k-label k-form-label">Rename sheet</label>
1555
+ <div class="k-form-field-wrap">
1556
+ <kendo-textbox
1557
+ autocomplete="off"
1558
+ placeholder="Sheet name"
1559
+ [(value)]="value">
1560
+ </kendo-textbox>
1561
+ </div>
1562
+ </div>
1563
+ </form>
1564
+ `, isInline: true, components: [{ 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"] }] });
1565
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ActionDialogComponent, decorators: [{
1566
+ type: Component,
1567
+ args: [{
1568
+ template: `
1569
+ <ng-container *ngIf="commandName === 'delete'">
1570
+ <p>The deleted sheet data will be lost.</p>
1571
+ <p>Are you sure you want to proceed?</p>
1572
+ </ng-container>
1573
+
1574
+ <form class="k-form k-form-md" *ngIf="commandName === 'rename'">
1575
+ <div class="k-form-field">
1576
+ <label class="k-label k-form-label">Rename sheet</label>
1577
+ <div class="k-form-field-wrap">
1578
+ <kendo-textbox
1579
+ autocomplete="off"
1580
+ placeholder="Sheet name"
1581
+ [(value)]="value">
1582
+ </kendo-textbox>
1583
+ </div>
1584
+ </div>
1585
+ </form>
1586
+ `
1587
+ }]
1588
+ }], ctorParameters: function () { return [{ type: i1$4.DialogRef }]; } });
1589
+
1590
+ /**
1591
+ * @hidden
1592
+ */
1593
+ class SheetsBarComponent {
1594
+ constructor(spreadsheetService, element, renderer, localization, dialogService, ngZone) {
1595
+ this.spreadsheetService = spreadsheetService;
1596
+ this.element = element;
1597
+ this.renderer = renderer;
1598
+ this.localization = localization;
1599
+ this.dialogService = dialogService;
1600
+ this.ngZone = ngZone;
1601
+ this.hostClasses = true;
1602
+ this.plusIcon = plusIcon;
1603
+ this.menuIcon = menuIcon;
1604
+ this.caretAltDownIcon = caretAltDownIcon;
1605
+ this.caretAltLeftIcon = caretAltLeftIcon;
1606
+ this.caretAltRightIcon = caretAltRightIcon;
1607
+ this.selected = false;
1608
+ this.openedDdb = null;
1609
+ this.eyeIcon = eyeIcon;
1610
+ this.onAddClick = () => {
1611
+ if (this.spreadsheetService.spreadsheet) {
1612
+ this.spreadsheetService.spreadsheet.view.sheetsbar.onAddSelect();
1613
+ this.notifySheetsChange();
1614
+ }
1615
+ };
1616
+ this.actionsCallback = {
1617
+ copy: (sheetInfo) => {
1618
+ sheetInfo.copies ? sheetInfo.copies += 1 : sheetInfo.copies = 1;
1619
+ const sheetToCopy = this.spreadsheetService.spreadsheet.sheets().find(s => s.name() === sheetInfo.text);
1620
+ const newName = `${sheetToCopy.name()} (${sheetInfo.copies})`;
1621
+ this.spreadsheetService.spreadsheet.insertSheet({ data: { ...sheetToCopy.toJSON(), name: newName }, index: sheetInfo.index + 1 });
1622
+ this.selectSheet(newName);
1623
+ },
1624
+ move: (sheetInfo, itemText) => {
1625
+ const oldIndex = this.spreadsheetService.spreadsheet.sheets().findIndex(sheet => sheet.name() === sheetInfo.text);
1626
+ const newIndex = itemText === 'Move Right' ? oldIndex + 1 : oldIndex - 1;
1627
+ const sheetsBar = this.spreadsheetService.spreadsheet.view.sheetsbar;
1628
+ sheetsBar.onSheetReorderEnd({ oldIndex, newIndex });
1629
+ this.notifySheetsChange();
1630
+ }
1631
+ };
1632
+ }
1633
+ get activeSheet() {
1634
+ return this.spreadsheetService.spreadsheet?.activeSheet()?.name();
1635
+ }
1636
+ get sheetsMenuList() {
1637
+ return this.sheets?.map(sheet => ({ text: sheet.text, icon: 'eye', svgIcon: this.eyeIcon }));
1638
+ }
1639
+ ngAfterViewInit() {
1640
+ if (!isDocumentAvailable() || !this.element.nativeElement) {
1641
+ return;
1642
+ }
1643
+ const prevBtn = this.element.nativeElement.querySelector('.k-tabstrip-prev');
1644
+ const nextBtn = this.element.nativeElement.querySelector('.k-tabstrip-next');
1645
+ this.renderer.addClass(prevBtn, 'k-order-1');
1646
+ this.renderer.addClass(nextBtn, 'k-order-2');
1647
+ }
1648
+ onTabSelect(ev) {
1649
+ if (ev.title !== this.activeSheet) {
1650
+ this.selectSheet(ev.title);
1651
+ }
1652
+ }
1653
+ onOpen(ddb) {
1654
+ if (isPresent(this.openedDdb) && this.openedDdb !== ddb) {
1655
+ this.openedDdb.toggle(false);
1656
+ }
1657
+ this.openedDdb = ddb;
1658
+ }
1659
+ onClose() {
1660
+ this.openedDdb = null;
1661
+ }
1662
+ onActionClick(dataItem, sheet) {
1663
+ if (dataItem.disabled) {
1664
+ return;
1665
+ }
1666
+ if (dataItem.commandName === 'delete' || dataItem.commandName === 'rename') {
1667
+ this.openDialog(dataItem, sheet);
1668
+ }
1669
+ else {
1670
+ this.actionsCallback[dataItem.commandName](sheet, dataItem.text);
1671
+ }
1672
+ }
1673
+ onMenuItemClick(item) {
1674
+ const sheet = this.sheets.find(s => s.text === item.text);
1675
+ this.selectSheet(sheet.text);
1676
+ }
1677
+ openDialog(dataItem, sheet) {
1678
+ const dialogSettings = {
1679
+ appendTo: this.spreadsheetService.dialogContainer,
1680
+ title: this.localization.get(dataItem.commandName),
1681
+ content: ActionDialogComponent,
1682
+ actions: [{
1683
+ text: this.localization.get(dataItem.dialogButton),
1684
+ themeColor: 'primary'
1685
+ }, {
1686
+ text: this.localization.get('dialogCancel')
1687
+ }],
1688
+ actionsLayout: 'stretched',
1689
+ autoFocusedElement: '.k-textbox .k-input-inner, .k-button-solid-primary'
1690
+ };
1691
+ const dialog = this.dialogService.open(dialogSettings);
1692
+ const dialogInstance = dialog.dialog.instance;
1693
+ const dialogContent = dialog.content.instance;
1694
+ dialogInstance.action.pipe(take(1)).subscribe((event) => {
1695
+ if (event.text === this.localization.get(dataItem.dialogButton)) {
1696
+ const sheetsBar = this.spreadsheetService.spreadsheet.view.sheetsbar;
1697
+ if (sheetsBar) {
1698
+ dataItem.commandName === 'delete' ? sheetsBar.onSheetRemove(sheet.text) : sheetsBar.onSheetRename(dialogContent.value, this.sheets.indexOf(sheet));
1699
+ this.notifySheetsChange();
1700
+ }
1701
+ }
1702
+ });
1703
+ dialogContent.setData({
1704
+ value: sheet.text,
1705
+ tabindex: -1,
1706
+ commandName: dataItem.commandName
1707
+ });
1708
+ }
1709
+ selectSheet(sheetName) {
1710
+ const spreadsheetSheet = this.spreadsheetService.spreadsheet.sheets().find(s => s.name() === sheetName);
1711
+ this.spreadsheetService.spreadsheet.activeSheet(spreadsheetSheet);
1712
+ this.spreadsheetService.currentActiveSheet = sheetName;
1713
+ this.spreadsheetService.activeSheetChanged.next(spreadsheetSheet);
1714
+ this.notifySheetsChange();
1715
+ }
1716
+ notifySheetsChange() {
1717
+ this.ngZone.run(() => {
1718
+ const newSheets = this.spreadsheetService.spreadsheet.sheets();
1719
+ const sheetDesc = mapToSheetDescriptor(newSheets);
1720
+ console.log(newSheets, 'new');
1721
+ this.sheets = sheetDesc.map((item, index, items) => ({
1722
+ ...item,
1723
+ inEdit: false,
1724
+ first: index === 0,
1725
+ last: index === items.length - 1,
1726
+ text: item.name,
1727
+ active: (item.name === this.activeSheet) || items.length === 1,
1728
+ index,
1729
+ sheetActions: getSheetActions(index, items)
1730
+ }));
1731
+ });
1732
+ }
1733
+ }
1734
+ SheetsBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SheetsBarComponent, deps: [{ token: SpreadsheetService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SpreadsheetLocalizationService }, { token: i1$4.DialogService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1735
+ 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" } }, ngImport: i0, template: `
1736
+ <button kendoButton
1737
+ title="Add new sheet"
1738
+ type="button"
1739
+ fillMode="flat"
1740
+ class="k-spreadsheet-sheet-add"
1741
+ icon="plus"
1742
+ [svgIcon]="plusIcon"
1743
+ [kendoEventsOutsideAngular]="{click: onAddClick}">
1744
+ </button>
1745
+ <kendo-dropdownbutton #menuDdb
1746
+ fillMode="flat"
1747
+ buttonClass="k-spreadsheet-sheets-menu"
1748
+ icon="menu"
1749
+ [svgIcon]="menuIcon"
1750
+ [data]="sheetsMenuList"
1751
+ (itemClick)="onMenuItemClick($event)"
1752
+ (open)="onOpen(menuDdb)">
1753
+ </kendo-dropdownbutton>
1754
+ <kendo-tabstrip
1755
+ [tabPosition]="'bottom'"
1756
+ [showContentArea]="false"
1757
+ [scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
1758
+ class="k-spreadsheet-sheets k-overflow-hidden"
1759
+ (tabSelect)="onTabSelect($event)"
1760
+ [keepTabContent]="true">
1761
+ <ng-container *ngFor="let sheet of sheets">
1762
+ <kendo-tabstrip-tab
1763
+ [title]="sheet.text"
1764
+ [selected]="sheet.text === activeSheet">
1765
+ <ng-template kendoTabTemplate>
1766
+ <span class="k-link">{{sheet.text}}</span>
1767
+ <kendo-dropdownbutton #sheetDdb
1768
+ fillMode="flat"
1769
+ icon="caret-alt-down"
1770
+ [svgIcon]="caretAltDownIcon"
1771
+ buttonClass="k-menu-button"
1772
+ [data]="sheet.sheetActions"
1773
+ [buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
1774
+ (open)="onOpen(sheetDdb)"
1775
+ (close)="onClose()"
1776
+ (click)="$event.stopPropagation()"
1777
+ (itemClick)="onActionClick($event, sheet)">
1778
+ </kendo-dropdownbutton>
1779
+ </ng-template>
1780
+ </kendo-tabstrip-tab>
1781
+ </ng-container>
1782
+ </kendo-tabstrip>
1783
+ `, 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]" }] });
1784
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SheetsBarComponent, decorators: [{
1785
+ type: Component,
1786
+ args: [{
1787
+ selector: '[kendoSpreadsheetSheetsBar]',
1788
+ template: `
1789
+ <button kendoButton
1790
+ title="Add new sheet"
1791
+ type="button"
1792
+ fillMode="flat"
1793
+ class="k-spreadsheet-sheet-add"
1794
+ icon="plus"
1795
+ [svgIcon]="plusIcon"
1796
+ [kendoEventsOutsideAngular]="{click: onAddClick}">
1797
+ </button>
1798
+ <kendo-dropdownbutton #menuDdb
1799
+ fillMode="flat"
1800
+ buttonClass="k-spreadsheet-sheets-menu"
1801
+ icon="menu"
1802
+ [svgIcon]="menuIcon"
1803
+ [data]="sheetsMenuList"
1804
+ (itemClick)="onMenuItemClick($event)"
1805
+ (open)="onOpen(menuDdb)">
1806
+ </kendo-dropdownbutton>
1807
+ <kendo-tabstrip
1808
+ [tabPosition]="'bottom'"
1809
+ [showContentArea]="false"
1810
+ [scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
1811
+ class="k-spreadsheet-sheets k-overflow-hidden"
1812
+ (tabSelect)="onTabSelect($event)"
1813
+ [keepTabContent]="true">
1814
+ <ng-container *ngFor="let sheet of sheets">
1815
+ <kendo-tabstrip-tab
1816
+ [title]="sheet.text"
1817
+ [selected]="sheet.text === activeSheet">
1818
+ <ng-template kendoTabTemplate>
1819
+ <span class="k-link">{{sheet.text}}</span>
1820
+ <kendo-dropdownbutton #sheetDdb
1821
+ fillMode="flat"
1822
+ icon="caret-alt-down"
1823
+ [svgIcon]="caretAltDownIcon"
1824
+ buttonClass="k-menu-button"
1825
+ [data]="sheet.sheetActions"
1826
+ [buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
1827
+ (open)="onOpen(sheetDdb)"
1828
+ (close)="onClose()"
1829
+ (click)="$event.stopPropagation()"
1830
+ (itemClick)="onActionClick($event, sheet)">
1831
+ </kendo-dropdownbutton>
1832
+ </ng-template>
1833
+ </kendo-tabstrip-tab>
1834
+ </ng-container>
1835
+ </kendo-tabstrip>
1836
+ `
1837
+ }]
1838
+ }], ctorParameters: function () { return [{ type: SpreadsheetService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SpreadsheetLocalizationService }, { type: i1$4.DialogService }, { type: i0.NgZone }]; }, propDecorators: { hostClasses: [{
1839
+ type: HostBinding,
1840
+ args: ['class.k-spreadsheet-sheets-bar']
1841
+ }], sheets: [{
1842
+ type: Input
1843
+ }], sheetDescriptors: [{
1844
+ type: Input
1845
+ }] } });
1846
+
1847
+ /**
1848
+ * @hidden
1849
+ */
1850
+ class MessagesDirective extends ComponentMessages {
1851
+ }
1852
+ MessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1853
+ MessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: MessagesDirective, selector: "[kendoSpreadsheetMessages]", inputs: { home: "home", file: "file", insert: "insert", 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", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", delete: "delete", rename: "rename" }, usesInheritance: true, ngImport: i0 });
1854
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, decorators: [{
1855
+ type: Directive,
1856
+ args: [{
1857
+ selector: '[kendoSpreadsheetMessages]'
1858
+ }]
1859
+ }], propDecorators: { home: [{
1860
+ type: Input
1861
+ }], file: [{
1862
+ type: Input
1863
+ }], insert: [{
1864
+ type: Input
1865
+ }], saveFile: [{
1866
+ type: Input
1867
+ }], loadFile: [{
1868
+ type: Input
1869
+ }], bold: [{
1870
+ type: Input
1871
+ }], italic: [{
1872
+ type: Input
1873
+ }], underline: [{
1874
+ type: Input
1875
+ }], format: [{
1876
+ type: Input
1877
+ }], fontFamily: [{
1878
+ type: Input
1879
+ }], fontSize: [{
1880
+ type: Input
1881
+ }], undo: [{
1882
+ type: Input
1883
+ }], redo: [{
1884
+ type: Input
1885
+ }], background: [{
1886
+ type: Input
1887
+ }], color: [{
1888
+ type: Input
1889
+ }], gridLines: [{
1890
+ type: Input
1891
+ }], addColumnLeft: [{
1892
+ type: Input
1893
+ }], addColumnRight: [{
1894
+ type: Input
1895
+ }], addRowBelow: [{
1896
+ type: Input
1897
+ }], addRowAbove: [{
1898
+ type: Input
1899
+ }], deleteColumn: [{
1900
+ type: Input
1901
+ }], deleteRow: [{
1902
+ type: Input
1903
+ }], wrap: [{
1904
+ type: Input
1905
+ }], align: [{
1906
+ type: Input
1907
+ }], dialogApply: [{
1908
+ type: Input
1909
+ }], dialogCancel: [{
1910
+ type: Input
1911
+ }], dialogDelete: [{
1912
+ type: Input
1913
+ }], dialogRename: [{
1914
+ type: Input
1915
+ }], delete: [{
1916
+ type: Input
1917
+ }], rename: [{
1918
+ type: Input
1919
+ }] } });
1920
+
1921
+ /**
1922
+ * @hidden
1923
+ */
1924
+ class LocalizedMessagesDirective extends MessagesDirective {
1925
+ constructor(service) {
1926
+ super();
1927
+ this.service = service;
1928
+ }
1929
+ }
1930
+ LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
1931
+ LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: LocalizedMessagesDirective, selector: "[kendoSpreadsheetLocalizedMessages]", providers: [{
1932
+ provide: MessagesDirective,
1933
+ useExisting: forwardRef(() => LocalizedMessagesDirective)
1934
+ }], usesInheritance: true, ngImport: i0 });
1935
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
1936
+ type: Directive,
1937
+ args: [{
1938
+ providers: [{
1939
+ provide: MessagesDirective,
1940
+ useExisting: forwardRef(() => LocalizedMessagesDirective)
1941
+ }],
1942
+ selector: '[kendoSpreadsheetLocalizedMessages]'
1943
+ }]
1944
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
1945
+
1946
+ /**
1947
+ * @hidden
1948
+ */
1949
+ class MainMenuDirective {
1950
+ constructor(host, renderer) {
1951
+ this.host = host;
1952
+ this.renderer = renderer;
1953
+ }
1954
+ ngAfterViewInit() {
1955
+ isDocumentAvailable() && this.renderer.addClass(this.host.nativeElement.firstElementChild, 'k-spreadsheet-menu');
1956
+ }
1957
+ }
1958
+ MainMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MainMenuDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
1959
+ MainMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: MainMenuDirective, selector: "[kendoSpreadsheetMenu]", ngImport: i0 });
1960
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MainMenuDirective, decorators: [{
1961
+ type: Directive,
1962
+ args: [{ selector: '[kendoSpreadsheetMenu]' }]
1963
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
1964
+
1965
+ /**
1966
+ * @hidden
1967
+ */
1968
+ class SpreadsheetSaveFileDirective {
1969
+ constructor(button, localization, spreadsheetService) {
1970
+ this.button = button;
1971
+ this.localization = localization;
1972
+ this.spreadsheetService = spreadsheetService;
1973
+ this.subs = new Subscription();
1974
+ }
1975
+ ngOnInit() {
1976
+ this.button.title = this.localization.get('saveFile');
1977
+ this.button.icon = commandIcons['download'];
1978
+ this.button.svgIcon = commandSVGIcons['download'];
1979
+ this.button.fillMode = 'flat';
1980
+ this.subs.add(this.button.click.subscribe(() => {
1981
+ const spreadsheet = this.spreadsheetService.spreadsheet;
1982
+ if (spreadsheet) {
1983
+ spreadsheet.saveAsExcel({
1984
+ ...spreadsheet.options.excel,
1985
+ saveAs,
1986
+ Workbook
1987
+ });
1988
+ }
1989
+ }));
1990
+ }
1991
+ ngOnDestroy() {
1992
+ this.subs.unsubscribe();
1993
+ }
1994
+ }
1995
+ SpreadsheetSaveFileDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetSaveFileDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }], target: i0.ɵɵFactoryTarget.Directive });
1996
+ SpreadsheetSaveFileDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetSaveFileDirective, selector: "[kendoSpreadsheetSaveFile]", ngImport: i0 });
1997
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetSaveFileDirective, decorators: [{
1998
+ type: Directive,
1999
+ args: [{ selector: '[kendoSpreadsheetSaveFile]' }]
2000
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }]; } });
2001
+
2002
+ /**
2003
+ * @hidden
2004
+ */
2005
+ class SpreadsheetCommandBaseDirective {
2006
+ constructor(command, button, localization, spreadsheetService, toolsService) {
2007
+ this.command = command;
2008
+ this.button = button;
2009
+ this.localization = localization;
2010
+ this.spreadsheetService = spreadsheetService;
2011
+ this.toolsService = toolsService;
2012
+ this.subs = new Subscription();
2013
+ // this.toolsService.zone.runOutsideAngular(() => {
2014
+ // setTimeout(() => {
2015
+ const text = this.localization.get(this.command);
2016
+ if (text) {
2017
+ this.button.showText = 'overflow';
2018
+ this.button.showIcon = 'both';
2019
+ this.button.text = text;
2020
+ }
2021
+ if (!this.button.toolbarOptions.icon) {
2022
+ this.button.icon = commandIcons[this.command];
2023
+ }
2024
+ if (!this.button.toolbarOptions.svgIcon) {
2025
+ this.button.svgIcon = commandSVGIcons[this.command];
2026
+ }
2027
+ this.button.title = text;
2028
+ this.button.fillMode = 'flat';
2029
+ this.subs.add(this.toolsService.stateChange.subscribe(state => {
2030
+ this.toolsService.ngZone.onStable.pipe(take(1)).subscribe(() => this.button.selected = state[command]);
2031
+ }));
2032
+ // this.toolsService.zone.run(() => {
2033
+ // this.toolsService.needsCheck.next();
2034
+ // });
2035
+ // });
2036
+ //});
2037
+ }
2038
+ ngOnInit() {
2039
+ this.subs.add(this.button.click.subscribe((this.clickHandler.bind(this))));
2040
+ this.subs.add(this.button.pointerdown.subscribe((this.pointerdownHandler.bind(this))));
2041
+ }
2042
+ ngOnDestroy() {
2043
+ this.subs.unsubscribe();
2044
+ }
2045
+ clickHandler() { }
2046
+ pointerdownHandler(_event) { }
2047
+ }
2048
+ SpreadsheetCommandBaseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetCommandBaseDirective, deps: [{ token: MY_TOKEN }, { token: i1$2.ToolBarButtonComponent }, { token: i1.LocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2049
+ SpreadsheetCommandBaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetCommandBaseDirective, selector: "[kendoSpreadsheetCommandBase]", ngImport: i0 });
2050
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetCommandBaseDirective, decorators: [{
2051
+ type: Directive,
2052
+ args: [{
2053
+ selector: '[kendoSpreadsheetCommandBase]'
2054
+ }]
2055
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2056
+ type: Inject,
2057
+ args: [MY_TOKEN]
2058
+ }] }, { type: i1$2.ToolBarButtonComponent }, { type: i1.LocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2059
+
2060
+ /**
2061
+ * @hidden
2062
+ */
2063
+ class SpreadsheetCommandButton extends SpreadsheetCommandBaseDirective {
2064
+ constructor(command, button, localization, spreadsheetService, toolsService, commandOptions) {
2065
+ super(command, button, localization, spreadsheetService, toolsService);
2066
+ this.command = command;
2067
+ this.button = button;
2068
+ this.localization = localization;
2069
+ this.spreadsheetService = spreadsheetService;
2070
+ this.toolsService = toolsService;
2071
+ this.commandOptions = commandOptions;
2072
+ }
2073
+ clickHandler() {
2074
+ if (this.commandOptions.command === 'PropertyChangeCommand') {
2075
+ this.commandOptions.options.value = !this.toolsService.toolsState[this.command];
2076
+ }
2077
+ this.spreadsheetService.spreadsheet.executeCommand(this.commandOptions);
2078
+ }
2079
+ }
2080
+
2081
+ /**
2082
+ * @hidden
2083
+ */
2084
+ class SpreadsheetUndoDirective extends SpreadsheetCommandButton {
2085
+ constructor(button, localization, spreadsheetService, toolsService) {
2086
+ super('undo', button, localization, spreadsheetService, toolsService, {
2087
+ options: { property: 'undo' }
2088
+ });
2089
+ }
2090
+ clickHandler() {
2091
+ this.spreadsheetService.spreadsheet.workbook.undoRedoStack['undo']();
2092
+ }
2093
+ }
2094
+ SpreadsheetUndoDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetUndoDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2095
+ SpreadsheetUndoDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetUndoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]", usesInheritance: true, ngImport: i0 });
2096
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetUndoDirective, decorators: [{
2097
+ type: Directive,
2098
+ args: [{
2099
+ selector: 'kendo-toolbar-button[kendoSpreadsheetUndo]'
2100
+ }]
2101
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2102
+
2103
+ /**
2104
+ * @hidden
2105
+ */
2106
+ class SpreadsheetRedoDirective extends SpreadsheetCommandButton {
2107
+ constructor(button, localization, spreadsheetService, toolsService) {
2108
+ super('redo', button, localization, spreadsheetService, toolsService, {
2109
+ options: { property: 'redo' }
2110
+ });
2111
+ }
2112
+ clickHandler() {
2113
+ this.spreadsheetService.spreadsheet.workbook.undoRedoStack['redo']();
2114
+ }
2115
+ }
2116
+ SpreadsheetRedoDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetRedoDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2117
+ SpreadsheetRedoDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetRedoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]", usesInheritance: true, ngImport: i0 });
2118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetRedoDirective, decorators: [{
2119
+ type: Directive,
2120
+ args: [{
2121
+ selector: 'kendo-toolbar-button[kendoSpreadsheetRedo]'
2122
+ }]
2123
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2124
+
2125
+ /**
2126
+ * @hidden
2127
+ */
2128
+ class SpreadsheetBoldDirective extends SpreadsheetCommandButton {
2129
+ constructor(button, localization, spreadsheetService, toolsService) {
2130
+ super('bold', button, localization, spreadsheetService, toolsService, {
2131
+ command: 'PropertyChangeCommand',
2132
+ options: { property: 'bold',
2133
+ value: !button.selected
2134
+ }
2135
+ });
2136
+ }
2137
+ }
2138
+ SpreadsheetBoldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetBoldDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2139
+ SpreadsheetBoldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]", usesInheritance: true, ngImport: i0 });
2140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetBoldDirective, decorators: [{
2141
+ type: Directive,
2142
+ args: [{
2143
+ selector: 'kendo-toolbar-button[kendoSpreadsheetBold]'
2144
+ }]
2145
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2146
+
2147
+ /**
2148
+ * @hidden
2149
+ */
2150
+ class SpreadsheetItalicDirective extends SpreadsheetCommandButton {
2151
+ constructor(button, localization, spreadsheetService, toolsService) {
2152
+ super('italic', button, localization, spreadsheetService, toolsService, {
2153
+ command: 'PropertyChangeCommand',
2154
+ options: { property: 'italic',
2155
+ value: !button.selected
2156
+ }
2157
+ });
2158
+ }
2159
+ }
2160
+ SpreadsheetItalicDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetItalicDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2161
+ SpreadsheetItalicDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]", usesInheritance: true, ngImport: i0 });
2162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetItalicDirective, decorators: [{
2163
+ type: Directive,
2164
+ args: [{
2165
+ selector: 'kendo-toolbar-button[kendoSpreadsheetItalic]'
2166
+ }]
2167
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2168
+
2169
+ /**
2170
+ * @hidden
2171
+ */
2172
+ class SpreadsheetUnderlineDirective extends SpreadsheetCommandButton {
2173
+ constructor(button, localization, spreadsheetService, toolsService) {
2174
+ super('underline', button, localization, spreadsheetService, toolsService, {
2175
+ command: 'PropertyChangeCommand',
2176
+ options: { property: 'underline',
2177
+ value: !button.selected
2178
+ }
2179
+ });
2180
+ }
2181
+ }
2182
+ SpreadsheetUnderlineDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetUnderlineDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2183
+ SpreadsheetUnderlineDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]", usesInheritance: true, ngImport: i0 });
2184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetUnderlineDirective, decorators: [{
2185
+ type: Directive,
2186
+ args: [{
2187
+ selector: 'kendo-toolbar-button[kendoSpreadsheetUnderline]'
2188
+ }]
2189
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2190
+
2191
+ /**
2192
+ * @hidden
2193
+ */
2194
+ class SpreadsheetTextAlignDirective {
2195
+ constructor(host, localization, spreadsheetService, toolsService) {
2196
+ this.host = host;
2197
+ this.spreadsheetService = spreadsheetService;
2198
+ this.toolsService = toolsService;
2199
+ this.commandName = 'align';
2200
+ this.subs = new Subscription();
2201
+ host.svgIcon = commandSVGIcons[this.commandName];
2202
+ host.icon = commandIcons[this.commandName];
2203
+ host.arrowIcon = true;
2204
+ host.fillMode = 'flat';
2205
+ host.data = [...ALIGNS];
2206
+ this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
2207
+ host.title = localization.get(this.commandName);
2208
+ host.textField = 'textKey';
2209
+ }
2210
+ ngOnInit() {
2211
+ this.subs.add(this.toolsService.stateChange.subscribe(state => this.host.data.forEach(i => i.cssClass = i.value === state[i.commandName] ? 'k-selected' : '')));
2212
+ }
2213
+ ngOnDestroy() {
2214
+ this.subs.unsubscribe();
2215
+ }
2216
+ onItemClick(item) {
2217
+ const value = item.value || null;
2218
+ const options = {
2219
+ command: 'PropertyChangeCommand', options: { property: item.commandName, value }
2220
+ };
2221
+ this.spreadsheetService.spreadsheet.executeCommand(options);
2222
+ }
2223
+ }
2224
+ SpreadsheetTextAlignDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetTextAlignDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2225
+ SpreadsheetTextAlignDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetTextAlignDirective, selector: "[kendoSpreadsheetTextAlign]", ngImport: i0 });
2226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetTextAlignDirective, decorators: [{
2227
+ type: Directive,
2228
+ args: [{
2229
+ selector: '[kendoSpreadsheetTextAlign]',
2230
+ }]
2231
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2232
+
2233
+ /**
2234
+ * @hidden
2235
+ */
2236
+ class SpreadsheetTextWrapDirective extends SpreadsheetCommandButton {
2237
+ constructor(button, localization, spreadsheetService, toolsService) {
2238
+ super('wrap', button, localization, spreadsheetService, toolsService, {
2239
+ command: 'TextWrapCommand',
2240
+ options: { property: 'wrap',
2241
+ value: !button.selected
2242
+ }
2243
+ });
2244
+ }
2245
+ clickHandler() {
2246
+ const sheet = this.spreadsheetService.spreadsheet.activeSheet();
2247
+ if (sheet) {
2248
+ const range = sheet.range(sheet.activeCell());
2249
+ const value = !range.wrap();
2250
+ const options = {
2251
+ command: 'TextWrapCommand', options: { property: 'wrap', value }
2252
+ };
2253
+ this.spreadsheetService.spreadsheet.executeCommand(options);
2254
+ }
2255
+ }
2256
+ }
2257
+ SpreadsheetTextWrapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetTextWrapDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2258
+ SpreadsheetTextWrapDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]", usesInheritance: true, ngImport: i0 });
2259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetTextWrapDirective, decorators: [{
2260
+ type: Directive,
2261
+ args: [{
2262
+ selector: 'kendo-toolbar-button[kendoSpreadsheetTextWrap]'
2263
+ }]
2264
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2265
+
2266
+ /**
2267
+ * @hidden
2268
+ */
2269
+ class SpreadsheetFormatDirective {
2270
+ constructor(host, localization, spreadsheetService, toolsService) {
2271
+ this.host = host;
2272
+ this.spreadsheetService = spreadsheetService;
2273
+ this.toolsService = toolsService;
2274
+ this.data = FORMATS;
2275
+ this.commandName = 'format';
2276
+ this.subs = new Subscription();
2277
+ /**
2278
+ * @hidden
2279
+ */
2280
+ this.onItemClick = (item) => {
2281
+ const value = item.value || null;
2282
+ const options = {
2283
+ command: 'PropertyChangeCommand', options: { property: this.commandName, value }
2284
+ };
2285
+ this.spreadsheetService.spreadsheet.executeCommand(options);
2286
+ };
2287
+ host.svgIcon = commandSVGIcons[this.commandName];
2288
+ host.icon = commandIcons[this.commandName];
2289
+ host.arrowIcon = true;
2290
+ host.fillMode = 'flat';
2291
+ host.data = this.data;
2292
+ this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
2293
+ host.title = localization.get(this.commandName);
2294
+ }
2295
+ ngOnInit() {
2296
+ this.subs.add(this.toolsService.stateChange.subscribe(state => this.host.data.forEach(i => i.cssClass = i.value === state[this.commandName] ? 'k-selected' : '')));
2297
+ }
2298
+ ngOnDestroy() {
2299
+ this.subs.unsubscribe();
2300
+ }
2301
+ }
2302
+ SpreadsheetFormatDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetFormatDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2303
+ SpreadsheetFormatDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]", ngImport: i0 });
2304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetFormatDirective, decorators: [{
2305
+ type: Directive,
2306
+ args: [{
2307
+ selector: '[kendoSpreadsheetFormat]',
2308
+ }]
2309
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2310
+
2311
+ /**
2312
+ * @hidden
2313
+ */
2314
+ class SpreadsheetGridLinesDirective extends SpreadsheetCommandButton {
2315
+ constructor(button, localization, spreadsheetService, toolsService) {
2316
+ super('gridLines', button, localization, spreadsheetService, toolsService, {
2317
+ command: 'GridLinesChangeCommand',
2318
+ options: { property: 'gridLines',
2319
+ value: !button.selected
2320
+ }
2321
+ });
2322
+ }
2323
+ clickHandler() {
2324
+ const sheet = this.spreadsheetService.spreadsheet.activeSheet();
2325
+ if (sheet) {
2326
+ const value = !sheet.showGridLines();
2327
+ const options = {
2328
+ command: 'GridLinesChangeCommand', options: { property: 'gridLines', value }
2329
+ };
2330
+ this.spreadsheetService.spreadsheet.executeCommand(options);
2331
+ }
2332
+ }
2333
+ }
2334
+ SpreadsheetGridLinesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetGridLinesDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2335
+ SpreadsheetGridLinesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]", usesInheritance: true, ngImport: i0 });
2336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetGridLinesDirective, decorators: [{
2337
+ type: Directive,
2338
+ args: [{
2339
+ selector: 'kendo-toolbar-button[kendoSpreadsheetGridLines]'
2340
+ }]
2341
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2342
+
2343
+ /**
2344
+ * @hidden
2345
+ */
2346
+ class SpreadsheetAddColumnLeftButtonDirective extends SpreadsheetCommandButton {
2347
+ constructor(button, localization, spreadsheetService, toolsService) {
2348
+ super('addColumnLeft', button, localization, spreadsheetService, toolsService, {
2349
+ command: 'AddColumnCommand',
2350
+ options: { property: 'addColumnLeft',
2351
+ value: 'left'
2352
+ }
2353
+ });
2354
+ }
2355
+ }
2356
+ SpreadsheetAddColumnLeftButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetAddColumnLeftButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2357
+ SpreadsheetAddColumnLeftButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]", usesInheritance: true, ngImport: i0 });
2358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetAddColumnLeftButtonDirective, decorators: [{
2359
+ type: Directive,
2360
+ args: [{
2361
+ selector: 'kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]'
2362
+ }]
2363
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2364
+
2365
+ /**
2366
+ * @hidden
2367
+ */
2368
+ class SpreadsheetAddColumnRightButtonDirective extends SpreadsheetCommandButton {
2369
+ constructor(button, localization, spreadsheetService, toolsService) {
2370
+ super('addColumnRight', button, localization, spreadsheetService, toolsService, {
2371
+ command: 'AddColumnCommand',
2372
+ options: { property: 'addColumnRight',
2373
+ value: 'right'
2374
+ }
2375
+ });
2376
+ }
2377
+ }
2378
+ SpreadsheetAddColumnRightButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetAddColumnRightButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2379
+ SpreadsheetAddColumnRightButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]", usesInheritance: true, ngImport: i0 });
2380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetAddColumnRightButtonDirective, decorators: [{
2381
+ type: Directive,
2382
+ args: [{
2383
+ selector: 'kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]'
2384
+ }]
2385
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2386
+
2387
+ /**
2388
+ * @hidden
2389
+ */
2390
+ class SpreadsheetAddRowBelowButtonDirective extends SpreadsheetCommandButton {
2391
+ constructor(button, localization, spreadsheetService, toolsService) {
2392
+ super('addRowBelow', button, localization, spreadsheetService, toolsService, {
2393
+ command: 'AddRowCommand',
2394
+ options: { property: 'addRowBelow',
2395
+ value: 'below'
2396
+ }
2397
+ });
2398
+ }
2399
+ }
2400
+ SpreadsheetAddRowBelowButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetAddRowBelowButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2401
+ SpreadsheetAddRowBelowButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]", usesInheritance: true, ngImport: i0 });
2402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetAddRowBelowButtonDirective, decorators: [{
2403
+ type: Directive,
2404
+ args: [{
2405
+ selector: 'kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]'
2406
+ }]
2407
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2408
+
2409
+ /**
2410
+ * @hidden
2411
+ */
2412
+ class SpreadsheetAddRowAboveButtonDirective extends SpreadsheetCommandButton {
2413
+ constructor(button, localization, spreadsheetService, toolsService) {
2414
+ super('addRowAbove', button, localization, spreadsheetService, toolsService, {
2415
+ command: 'AddRowCommand',
2416
+ options: { property: 'addRowAbove',
2417
+ value: 'above'
2418
+ }
2419
+ });
2420
+ }
2421
+ }
2422
+ SpreadsheetAddRowAboveButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetAddRowAboveButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2423
+ SpreadsheetAddRowAboveButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]", usesInheritance: true, ngImport: i0 });
2424
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetAddRowAboveButtonDirective, decorators: [{
2425
+ type: Directive,
2426
+ args: [{
2427
+ selector: 'kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]'
2428
+ }]
2429
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2430
+
2431
+ /**
2432
+ * @hidden
2433
+ */
2434
+ class SpreadsheetDeleteColumnButtonDirective extends SpreadsheetCommandButton {
2435
+ constructor(button, localization, spreadsheetService, toolsService) {
2436
+ super('deleteColumn', button, localization, spreadsheetService, toolsService, {
2437
+ command: 'DeleteColumnCommand',
2438
+ options: { property: 'deleteColumn' }
2439
+ });
2440
+ }
2441
+ }
2442
+ SpreadsheetDeleteColumnButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetDeleteColumnButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2443
+ SpreadsheetDeleteColumnButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]", usesInheritance: true, ngImport: i0 });
2444
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetDeleteColumnButtonDirective, decorators: [{
2445
+ type: Directive,
2446
+ args: [{
2447
+ selector: 'kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]'
2448
+ }]
2449
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2450
+
2451
+ /**
2452
+ * @hidden
2453
+ */
2454
+ class SpreadsheetDeleteRowButtonDirective extends SpreadsheetCommandButton {
2455
+ constructor(button, localization, spreadsheetService, toolsService) {
2456
+ super('deleteRow', button, localization, spreadsheetService, toolsService, {
2457
+ command: 'DeleteRowCommand',
2458
+ options: { property: 'deleteRow' }
2459
+ });
2460
+ }
2461
+ }
2462
+ SpreadsheetDeleteRowButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetDeleteRowButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2463
+ SpreadsheetDeleteRowButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]", usesInheritance: true, ngImport: i0 });
2464
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetDeleteRowButtonDirective, decorators: [{
2465
+ type: Directive,
2466
+ args: [{
2467
+ selector: 'kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]'
2468
+ }]
2469
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2470
+
2471
+ /**
2472
+ * Represents the [Kendo UI Spreadsheet component for Angular]({% slug overview_spreadsheet %}).
2473
+ */
2474
+ class SpreadsheetComponent {
2475
+ constructor(ngZone, intl, host, localization, spreadsheetService, toolsService, renderer) {
2476
+ this.ngZone = ngZone;
2477
+ this.intl = intl;
2478
+ this.host = host;
2479
+ this.localization = localization;
2480
+ this.spreadsheetService = spreadsheetService;
2481
+ this.toolsService = toolsService;
2482
+ this.renderer = renderer;
2483
+ this.hostClass = true;
2484
+ this.role = 'application';
2485
+ /**
2486
+ * Sets the overflow option of the built-in Toolbar components.
2487
+ * @default false
2488
+ */
2489
+ this.overflow = false;
2490
+ /**
2491
+ * The number of columns in the document.
2492
+ *
2493
+ * @default 50
2494
+ */
2495
+ this.columns = 50;
2496
+ /**
2497
+ * The initial column width in pixels.
2498
+ *
2499
+ * @default 64
2500
+ */
2501
+ this.columnWidth = 100;
2502
+ /**
2503
+ * The height of the header row in pixels.
2504
+ *
2505
+ * @default 20
2506
+ */
2507
+ this.headerHeight = 30;
2508
+ /**
2509
+ * The width of the header column in pixels.
2510
+ *
2511
+ * @default 32
2512
+ */
2513
+ this.headerWidth = 100;
2514
+ /**
2515
+ * The initial row height in pixels.
2516
+ *
2517
+ * @default 20
2518
+ */
2519
+ this.rowHeight = 30;
2520
+ /**
2521
+ * The number of rows in the document.
2522
+ *
2523
+ * @default 200
2524
+ */
2525
+ this.rows = 200;
2526
+ /**
2527
+ * Fired when a value in the Spreadsheet is changed. Exposes the `SpreadsheetWidget` instance and the selected `Range` as event data.
2528
+ */
2529
+ this.change = new EventEmitter();
2530
+ /**
2531
+ * Fired when the selected range format is changed from the UI. Exposes the `SpreadsheetWidget` instance and the selected `Range` as event data.
2532
+ */
2533
+ this.formatChange = new EventEmitter();
2534
+ /**
2535
+ * Fired when the selection is changed by the end user. Exposes the `SpreadsheetWidget` instance and the selected `Range` as event data.
2536
+ */
2537
+ this.selectionChange = new EventEmitter();
2538
+ /**
2539
+ * Fired when the end user clicks the Export to Excel toolbar button.
2540
+ * The event is preventable and exposes the `Workbook` object, a `preventDefault` method
2541
+ * (if invoked, the generated file will not be saved), and the SpreadsheetWidget instance.
2542
+ */
2543
+ this.excelExport = new EventEmitter();
2544
+ /**
2545
+ * Fired when the end user clicks the Open toolbar button.
2546
+ * The event is preventable and exposes the selected `File` or `Blob`, a `preventDefault` method
2547
+ * (if invoked, the selected file will not be loaded), and the SpreadsheetWidget instance.
2548
+ */
2549
+ this.excelImport = new EventEmitter();
2550
+ /**
2551
+ * Fired when the active sheet is about to change.
2552
+ * The event exposes the new active `Sheet` and the SpreadsheetWidget instance.
2553
+ */
2554
+ this.activeSheetChange = new EventEmitter();
2555
+ this.formulaFxIcon = formulaFxIcon;
2556
+ this.folderOpenIcon = folderOpenIcon;
2557
+ this.downloadIcon = downloadIcon;
2558
+ /**
2559
+ * @hidden
2560
+ */
2561
+ this.showLicenseWatermark = false;
2562
+ this.onChange = (e) => hasObservers(this.change) && this.change.emit(e);
2563
+ this.onSelectionChange = (e) => hasObservers(this.selectionChange) && this.selectionChange.emit(e);
2564
+ this.onChangeFormat = (e) => hasObservers(this.formatChange) && this.formatChange.emit(e);
2565
+ this.onExcelExport = (e) => hasObservers(this.excelExport) && this.excelExport.emit(e);
2566
+ this.onExcelImport = (e) => hasObservers(this.excelImport) && this.excelImport.emit(e);
2567
+ this.onActiveSheetChanged = (sheet) => {
2568
+ const eventArgs = { sender: this.spreadsheetService.spreadsheet, sheet };
2569
+ hasObservers(this.activeSheetChange) && this.activeSheetChange.emit(eventArgs);
2570
+ };
2571
+ this.updateState = (e) => {
2572
+ this.toolsService.updateTools(e);
2573
+ if (e.reason?.sheetSelection) {
2574
+ this.sheets = mapToSheetDescriptor(this.spreadsheetService.spreadsheet.sheets());
2575
+ }
2576
+ };
2577
+ const isValid = validatePackage(packageMetadata);
2578
+ this.showLicenseWatermark = shouldShowValidationUI(isValid);
2579
+ ngZone.onStable.pipe(take(1)).subscribe(() => {
2580
+ if (!this.menuItems) {
2581
+ this._menuItems = [{
2582
+ id: 'file',
2583
+ text: this.messageFor('file')
2584
+ }, {
2585
+ id: 'home',
2586
+ text: this.messageFor('home'),
2587
+ active: true,
2588
+ cssClass: 'k-active'
2589
+ }, {
2590
+ id: 'insert',
2591
+ text: this.messageFor('insert')
2592
+ }];
2593
+ }
2594
+ this.selectedMenuItem = this.menuItems[1];
2595
+ });
2596
+ }
2597
+ /**
2598
+ * The menu items configuration.
2599
+ */
2600
+ set menuItems(items) {
2601
+ this._menuItems = [];
2602
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
2603
+ const normalizedItems = items.map(item => ({
2604
+ active: item.active,
2605
+ text: this.messageFor(item.id),
2606
+ cssClass: item.active ? 'k-active' : null,
2607
+ id: item.id
2608
+ }));
2609
+ this._menuItems = normalizedItems;
2610
+ const activeItemIndex = this.menuItems.findIndex(item => item.active);
2611
+ this.selectedMenuItem = this.menuItems[activeItemIndex > -1 ? activeItemIndex : 0];
2612
+ });
2613
+ }
2614
+ get menuItems() {
2615
+ return this._menuItems;
2616
+ }
2617
+ /**
2618
+ * The name of the currently active sheet. Must match one of the sheet names.
2619
+ */
2620
+ set activeSheet(value) {
2621
+ this._activeSheet = value;
2622
+ this.spreadsheetService.spreadsheet?.view?.sheetsbar.onSheetSelect(this.activeSheet);
2623
+ }
2624
+ get activeSheet() {
2625
+ return this._activeSheet || this.spreadsheetService.spreadsheet?.activeSheet()?.name();
2626
+ }
2627
+ /**
2628
+ * An array which defines the document sheets and their content.
2629
+ */
2630
+ set sheets(value) {
2631
+ const items = value.map((item, index, items) => ({
2632
+ ...item,
2633
+ inEdit: false,
2634
+ first: index === 0,
2635
+ last: index === items.length - 1,
2636
+ text: item.name,
2637
+ active: (item.name === this.activeSheet) || items.length === 1,
2638
+ index,
2639
+ sheetActions: getSheetActions(index, items)
2640
+ }));
2641
+ this._sheetsInfo = items;
2642
+ }
2643
+ get sheetsInfo() {
2644
+ return this._sheetsInfo;
2645
+ }
2646
+ get spreadsheetWidget() {
2647
+ return this.spreadsheetService.spreadsheet;
2648
+ }
2649
+ ngAfterViewInit() {
2650
+ if (!isDocumentAvailable()) {
2651
+ return;
2652
+ }
2653
+ this.ngZone.runOutsideAngular(() => {
2654
+ setTimeout(() => {
2655
+ const spreadsheet = this.spreadsheetService.spreadsheet = new SpreadsheetWidget(this.host.nativeElement, this.options);
2656
+ spreadsheet.bind('select', this.onSelectionChange);
2657
+ spreadsheet.bind('change', this.onChange);
2658
+ spreadsheet.bind('changeFormat', this.onChangeFormat);
2659
+ spreadsheet.bind('excelImport', this.onExcelImport);
2660
+ spreadsheet.bind('excelExport', this.onExcelExport);
2661
+ spreadsheet.view.bind('update', this.updateState);
2662
+ const sheet = spreadsheet.activeSheet();
2663
+ if (sheet) {
2664
+ this.updateState({ range: sheet.range(sheet.activeCell()) });
2665
+ }
2666
+ this.updateActiveSheet(this.activeSheet || spreadsheet?.activeSheet()?.name());
2667
+ if (!this.sheetsInfo) {
2668
+ this.ngZone.run(() => {
2669
+ const defaultSheetDescriptors = mapToSheetDescriptor([spreadsheet?.activeSheet()]);
2670
+ this._sheetsInfo = [{ text: this.spreadsheetService.currentActiveSheet, first: true, last: true, ...defaultSheetDescriptors, sheetActions: getSheetActions(0, defaultSheetDescriptors) }];
2671
+ });
2672
+ }
2673
+ });
2674
+ this.spreadsheetService.sheetsChanged.subscribe(this.onSheetsChanged.bind(this));
2675
+ this.spreadsheetService.activeSheetChanged.subscribe(this.onActiveSheetChanged.bind(this));
2676
+ this.spreadsheetService.dialogContainer = this.dialogContainer;
2677
+ });
2678
+ }
2679
+ ngOnChanges(changes) {
2680
+ const dynamicOptions = [
2681
+ 'columns',
2682
+ 'columnWidth',
2683
+ 'defaultCellStyle',
2684
+ 'excel',
2685
+ 'headerHeight',
2686
+ 'headerWidth',
2687
+ 'images',
2688
+ 'names',
2689
+ 'rowHeight',
2690
+ 'rows'
2691
+ ];
2692
+ const changedDynamicOptions = dynamicOptions.filter(o => isPresent(changes[o] && !changes[o].firstChange));
2693
+ if (this.spreadsheetWidget && changedDynamicOptions.length) {
2694
+ const newOptions = this.spreadsheetWidget.toJSON();
2695
+ changedDynamicOptions.forEach(o => newOptions[o] = changes[o].currentValue);
2696
+ this.spreadsheetWidget.fromJSON(newOptions);
2697
+ }
2698
+ }
2699
+ /**
2700
+ * @hidden
2701
+ */
2702
+ messageFor(key) {
2703
+ return this.localization.get(key);
2704
+ }
2705
+ /**
2706
+ * @hidden
2707
+ */
2708
+ onMenuItemSelect(e) {
2709
+ const selectedMenuItem = this.menuItems.find(item => item.text === e.item.text);
2710
+ const previousSelectedItem = this.menuItems.find(item => item.active);
2711
+ if (selectedMenuItem !== previousSelectedItem) {
2712
+ this._menuItems.forEach((item, idx) => {
2713
+ item.active = idx === +e.index;
2714
+ item.cssClass = idx === +e.index ? 'k-active' : null;
2715
+ });
2716
+ this.selectedMenuItem = this.menuItems.find(item => item.active);
2717
+ }
2718
+ }
2719
+ updateActiveSheet(name) {
2720
+ this.ngZone.run(() => this.spreadsheetService.currentActiveSheet = name);
2721
+ }
2722
+ onSheetsChanged(e) {
2723
+ console.log(e, 'sheet ch');
2724
+ this.ngZone.run(() => {
2725
+ this.sheets = mapToSheetDescriptor(e.sheets);
2726
+ this.updateActiveSheet(this.spreadsheetService.activeSheet);
2727
+ });
2728
+ }
2729
+ get options() {
2730
+ return {
2731
+ activeSheet: this.activeSheet,
2732
+ ...{
2733
+ sheets: this.sheetsInfo,
2734
+ intl: {
2735
+ localeInfo: () => localeData(this.intl.localeId),
2736
+ parseDate: (value, fmt) => this.intl.parseDate(value, fmt),
2737
+ toString: (value, fmt) => this.intl.toString(value, fmt),
2738
+ format: (fmt, ...values) => this.intl.format(fmt, ...values)
2739
+ }
2740
+ },
2741
+ columns: this.columns,
2742
+ columnWidth: this.columnWidth,
2743
+ defaultCellStyle: this.defaultCellStyle,
2744
+ excel: this.excel,
2745
+ headerHeight: this.headerHeight,
2746
+ headerWidth: this.headerHeight,
2747
+ images: this.images,
2748
+ names: this.names,
2749
+ rowHeight: this.rowHeight,
2750
+ rows: this.rows,
2751
+ formulaBarInputRef: { current: this.formulaBarInputRef.current },
2752
+ formulaCellInputRef: { current: this.formulaCellInputRef.current },
2753
+ nameBoxRef: { current: this.nameBoxRef.current }
2754
+ };
2755
+ }
2756
+ }
2757
+ SpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1$5.IntlService }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
2758
+ 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: [
2759
+ SpreadsheetLocalizationService,
2760
+ {
2761
+ provide: LocalizationService,
2762
+ useExisting: SpreadsheetLocalizationService
2763
+ },
2764
+ {
2765
+ provide: L10N_PREFIX,
2766
+ useValue: 'kendo.spreadsheet'
2767
+ },
2768
+ SpreadsheetToolsService,
2769
+ PopupService
2770
+ ], 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: `
2771
+ <ng-container
2772
+ kendoSpreadsheetLocalizedMessages
2773
+ i18n-background="kendo.spreadsheet.background|The title of the tool that changes the text background color."
2774
+ background="Background color"
2775
+ i18n-color="kendo.spreadsheet.color|The title of the tool that changes the text font color."
2776
+ color="Font color"
2777
+ i18n-bold="kendo.spreadsheet.bold|The title of the Bold tool."
2778
+ bold="Bold"
2779
+ i18n-italic="kendo.spreadsheet.italic|The title of the Italic tool."
2780
+ italic="Italic"
2781
+ i18n-underline="kendo.spreadsheet.underline|The title of the Underline tool."
2782
+ underline="Underline"
2783
+ i18n-loadFile="kendo.spreadsheet.loadFile|The title of the Load File tool."
2784
+ loadFile="Open..."
2785
+ i18n-saveFile="kendo.spreadsheet.saveFile|The title of the Save File tool."
2786
+ saveFile="Export..."
2787
+ i18n-format="kendo.spreadsheet.format|The text of the Format tool."
2788
+ format="Custom format..."
2789
+ i18n-fontFamily="kendo.spreadsheet.fontFamily|The text of the Font Family tool."
2790
+ fontFamily="Font"
2791
+ i18n-fontSize="kendo.spreadsheet.fontSize|The text of the Font Size tool."
2792
+ fontSize="Font size"
2793
+ i18n-home="kendo.spreadsheet.home|The text of the Home toolbar tab."
2794
+ home="Home"
2795
+ i18n-file="kendo.spreadsheet.file|The text of the File toolbar tab."
2796
+ file="File"
2797
+ i18n-insert="kendo.spreadsheet.insert|The text of the Insert toolbar tab."
2798
+ insert="Insert"
2799
+ i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
2800
+ undo="Undo"
2801
+ i18n-redo="kendo.spreadsheet.redo|The title of the Redo tool."
2802
+ redo="Redo"
2803
+ i18n-gridLines="kendo.spreadsheet.gridLines|The title of the Grid Lines tool."
2804
+ gridLines="Toggle grid lines"
2805
+ i18n-addColumnLeft="kendo.spreadsheet.addColumnLeft|The title of the tool that adds new column before currently selected column."
2806
+ addColumnLeft="Add column left"
2807
+ i18n-addColumnRight="kendo.spreadsheet.addColumnRight|The title of the tool that adds new column after currently selected column."
2808
+ addColumnRight="Add column right"
2809
+ i18n-addRowBelow="kendo.spreadsheet.addRowBelow|The title of the tool that adds new row below currently selected row."
2810
+ addRowBelow="Add row below"
2811
+ i18n-addRowAbove="kendo.spreadsheet.addRowAbove|The title of the tool that adds new row above currently selected row."
2812
+ addRowAbove="Add row above"
2813
+ i18n-deleteColumn="kendo.spreadsheet.deleteColumn|The title of the tool that deletes a column."
2814
+ deleteColumn="Delete column"
2815
+ i18n-deleteRow="kendo.spreadsheet.deleteRow|The title of the tool that deletes a row."
2816
+ deleteRow="Delete row"
2817
+ i18n-wrap="kendo.spreadsheet.wrap|The title of the Text Wrap tool."
2818
+ wrap="Text wrap"
2819
+ i18n-align="kendo.spreadsheet.align|The title of the Text Align tool."
2820
+ align="Align"
2821
+ i18n-dialogApply="kendo.spreadsheet.dialogApply|The text of the **Apply** button in all Spreadsheet dialogs."
2822
+ dialogApply="Apply"
2823
+ i18n-dialogCancel="kendo.spreadsheet.dialogCancel|The text of the **Cancel** button in all Spreadsheet dialogs."
2824
+ dialogCancel="Cancel"
2825
+ i18n-dialogDelete="kendo.spreadsheet.dialogDelete|The text of the **Delete** button in the Delete sheet dialog."
2826
+ dialogDelete="Delete"
2827
+ i18n-dialogRename="kendo.spreadsheet.dialogRename|The text of the **Rename** button in the Rename sheet dialog."
2828
+ dialogRename="Rename"
2829
+ i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
2830
+ rename="Rename Sheet"
2831
+ i18n-delete="kendo.spreadsheet.delete|The title of the Delete sheet dialog."
2832
+ delete="Delete Sheet">
2833
+ </ng-container>
2834
+ <div class="k-spreadsheet-header">
2835
+ <kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
2836
+ <kendo-menu-item *ngFor="let item of menuItems" [text]="item.text" [cssClass]="item.cssClass"></kendo-menu-item>
2837
+ </kendo-menu>
2838
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'file'"
2839
+ [attr.aria-label]="messageFor('file')"
2840
+ class="k-spreadsheet-toolbar"
2841
+ [overflow]="overflow">
2842
+ <kendo-spreadsheet-load-file-tool></kendo-spreadsheet-load-file-tool>
2843
+ <kendo-toolbar-button kendoSpreadsheetSaveFile></kendo-toolbar-button>
2844
+ </kendo-toolbar>
2845
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'home'"
2846
+ [attr.aria-label]="messageFor('home')"
2847
+ class="k-spreadsheet-toolbar"
2848
+ [overflow]="overflow">
2849
+ <kendo-toolbar-buttongroup>
2850
+ <kendo-toolbar-button kendoSpreadsheetUndo></kendo-toolbar-button>
2851
+ <kendo-toolbar-button kendoSpreadsheetRedo></kendo-toolbar-button>
2852
+ </kendo-toolbar-buttongroup>
2853
+ <kendo-toolbar-separator></kendo-toolbar-separator>
2854
+ <kendo-toolbar-dropdownlist kendoSpreadsheetFontFamily></kendo-toolbar-dropdownlist>
2855
+ <kendo-toolbar-dropdownlist kendoSpreadsheetFontSize></kendo-toolbar-dropdownlist>
2856
+ <kendo-toolbar-buttongroup>
2857
+ <kendo-toolbar-button kendoSpreadsheetBold></kendo-toolbar-button>
2858
+ <kendo-toolbar-button kendoSpreadsheetItalic></kendo-toolbar-button>
2859
+ <kendo-toolbar-button kendoSpreadsheetUnderline></kendo-toolbar-button>
2860
+ </kendo-toolbar-buttongroup>
2861
+ <kendo-spreadsheet-forecolor-tool></kendo-spreadsheet-forecolor-tool>
2862
+ <kendo-toolbar-separator></kendo-toolbar-separator>
2863
+ <kendo-spreadsheet-backcolor-tool></kendo-spreadsheet-backcolor-tool>
2864
+ <kendo-toolbar-separator></kendo-toolbar-separator>
2865
+ <kendo-toolbar-dropdownbutton kendoSpreadsheetTextAlign></kendo-toolbar-dropdownbutton>
2866
+ <kendo-toolbar-button kendoSpreadsheetTextWrap></kendo-toolbar-button>
2867
+ <kendo-toolbar-separator></kendo-toolbar-separator>
2868
+ <kendo-toolbar-dropdownbutton kendoSpreadsheetFormat></kendo-toolbar-dropdownbutton>
2869
+ <kendo-toolbar-separator></kendo-toolbar-separator>
2870
+ <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
2871
+ </kendo-toolbar>
2872
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'insert'"
2873
+ [attr.aria-label]="messageFor('insert')"
2874
+ class="k-spreadsheet-toolbar"
2875
+ [overflow]="overflow">
2876
+ <kendo-toolbar-button kendoSpreadsheetAddColumnLeftButton></kendo-toolbar-button>
2877
+ <kendo-toolbar-button kendoSpreadsheetAddColumnRightButton></kendo-toolbar-button>
2878
+ <kendo-toolbar-button kendoSpreadsheetAddRowBelowButton></kendo-toolbar-button>
2879
+ <kendo-toolbar-button kendoSpreadsheetAddRowAboveButton></kendo-toolbar-button>
2880
+ <kendo-toolbar-separator></kendo-toolbar-separator>
2881
+ <kendo-toolbar-button kendoSpreadsheetDeleteColumnButton></kendo-toolbar-button>
2882
+ <kendo-toolbar-button kendoSpreadsheetDeleteRowButton></kendo-toolbar-button>
2883
+ </kendo-toolbar>
2884
+ </div>
2885
+ <div class="k-spreadsheet-action-bar">
2886
+ <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
2887
+ <div class="k-spreadsheet-formula-bar">
2888
+ <span class="k-separator k-separator-vertical"></span>
2889
+ <button kendoButton
2890
+ icon="formula-fx"
2891
+ [svgIcon]="formulaFxIcon"
2892
+ [fillMode]="'flat'">
2893
+ </button>
2894
+ <span class="k-separator k-separator-vertical"></span>
2895
+ <div #formulaBar kendoSpreadsheetFormulaInput class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
2896
+ <div class="k-widget k-tooltip" style="position: absolute; display: none;">A1</div>
2897
+ </div>
2898
+ </div>
2899
+ <div class="k-spreadsheet-view">
2900
+ <div class="k-spreadsheet-fixed-container"></div>
2901
+ <div class="k-spreadsheet-scroller">
2902
+ <div class="k-spreadsheet-view-size"></div>
2903
+ </div>
2904
+ <div tabIndex="0" class="k-spreadsheet-clipboard" contentEditable="true"></div>
2905
+ <div #formulaCell kendoSpreadsheetFormulaInput class="k-spreadsheet-cell-editor" data-role="formulainput"></div>
2906
+ </div>
2907
+ <div class="k-spreadsheet-sheets-bar"
2908
+ kendoSpreadsheetSheetsBar
2909
+ [sheets]="sheetsInfo"
2910
+ [sheetDescriptors]="sheets">
2911
+ </div>
2912
+ <ng-container #dialogContainer></ng-container>
2913
+
2914
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
2915
+ `, isInline: true, components: [{ type: i5$2.MenuComponent, selector: "kendo-menu", inputs: ["menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { type: i5$2.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: 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: SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: ["sheets", "sheetDescriptors"] }, { 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: SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { type: SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { type: SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { type: SpreadsheetTextAlignDirective, selector: "[kendoSpreadsheetTextAlign]" }, { type: SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { type: SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { 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: FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]" }] });
2916
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, decorators: [{
2917
+ type: Component,
2918
+ args: [{
2919
+ exportAs: 'kendo-spreadsheet',
2920
+ selector: 'kendo-spreadsheet',
2921
+ providers: [
2922
+ SpreadsheetLocalizationService,
2923
+ {
2924
+ provide: LocalizationService,
2925
+ useExisting: SpreadsheetLocalizationService
2926
+ },
2927
+ {
2928
+ provide: L10N_PREFIX,
2929
+ useValue: 'kendo.spreadsheet'
2930
+ },
2931
+ SpreadsheetToolsService,
2932
+ PopupService
2933
+ ],
2934
+ template: `
2935
+ <ng-container
2936
+ kendoSpreadsheetLocalizedMessages
2937
+ i18n-background="kendo.spreadsheet.background|The title of the tool that changes the text background color."
2938
+ background="Background color"
2939
+ i18n-color="kendo.spreadsheet.color|The title of the tool that changes the text font color."
2940
+ color="Font color"
2941
+ i18n-bold="kendo.spreadsheet.bold|The title of the Bold tool."
2942
+ bold="Bold"
2943
+ i18n-italic="kendo.spreadsheet.italic|The title of the Italic tool."
2944
+ italic="Italic"
2945
+ i18n-underline="kendo.spreadsheet.underline|The title of the Underline tool."
2946
+ underline="Underline"
2947
+ i18n-loadFile="kendo.spreadsheet.loadFile|The title of the Load File tool."
2948
+ loadFile="Open..."
2949
+ i18n-saveFile="kendo.spreadsheet.saveFile|The title of the Save File tool."
2950
+ saveFile="Export..."
2951
+ i18n-format="kendo.spreadsheet.format|The text of the Format tool."
2952
+ format="Custom format..."
2953
+ i18n-fontFamily="kendo.spreadsheet.fontFamily|The text of the Font Family tool."
2954
+ fontFamily="Font"
2955
+ i18n-fontSize="kendo.spreadsheet.fontSize|The text of the Font Size tool."
2956
+ fontSize="Font size"
2957
+ i18n-home="kendo.spreadsheet.home|The text of the Home toolbar tab."
2958
+ home="Home"
2959
+ i18n-file="kendo.spreadsheet.file|The text of the File toolbar tab."
2960
+ file="File"
2961
+ i18n-insert="kendo.spreadsheet.insert|The text of the Insert toolbar tab."
2962
+ insert="Insert"
2963
+ i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
2964
+ undo="Undo"
2965
+ i18n-redo="kendo.spreadsheet.redo|The title of the Redo tool."
2966
+ redo="Redo"
2967
+ i18n-gridLines="kendo.spreadsheet.gridLines|The title of the Grid Lines tool."
2968
+ gridLines="Toggle grid lines"
2969
+ i18n-addColumnLeft="kendo.spreadsheet.addColumnLeft|The title of the tool that adds new column before currently selected column."
2970
+ addColumnLeft="Add column left"
2971
+ i18n-addColumnRight="kendo.spreadsheet.addColumnRight|The title of the tool that adds new column after currently selected column."
2972
+ addColumnRight="Add column right"
2973
+ i18n-addRowBelow="kendo.spreadsheet.addRowBelow|The title of the tool that adds new row below currently selected row."
2974
+ addRowBelow="Add row below"
2975
+ i18n-addRowAbove="kendo.spreadsheet.addRowAbove|The title of the tool that adds new row above currently selected row."
2976
+ addRowAbove="Add row above"
2977
+ i18n-deleteColumn="kendo.spreadsheet.deleteColumn|The title of the tool that deletes a column."
2978
+ deleteColumn="Delete column"
2979
+ i18n-deleteRow="kendo.spreadsheet.deleteRow|The title of the tool that deletes a row."
2980
+ deleteRow="Delete row"
2981
+ i18n-wrap="kendo.spreadsheet.wrap|The title of the Text Wrap tool."
2982
+ wrap="Text wrap"
2983
+ i18n-align="kendo.spreadsheet.align|The title of the Text Align tool."
2984
+ align="Align"
2985
+ i18n-dialogApply="kendo.spreadsheet.dialogApply|The text of the **Apply** button in all Spreadsheet dialogs."
2986
+ dialogApply="Apply"
2987
+ i18n-dialogCancel="kendo.spreadsheet.dialogCancel|The text of the **Cancel** button in all Spreadsheet dialogs."
2988
+ dialogCancel="Cancel"
2989
+ i18n-dialogDelete="kendo.spreadsheet.dialogDelete|The text of the **Delete** button in the Delete sheet dialog."
2990
+ dialogDelete="Delete"
2991
+ i18n-dialogRename="kendo.spreadsheet.dialogRename|The text of the **Rename** button in the Rename sheet dialog."
2992
+ dialogRename="Rename"
2993
+ i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
2994
+ rename="Rename Sheet"
2995
+ i18n-delete="kendo.spreadsheet.delete|The title of the Delete sheet dialog."
2996
+ delete="Delete Sheet">
2997
+ </ng-container>
2998
+ <div class="k-spreadsheet-header">
2999
+ <kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
3000
+ <kendo-menu-item *ngFor="let item of menuItems" [text]="item.text" [cssClass]="item.cssClass"></kendo-menu-item>
3001
+ </kendo-menu>
3002
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'file'"
3003
+ [attr.aria-label]="messageFor('file')"
3004
+ class="k-spreadsheet-toolbar"
3005
+ [overflow]="overflow">
3006
+ <kendo-spreadsheet-load-file-tool></kendo-spreadsheet-load-file-tool>
3007
+ <kendo-toolbar-button kendoSpreadsheetSaveFile></kendo-toolbar-button>
3008
+ </kendo-toolbar>
3009
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'home'"
3010
+ [attr.aria-label]="messageFor('home')"
3011
+ class="k-spreadsheet-toolbar"
3012
+ [overflow]="overflow">
3013
+ <kendo-toolbar-buttongroup>
3014
+ <kendo-toolbar-button kendoSpreadsheetUndo></kendo-toolbar-button>
3015
+ <kendo-toolbar-button kendoSpreadsheetRedo></kendo-toolbar-button>
3016
+ </kendo-toolbar-buttongroup>
3017
+ <kendo-toolbar-separator></kendo-toolbar-separator>
3018
+ <kendo-toolbar-dropdownlist kendoSpreadsheetFontFamily></kendo-toolbar-dropdownlist>
3019
+ <kendo-toolbar-dropdownlist kendoSpreadsheetFontSize></kendo-toolbar-dropdownlist>
3020
+ <kendo-toolbar-buttongroup>
3021
+ <kendo-toolbar-button kendoSpreadsheetBold></kendo-toolbar-button>
3022
+ <kendo-toolbar-button kendoSpreadsheetItalic></kendo-toolbar-button>
3023
+ <kendo-toolbar-button kendoSpreadsheetUnderline></kendo-toolbar-button>
3024
+ </kendo-toolbar-buttongroup>
3025
+ <kendo-spreadsheet-forecolor-tool></kendo-spreadsheet-forecolor-tool>
3026
+ <kendo-toolbar-separator></kendo-toolbar-separator>
3027
+ <kendo-spreadsheet-backcolor-tool></kendo-spreadsheet-backcolor-tool>
3028
+ <kendo-toolbar-separator></kendo-toolbar-separator>
3029
+ <kendo-toolbar-dropdownbutton kendoSpreadsheetTextAlign></kendo-toolbar-dropdownbutton>
3030
+ <kendo-toolbar-button kendoSpreadsheetTextWrap></kendo-toolbar-button>
3031
+ <kendo-toolbar-separator></kendo-toolbar-separator>
3032
+ <kendo-toolbar-dropdownbutton kendoSpreadsheetFormat></kendo-toolbar-dropdownbutton>
3033
+ <kendo-toolbar-separator></kendo-toolbar-separator>
3034
+ <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
3035
+ </kendo-toolbar>
3036
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'insert'"
3037
+ [attr.aria-label]="messageFor('insert')"
3038
+ class="k-spreadsheet-toolbar"
3039
+ [overflow]="overflow">
3040
+ <kendo-toolbar-button kendoSpreadsheetAddColumnLeftButton></kendo-toolbar-button>
3041
+ <kendo-toolbar-button kendoSpreadsheetAddColumnRightButton></kendo-toolbar-button>
3042
+ <kendo-toolbar-button kendoSpreadsheetAddRowBelowButton></kendo-toolbar-button>
3043
+ <kendo-toolbar-button kendoSpreadsheetAddRowAboveButton></kendo-toolbar-button>
3044
+ <kendo-toolbar-separator></kendo-toolbar-separator>
3045
+ <kendo-toolbar-button kendoSpreadsheetDeleteColumnButton></kendo-toolbar-button>
3046
+ <kendo-toolbar-button kendoSpreadsheetDeleteRowButton></kendo-toolbar-button>
3047
+ </kendo-toolbar>
3048
+ </div>
3049
+ <div class="k-spreadsheet-action-bar">
3050
+ <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
3051
+ <div class="k-spreadsheet-formula-bar">
3052
+ <span class="k-separator k-separator-vertical"></span>
3053
+ <button kendoButton
3054
+ icon="formula-fx"
3055
+ [svgIcon]="formulaFxIcon"
3056
+ [fillMode]="'flat'">
3057
+ </button>
3058
+ <span class="k-separator k-separator-vertical"></span>
3059
+ <div #formulaBar kendoSpreadsheetFormulaInput class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
3060
+ <div class="k-widget k-tooltip" style="position: absolute; display: none;">A1</div>
3061
+ </div>
3062
+ </div>
3063
+ <div class="k-spreadsheet-view">
3064
+ <div class="k-spreadsheet-fixed-container"></div>
3065
+ <div class="k-spreadsheet-scroller">
3066
+ <div class="k-spreadsheet-view-size"></div>
3067
+ </div>
3068
+ <div tabIndex="0" class="k-spreadsheet-clipboard" contentEditable="true"></div>
3069
+ <div #formulaCell kendoSpreadsheetFormulaInput class="k-spreadsheet-cell-editor" data-role="formulainput"></div>
3070
+ </div>
3071
+ <div class="k-spreadsheet-sheets-bar"
3072
+ kendoSpreadsheetSheetsBar
3073
+ [sheets]="sheetsInfo"
3074
+ [sheetDescriptors]="sheets">
3075
+ </div>
3076
+ <ng-container #dialogContainer></ng-container>
3077
+
3078
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
3079
+ `,
3080
+ }]
3081
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1$5.IntlService }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i0.Renderer2 }]; }, propDecorators: { formulaBarInputRef: [{
3082
+ type: ViewChild,
3083
+ args: ['formulaBar', { read: FormulaInputDirective }]
3084
+ }], formulaCellInputRef: [{
3085
+ type: ViewChild,
3086
+ args: ['formulaCell', { read: FormulaInputDirective }]
3087
+ }], nameBoxRef: [{
3088
+ type: ViewChild,
3089
+ args: ['nameBox']
3090
+ }], dialogContainer: [{
3091
+ type: ViewChild,
3092
+ args: ['dialogContainer', { read: ViewContainerRef }]
3093
+ }], hostClass: [{
3094
+ type: HostBinding,
3095
+ args: ['class.k-spreadsheet']
3096
+ }], role: [{
3097
+ type: HostBinding,
3098
+ args: ['attr.role']
3099
+ }], menuItems: [{
3100
+ type: Input
3101
+ }], overflow: [{
3102
+ type: Input
3103
+ }], activeSheet: [{
3104
+ type: Input
3105
+ }], sheets: [{
3106
+ type: Input
3107
+ }], columns: [{
3108
+ type: Input
3109
+ }], columnWidth: [{
3110
+ type: Input
3111
+ }], defaultCellStyle: [{
3112
+ type: Input
3113
+ }], headerHeight: [{
3114
+ type: Input
3115
+ }], headerWidth: [{
3116
+ type: Input
3117
+ }], rowHeight: [{
3118
+ type: Input
3119
+ }], rows: [{
3120
+ type: Input
3121
+ }], names: [{
3122
+ type: Input
3123
+ }], images: [{
3124
+ type: Input
3125
+ }], excel: [{
3126
+ type: Input
3127
+ }], change: [{
3128
+ type: Output
3129
+ }], formatChange: [{
3130
+ type: Output
3131
+ }], selectionChange: [{
3132
+ type: Output
3133
+ }], excelExport: [{
3134
+ type: Output
3135
+ }], excelImport: [{
3136
+ type: Output
3137
+ }], activeSheetChange: [{
3138
+ type: Output
3139
+ }] } });
3140
+
3141
+ /**
3142
+ * Custom component messages override default component messages
3143
+ * ([see example]({% slug globalization_spreadsheet %}#toc-localization)).
3144
+ */
3145
+ class CustomMessagesComponent extends MessagesDirective {
3146
+ constructor(service) {
3147
+ super();
3148
+ this.service = service;
3149
+ }
3150
+ get override() {
3151
+ return true;
3152
+ }
3153
+ }
3154
+ CustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
3155
+ CustomMessagesComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: CustomMessagesComponent, selector: "kendo-spreadsheet-messages", providers: [
3156
+ {
3157
+ provide: MessagesDirective,
3158
+ useExisting: forwardRef(() => CustomMessagesComponent)
3159
+ }
3160
+ ], usesInheritance: true, ngImport: i0 });
3161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CustomMessagesComponent, decorators: [{
3162
+ type: Directive,
3163
+ args: [{
3164
+ providers: [
3165
+ {
3166
+ provide: MessagesDirective,
3167
+ useExisting: forwardRef(() => CustomMessagesComponent)
3168
+ }
3169
+ ],
3170
+ // eslint-disable-next-line @angular-eslint/directive-selector
3171
+ selector: 'kendo-spreadsheet-messages'
3172
+ }]
3173
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
3174
+
3175
+ /**
3176
+ * @hidden
3177
+ */
3178
+ class RemoveDirective {
3179
+ constructor() {
3180
+ this.hostDisplay = 'none';
3181
+ }
3182
+ }
3183
+ RemoveDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RemoveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3184
+ RemoveDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: RemoveDirective, selector: "[kendoRemoveDirective]", host: { properties: { "style.display": "this.hostDisplay" } }, ngImport: i0 });
3185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RemoveDirective, decorators: [{
3186
+ type: Directive,
3187
+ args: [{
3188
+ selector: '[kendoRemoveDirective]',
3189
+ }]
3190
+ }], propDecorators: { hostDisplay: [{
3191
+ type: HostBinding,
3192
+ args: ['style.display']
3193
+ }] } });
3194
+
3195
+ const DIRECTIVES = [
3196
+ SpreadsheetComponent,
3197
+ MessagesDirective,
3198
+ LocalizedMessagesDirective,
3199
+ CustomMessagesComponent,
3200
+ FormulaListComponent,
3201
+ FormulaInputDirective,
3202
+ NameBoxComponent,
3203
+ SheetsBarComponent,
3204
+ SpreadsheetBoldDirective,
3205
+ SpreadsheetItalicDirective,
3206
+ SpreadsheetUnderlineDirective,
3207
+ SpreadsheetLoadFileComponent,
3208
+ SpreadsheetSaveFileDirective,
3209
+ SpreadsheetFormatDirective,
3210
+ SpreadsheetUndoDirective,
3211
+ SpreadsheetRedoDirective,
3212
+ SpreadsheetFontFamilyComponent,
3213
+ SpreadsheetFontSizeComponent,
3214
+ SpreadsheetBackColorComponent,
3215
+ SpreadsheetForeColorComponent,
3216
+ SpreadsheetGridLinesDirective,
3217
+ SpreadsheetAddColumnLeftButtonDirective,
3218
+ SpreadsheetAddColumnRightButtonDirective,
3219
+ SpreadsheetAddRowAboveButtonDirective,
3220
+ SpreadsheetAddRowBelowButtonDirective,
3221
+ SpreadsheetDeleteColumnButtonDirective,
3222
+ SpreadsheetDeleteRowButtonDirective,
3223
+ SpreadsheetTextAlignDirective,
3224
+ SpreadsheetTextWrapDirective,
3225
+ FontFamilyDropDownListComponent,
3226
+ FontSizeDropDownListComponent,
3227
+ DialogContentComponent,
3228
+ MainMenuDirective,
3229
+ ActionDialogComponent,
3230
+ RemoveDirective
3231
+ ];
3232
+ const EXPORTS = [
3233
+ SpreadsheetComponent,
3234
+ CustomMessagesComponent,
3235
+ SpreadsheetBoldDirective,
3236
+ SpreadsheetItalicDirective,
3237
+ SpreadsheetUnderlineDirective,
3238
+ SpreadsheetLoadFileComponent,
3239
+ SpreadsheetSaveFileDirective,
3240
+ SpreadsheetFormatDirective,
3241
+ SpreadsheetUndoDirective,
3242
+ SpreadsheetRedoDirective,
3243
+ SpreadsheetFontFamilyComponent,
3244
+ SpreadsheetFontSizeComponent,
3245
+ SpreadsheetBackColorComponent,
3246
+ SpreadsheetForeColorComponent,
3247
+ SpreadsheetGridLinesDirective,
3248
+ SpreadsheetAddColumnLeftButtonDirective,
3249
+ SpreadsheetAddColumnRightButtonDirective,
3250
+ SpreadsheetAddRowAboveButtonDirective,
3251
+ SpreadsheetAddRowBelowButtonDirective,
3252
+ SpreadsheetDeleteColumnButtonDirective,
3253
+ SpreadsheetDeleteRowButtonDirective,
3254
+ SpreadsheetTextAlignDirective,
3255
+ SpreadsheetTextWrapDirective
3256
+ ];
3257
+ /**
3258
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
3259
+ * definition for the Spreadsheet component.
3260
+ */
3261
+ class SpreadsheetModule {
3262
+ }
3263
+ SpreadsheetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3264
+ SpreadsheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetModule, declarations: [SpreadsheetComponent,
3265
+ MessagesDirective,
3266
+ LocalizedMessagesDirective,
3267
+ CustomMessagesComponent,
3268
+ FormulaListComponent,
3269
+ FormulaInputDirective,
3270
+ NameBoxComponent,
3271
+ SheetsBarComponent,
3272
+ SpreadsheetBoldDirective,
3273
+ SpreadsheetItalicDirective,
3274
+ SpreadsheetUnderlineDirective,
3275
+ SpreadsheetLoadFileComponent,
3276
+ SpreadsheetSaveFileDirective,
3277
+ SpreadsheetFormatDirective,
3278
+ SpreadsheetUndoDirective,
3279
+ SpreadsheetRedoDirective,
3280
+ SpreadsheetFontFamilyComponent,
3281
+ SpreadsheetFontSizeComponent,
3282
+ SpreadsheetBackColorComponent,
3283
+ SpreadsheetForeColorComponent,
3284
+ SpreadsheetGridLinesDirective,
3285
+ SpreadsheetAddColumnLeftButtonDirective,
3286
+ SpreadsheetAddColumnRightButtonDirective,
3287
+ SpreadsheetAddRowAboveButtonDirective,
3288
+ SpreadsheetAddRowBelowButtonDirective,
3289
+ SpreadsheetDeleteColumnButtonDirective,
3290
+ SpreadsheetDeleteRowButtonDirective,
3291
+ SpreadsheetTextAlignDirective,
3292
+ SpreadsheetTextWrapDirective,
3293
+ FontFamilyDropDownListComponent,
3294
+ FontSizeDropDownListComponent,
3295
+ DialogContentComponent,
3296
+ MainMenuDirective,
3297
+ ActionDialogComponent,
3298
+ RemoveDirective], imports: [CommonModule,
3299
+ ButtonsModule,
3300
+ ComboBoxModule,
3301
+ DropDownListModule,
3302
+ DialogModule,
3303
+ EventsModule,
3304
+ IconsModule,
3305
+ IntlModule,
3306
+ MenuModule,
3307
+ PopupModule,
3308
+ TabStripModule,
3309
+ ToolBarModule,
3310
+ InputsModule,
3311
+ WatermarkModule,
3312
+ LabelModule], exports: [SpreadsheetComponent,
3313
+ CustomMessagesComponent,
3314
+ SpreadsheetBoldDirective,
3315
+ SpreadsheetItalicDirective,
3316
+ SpreadsheetUnderlineDirective,
3317
+ SpreadsheetLoadFileComponent,
3318
+ SpreadsheetSaveFileDirective,
3319
+ SpreadsheetFormatDirective,
3320
+ SpreadsheetUndoDirective,
3321
+ SpreadsheetRedoDirective,
3322
+ SpreadsheetFontFamilyComponent,
3323
+ SpreadsheetFontSizeComponent,
3324
+ SpreadsheetBackColorComponent,
3325
+ SpreadsheetForeColorComponent,
3326
+ SpreadsheetGridLinesDirective,
3327
+ SpreadsheetAddColumnLeftButtonDirective,
3328
+ SpreadsheetAddColumnRightButtonDirective,
3329
+ SpreadsheetAddRowAboveButtonDirective,
3330
+ SpreadsheetAddRowBelowButtonDirective,
3331
+ SpreadsheetDeleteColumnButtonDirective,
3332
+ SpreadsheetDeleteRowButtonDirective,
3333
+ SpreadsheetTextAlignDirective,
3334
+ SpreadsheetTextWrapDirective] });
3335
+ SpreadsheetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetModule, imports: [[
3336
+ CommonModule,
3337
+ ButtonsModule,
3338
+ ComboBoxModule,
3339
+ DropDownListModule,
3340
+ DialogModule,
3341
+ EventsModule,
3342
+ IconsModule,
3343
+ IntlModule,
3344
+ MenuModule,
3345
+ PopupModule,
3346
+ TabStripModule,
3347
+ ToolBarModule,
3348
+ InputsModule,
3349
+ WatermarkModule,
3350
+ LabelModule
3351
+ ]] });
3352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetModule, decorators: [{
3353
+ type: NgModule,
3354
+ args: [{
3355
+ declarations: [DIRECTIVES],
3356
+ exports: [EXPORTS],
3357
+ imports: [
3358
+ CommonModule,
3359
+ ButtonsModule,
3360
+ ComboBoxModule,
3361
+ DropDownListModule,
3362
+ DialogModule,
3363
+ EventsModule,
3364
+ IconsModule,
3365
+ IntlModule,
3366
+ MenuModule,
3367
+ PopupModule,
3368
+ TabStripModule,
3369
+ ToolBarModule,
3370
+ InputsModule,
3371
+ WatermarkModule,
3372
+ LabelModule
3373
+ ]
3374
+ }]
3375
+ }] });
3376
+
3377
+ /**
3378
+ * Generated bundle index. Do not edit.
3379
+ */
3380
+
3381
+ export { CustomMessagesComponent, FormulaInputDirective, FormulaListComponent, NameBoxComponent, SheetsBarComponent, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetBackColorComponent, SpreadsheetBoldDirective, SpreadsheetComponent, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetForeColorComponent, SpreadsheetFormatDirective, SpreadsheetGridLinesDirective, SpreadsheetItalicDirective, SpreadsheetLoadFileComponent, SpreadsheetModule, SpreadsheetRedoDirective, SpreadsheetSaveFileDirective, SpreadsheetTextAlignDirective as SpreadsheetTextAlignComponent, SpreadsheetTextWrapDirective, SpreadsheetUnderlineDirective, SpreadsheetUndoDirective };
3382
+