@progress/kendo-angular-spreadsheet 17.0.0-develop.21 → 17.0.0-develop.22

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 (86) hide show
  1. package/action-bar/formula-input.directive.d.ts +1 -1
  2. package/action-bar/list.component.d.ts +5 -4
  3. package/action-bar/namebox.component.d.ts +1 -1
  4. package/{esm2020 → esm2022}/action-bar/formula-input.directive.mjs +63 -54
  5. package/{esm2020 → esm2022}/action-bar/list.component.mjs +21 -16
  6. package/{esm2020 → esm2022}/action-bar/namebox.component.mjs +20 -12
  7. package/{esm2020 → esm2022}/common/error-handling.service.mjs +12 -6
  8. package/{esm2020 → esm2022}/common/main-menu.directive.mjs +5 -3
  9. package/{esm2020 → esm2022}/common/spreadsheet.service.mjs +10 -7
  10. package/{esm2020 → esm2022}/localization/custom-messages.component.mjs +9 -8
  11. package/{esm2020 → esm2022}/localization/localized-messages.directive.mjs +7 -6
  12. package/esm2022/localization/messages.mjs +494 -0
  13. package/{esm2020 → esm2022}/localization/spreadsheet-localization.service.mjs +3 -3
  14. package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
  15. package/{esm2020 → esm2022}/sheets-bar/action-dialog.component.mjs +8 -4
  16. package/{esm2020 → esm2022}/sheets-bar/sheets-bar.component.mjs +100 -86
  17. package/{esm2020 → esm2022}/spreadsheet.component.mjs +211 -179
  18. package/{esm2020 → esm2022}/spreadsheet.module.mjs +4 -4
  19. package/{esm2020 → esm2022}/tools/align/align-tool.directive.mjs +8 -5
  20. package/{esm2020 → esm2022}/tools/align/horizontal-align-tool.directive.mjs +8 -5
  21. package/{esm2020 → esm2022}/tools/align/vertical-align-tool.directive.mjs +8 -5
  22. package/{esm2020 → esm2022}/tools/colorpicker/spreadsheet-backcolor.component.mjs +4 -4
  23. package/{esm2020 → esm2022}/tools/colorpicker/spreadsheet-forecolor.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/tools/decrease-decimal-tool.directive.mjs +3 -3
  25. package/{esm2020 → esm2022}/tools/font-family/font-family-dropdownlist.component.mjs +4 -4
  26. package/{esm2020 → esm2022}/tools/font-family/spreadsheet-fontfamily-tool.component.mjs +4 -4
  27. package/{esm2020 → esm2022}/tools/font-size/decrease-font-tool.directive.mjs +4 -3
  28. package/{esm2020 → esm2022}/tools/font-size/font-size-dropdownlist.component.mjs +4 -4
  29. package/{esm2020 → esm2022}/tools/font-size/increase-font-tool.directive.mjs +4 -3
  30. package/{esm2020 → esm2022}/tools/font-size/spreadsheet-fontsize-tool.component.mjs +4 -4
  31. package/{esm2020 → esm2022}/tools/format-tool.directive.mjs +19 -16
  32. package/{esm2020 → esm2022}/tools/gridlines-tool.directive.mjs +3 -3
  33. package/{esm2020 → esm2022}/tools/history/redo-tool.mjs +3 -3
  34. package/{esm2020 → esm2022}/tools/history/undo-tool.mjs +3 -3
  35. package/{esm2020 → esm2022}/tools/increase-decimal-tool.directive.mjs +3 -3
  36. package/{esm2020 → esm2022}/tools/insert/insert-link-dialog.component.mjs +7 -5
  37. package/{esm2020 → esm2022}/tools/insert/insert-link-tool.directive.mjs +5 -3
  38. package/{esm2020 → esm2022}/tools/load-file.component.mjs +26 -27
  39. package/{esm2020 → esm2022}/tools/save-file-tool.directive.mjs +7 -4
  40. package/{esm2020 → esm2022}/tools/shared/dialog-content.component.mjs +10 -5
  41. package/{esm2020 → esm2022}/tools/shared/spreadsheet-command-base.mjs +9 -4
  42. package/{esm2020 → esm2022}/tools/shared/spreadsheet-command-button.mjs +6 -0
  43. package/{esm2020 → esm2022}/tools/shared/spreadsheet-dropdown-tools-base.mjs +25 -18
  44. package/{esm2020 → esm2022}/tools/shared/spreadsheet-dropdownlist.base.mjs +12 -8
  45. package/{esm2020 → esm2022}/tools/tables/add-column-left-button.directive.mjs +3 -3
  46. package/{esm2020 → esm2022}/tools/tables/add-column-right-button.directive.mjs +3 -3
  47. package/{esm2020 → esm2022}/tools/tables/add-row-above-button.directive.mjs +3 -3
  48. package/{esm2020 → esm2022}/tools/tables/add-row-below-button.directive.mjs +3 -3
  49. package/{esm2020 → esm2022}/tools/tables/delete-column-button.directive.mjs +3 -3
  50. package/{esm2020 → esm2022}/tools/tables/delete-row-button.directive.mjs +3 -3
  51. package/{esm2020 → esm2022}/tools/tables/merge-tool.directive.mjs +8 -5
  52. package/{esm2020 → esm2022}/tools/text-wrap-tool.directive.mjs +3 -3
  53. package/esm2022/tools/tools.service.mjs +61 -0
  54. package/{esm2020 → esm2022}/tools/typographical-emphasis/bold-tool.directive.mjs +3 -3
  55. package/{esm2020 → esm2022}/tools/typographical-emphasis/italic-tool.directive.mjs +3 -3
  56. package/{esm2020 → esm2022}/tools/typographical-emphasis/underline-tool.directive.mjs +3 -3
  57. package/{fesm2020 → fesm2022}/progress-kendo-angular-spreadsheet.mjs +1070 -615
  58. package/localization/messages.d.ts +1 -1
  59. package/models/sheet-info.d.ts +2 -2
  60. package/package.json +23 -29
  61. package/schematics/ngAdd/index.js +2 -2
  62. package/sheets-bar/sheets-bar.component.d.ts +1 -1
  63. package/spreadsheet.component.d.ts +1 -1
  64. package/tools/load-file.component.d.ts +0 -3
  65. package/tools/shared/commands.d.ts +1 -1
  66. package/tools/shared/spreadsheet-dropdown-tools-base.d.ts +1 -3
  67. package/tools/shared/spreadsheet-dropdownlist.base.d.ts +1 -1
  68. package/esm2020/localization/messages.mjs +0 -175
  69. package/esm2020/tools/tools.service.mjs +0 -60
  70. package/fesm2015/progress-kendo-angular-spreadsheet.mjs +0 -4610
  71. /package/{esm2020 → esm2022}/common/sheet-changes.mjs +0 -0
  72. /package/{esm2020 → esm2022}/directives.mjs +0 -0
  73. /package/{esm2020 → esm2022}/index.mjs +0 -0
  74. /package/{esm2020 → esm2022}/models/events.mjs +0 -0
  75. /package/{esm2020 → esm2022}/models/index.mjs +0 -0
  76. /package/{esm2020 → esm2022}/models/main-menu-item.mjs +0 -0
  77. /package/{esm2020 → esm2022}/models/sheet-info.mjs +0 -0
  78. /package/{esm2020 → esm2022}/progress-kendo-angular-spreadsheet.mjs +0 -0
  79. /package/{esm2020 → esm2022}/sheets-bar/utils.mjs +0 -0
  80. /package/{esm2020 → esm2022}/tools/index.mjs +0 -0
  81. /package/{esm2020 → esm2022}/tools/shared/command-icons.mjs +0 -0
  82. /package/{esm2020 → esm2022}/tools/shared/commands.mjs +0 -0
  83. /package/{esm2020 → esm2022}/tools/shared/constants.mjs +0 -0
  84. /package/{esm2020 → esm2022}/tools/tables/index.mjs +0 -0
  85. /package/{esm2020 → esm2022}/tools/utils.mjs +0 -0
  86. /package/{esm2020 → esm2022}/utils.mjs +0 -0
@@ -1,4610 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2024 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, ElementRef, ViewChild, ViewChildren, HostListener, InjectionToken, forwardRef, ViewContainerRef, NgModule } from '@angular/core';
7
- import { NgFor, NgIf, NgStyle, NgSwitch, NgSwitchCase } from '@angular/common';
8
- import { Subject, Subscription } from 'rxjs';
9
- import { take, map } from 'rxjs/operators';
10
- import { validatePackage } from '@progress/kendo-licensing';
11
- import { SpreadsheetWidget } from '@progress/kendo-spreadsheet-common';
12
- import * as i1$3 from '@progress/kendo-angular-intl';
13
- import { localeData } from '@progress/kendo-angular-intl';
14
- import { formulaFxIcon, trashIcon, copyIcon, pencilIcon, eyeSlashIcon, arrowRightIcon, arrowLeftIcon, alignCenterIcon, alignJustifyIcon, alignLeftIcon, alignRightIcon, alignTopIcon, alignMiddleIcon, alignBottomIcon, dropletIcon, boldIcon, foregroundColorIcon, italicIcon, arrowRotateCwIcon, underlineIcon, arrowRotateCcwIcon, textWrapIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, tableRowDeleteIcon, tableColumnDeleteIcon, bordersNoneIcon, folderOpenIcon, downloadIcon, customFormatIcon, fontSizeIcon, fontFamilyIcon, cellsMergeIcon, cellsMergeHorizontallyIcon, cellsMergeVerticallyIcon, tableUnmergeIcon, linkIcon, fontGrowIcon, fontShrinkIcon, decimalDecreaseIcon, decimalIncreaseIcon, cutIcon, clipboardIcon, eyeIcon, plusIcon, menuIcon, caretAltDownIcon, caretAltLeftIcon, caretAltRightIcon } from '@progress/kendo-svg-icons';
15
- import * as i2 from '@progress/kendo-angular-l10n';
16
- import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
17
- import * as i1 from '@progress/kendo-angular-popup';
18
- import { PopupService } from '@progress/kendo-angular-popup';
19
- import { MenuComponent, MenuItemComponent, ContextMenuComponent } from '@progress/kendo-angular-menu';
20
- import { EventsOutsideAngularDirective, isDocumentAvailable, isPresent, Keys, hasObservers, shouldShowValidationUI, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';
21
- import { IconWrapperComponent, IconsService } from '@progress/kendo-angular-icons';
22
- import * as i1$2 from '@progress/kendo-angular-toolbar';
23
- import { ToolBarToolComponent, ToolBarComponent, ToolBarButtonComponent, ToolBarButtonGroupComponent, ToolBarSeparatorComponent, ToolBarDropDownButtonComponent } from '@progress/kendo-angular-toolbar';
24
- import * as i1$1 from '@progress/kendo-angular-dialog';
25
- import { DialogContentBase, DialogContainerService, DialogService, WindowService, WindowContainerService } from '@progress/kendo-angular-dialog';
26
- import { TextBoxComponent, ColorPickerComponent } from '@progress/kendo-angular-inputs';
27
- import { LabelComponent } from '@progress/kendo-angular-label';
28
- import { ButtonComponent, DropDownButtonComponent } from '@progress/kendo-angular-buttons';
29
- import { TabStripComponent, TabStripTabComponent, TabTemplateDirective } from '@progress/kendo-angular-layout';
30
- import { ComboBoxComponent, DropDownListComponent, ItemTemplateDirective } from '@progress/kendo-angular-dropdowns';
31
- import { saveAs } from '@progress/kendo-file-saver';
32
- import { Workbook } from '@progress/kendo-ooxml';
33
-
34
- /**
35
- * @hidden
36
- */
37
- const packageMetadata = {
38
- name: '@progress/kendo-angular-spreadsheet',
39
- productName: 'Kendo UI for Angular',
40
- productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
41
- publishDate: 1729874289,
42
- version: '17.0.0-develop.21',
43
- 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',
44
- };
45
-
46
- let spreadsheetCounter = 0;
47
- /**
48
- * @hidden
49
- */
50
- class SpreadsheetService {
51
- constructor() {
52
- this.sheetsChanged = new Subject();
53
- this.onSheetsBarFocus = new Subject();
54
- this.activeSheetChanged = new Subject();
55
- this.selectionChanged = new Subject();
56
- spreadsheetCounter++;
57
- }
58
- set currentActiveSheet(value) {
59
- this._currentActiveSheet = value;
60
- }
61
- get currentActiveSheet() {
62
- return this._currentActiveSheet;
63
- }
64
- get activeSheet() {
65
- var _a;
66
- return (_a = this.spreadsheet.activeSheet()) === null || _a === void 0 ? void 0 : _a.name();
67
- }
68
- get formulaListId() {
69
- return `k-spreadsheet-${spreadsheetCounter}-formula-list`;
70
- }
71
- get tablistId() {
72
- return `k-spreadsheet-${spreadsheetCounter}-tablist`;
73
- }
74
- notifySheetsChange(actionType, sheetInfo) {
75
- const sheets = this.spreadsheet.sheets();
76
- this.sheetsChanged.next({ sheets, sheet: sheetInfo, actionType });
77
- }
78
- }
79
- SpreadsheetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
80
- SpreadsheetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetService });
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetService, decorators: [{
82
- type: Injectable
83
- }], ctorParameters: function () { return []; } });
84
-
85
- /**
86
- * @hidden
87
- */
88
- class SpreadsheetToolsService {
89
- constructor(ngZone) {
90
- this.ngZone = ngZone;
91
- this.stateChange = new EventEmitter();
92
- this.toolsFunctions = [
93
- 'bold',
94
- 'italic',
95
- 'underline',
96
- 'fontFamily',
97
- 'fontSize',
98
- 'color',
99
- 'background',
100
- 'textAlign',
101
- 'verticalAlign',
102
- 'wrap',
103
- 'gridLines',
104
- 'format'
105
- ];
106
- this._toolsState = {};
107
- this.updateTools = (e) => {
108
- this.ngZone.run(() => {
109
- const state = {};
110
- this.toolsFunctions.forEach(tool => {
111
- if (typeof e.range[tool] === 'function') {
112
- state[tool] = e.range[tool]();
113
- }
114
- else if (tool === 'gridLines') {
115
- state[tool] = e.range.sheet().showGridLines();
116
- }
117
- });
118
- if (this.toolsFunctions.some(k => state[k] !== this.toolsState[k])) {
119
- this.toolsState = state;
120
- this.stateChange.emit(state);
121
- }
122
- });
123
- };
124
- }
125
- set toolsState(state) {
126
- this._toolsState = state;
127
- }
128
- get toolsState() {
129
- return this._toolsState;
130
- }
131
- }
132
- SpreadsheetToolsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetToolsService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
133
- SpreadsheetToolsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetToolsService });
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetToolsService, decorators: [{
135
- type: Injectable
136
- }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { stateChange: [{
137
- type: Output
138
- }] } });
139
-
140
- /**
141
- * @hidden
142
- */
143
- class SpreadsheetLocalizationService extends LocalizationService {
144
- constructor(prefix, messageService, _rtl) {
145
- super(prefix, messageService, _rtl);
146
- }
147
- }
148
- SpreadsheetLocalizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetLocalizationService, deps: [{ token: L10N_PREFIX }, { token: i2.MessageService, optional: true }, { token: RTL, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
149
- SpreadsheetLocalizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetLocalizationService });
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetLocalizationService, decorators: [{
151
- type: Injectable
152
- }], ctorParameters: function () {
153
- return [{ type: undefined, decorators: [{
154
- type: Inject,
155
- args: [L10N_PREFIX]
156
- }] }, { type: i2.MessageService, decorators: [{
157
- type: Optional
158
- }] }, { type: undefined, decorators: [{
159
- type: Optional
160
- }, {
161
- type: Inject,
162
- args: [RTL]
163
- }] }];
164
- } });
165
-
166
- /**
167
- * @hidden
168
- */
169
- const mapToSheetDescriptor = (sheetsArray) => {
170
- return sheetsArray.map((sheet) => {
171
- return {
172
- activeCell: sheet.activeCell(),
173
- columns: sheet._columns,
174
- defaultCellStyle: sheet._defaultCellStyle,
175
- drawings: sheet._drawings,
176
- frozenColumns: sheet.frozenColumns,
177
- frozenRows: sheet.frozenRows,
178
- hyperlinks: sheet._hyperlinks,
179
- mergedCells: sheet.mergedCells,
180
- name: sheet.name(),
181
- rows: sheet._rows,
182
- selection: sheet.selection(),
183
- showGridLines: sheet.showGridLines,
184
- state: sheet.state()
185
- };
186
- });
187
- };
188
- /**
189
- * @hidden
190
- */
191
- const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
192
-
193
- /**
194
- * @hidden
195
- */
196
- class FormulaListComponent {
197
- constructor(element, spreadsheetService) {
198
- this.element = element;
199
- this.spreadsheetService = spreadsheetService;
200
- this.id = this.spreadsheetService.formulaListId;
201
- this.data = [];
202
- this.formulaFxIcon = formulaFxIcon;
203
- this.handleMouseDown = (ev) => {
204
- ev.preventDefault();
205
- };
206
- }
207
- }
208
- FormulaListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormulaListComponent, deps: [{ token: i0.ElementRef }, { token: SpreadsheetService }], target: i0.ɵɵFactoryTarget.Component });
209
- FormulaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FormulaListComponent, isStandalone: true, selector: "kendo-spreadsheet-formula-list", inputs: { maxHeight: "maxHeight", data: "data", itemClick: "itemClick" }, host: { properties: { "attr.id": "this.id" } }, ngImport: i0, template: `
210
- <ul #ulRef
211
- class="k-spreadsheet-formula-list k-list-ul k-list-md k-group k-reset"
212
- role="menu"
213
- [style.overflowY]="'auto'"
214
- [style.maxHeight]="maxHeight"
215
- [kendoEventsOutsideAngular]="{mousedown: handleMouseDown}">
216
- <li *ngFor="let item of data"
217
- (click)="itemClick(item.text)"
218
- class="k-list-item"
219
- role="menuitem">
220
- <kendo-icon-wrapper
221
- [svgIcon]="formulaFxIcon"
222
- name="formula-fx"
223
- ></kendo-icon-wrapper>
224
- <span className="k-list-item-text">{{item.text}}</span>
225
- </li>
226
- </ul>
227
- `, isInline: true, dependencies: [{ kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormulaListComponent, decorators: [{
229
- type: Component,
230
- args: [{
231
- selector: 'kendo-spreadsheet-formula-list',
232
- template: `
233
- <ul #ulRef
234
- class="k-spreadsheet-formula-list k-list-ul k-list-md k-group k-reset"
235
- role="menu"
236
- [style.overflowY]="'auto'"
237
- [style.maxHeight]="maxHeight"
238
- [kendoEventsOutsideAngular]="{mousedown: handleMouseDown}">
239
- <li *ngFor="let item of data"
240
- (click)="itemClick(item.text)"
241
- class="k-list-item"
242
- role="menuitem">
243
- <kendo-icon-wrapper
244
- [svgIcon]="formulaFxIcon"
245
- name="formula-fx"
246
- ></kendo-icon-wrapper>
247
- <span className="k-list-item-text">{{item.text}}</span>
248
- </li>
249
- </ul>
250
- `,
251
- standalone: true,
252
- imports: [EventsOutsideAngularDirective, NgFor, IconWrapperComponent]
253
- }]
254
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: SpreadsheetService }]; }, propDecorators: { id: [{
255
- type: HostBinding,
256
- args: ['attr.id']
257
- }], maxHeight: [{
258
- type: Input
259
- }], data: [{
260
- type: Input
261
- }], itemClick: [{
262
- type: Input
263
- }] } });
264
-
265
- /**
266
- * @hidden
267
- */
268
- class FormulaInputDirective {
269
- constructor(element, popupService, spreadsheetService, localization) {
270
- this.element = element;
271
- this.popupService = popupService;
272
- this.spreadsheetService = spreadsheetService;
273
- this.localization = localization;
274
- this.hostClasses = true;
275
- this.role = 'combobox';
276
- this.ariaHasPopup = 'menu';
277
- this.ariaExpanded = 'false';
278
- this.focusedItem = () => { var _a; return (_a = this.list) === null || _a === void 0 ? void 0 : _a.element.nativeElement.querySelector('.k-focus'); };
279
- this.unfocus = () => {
280
- const focused = this.focusedItem();
281
- if (focused) {
282
- focused.classList.remove('k-focus');
283
- }
284
- };
285
- this.focusNext = (dir) => {
286
- var _a;
287
- const element = (_a = this.list) === null || _a === void 0 ? void 0 : _a.element.nativeElement.firstElementChild;
288
- const items = Array.from((element && element.children) || []);
289
- const focused = this.focusedItem();
290
- let next;
291
- if (focused) {
292
- const index = items.indexOf(focused);
293
- focused.classList.remove('k-focus');
294
- next = items[index + dir] ? items[index + dir] : (dir === 1 ? items[0] : items[items.length - 1]);
295
- }
296
- else {
297
- next = (dir === 1 ? items[0] : items[items.length - 1]);
298
- }
299
- if (next) {
300
- next.classList.add('k-focus');
301
- const { offsetTop, offsetHeight, parentElement } = next;
302
- if (dir > 0) {
303
- if (offsetTop + offsetHeight >= parentElement.offsetHeight + parentElement.scrollTop) {
304
- parentElement.scrollTop = Math.min(parentElement.scrollTop + offsetHeight, parentElement.scrollHeight - parentElement.offsetHeight);
305
- }
306
- if (next === items[0]) {
307
- next.scrollIntoView();
308
- }
309
- }
310
- else {
311
- if (offsetTop <= parentElement.scrollTop) {
312
- parentElement.scrollTop = Math.max(parentElement.scrollTop - offsetHeight, 0);
313
- }
314
- if (next === items[items.length - 1]) {
315
- next.scrollIntoView();
316
- }
317
- }
318
- }
319
- };
320
- }
321
- get title() {
322
- return this.localization.get('formulaInput');
323
- }
324
- get ariaControls() {
325
- return this.ariaExpanded === 'true' ? this.spreadsheetService.formulaListId : null;
326
- }
327
- get listElement() {
328
- var _a;
329
- return (_a = this.list) === null || _a === void 0 ? void 0 : _a.element.nativeElement.firstElementChild;
330
- }
331
- get current() {
332
- var _a;
333
- return {
334
- element: this.element.nativeElement,
335
- list: {
336
- element: (_a = this.list) === null || _a === void 0 ? void 0 : _a.element.nativeElement,
337
- data: (d) => {
338
- if (d) {
339
- this.data = d;
340
- this.list && (this.list.data = d);
341
- }
342
- else {
343
- return this.data;
344
- }
345
- },
346
- itemClick: (handler) => {
347
- this.handler = handler;
348
- },
349
- value: () => { return {}; },
350
- focus: () => {
351
- var _a;
352
- const items = Array.from(((_a = this.listElement) === null || _a === void 0 ? void 0 : _a.children) || []);
353
- return items.indexOf(this.focusedItem());
354
- },
355
- focusNext: () => this.focusNext(1),
356
- focusPrev: () => this.focusNext(-1),
357
- focusFirst: () => {
358
- const list = this.listElement;
359
- if (list && list.children.item(0)) {
360
- this.unfocus();
361
- list.children.item(0).classList.add('k-focus');
362
- }
363
- },
364
- focusLast: () => {
365
- const list = this.listElement;
366
- if (list && list.children.length) {
367
- this.unfocus();
368
- list.children.item(list.children.length - 1).classList.add('k-focus');
369
- }
370
- },
371
- },
372
- popup: {
373
- open: () => {
374
- this.popupRef && this.popupRef.close();
375
- this.popupRef = null;
376
- this.popupRef = this.popupService.open({
377
- anchor: this.element,
378
- content: FormulaListComponent,
379
- animate: { direction: 'down', duration: 100 }
380
- });
381
- const list = this.popupRef.content.instance;
382
- this.list = list;
383
- list.data = this.data;
384
- list.itemClick = this.handler;
385
- list.maxHeight = this.formulaListMaxHeight;
386
- this.ariaExpanded = 'true';
387
- },
388
- close: () => {
389
- this.popupRef && this.popupRef.close();
390
- this.popupRef = null;
391
- this.ariaExpanded = 'false';
392
- },
393
- position: () => {
394
- // contentKey++;
395
- },
396
- visible: () => {
397
- return this.popupRef;
398
- }
399
- }
400
- };
401
- }
402
- }
403
- FormulaInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormulaInputDirective, deps: [{ token: i0.ElementRef }, { token: i1.PopupService }, { token: SpreadsheetService }, { token: SpreadsheetLocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
404
- FormulaInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FormulaInputDirective, isStandalone: true, selector: "[kendoSpreadsheetFormulaInput]", inputs: { formulaListMaxHeight: "formulaListMaxHeight" }, host: { properties: { "class.k-spreadsheet-formula-input": "this.hostClasses", "attr.title": "this.title", "attr.role": "this.role", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-controls": "this.ariaControls" } }, ngImport: i0 });
405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormulaInputDirective, decorators: [{
406
- type: Directive,
407
- args: [{
408
- selector: '[kendoSpreadsheetFormulaInput]',
409
- standalone: true
410
- }]
411
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PopupService }, { type: SpreadsheetService }, { type: SpreadsheetLocalizationService }]; }, propDecorators: { hostClasses: [{
412
- type: HostBinding,
413
- args: ['class.k-spreadsheet-formula-input']
414
- }], title: [{
415
- type: HostBinding,
416
- args: ['attr.title']
417
- }], role: [{
418
- type: HostBinding,
419
- args: ['attr.role']
420
- }], ariaHasPopup: [{
421
- type: HostBinding,
422
- args: ['attr.aria-haspopup']
423
- }], ariaExpanded: [{
424
- type: HostBinding,
425
- args: ['attr.aria-expanded']
426
- }], ariaControls: [{
427
- type: HostBinding,
428
- args: ['attr.aria-controls']
429
- }], formulaListMaxHeight: [{
430
- type: Input
431
- }] } });
432
-
433
- /**
434
- * @hidden
435
- */
436
- const getSheetActions = (items, item) => {
437
- const visibleItems = items.filter(item => item.state === 'visible');
438
- const itemIndex = item ? visibleItems.findIndex(i => i === item) : 0;
439
- return [{
440
- messageKey: 'sheetDelete',
441
- icon: 'trash',
442
- svgIcon: trashIcon,
443
- commandName: 'delete',
444
- dialogButton: 'dialogDelete',
445
- disabled: visibleItems.length === 1
446
- }, {
447
- messageKey: 'sheetDuplicate',
448
- icon: 'copy',
449
- svgIcon: copyIcon,
450
- commandName: 'copy'
451
- }, {
452
- messageKey: 'sheetRename',
453
- icon: 'pencil',
454
- svgIcon: pencilIcon,
455
- commandName: 'rename',
456
- dialogButton: 'dialogRename'
457
- }, {
458
- messageKey: 'sheetHide',
459
- icon: 'eye-slash',
460
- svgIcon: eyeSlashIcon,
461
- commandName: 'hide',
462
- disabled: visibleItems.length === 1
463
- }, {
464
- messageKey: 'sheetMoveRight',
465
- icon: 'arrow-right',
466
- svgIcon: arrowRightIcon,
467
- commandName: 'move',
468
- disabled: visibleItems.length === 1 || itemIndex === visibleItems.length - 1
469
- }, {
470
- messageKey: 'sheetMoveLeft',
471
- icon: 'arrow-left',
472
- svgIcon: arrowLeftIcon,
473
- commandName: 'move',
474
- disabled: visibleItems.length === 1 || itemIndex === 0
475
- }];
476
- };
477
-
478
- /**
479
- * @hidden
480
- */
481
- class ErrorHandlingService {
482
- constructor(spreadsheetService, localization, dialogService) {
483
- this.spreadsheetService = spreadsheetService;
484
- this.localization = localization;
485
- this.dialogService = dialogService;
486
- this.sheetsChanged = new Subject();
487
- this.activeSheetChanged = new Subject();
488
- this.selectionChanged = new Subject();
489
- }
490
- set currentActiveSheet(value) {
491
- this._currentActiveSheet = value;
492
- }
493
- get currentActiveSheet() {
494
- return this._currentActiveSheet;
495
- }
496
- get activeSheet() {
497
- var _a;
498
- return (_a = this.spreadsheet.activeSheet()) === null || _a === void 0 ? void 0 : _a.name();
499
- }
500
- notifySheetsChange(actionType, sheetInfo) {
501
- const sheets = this.spreadsheet.sheets();
502
- this.sheetsChanged.next({ sheets, sheet: sheetInfo, actionType });
503
- }
504
- handleErrorMessage(messageData) {
505
- this.openDialog(messageData);
506
- }
507
- openDialog(messageData) {
508
- var _a;
509
- let dialogContent;
510
- if (messageData.name === 'message') {
511
- const localizationMsg = this.messageFor('invalidNameError');
512
- let inputValue = messageData.text.split(' ').pop();
513
- if (messageData.text.startsWith('Parse')) {
514
- inputValue = inputValue.substring(0, inputValue.length - 1);
515
- }
516
- dialogContent = replaceMessagePlaceholder(localizationMsg, 'inputValue', inputValue);
517
- }
518
- else {
519
- dialogContent = this.messageFor(messageData.name);
520
- }
521
- const dialogSettings = {
522
- appendTo: this.spreadsheetService.dialogContainer,
523
- title: this.messageFor('dialogError'),
524
- content: dialogContent,
525
- actions: [{
526
- text: this.messageFor('dialogOk'),
527
- themeColor: 'primary'
528
- }],
529
- width: 400,
530
- actionsLayout: 'start'
531
- };
532
- const dialog = this.dialogService.open(dialogSettings);
533
- const dialogInstance = (_a = dialog.dialog) === null || _a === void 0 ? void 0 : _a.instance;
534
- dialogInstance.action.pipe(take(1)).subscribe((event) => {
535
- if (event.text === this.messageFor('dialogOk')) {
536
- messageData.close();
537
- }
538
- });
539
- dialogInstance.close.pipe(take(1)).subscribe(() => {
540
- messageData.close();
541
- });
542
- }
543
- messageFor(text) {
544
- return this.localization.get(text);
545
- }
546
- }
547
- ErrorHandlingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ErrorHandlingService, deps: [{ token: SpreadsheetService }, { token: i2.LocalizationService }, { token: i1$1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
548
- ErrorHandlingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ErrorHandlingService });
549
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ErrorHandlingService, decorators: [{
550
- type: Injectable
551
- }], ctorParameters: function () { return [{ type: SpreadsheetService }, { type: i2.LocalizationService }, { type: i1$1.DialogService }]; } });
552
-
553
- /**
554
- * @hidden
555
- */
556
- const commandIcons = {
557
- alignCenter: 'align-center',
558
- alignJustify: 'align-justify',
559
- alignLeft: 'align-left',
560
- alignRight: 'align-right',
561
- alignTop: 'align-top',
562
- alignMiddle: 'align-middle',
563
- alignBottom: 'align-bottom',
564
- align: 'align-left',
565
- alignHorizontal: 'align-left',
566
- alignVertical: 'align-middle',
567
- background: 'droplet',
568
- bold: 'bold',
569
- color: 'foreground-color',
570
- italic: 'italic',
571
- redo: 'arrow-rotate-cw',
572
- underline: 'underline',
573
- undo: 'arrow-rotate-ccw',
574
- wrap: 'text-wrap',
575
- addColumnLeft: 'table-column-insert-left',
576
- addColumnRight: 'table-column-insert-right',
577
- addRowAbove: 'table-row-insert-above',
578
- addRowBelow: 'table-row-insert-below',
579
- deleteRow: 'table-row-delete',
580
- deleteColumn: 'table-column-delete',
581
- gridLines: 'borders-none',
582
- folderOpen: 'folder-open',
583
- download: 'download',
584
- format: 'custom-format',
585
- fontSize: 'font-size',
586
- fontFamily: 'font-family',
587
- merge: 'cells-merge',
588
- mergeAll: 'cells-merge',
589
- mergeHorizontally: 'cells-merge-horizontally',
590
- mergeVertically: 'cells-merge-vertically',
591
- unmerge: 'table-unmerge',
592
- insertLink: 'hyperlink',
593
- increaseFontSize: 'font-grow',
594
- decreaseFontSize: 'font-shrink',
595
- increaseDecimal: 'decimal-increase',
596
- decreaseDecimal: 'decimal-decrease',
597
- copy: 'copy',
598
- cut: 'cut',
599
- paste: 'clipboard',
600
- hideRow: 'eye-slash',
601
- unhideRow: 'eye',
602
- hideColumn: 'eye-slash',
603
- unhideColumn: 'eye'
604
- };
605
- /**
606
- * @hidden
607
- */
608
- const commandSVGIcons = {
609
- alignCenter: alignCenterIcon,
610
- alignJustify: alignJustifyIcon,
611
- alignLeft: alignLeftIcon,
612
- alignRight: alignRightIcon,
613
- alignTop: alignTopIcon,
614
- alignMiddle: alignMiddleIcon,
615
- alignBottom: alignBottomIcon,
616
- align: alignLeftIcon,
617
- alignHorizontal: alignLeftIcon,
618
- alignVertical: alignMiddleIcon,
619
- background: dropletIcon,
620
- bold: boldIcon,
621
- color: foregroundColorIcon,
622
- italic: italicIcon,
623
- redo: arrowRotateCwIcon,
624
- underline: underlineIcon,
625
- undo: arrowRotateCcwIcon,
626
- wrap: textWrapIcon,
627
- addColumnLeft: tableColumnInsertLeftIcon,
628
- addColumnRight: tableColumnInsertRightIcon,
629
- addRowAbove: tableRowInsertAboveIcon,
630
- addRowBelow: tableRowInsertBelowIcon,
631
- deleteRow: tableRowDeleteIcon,
632
- deleteColumn: tableColumnDeleteIcon,
633
- gridLines: bordersNoneIcon,
634
- folderOpen: folderOpenIcon,
635
- download: downloadIcon,
636
- format: customFormatIcon,
637
- fontSize: fontSizeIcon,
638
- fontFamily: fontFamilyIcon,
639
- merge: cellsMergeIcon,
640
- mergeAll: cellsMergeIcon,
641
- mergeHorizontally: cellsMergeHorizontallyIcon,
642
- mergeVertically: cellsMergeVerticallyIcon,
643
- unmerge: tableUnmergeIcon,
644
- insertLink: linkIcon,
645
- increaseFontSize: fontGrowIcon,
646
- decreaseFontSize: fontShrinkIcon,
647
- decreaseDecimal: decimalDecreaseIcon,
648
- increaseDecimal: decimalIncreaseIcon,
649
- copy: copyIcon,
650
- cut: cutIcon,
651
- paste: clipboardIcon,
652
- hideRow: eyeSlashIcon,
653
- unhideRow: eyeIcon,
654
- hideColumn: eyeSlashIcon,
655
- unhideColumn: eyeIcon
656
- };
657
-
658
- /**
659
- * @hidden
660
- */
661
- class InsertLinkDialogComponent extends DialogContentBase {
662
- constructor(dialog) {
663
- super(dialog);
664
- this.dialog = dialog;
665
- this.urlLink = '';
666
- }
667
- setData(args) {
668
- this.urlLink = args.link;
669
- }
670
- }
671
- InsertLinkDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InsertLinkDialogComponent, deps: [{ token: i1$1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
672
- InsertLinkDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: InsertLinkDialogComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
673
- <form class="k-form k-form-md" method="dialog">
674
- <div class="k-form-field">
675
- <kendo-label [for]="textbox" text="URL"></kendo-label>
676
- <kendo-textbox #textbox
677
- [(value)]="urlLink">
678
- </kendo-textbox>
679
- </div>
680
- </form>
681
- `, isInline: true, dependencies: [{ kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }] });
682
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InsertLinkDialogComponent, decorators: [{
683
- type: Component,
684
- args: [{
685
- template: `
686
- <form class="k-form k-form-md" method="dialog">
687
- <div class="k-form-field">
688
- <kendo-label [for]="textbox" text="URL"></kendo-label>
689
- <kendo-textbox #textbox
690
- [(value)]="urlLink">
691
- </kendo-textbox>
692
- </div>
693
- </form>
694
- `,
695
- standalone: true,
696
- imports: [LabelComponent, TextBoxComponent]
697
- }]
698
- }], ctorParameters: function () { return [{ type: i1$1.DialogRef }]; } });
699
-
700
- /**
701
- * @hidden
702
- */
703
- class ActionDialogComponent extends DialogContentBase {
704
- constructor(dialog) {
705
- super(dialog);
706
- this.dialog = dialog;
707
- }
708
- setData(args) {
709
- this.value = args.value;
710
- this.tabindex = args.tabindex;
711
- this.commandName = args.commandName;
712
- }
713
- }
714
- ActionDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ActionDialogComponent, deps: [{ token: i1$1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
715
- ActionDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ActionDialogComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
716
- <ng-container *ngIf="commandName === 'delete'">
717
- <p>The deleted sheet data will be lost.</p>
718
- <p>Are you sure you want to proceed?</p>
719
- </ng-container>
720
-
721
- <form class="k-form k-form-md" *ngIf="commandName === 'rename'" method="dialog">
722
- <div class="k-form-field">
723
- <kendo-label [for]="textbox" text="Rename sheet"></kendo-label>
724
- <div class="k-form-field-wrap">
725
- <kendo-textbox #textbox
726
- autocomplete="off"
727
- placeholder="Sheet name"
728
- [(value)]="value">
729
- </kendo-textbox>
730
- </div>
731
- </div>
732
- </form>
733
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }] });
734
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ActionDialogComponent, decorators: [{
735
- type: Component,
736
- args: [{
737
- template: `
738
- <ng-container *ngIf="commandName === 'delete'">
739
- <p>The deleted sheet data will be lost.</p>
740
- <p>Are you sure you want to proceed?</p>
741
- </ng-container>
742
-
743
- <form class="k-form k-form-md" *ngIf="commandName === 'rename'" method="dialog">
744
- <div class="k-form-field">
745
- <kendo-label [for]="textbox" text="Rename sheet"></kendo-label>
746
- <div class="k-form-field-wrap">
747
- <kendo-textbox #textbox
748
- autocomplete="off"
749
- placeholder="Sheet name"
750
- [(value)]="value">
751
- </kendo-textbox>
752
- </div>
753
- </div>
754
- </form>
755
- `,
756
- standalone: true,
757
- imports: [NgIf, LabelComponent, TextBoxComponent]
758
- }]
759
- }], ctorParameters: function () { return [{ type: i1$1.DialogRef }]; } });
760
-
761
- /**
762
- * @hidden
763
- */
764
- class SheetsBarComponent {
765
- constructor(spreadsheetService, element, renderer, localization, dialogService, ngZone) {
766
- this.spreadsheetService = spreadsheetService;
767
- this.element = element;
768
- this.renderer = renderer;
769
- this.localization = localization;
770
- this.dialogService = dialogService;
771
- this.ngZone = ngZone;
772
- this.hostClasses = true;
773
- this.subs = new Subscription();
774
- this.plusIcon = plusIcon;
775
- this.menuIcon = menuIcon;
776
- this.caretAltDownIcon = caretAltDownIcon;
777
- this.caretAltLeftIcon = caretAltLeftIcon;
778
- this.caretAltRightIcon = caretAltRightIcon;
779
- this.selected = false;
780
- this.sheetsMenuList = [];
781
- this.openedDdb = null;
782
- this.hiddenStateIcons = {
783
- hidden: 'eye-slash',
784
- visible: 'eye'
785
- };
786
- this.hiddenStateSVGIcons = {
787
- hidden: eyeSlashIcon,
788
- visible: eyeIcon
789
- };
790
- this.onAddClick = () => {
791
- if (this.spreadsheetService.spreadsheet) {
792
- this.spreadsheetService.spreadsheet.view.sheetsbar.onAddSelect();
793
- this.notifySheetsChange();
794
- }
795
- };
796
- this.actionsCallback = {
797
- copy: (sheetInfo) => {
798
- let copies = 0;
799
- const regex = this.getCopyRegex(sheetInfo.text);
800
- this.sheets.forEach(sheet => {
801
- const isPresent = regex.test(sheet.text);
802
- if (isPresent) {
803
- copies += 1;
804
- }
805
- });
806
- const sheetToCopy = this.spreadsheetService.spreadsheet.sheets().find(s => s.name() === sheetInfo.text);
807
- const newName = `${sheetInfo.text} (${copies + 1})`;
808
- this.spreadsheetService.spreadsheet.insertSheet({ data: Object.assign(Object.assign({}, sheetToCopy.toJSON()), { name: newName }), index: sheetInfo.index + 1 });
809
- this.selectSheet(newName);
810
- },
811
- move: (sheetInfo, itemKey) => {
812
- const isMoveRight = itemKey === 'sheetMoveRight';
813
- let oldIndex = -1;
814
- let newIndex = -1;
815
- const sheets = this.spreadsheetService.spreadsheet.sheets();
816
- if (isMoveRight) {
817
- for (let i = 0; i < sheets.length; i++) {
818
- if (sheets[i].name() === sheetInfo.text) {
819
- oldIndex = i;
820
- }
821
- if (oldIndex > -1 && i > oldIndex && sheets[i]._state() === 'visible') {
822
- newIndex = i;
823
- break;
824
- }
825
- }
826
- }
827
- else {
828
- for (let i = sheets.length - 1; i >= 0; i--) {
829
- if (sheets[i].name() === sheetInfo.text) {
830
- oldIndex = i;
831
- }
832
- if (oldIndex > -1 && (i < oldIndex) && sheets[i]._state() === 'visible') {
833
- newIndex = i;
834
- break;
835
- }
836
- }
837
- }
838
- const sheetsBar = this.spreadsheetService.spreadsheet.view.sheetsbar;
839
- sheetsBar.onSheetReorderEnd({ oldIndex, newIndex });
840
- this.selectSheet(sheetInfo.text);
841
- this.notifySheetsChange();
842
- },
843
- hide: (sheet) => {
844
- sheet.state = 'hidden';
845
- const sheets = this.spreadsheetService.spreadsheet.sheets();
846
- const sheetIndex = sheets.findIndex(s => s.name() === sheet.text);
847
- sheets[sheetIndex]._state('hidden');
848
- const newSelectedIndex = sheetIndex < sheets.length - 1 ? sheetIndex + 1 : 0;
849
- const sheetToSelect = sheets[newSelectedIndex].name();
850
- this.selectSheet(sheetToSelect);
851
- this.notifySheetsChange();
852
- }
853
- };
854
- this.subs.add(spreadsheetService.onSheetsBarFocus.subscribe(() => ngZone.run(() => this.tabstrip.selectTab(this.sheets.findIndex(sh => sh.text === spreadsheetService.currentActiveSheet)))));
855
- }
856
- get activeSheet() {
857
- var _a, _b;
858
- return (_b = (_a = this.spreadsheetService.spreadsheet) === null || _a === void 0 ? void 0 : _a.activeSheet()) === null || _b === void 0 ? void 0 : _b.name();
859
- }
860
- get tablistId() {
861
- return this.spreadsheetService.tablistId;
862
- }
863
- ngAfterViewInit() {
864
- if (!isDocumentAvailable() || !this.element.nativeElement) {
865
- return;
866
- }
867
- const prevBtn = this.element.nativeElement.querySelector('.k-tabstrip-prev');
868
- const nextBtn = this.element.nativeElement.querySelector('.k-tabstrip-next');
869
- const tablist = this.element.nativeElement.querySelector('.k-tabstrip-items');
870
- this.renderer.addClass(prevBtn, 'k-order-1');
871
- this.renderer.addClass(nextBtn, 'k-order-2');
872
- this.renderer.setAttribute(tablist, 'id', this.tablistId);
873
- this.tabListSub = this.renderer.listen(tablist, 'keydown', this.onTabListKeyDown.bind(this));
874
- }
875
- ngOnChanges(changes) {
876
- var _a, _b;
877
- if (changes['sheets']) {
878
- this.sheetsMenuList = (_a = this.sheets) === null || _a === void 0 ? void 0 : _a.map(sheet => ({
879
- text: sheet.text,
880
- icon: this.hiddenStateIcons[sheet.state],
881
- svgIcon: this.hiddenStateSVGIcons[sheet.state]
882
- }));
883
- this.sheets = (_b = changes['sheets'].currentValue) === null || _b === void 0 ? void 0 : _b.map((sheet, _, items) => (Object.assign(Object.assign({}, sheet), { sheetActions: getSheetActions(items, sheet)
884
- .map(item => (Object.assign(Object.assign({}, item), { text: this.messageFor(item.messageKey) }))) })));
885
- }
886
- }
887
- ngOnDestroy() {
888
- if (this.tabListSub) {
889
- this.tabListSub();
890
- }
891
- this.subs.unsubscribe();
892
- }
893
- onTabSelect(ev) {
894
- if (ev.title !== this.activeSheet) {
895
- this.selectSheet(ev.title);
896
- }
897
- }
898
- onOpen(ddb) {
899
- if (isPresent(this.openedDdb) && this.openedDdb !== ddb) {
900
- this.openedDdb.toggle(false);
901
- }
902
- this.openedDdb = ddb;
903
- }
904
- onClose() {
905
- this.openedDdb = null;
906
- const activeTabIdx = this.sheets.findIndex(sheet => sheet.active);
907
- this.tabstrip.selectTab(activeTabIdx);
908
- }
909
- onActionClick(dataItem, sheet) {
910
- if (dataItem.disabled) {
911
- return;
912
- }
913
- if (dataItem.commandName === 'delete' || dataItem.commandName === 'rename') {
914
- this.openDialog(dataItem, sheet);
915
- }
916
- else {
917
- this.actionsCallback[dataItem.commandName](sheet, dataItem.messageKey);
918
- }
919
- }
920
- onMenuItemClick(item) {
921
- const sheet = this.sheets.find(s => s.text === item.text);
922
- sheet.state = 'visible';
923
- this.spreadsheetService.spreadsheet.sheets().find(sh => sh.name() === sheet.text)._state('visible');
924
- this.selectSheet(sheet.text);
925
- }
926
- messageFor(key) {
927
- return this.localization.get(key);
928
- }
929
- openDialog(dataItem, sheet) {
930
- const dialogSettings = {
931
- appendTo: this.spreadsheetService.dialogContainer,
932
- title: this.messageFor(dataItem.commandName),
933
- content: ActionDialogComponent,
934
- actions: [{
935
- text: this.messageFor(dataItem.dialogButton),
936
- themeColor: 'primary'
937
- }, {
938
- text: this.messageFor('dialogCancel')
939
- }],
940
- actionsLayout: 'stretched',
941
- autoFocusedElement: '.k-textbox .k-input-inner, .k-button-solid-primary'
942
- };
943
- const dialog = this.dialogService.open(dialogSettings);
944
- const dialogInstance = dialog.dialog.instance;
945
- const dialogContent = dialog.content.instance;
946
- dialogInstance.action.pipe(take(1)).subscribe((event) => {
947
- if (event.text === this.messageFor(dataItem.dialogButton)) {
948
- const sheetsBar = this.spreadsheetService.spreadsheet.view.sheetsbar;
949
- if (sheetsBar) {
950
- const allSheets = this.spreadsheetService.spreadsheet.sheets();
951
- const sheetIndex = allSheets.findIndex(s => s.name() === sheet.text);
952
- dataItem.commandName === 'delete' ? sheetsBar.onSheetRemove(sheet.text) : sheetsBar.onSheetRename(dialogContent.value, sheetIndex);
953
- this.notifySheetsChange();
954
- }
955
- }
956
- });
957
- dialogContent.setData({
958
- value: sheet.text,
959
- tabindex: -1,
960
- commandName: dataItem.commandName
961
- });
962
- }
963
- getCopyRegex(sheetName) {
964
- const newName = sheetName.replaceAll('(', '\\(').replaceAll(')', '\\)');
965
- const st = `(${newName})\\s?\\(`;
966
- return new RegExp(st, 's');
967
- }
968
- selectSheet(sheetName) {
969
- const spreadsheetSheet = this.spreadsheetService.spreadsheet.sheets().find(s => s.name() === sheetName);
970
- this.spreadsheetService.spreadsheet.activeSheet(spreadsheetSheet);
971
- this.spreadsheetService.currentActiveSheet = sheetName;
972
- this.spreadsheetService.activeSheetChanged.next(spreadsheetSheet);
973
- this.notifySheetsChange();
974
- }
975
- onTabListKeyDown(ev) {
976
- const buttonEl = ev.target.querySelector('kendo-dropdownbutton');
977
- const index = Array.from(this.actionDdbRefs).findIndex(el => el.nativeElement === buttonEl);
978
- const ddb = Array.from(this.actionDdbs)[index];
979
- if (!ddb) {
980
- return;
981
- }
982
- const altKey = ev.altKey;
983
- const arrowDown = ev.keyCode === Keys.ArrowDown;
984
- const shouldOpenDdb = altKey && arrowDown && !ddb.isOpen;
985
- if (shouldOpenDdb) {
986
- ev.preventDefault();
987
- ddb.togglePopupVisibility();
988
- }
989
- }
990
- notifySheetsChange() {
991
- this.ngZone.run(() => {
992
- var _a;
993
- const newSheets = this.spreadsheetService.spreadsheet.sheets();
994
- const sheetDesc = mapToSheetDescriptor(newSheets);
995
- this.sheets = sheetDesc
996
- .flatMap((item, index, items) => item.state === 'visible' ? [Object.assign(Object.assign({}, item), { inEdit: false, first: index === 0, last: index === items.length - 1, text: item.name, active: (item.name === this.activeSheet) || items.length === 1, index, sheetActions: getSheetActions(items, item)
997
- .map(item => (Object.assign(Object.assign({}, item), { text: this.messageFor(item.messageKey) }))) })] : []);
998
- this.sheetsMenuList = (_a = this.sheets) === null || _a === void 0 ? void 0 : _a.map(sheet => ({
999
- text: sheet.text,
1000
- icon: this.hiddenStateIcons[sheet.state],
1001
- svgIcon: this.hiddenStateSVGIcons[sheet.state]
1002
- }));
1003
- });
1004
- this.ngZone.onStable.pipe(take(1)).subscribe(() => this.spreadsheetService.spreadsheet.view.clipboard.focus());
1005
- }
1006
- }
1007
- SheetsBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SheetsBarComponent, deps: [{ token: SpreadsheetService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: SpreadsheetLocalizationService }, { token: i1$1.DialogService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1008
- SheetsBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SheetsBarComponent, isStandalone: true, selector: "[kendoSpreadsheetSheetsBar]", inputs: { sheets: "sheets", sheetDescriptors: "sheetDescriptors" }, host: { properties: { "class.k-spreadsheet-sheets-bar": "this.hostClasses" } }, viewQueries: [{ propertyName: "addButton", first: true, predicate: ["addButton"], descendants: true }, { propertyName: "menuButton", first: true, predicate: ["menuButton"], descendants: true }, { propertyName: "tabstrip", first: true, predicate: ["tabstrip"], descendants: true }, { propertyName: "actionDdbs", predicate: ["sheetDdb"], descendants: true }, { propertyName: "actionDdbRefs", predicate: ["sheetDdb"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: `
1009
- <button kendoButton #addButton
1010
- [title]="messageFor('addSheet')"
1011
- type="button"
1012
- fillMode="flat"
1013
- class="k-spreadsheet-sheet-add"
1014
- icon="plus"
1015
- [svgIcon]="plusIcon"
1016
- [kendoEventsOutsideAngular]="{click: onAddClick}"
1017
- [attr.aria-controls]="tablistId">
1018
- </button>
1019
- <kendo-dropdownbutton #menuButton
1020
- fillMode="flat"
1021
- buttonClass="k-spreadsheet-sheets-menu"
1022
- icon="menu"
1023
- [svgIcon]="menuIcon"
1024
- [data]="sheetsMenuList"
1025
- (itemClick)="onMenuItemClick($event)"
1026
- (open)="onOpen(menuButton)"
1027
- [buttonAttributes]="{title: messageFor('sheetsMenu')}"
1028
- [attr.aria-controls]="tablistId">
1029
- </kendo-dropdownbutton>
1030
- <kendo-tabstrip #tabstrip
1031
- [tabPosition]="'bottom'"
1032
- [showContentArea]="false"
1033
- [scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
1034
- class="k-spreadsheet-sheets"
1035
- (tabSelect)="onTabSelect($event)">
1036
- <ng-container *ngFor="let sheet of sheets">
1037
- <kendo-tabstrip-tab
1038
- *ngIf="sheet.state === 'visible'"
1039
- [title]="sheet.text"
1040
- [selected]="sheet.text === activeSheet">
1041
- <ng-template kendoTabTemplate>
1042
- <span class="k-link">
1043
- <span class="k-link-text">{{sheet.text}}</span>
1044
- </span>
1045
- <span class="k-item-actions">
1046
- <kendo-dropdownbutton #sheetDdb
1047
- fillMode="flat"
1048
- icon="caret-alt-down"
1049
- [svgIcon]="caretAltDownIcon"
1050
- buttonClass="k-menu-button"
1051
- [data]="sheet.sheetActions"
1052
- [buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
1053
- (open)="onOpen(sheetDdb)"
1054
- (close)="onClose()"
1055
- (click)="$event.stopPropagation()"
1056
- (itemClick)="onActionClick($event, sheet)">
1057
- </kendo-dropdownbutton>
1058
- </span>
1059
- </ng-template>
1060
- </kendo-tabstrip-tab>
1061
- </ng-container>
1062
- </kendo-tabstrip>
1063
- `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "component", type: TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: TabTemplateDirective, selector: "[kendoTabTemplate]" }] });
1064
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SheetsBarComponent, decorators: [{
1065
- type: Component,
1066
- args: [{
1067
- selector: '[kendoSpreadsheetSheetsBar]',
1068
- template: `
1069
- <button kendoButton #addButton
1070
- [title]="messageFor('addSheet')"
1071
- type="button"
1072
- fillMode="flat"
1073
- class="k-spreadsheet-sheet-add"
1074
- icon="plus"
1075
- [svgIcon]="plusIcon"
1076
- [kendoEventsOutsideAngular]="{click: onAddClick}"
1077
- [attr.aria-controls]="tablistId">
1078
- </button>
1079
- <kendo-dropdownbutton #menuButton
1080
- fillMode="flat"
1081
- buttonClass="k-spreadsheet-sheets-menu"
1082
- icon="menu"
1083
- [svgIcon]="menuIcon"
1084
- [data]="sheetsMenuList"
1085
- (itemClick)="onMenuItemClick($event)"
1086
- (open)="onOpen(menuButton)"
1087
- [buttonAttributes]="{title: messageFor('sheetsMenu')}"
1088
- [attr.aria-controls]="tablistId">
1089
- </kendo-dropdownbutton>
1090
- <kendo-tabstrip #tabstrip
1091
- [tabPosition]="'bottom'"
1092
- [showContentArea]="false"
1093
- [scrollable]="{prevButtonIcon: 'caret-alt-left', prevSVGButtonIcon: caretAltLeftIcon, nextButtonIcon: 'caret-alt-right', nextSVGButtonIcon: caretAltRightIcon}"
1094
- class="k-spreadsheet-sheets"
1095
- (tabSelect)="onTabSelect($event)">
1096
- <ng-container *ngFor="let sheet of sheets">
1097
- <kendo-tabstrip-tab
1098
- *ngIf="sheet.state === 'visible'"
1099
- [title]="sheet.text"
1100
- [selected]="sheet.text === activeSheet">
1101
- <ng-template kendoTabTemplate>
1102
- <span class="k-link">
1103
- <span class="k-link-text">{{sheet.text}}</span>
1104
- </span>
1105
- <span class="k-item-actions">
1106
- <kendo-dropdownbutton #sheetDdb
1107
- fillMode="flat"
1108
- icon="caret-alt-down"
1109
- [svgIcon]="caretAltDownIcon"
1110
- buttonClass="k-menu-button"
1111
- [data]="sheet.sheetActions"
1112
- [buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
1113
- (open)="onOpen(sheetDdb)"
1114
- (close)="onClose()"
1115
- (click)="$event.stopPropagation()"
1116
- (itemClick)="onActionClick($event, sheet)">
1117
- </kendo-dropdownbutton>
1118
- </span>
1119
- </ng-template>
1120
- </kendo-tabstrip-tab>
1121
- </ng-container>
1122
- </kendo-tabstrip>
1123
- `,
1124
- standalone: true,
1125
- imports: [ButtonComponent, EventsOutsideAngularDirective, DropDownButtonComponent, TabStripComponent, NgFor, NgIf, TabStripTabComponent, TabTemplateDirective]
1126
- }]
1127
- }], ctorParameters: function () { return [{ type: SpreadsheetService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: SpreadsheetLocalizationService }, { type: i1$1.DialogService }, { type: i0.NgZone }]; }, propDecorators: { hostClasses: [{
1128
- type: HostBinding,
1129
- args: ['class.k-spreadsheet-sheets-bar']
1130
- }], sheets: [{
1131
- type: Input
1132
- }], sheetDescriptors: [{
1133
- type: Input
1134
- }], addButton: [{
1135
- type: ViewChild,
1136
- args: ['addButton']
1137
- }], menuButton: [{
1138
- type: ViewChild,
1139
- args: ['menuButton']
1140
- }], tabstrip: [{
1141
- type: ViewChild,
1142
- args: ['tabstrip']
1143
- }], actionDdbs: [{
1144
- type: ViewChildren,
1145
- args: ['sheetDdb']
1146
- }], actionDdbRefs: [{
1147
- type: ViewChildren,
1148
- args: ['sheetDdb', { read: ElementRef }]
1149
- }] } });
1150
-
1151
- /**
1152
- * @hidden
1153
- */
1154
- class NameBoxComponent {
1155
- constructor(ngZone, host, localization, renderer) {
1156
- this.ngZone = ngZone;
1157
- this.host = host;
1158
- this.localization = localization;
1159
- this.renderer = renderer;
1160
- this.hostClass = true;
1161
- this.valueNormalizer = (text) => text.pipe(map((content) => ({ name: content })));
1162
- }
1163
- keyDownHandler() {
1164
- const editor = this.spreadsheetWidget.view.nameEditor;
1165
- if (editor) {
1166
- const name = this.inputElement.value;
1167
- editor.trigger('enter', { value: name });
1168
- }
1169
- }
1170
- ngAfterViewInit() {
1171
- this.renderer.setAttribute(this.inputElement, 'title', this.title);
1172
- this.renderer.setAttribute(this.inputElement, 'aria-label', this.title);
1173
- }
1174
- get inputElement() {
1175
- return this.host.nativeElement.querySelector('.k-input-inner');
1176
- }
1177
- get current() {
1178
- return {
1179
- value: (val) => {
1180
- if (val === undefined) {
1181
- const item = this.combobox && this.combobox.value;
1182
- return item ? (item.name || item) : item;
1183
- }
1184
- else {
1185
- this.ngZone.run(() => {
1186
- this.value = { name: val } || null;
1187
- });
1188
- }
1189
- }
1190
- };
1191
- }
1192
- get title() {
1193
- return this.localization.get('nameBox');
1194
- }
1195
- onSelectionChange(value) {
1196
- const editor = this.spreadsheetWidget.view.nameEditor;
1197
- if (editor && value) {
1198
- const name = value.name;
1199
- if (name !== this.value.name) {
1200
- editor.trigger('select', { name });
1201
- this.value = { name };
1202
- }
1203
- }
1204
- }
1205
- onOpen() {
1206
- const editor = this.spreadsheetWidget.view.nameEditor;
1207
- if (editor) {
1208
- this.data = editor.readData();
1209
- }
1210
- }
1211
- }
1212
- NameBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NameBoxComponent, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: SpreadsheetLocalizationService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
1213
- NameBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NameBoxComponent, isStandalone: true, 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: `
1214
- <kendo-combobox #combobox
1215
- [popupSettings]="{popupClass: 'k-spreadsheet-names-popup'}"
1216
- fillMode="flat"
1217
- [clearButton]="false"
1218
- textField="name"
1219
- valueField="name"
1220
- [data]="data"
1221
- [allowCustom]="true"
1222
- (selectionChange)="onSelectionChange($event)"
1223
- [value]="value"
1224
- (open)="onOpen()"
1225
- [valueNormalizer]="valueNormalizer"
1226
- [attr.title]="title"
1227
- ></kendo-combobox>
1228
- `, isInline: true, dependencies: [{ kind: "component", type: ComboBoxComponent, selector: "kendo-combobox", inputs: ["icon", "svgIcon", "inputAttributes", "showStickyHeader", "focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur", "escape"], exportAs: ["kendoComboBox"] }] });
1229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NameBoxComponent, decorators: [{
1230
- type: Component,
1231
- args: [{
1232
- selector: '[kendoSpreadsheetNameBox]',
1233
- template: `
1234
- <kendo-combobox #combobox
1235
- [popupSettings]="{popupClass: 'k-spreadsheet-names-popup'}"
1236
- fillMode="flat"
1237
- [clearButton]="false"
1238
- textField="name"
1239
- valueField="name"
1240
- [data]="data"
1241
- [allowCustom]="true"
1242
- (selectionChange)="onSelectionChange($event)"
1243
- [value]="value"
1244
- (open)="onOpen()"
1245
- [valueNormalizer]="valueNormalizer"
1246
- [attr.title]="title"
1247
- ></kendo-combobox>
1248
- `,
1249
- standalone: true,
1250
- imports: [ComboBoxComponent]
1251
- }]
1252
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: SpreadsheetLocalizationService }, { type: i0.Renderer2 }]; }, propDecorators: { hostClass: [{
1253
- type: HostBinding,
1254
- args: ['class.k-spreadsheet-name-editor']
1255
- }], keyDownHandler: [{
1256
- type: HostListener,
1257
- args: ['keydown.enter']
1258
- }], combobox: [{
1259
- type: ViewChild,
1260
- args: ['combobox']
1261
- }], data: [{
1262
- type: Input
1263
- }], spreadsheetWidget: [{
1264
- type: Input
1265
- }] } });
1266
-
1267
- const DEFAULT_FONT_FAMILY = 'Arial';
1268
- const DEFAULT_FONT_SIZE = 12;
1269
- /**
1270
- * @hidden
1271
- */
1272
- const DEFAULT_FONT_VALUES = {
1273
- fontSize: DEFAULT_FONT_SIZE,
1274
- fontFamily: DEFAULT_FONT_FAMILY
1275
- };
1276
- /**
1277
- * @hidden
1278
- */
1279
- const FONT_FAMILIES = ['Arial', 'Courier New', 'Georgia', 'Times New Roman', 'Trebuchet MS', 'Verdana'];
1280
- /**
1281
- * @hidden
1282
- */
1283
- const FONT_SIZES = [8, 9, 10, 11, 12, 13, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72];
1284
- /**
1285
- * @hidden
1286
- */
1287
- const FONT_DATA = {
1288
- fontFamily: FONT_FAMILIES,
1289
- fontSize: FONT_SIZES
1290
- };
1291
- /**
1292
- * @hidden
1293
- */
1294
- const FORMATS = [
1295
- { text: 'Automatic', value: null },
1296
- { text: 'Text', value: '@' },
1297
- { text: 'Number', value: '#,0.00' },
1298
- { text: 'Percent', value: '0.00%' },
1299
- { text: 'Financial', value: '_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)' },
1300
- { text: 'Currency', value: '$#,##0.00;[Red]$#,##0.00' },
1301
- { text: 'Date', value: 'm/d/yyyy' },
1302
- { text: 'Time', value: 'h:mm:ss AM/PM' },
1303
- { text: 'Date time', value: 'm/d/yyyy h:mm' },
1304
- { text: 'Duration', value: '[h]:mm:ss' }
1305
- ];
1306
- /**
1307
- * @hidden
1308
- */
1309
- const ALIGNS = [
1310
- { icon: commandIcons.alignLeft, svgIcon: commandSVGIcons.alignLeft, textKey: 'Align Left', commandName: 'textAlign', value: 'left', cssClass: '', commandId: 'alignLeft' },
1311
- { icon: commandIcons.alignCenter, svgIcon: commandSVGIcons.alignCenter, textKey: 'Align Center', commandName: 'textAlign', value: 'center', cssClass: '', commandId: 'alignCenter' },
1312
- { icon: commandIcons.alignRight, svgIcon: commandSVGIcons.alignRight, textKey: 'Align Right', commandName: 'textAlign', value: 'right', cssClass: '', commandId: 'alignRight' },
1313
- { icon: commandIcons.alignJustify, svgIcon: commandSVGIcons.alignJustify, textKey: 'Align Justify', commandName: 'textAlign', value: 'justify', cssClass: '', commandId: 'alignJustify' },
1314
- { icon: commandIcons.alignTop, svgIcon: commandSVGIcons.alignTop, textKey: 'Align Top', commandName: 'verticalAlign', value: 'top', cssClass: '', commandId: 'alignTop' },
1315
- { icon: commandIcons.alignMiddle, svgIcon: commandSVGIcons.alignMiddle, textKey: 'Align Middle', commandName: 'verticalAlign', value: 'center', cssClass: '', commandId: 'alignMiddle' },
1316
- { icon: commandIcons.alignBottom, svgIcon: commandSVGIcons.alignBottom, textKey: 'Align Bottom', commandName: 'verticalAlign', value: 'bottom', cssClass: '', commandId: 'alignBottom' }
1317
- ];
1318
- /**
1319
- * @hidden
1320
- */
1321
- const MERGE = [
1322
- { icon: commandIcons.mergeAll, svgIcon: commandSVGIcons.mergeAll, textKey: 'Merge all', commandName: 'cells', value: 'cells', disabled: false, commandId: 'mergeAll' },
1323
- { icon: commandIcons.mergeHorizontally, svgIcon: commandSVGIcons.mergeHorizontally, textKey: 'Merge horizontally', commandName: 'horizontally', value: 'horizontally', disabled: false, commandId: 'mergeHorizontally' },
1324
- { icon: commandIcons.mergeVertically, svgIcon: commandSVGIcons.mergeVertically, textKey: 'Merge vertically', commandName: 'vertically', value: 'vertically', disabled: false, commandId: 'mergeVertically' },
1325
- { icon: commandIcons.unmerge, svgIcon: commandSVGIcons.unmerge, textKey: 'Unmerge', commandName: 'unmerge', value: 'unmerge', disabled: false, commandId: 'unmerge' }
1326
- ];
1327
- /**
1328
- * @hidden
1329
- */
1330
- const MY_TOKEN = new InjectionToken('COMMAND_TOKEN');
1331
-
1332
- /**
1333
- * @hidden
1334
- */
1335
- class SpreadsheetCommandBaseDirective {
1336
- constructor(command, button, localization, spreadsheetService, toolsService) {
1337
- this.command = command;
1338
- this.button = button;
1339
- this.localization = localization;
1340
- this.spreadsheetService = spreadsheetService;
1341
- this.toolsService = toolsService;
1342
- this.subs = new Subscription();
1343
- const text = this.localization.get(this.command);
1344
- if (text) {
1345
- this.button.showText = 'overflow';
1346
- this.button.showIcon = 'both';
1347
- this.button.text = text;
1348
- }
1349
- if (!this.button.toolbarOptions.icon) {
1350
- this.button.icon = commandIcons[this.command];
1351
- }
1352
- if (!this.button.toolbarOptions.svgIcon) {
1353
- this.button.svgIcon = commandSVGIcons[this.command];
1354
- }
1355
- this.button.title = text;
1356
- this.button.fillMode = 'flat';
1357
- this.subs.add(this.toolsService.stateChange.subscribe(state => {
1358
- this.toolsService.ngZone.onStable.pipe(take(1)).subscribe(() => this.button.selected = state[command]);
1359
- }));
1360
- }
1361
- ngOnInit() {
1362
- this.subs.add(this.button.click.subscribe((this.clickHandler.bind(this))));
1363
- this.subs.add(this.button.pointerdown.subscribe((this.pointerdownHandler.bind(this))));
1364
- }
1365
- ngOnDestroy() {
1366
- this.subs.unsubscribe();
1367
- }
1368
- clickHandler() { }
1369
- pointerdownHandler(_event) { }
1370
- }
1371
- SpreadsheetCommandBaseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetCommandBaseDirective, deps: [{ token: MY_TOKEN }, { token: i1$2.ToolBarButtonComponent }, { token: i2.LocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1372
- SpreadsheetCommandBaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetCommandBaseDirective, selector: "[kendoSpreadsheetCommandBase]", ngImport: i0 });
1373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetCommandBaseDirective, decorators: [{
1374
- type: Directive,
1375
- args: [{
1376
- selector: '[kendoSpreadsheetCommandBase]'
1377
- }]
1378
- }], ctorParameters: function () {
1379
- return [{ type: undefined, decorators: [{
1380
- type: Inject,
1381
- args: [MY_TOKEN]
1382
- }] }, { type: i1$2.ToolBarButtonComponent }, { type: i2.LocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }];
1383
- } });
1384
-
1385
- /**
1386
- * @hidden
1387
- */
1388
- class SpreadsheetCommandButton extends SpreadsheetCommandBaseDirective {
1389
- constructor(command, button, localization, spreadsheetService, toolsService, commandOptions) {
1390
- super(command, button, localization, spreadsheetService, toolsService);
1391
- this.command = command;
1392
- this.button = button;
1393
- this.localization = localization;
1394
- this.spreadsheetService = spreadsheetService;
1395
- this.toolsService = toolsService;
1396
- this.commandOptions = commandOptions;
1397
- }
1398
- clickHandler() {
1399
- if (this.commandOptions.command === 'PropertyChangeCommand') {
1400
- this.commandOptions.options.value = !this.toolsService.toolsState[this.command];
1401
- }
1402
- this.spreadsheetService.spreadsheet.executeCommand(this.commandOptions);
1403
- }
1404
- }
1405
-
1406
- /**
1407
- * @hidden
1408
- */
1409
- class SpreadsheetGridLinesDirective extends SpreadsheetCommandButton {
1410
- constructor(button, localization, spreadsheetService, toolsService) {
1411
- super('gridLines', button, localization, spreadsheetService, toolsService, {
1412
- command: 'GridLinesChangeCommand',
1413
- options: { property: 'gridLines',
1414
- value: !button.selected
1415
- }
1416
- });
1417
- }
1418
- clickHandler() {
1419
- const sheet = this.spreadsheetService.spreadsheet.activeSheet();
1420
- if (sheet) {
1421
- const value = !sheet.showGridLines();
1422
- const options = {
1423
- command: 'GridLinesChangeCommand', options: { property: 'gridLines', value }
1424
- };
1425
- this.spreadsheetService.spreadsheet.executeCommand(options);
1426
- }
1427
- }
1428
- }
1429
- SpreadsheetGridLinesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetGridLinesDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1430
- SpreadsheetGridLinesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetGridLinesDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]", usesInheritance: true, ngImport: i0 });
1431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetGridLinesDirective, decorators: [{
1432
- type: Directive,
1433
- args: [{
1434
- selector: 'kendo-toolbar-button[kendoSpreadsheetGridLines]',
1435
- standalone: true
1436
- }]
1437
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1438
-
1439
- /**
1440
- * @hidden
1441
- */
1442
- class SpreadsheetMergeDirective {
1443
- constructor(host, localization, spreadsheetService) {
1444
- this.host = host;
1445
- this.spreadsheetService = spreadsheetService;
1446
- this.commandName = 'merge';
1447
- this.subs = new Subscription();
1448
- host.svgIcon = commandSVGIcons[this.commandName];
1449
- host.icon = commandIcons[this.commandName];
1450
- host.arrowIcon = true;
1451
- host.fillMode = 'flat';
1452
- host.data = MERGE.map(item => (Object.assign(Object.assign({}, item), { textKey: localization.get(item.commandId) })));
1453
- this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
1454
- host.title = localization.get(this.commandName);
1455
- host.textField = 'textKey';
1456
- }
1457
- ngOnInit() {
1458
- this.subs.add(this.host.open.subscribe(() => {
1459
- const sheet = this.spreadsheetService.spreadsheet.activeSheet();
1460
- const isMergedCellWithinRange = this.hasMergedCells(sheet);
1461
- const unmergeItem = this.host.data.find(i => i.commandName === 'unmerge');
1462
- unmergeItem.disabled = !isMergedCellWithinRange;
1463
- }));
1464
- this.subs.add(this.spreadsheetService.selectionChanged.subscribe(range => this.selectedRange = range));
1465
- }
1466
- ngOnDestroy() {
1467
- this.subs.unsubscribe();
1468
- }
1469
- onItemClick(item) {
1470
- if (item.disabled) {
1471
- return;
1472
- }
1473
- const value = item.value || null;
1474
- const options = {
1475
- command: 'MergeCellCommand', options: { property: item.commandName, value }
1476
- };
1477
- this.spreadsheetService.spreadsheet.executeCommand(options);
1478
- }
1479
- hasMergedCells(sheet) {
1480
- const range = sheet._ref(this.selectedRange);
1481
- return sheet._getMergedCells(range).hasMerged;
1482
- }
1483
- }
1484
- SpreadsheetMergeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetMergeDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }], target: i0.ɵɵFactoryTarget.Directive });
1485
- SpreadsheetMergeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetMergeDirective, isStandalone: true, selector: "[kendoSpreadsheetMerge]", ngImport: i0 });
1486
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetMergeDirective, decorators: [{
1487
- type: Directive,
1488
- args: [{
1489
- selector: '[kendoSpreadsheetMerge]',
1490
- standalone: true
1491
- }]
1492
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }]; } });
1493
-
1494
- /**
1495
- * @hidden
1496
- */
1497
- class SpreadsheetIncreaseDecimalDirective extends SpreadsheetCommandButton {
1498
- constructor(button, localization, spreadsheetService, toolsService) {
1499
- super('increaseDecimal', button, localization, spreadsheetService, toolsService, {
1500
- command: 'AdjustDecimalsCommand'
1501
- });
1502
- }
1503
- clickHandler() {
1504
- const options = {
1505
- command: 'AdjustDecimalsCommand',
1506
- options: { value: 1 }
1507
- };
1508
- this.spreadsheetService.spreadsheet.executeCommand(options);
1509
- }
1510
- }
1511
- SpreadsheetIncreaseDecimalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetIncreaseDecimalDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1512
- SpreadsheetIncreaseDecimalDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetIncreaseDecimalDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseDecimal]", usesInheritance: true, ngImport: i0 });
1513
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetIncreaseDecimalDirective, decorators: [{
1514
- type: Directive,
1515
- args: [{
1516
- selector: 'kendo-toolbar-button[kendoSpreadsheetIncreaseDecimal]',
1517
- standalone: true
1518
- }]
1519
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1520
-
1521
- /**
1522
- * @hidden
1523
- */
1524
- class SpreadsheetDecreaseDecimalDirective extends SpreadsheetCommandButton {
1525
- constructor(button, localization, spreadsheetService, toolsService) {
1526
- super('decreaseDecimal', button, localization, spreadsheetService, toolsService, {
1527
- command: 'AdjustDecimalsCommand'
1528
- });
1529
- }
1530
- clickHandler() {
1531
- const options = {
1532
- command: 'AdjustDecimalsCommand',
1533
- options: { value: -1 }
1534
- };
1535
- this.spreadsheetService.spreadsheet.executeCommand(options);
1536
- }
1537
- }
1538
- SpreadsheetDecreaseDecimalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetDecreaseDecimalDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1539
- SpreadsheetDecreaseDecimalDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetDecreaseDecimalDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseDecimal]", usesInheritance: true, ngImport: i0 });
1540
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetDecreaseDecimalDirective, decorators: [{
1541
- type: Directive,
1542
- args: [{
1543
- selector: 'kendo-toolbar-button[kendoSpreadsheetDecreaseDecimal]',
1544
- standalone: true
1545
- }]
1546
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1547
-
1548
- /**
1549
- * @hidden
1550
- */
1551
- class SpreadsheetDeleteRowButtonDirective extends SpreadsheetCommandButton {
1552
- constructor(button, localization, spreadsheetService, toolsService) {
1553
- super('deleteRow', button, localization, spreadsheetService, toolsService, {
1554
- command: 'DeleteRowCommand',
1555
- options: { property: 'deleteRow' }
1556
- });
1557
- }
1558
- }
1559
- SpreadsheetDeleteRowButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetDeleteRowButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1560
- SpreadsheetDeleteRowButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetDeleteRowButtonDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]", usesInheritance: true, ngImport: i0 });
1561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetDeleteRowButtonDirective, decorators: [{
1562
- type: Directive,
1563
- args: [{
1564
- selector: 'kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]',
1565
- standalone: true
1566
- }]
1567
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1568
-
1569
- /**
1570
- * @hidden
1571
- */
1572
- class SpreadsheetDeleteColumnButtonDirective extends SpreadsheetCommandButton {
1573
- constructor(button, localization, spreadsheetService, toolsService) {
1574
- super('deleteColumn', button, localization, spreadsheetService, toolsService, {
1575
- command: 'DeleteColumnCommand',
1576
- options: { property: 'deleteColumn' }
1577
- });
1578
- }
1579
- }
1580
- SpreadsheetDeleteColumnButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetDeleteColumnButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1581
- SpreadsheetDeleteColumnButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetDeleteColumnButtonDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]", usesInheritance: true, ngImport: i0 });
1582
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetDeleteColumnButtonDirective, decorators: [{
1583
- type: Directive,
1584
- args: [{
1585
- selector: 'kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]',
1586
- standalone: true
1587
- }]
1588
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1589
-
1590
- /**
1591
- * @hidden
1592
- */
1593
- class SpreadsheetAddRowAboveButtonDirective extends SpreadsheetCommandButton {
1594
- constructor(button, localization, spreadsheetService, toolsService) {
1595
- super('addRowAbove', button, localization, spreadsheetService, toolsService, {
1596
- command: 'AddRowCommand',
1597
- options: { property: 'addRowAbove',
1598
- value: 'above'
1599
- }
1600
- });
1601
- }
1602
- }
1603
- SpreadsheetAddRowAboveButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetAddRowAboveButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1604
- SpreadsheetAddRowAboveButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetAddRowAboveButtonDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]", usesInheritance: true, ngImport: i0 });
1605
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetAddRowAboveButtonDirective, decorators: [{
1606
- type: Directive,
1607
- args: [{
1608
- selector: 'kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]',
1609
- standalone: true
1610
- }]
1611
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1612
-
1613
- /**
1614
- * @hidden
1615
- */
1616
- class SpreadsheetAddRowBelowButtonDirective extends SpreadsheetCommandButton {
1617
- constructor(button, localization, spreadsheetService, toolsService) {
1618
- super('addRowBelow', button, localization, spreadsheetService, toolsService, {
1619
- command: 'AddRowCommand',
1620
- options: { property: 'addRowBelow',
1621
- value: 'below'
1622
- }
1623
- });
1624
- }
1625
- }
1626
- SpreadsheetAddRowBelowButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetAddRowBelowButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1627
- SpreadsheetAddRowBelowButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetAddRowBelowButtonDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]", usesInheritance: true, ngImport: i0 });
1628
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetAddRowBelowButtonDirective, decorators: [{
1629
- type: Directive,
1630
- args: [{
1631
- selector: 'kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]',
1632
- standalone: true
1633
- }]
1634
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1635
-
1636
- /**
1637
- * @hidden
1638
- */
1639
- class SpreadsheetAddColumnRightButtonDirective extends SpreadsheetCommandButton {
1640
- constructor(button, localization, spreadsheetService, toolsService) {
1641
- super('addColumnRight', button, localization, spreadsheetService, toolsService, {
1642
- command: 'AddColumnCommand',
1643
- options: { property: 'addColumnRight',
1644
- value: 'right'
1645
- }
1646
- });
1647
- }
1648
- }
1649
- SpreadsheetAddColumnRightButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetAddColumnRightButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1650
- SpreadsheetAddColumnRightButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetAddColumnRightButtonDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]", usesInheritance: true, ngImport: i0 });
1651
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetAddColumnRightButtonDirective, decorators: [{
1652
- type: Directive,
1653
- args: [{
1654
- selector: 'kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]',
1655
- standalone: true
1656
- }]
1657
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1658
-
1659
- /**
1660
- * @hidden
1661
- */
1662
- class SpreadsheetAddColumnLeftButtonDirective extends SpreadsheetCommandButton {
1663
- constructor(button, localization, spreadsheetService, toolsService) {
1664
- super('addColumnLeft', button, localization, spreadsheetService, toolsService, {
1665
- command: 'AddColumnCommand',
1666
- options: { property: 'addColumnLeft',
1667
- value: 'left'
1668
- }
1669
- });
1670
- }
1671
- }
1672
- SpreadsheetAddColumnLeftButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetAddColumnLeftButtonDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1673
- SpreadsheetAddColumnLeftButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetAddColumnLeftButtonDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]", usesInheritance: true, ngImport: i0 });
1674
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetAddColumnLeftButtonDirective, decorators: [{
1675
- type: Directive,
1676
- args: [{
1677
- selector: 'kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]',
1678
- standalone: true
1679
- }]
1680
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1681
-
1682
- /**
1683
- * @hidden
1684
- */
1685
- class SpreadsheetInsertLinkDirective extends SpreadsheetCommandButton {
1686
- constructor(button, localization, spreadsheetService, toolsService, dialogService) {
1687
- super('insertLink', button, localization, spreadsheetService, toolsService, {
1688
- command: 'HyperlinkCommand'
1689
- });
1690
- this.dialogService = dialogService;
1691
- this.subs.add(spreadsheetService.selectionChanged.subscribe(range => this.currentRange = range));
1692
- }
1693
- ngOnDestroy() {
1694
- this.subs.unsubscribe();
1695
- }
1696
- clickHandler() {
1697
- const sheet = this.spreadsheetService.spreadsheet.activeSheet();
1698
- if (sheet) {
1699
- this.openDialog();
1700
- }
1701
- }
1702
- /**
1703
- * @hidden
1704
- */
1705
- openDialog() {
1706
- var _a, _b;
1707
- const hasLink = isPresent((_a = this.currentRange) === null || _a === void 0 ? void 0 : _a.link());
1708
- const dialogSettings = {
1709
- appendTo: this.spreadsheetService.dialogContainer,
1710
- title: this.localization.get(this.command),
1711
- content: InsertLinkDialogComponent,
1712
- actions: [{
1713
- text: this.localization.get('dialogInsert'),
1714
- themeColor: 'primary'
1715
- }, {
1716
- text: this.localization.get('dialogCancel')
1717
- },
1718
- 'spacer', {
1719
- text: this.localization.get('dialogRemoveLink'),
1720
- themeColor: 'primary',
1721
- fillMode: 'clear',
1722
- cssClass: hasLink ? '' : 'k-disabled'
1723
- }],
1724
- actionsLayout: 'start',
1725
- width: 400,
1726
- autoFocusedElement: '.k-textbox > .k-input-inner'
1727
- };
1728
- const dialog = this.dialogService.open(dialogSettings);
1729
- const dialogInstance = dialog.dialog.instance;
1730
- const dialogContent = dialog.content.instance;
1731
- if (hasLink) {
1732
- dialogContent.setData({ link: (_b = this.currentRange) === null || _b === void 0 ? void 0 : _b.link() });
1733
- }
1734
- dialogInstance.action.pipe(take(1)).subscribe((event) => {
1735
- if (event.text === this.localization.get('dialogCancel')) {
1736
- return;
1737
- }
1738
- let link = null;
1739
- if (event.text === this.localization.get('dialogInsert')) {
1740
- link = dialogContent.urlLink || null;
1741
- }
1742
- this.spreadsheetService.spreadsheet.executeCommand({
1743
- command: 'HyperlinkCommand',
1744
- options: { link }
1745
- });
1746
- });
1747
- }
1748
- }
1749
- SpreadsheetInsertLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetInsertLinkDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: i1$1.DialogService }], target: i0.ɵɵFactoryTarget.Directive });
1750
- SpreadsheetInsertLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetInsertLinkDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetInsertLink]", usesInheritance: true, ngImport: i0 });
1751
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetInsertLinkDirective, decorators: [{
1752
- type: Directive,
1753
- args: [{
1754
- selector: 'kendo-toolbar-button[kendoSpreadsheetInsertLink]',
1755
- standalone: true
1756
- }]
1757
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$1.DialogService }]; } });
1758
-
1759
- /**
1760
- * @hidden
1761
- */
1762
- class SpreadsheetFormatDirective {
1763
- constructor(host, localization, spreadsheetService, toolsService) {
1764
- this.host = host;
1765
- this.spreadsheetService = spreadsheetService;
1766
- this.toolsService = toolsService;
1767
- this.data = FORMATS;
1768
- this.commandName = 'format';
1769
- this.subs = new Subscription();
1770
- /**
1771
- * @hidden
1772
- */
1773
- this.onItemClick = (item) => {
1774
- const value = item.value || null;
1775
- const options = {
1776
- command: 'PropertyChangeCommand', options: { property: this.commandName, value }
1777
- };
1778
- this.spreadsheetService.spreadsheet.executeCommand(options);
1779
- };
1780
- host.svgIcon = commandSVGIcons[this.commandName];
1781
- host.icon = commandIcons[this.commandName];
1782
- host.arrowIcon = true;
1783
- host.fillMode = 'flat';
1784
- host.data = this.data;
1785
- this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
1786
- host.title = localization.get(this.commandName);
1787
- }
1788
- ngOnInit() {
1789
- this.subs.add(this.toolsService.stateChange.subscribe(state => this.host.data.forEach(i => i.cssClass = i.value === state[this.commandName] ? 'k-selected' : '')));
1790
- }
1791
- ngOnDestroy() {
1792
- this.subs.unsubscribe();
1793
- }
1794
- }
1795
- SpreadsheetFormatDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetFormatDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1796
- SpreadsheetFormatDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetFormatDirective, isStandalone: true, selector: "[kendoSpreadsheetFormat]", ngImport: i0 });
1797
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetFormatDirective, decorators: [{
1798
- type: Directive,
1799
- args: [{
1800
- selector: '[kendoSpreadsheetFormat]',
1801
- standalone: true
1802
- }]
1803
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1804
-
1805
- /**
1806
- * @hidden
1807
- */
1808
- class SpreadsheetTextWrapDirective extends SpreadsheetCommandButton {
1809
- constructor(button, localization, spreadsheetService, toolsService) {
1810
- super('wrap', button, localization, spreadsheetService, toolsService, {
1811
- command: 'TextWrapCommand',
1812
- options: { property: 'wrap',
1813
- value: !button.selected
1814
- }
1815
- });
1816
- }
1817
- clickHandler() {
1818
- const sheet = this.spreadsheetService.spreadsheet.activeSheet();
1819
- if (sheet) {
1820
- const range = sheet.range(sheet.activeCell());
1821
- const value = !range.wrap();
1822
- const options = {
1823
- command: 'TextWrapCommand', options: { property: 'wrap', value }
1824
- };
1825
- this.spreadsheetService.spreadsheet.executeCommand(options);
1826
- }
1827
- }
1828
- }
1829
- SpreadsheetTextWrapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetTextWrapDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1830
- SpreadsheetTextWrapDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetTextWrapDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]", usesInheritance: true, ngImport: i0 });
1831
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetTextWrapDirective, decorators: [{
1832
- type: Directive,
1833
- args: [{
1834
- selector: 'kendo-toolbar-button[kendoSpreadsheetTextWrap]',
1835
- standalone: true
1836
- }]
1837
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1838
-
1839
- /**
1840
- * @hidden
1841
- */
1842
- class SpreadsheetVerticalTextAlignDirective {
1843
- constructor(host, localization, spreadsheetService, toolsService) {
1844
- this.host = host;
1845
- this.spreadsheetService = spreadsheetService;
1846
- this.toolsService = toolsService;
1847
- this.commandName = 'alignVertical';
1848
- this.subs = new Subscription();
1849
- host.svgIcon = commandSVGIcons[this.commandName];
1850
- host.icon = commandIcons[this.commandName];
1851
- host.arrowIcon = true;
1852
- host.fillMode = 'flat';
1853
- host.data = ALIGNS.flatMap(item => item.commandName === 'verticalAlign' ? [Object.assign(Object.assign({}, item), { textKey: localization.get(item.commandId) })] : []);
1854
- this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
1855
- host.title = localization.get(this.commandName);
1856
- host.textField = 'textKey';
1857
- }
1858
- ngOnInit() {
1859
- this.subs.add(this.toolsService.stateChange.subscribe(state => this.host.data.forEach(i => i.cssClass = i.value === state[i.commandName] ? 'k-selected' : '')));
1860
- }
1861
- ngOnDestroy() {
1862
- this.subs.unsubscribe();
1863
- }
1864
- onItemClick(item) {
1865
- const value = item.value || null;
1866
- const options = {
1867
- command: 'PropertyChangeCommand', options: { property: item.commandName, value }
1868
- };
1869
- this.spreadsheetService.spreadsheet.executeCommand(options);
1870
- }
1871
- }
1872
- SpreadsheetVerticalTextAlignDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetVerticalTextAlignDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1873
- SpreadsheetVerticalTextAlignDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetVerticalTextAlignDirective, isStandalone: true, selector: "[kendoSpreadsheetVerticalTextAlign]", ngImport: i0 });
1874
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetVerticalTextAlignDirective, decorators: [{
1875
- type: Directive,
1876
- args: [{
1877
- selector: '[kendoSpreadsheetVerticalTextAlign]',
1878
- standalone: true
1879
- }]
1880
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1881
-
1882
- /**
1883
- * @hidden
1884
- */
1885
- class SpreadsheetHorizontalTextAlignDirective {
1886
- constructor(host, localization, spreadsheetService, toolsService) {
1887
- this.host = host;
1888
- this.spreadsheetService = spreadsheetService;
1889
- this.toolsService = toolsService;
1890
- this.commandName = 'alignHorizontal';
1891
- this.subs = new Subscription();
1892
- host.svgIcon = commandSVGIcons[this.commandName];
1893
- host.icon = commandIcons[this.commandName];
1894
- host.arrowIcon = true;
1895
- host.fillMode = 'flat';
1896
- host.data = ALIGNS.flatMap(item => item.commandName === 'textAlign' ? [Object.assign(Object.assign({}, item), { textKey: localization.get(item.commandId) })] : []);
1897
- this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
1898
- host.title = localization.get(this.commandName);
1899
- host.textField = 'textKey';
1900
- }
1901
- ngOnInit() {
1902
- this.subs.add(this.toolsService.stateChange.subscribe(state => this.host.data.forEach(i => i.cssClass = i.value === state[i.commandName] ? 'k-selected' : '')));
1903
- }
1904
- ngOnDestroy() {
1905
- this.subs.unsubscribe();
1906
- }
1907
- onItemClick(item) {
1908
- const value = item.value || null;
1909
- const options = {
1910
- command: 'PropertyChangeCommand', options: { property: item.commandName, value }
1911
- };
1912
- this.spreadsheetService.spreadsheet.executeCommand(options);
1913
- }
1914
- }
1915
- SpreadsheetHorizontalTextAlignDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetHorizontalTextAlignDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
1916
- SpreadsheetHorizontalTextAlignDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetHorizontalTextAlignDirective, isStandalone: true, selector: "[kendoSpreadsheetHorizontalTextAlign]", ngImport: i0 });
1917
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetHorizontalTextAlignDirective, decorators: [{
1918
- type: Directive,
1919
- args: [{
1920
- selector: '[kendoSpreadsheetHorizontalTextAlign]',
1921
- standalone: true
1922
- }]
1923
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
1924
-
1925
- /**
1926
- * @hidden
1927
- */
1928
- function outerWidth(element) {
1929
- let width = element.offsetWidth;
1930
- const style = getComputedStyle(element);
1931
- width += parseFloat(style.marginLeft) || 0 + parseFloat(style.marginRight) || 0;
1932
- return width;
1933
- }
1934
-
1935
- /**
1936
- * @hidden
1937
- */
1938
- class DropDownListBase {
1939
- constructor() {
1940
- this.display = 'inline-flex';
1941
- this.fillMode = 'flat';
1942
- this.valueChange = new EventEmitter();
1943
- }
1944
- onValueChange(value) {
1945
- this.valueChange.emit(value);
1946
- }
1947
- focus() {
1948
- this.dropDownList.focus();
1949
- }
1950
- }
1951
- DropDownListBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownListBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1952
- DropDownListBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", 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 });
1953
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropDownListBase, decorators: [{
1954
- type: Directive,
1955
- args: [{
1956
- selector: 'kendo-spreadsheet-dropdownlist-base'
1957
- }]
1958
- }], propDecorators: { display: [{
1959
- type: HostBinding,
1960
- args: ['style.display']
1961
- }], data: [{
1962
- type: Input
1963
- }], value: [{
1964
- type: Input
1965
- }], title: [{
1966
- type: Input
1967
- }], tabindex: [{
1968
- type: Input
1969
- }], valueChange: [{
1970
- type: Output
1971
- }], element: [{
1972
- type: ViewChild,
1973
- args: ['element', { static: true }]
1974
- }], dropDownList: [{
1975
- type: ViewChild,
1976
- args: ['element', { read: DropDownListComponent, static: true }]
1977
- }] } });
1978
-
1979
- /**
1980
- * @hidden
1981
- */
1982
- class FontSizeDropDownListComponent extends DropDownListBase {
1983
- }
1984
- FontSizeDropDownListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FontSizeDropDownListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1985
- FontSizeDropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FontSizeDropDownListComponent, isStandalone: true, selector: "kendo-spreadsheet-fontsize-dropdownlist", usesInheritance: true, ngImport: i0, template: `
1986
- <kendo-dropdownlist
1987
- #element
1988
- class="k-toolbar-dropdownlist"
1989
- [data]="data"
1990
- [(value)]="value"
1991
- [attr.title]="title"
1992
- [tabindex]="tabindex"
1993
- (valueChange)="onValueChange($event)"
1994
- [leftRightArrowsNavigation]="false"
1995
- [fillMode]="fillMode"></kendo-dropdownlist>
1996
- `, isInline: true, dependencies: [{ kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "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"] }] });
1997
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FontSizeDropDownListComponent, decorators: [{
1998
- type: Component,
1999
- args: [{
2000
- selector: 'kendo-spreadsheet-fontsize-dropdownlist',
2001
- template: `
2002
- <kendo-dropdownlist
2003
- #element
2004
- class="k-toolbar-dropdownlist"
2005
- [data]="data"
2006
- [(value)]="value"
2007
- [attr.title]="title"
2008
- [tabindex]="tabindex"
2009
- (valueChange)="onValueChange($event)"
2010
- [leftRightArrowsNavigation]="false"
2011
- [fillMode]="fillMode"></kendo-dropdownlist>
2012
- `,
2013
- standalone: true,
2014
- imports: [DropDownListComponent]
2015
- }]
2016
- }] });
2017
-
2018
- /**
2019
- * @hidden
2020
- */
2021
- class FontFamilyDropDownListComponent extends DropDownListBase {
2022
- }
2023
- FontFamilyDropDownListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FontFamilyDropDownListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2024
- FontFamilyDropDownListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FontFamilyDropDownListComponent, isStandalone: true, selector: "kendo-spreadsheet-fontfamily-dropdownlist", usesInheritance: true, ngImport: i0, template: `
2025
- <kendo-dropdownlist
2026
- #element
2027
- class="k-toolbar-dropdownlist"
2028
- [data]="data"
2029
- [(value)]="value"
2030
- [tabindex]="tabindex"
2031
- (valueChange)="onValueChange($event)"
2032
- [leftRightArrowsNavigation]="false"
2033
- [fillMode]="fillMode"
2034
- [attr.title]="title">
2035
- <ng-template kendoDropDownListItemTemplate let-dataItem>
2036
- <span [ngStyle]="{ 'font-family': dataItem }">
2037
- {{ dataItem }}
2038
- </span>
2039
- </ng-template>
2040
- </kendo-dropdownlist>
2041
- `, isInline: true, dependencies: [{ kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "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"] }, { kind: "directive", type: ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
2042
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FontFamilyDropDownListComponent, decorators: [{
2043
- type: Component,
2044
- args: [{
2045
- selector: 'kendo-spreadsheet-fontfamily-dropdownlist',
2046
- template: `
2047
- <kendo-dropdownlist
2048
- #element
2049
- class="k-toolbar-dropdownlist"
2050
- [data]="data"
2051
- [(value)]="value"
2052
- [tabindex]="tabindex"
2053
- (valueChange)="onValueChange($event)"
2054
- [leftRightArrowsNavigation]="false"
2055
- [fillMode]="fillMode"
2056
- [attr.title]="title">
2057
- <ng-template kendoDropDownListItemTemplate let-dataItem>
2058
- <span [ngStyle]="{ 'font-family': dataItem }">
2059
- {{ dataItem }}
2060
- </span>
2061
- </ng-template>
2062
- </kendo-dropdownlist>
2063
- `,
2064
- standalone: true,
2065
- imports: [DropDownListComponent, ItemTemplateDirective, NgStyle]
2066
- }]
2067
- }] });
2068
-
2069
- /**
2070
- * @hidden
2071
- */
2072
- class DialogContentComponent extends DialogContentBase {
2073
- constructor(dialog) {
2074
- super(dialog);
2075
- this.dialog = dialog;
2076
- this.data = [];
2077
- }
2078
- setData(args) {
2079
- this.data = args.data;
2080
- this.value = args.value;
2081
- this.tabindex = args.tabindex;
2082
- this.componentType = args.componentType;
2083
- }
2084
- }
2085
- DialogContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialogContentComponent, deps: [{ token: i1$1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
2086
- DialogContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DialogContentComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
2087
- <div
2088
- [ngSwitch]="componentType"
2089
- class="k-d-flex k-align-items-center k-justify-content-center">
2090
- <kendo-spreadsheet-fontfamily-dropdownlist
2091
- *ngSwitchCase="'fontFamily'"
2092
- [data]="data"
2093
- [(value)]="value"
2094
- [attr.title]="title"
2095
- [tabindex]="tabindex"
2096
- [style.width.em]="13"
2097
- ></kendo-spreadsheet-fontfamily-dropdownlist>
2098
- <kendo-spreadsheet-fontsize-dropdownlist
2099
- *ngSwitchCase="'fontSize'"
2100
- [data]="data"
2101
- [(value)]="value"
2102
- [attr.title]="title"
2103
- [tabindex]="tabindex"
2104
- [style.width.em]="13"
2105
- ></kendo-spreadsheet-fontsize-dropdownlist>
2106
- <kendo-colorpicker
2107
- *ngSwitchCase="'color'"
2108
- [attr.title]="title"
2109
- [format]="'hex'"
2110
- [(value)]="value"
2111
- [tabindex]="tabindex"
2112
- [clearButton]="false"
2113
- fillMode="flat"
2114
- ></kendo-colorpicker>
2115
- <kendo-colorpicker
2116
- *ngSwitchCase="'background'"
2117
- [attr.title]="title"
2118
- [format]="'hex'"
2119
- [(value)]="value"
2120
- [tabindex]="tabindex"
2121
- [clearButton]="false"
2122
- fillMode="flat"
2123
- ></kendo-colorpicker>
2124
- </div>
2125
- `, isInline: true, dependencies: [{ kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: FontFamilyDropDownListComponent, selector: "kendo-spreadsheet-fontfamily-dropdownlist" }, { kind: "component", type: FontSizeDropDownListComponent, selector: "kendo-spreadsheet-fontsize-dropdownlist" }, { kind: "component", type: 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"] }] });
2126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DialogContentComponent, decorators: [{
2127
- type: Component,
2128
- args: [{
2129
- template: `
2130
- <div
2131
- [ngSwitch]="componentType"
2132
- class="k-d-flex k-align-items-center k-justify-content-center">
2133
- <kendo-spreadsheet-fontfamily-dropdownlist
2134
- *ngSwitchCase="'fontFamily'"
2135
- [data]="data"
2136
- [(value)]="value"
2137
- [attr.title]="title"
2138
- [tabindex]="tabindex"
2139
- [style.width.em]="13"
2140
- ></kendo-spreadsheet-fontfamily-dropdownlist>
2141
- <kendo-spreadsheet-fontsize-dropdownlist
2142
- *ngSwitchCase="'fontSize'"
2143
- [data]="data"
2144
- [(value)]="value"
2145
- [attr.title]="title"
2146
- [tabindex]="tabindex"
2147
- [style.width.em]="13"
2148
- ></kendo-spreadsheet-fontsize-dropdownlist>
2149
- <kendo-colorpicker
2150
- *ngSwitchCase="'color'"
2151
- [attr.title]="title"
2152
- [format]="'hex'"
2153
- [(value)]="value"
2154
- [tabindex]="tabindex"
2155
- [clearButton]="false"
2156
- fillMode="flat"
2157
- ></kendo-colorpicker>
2158
- <kendo-colorpicker
2159
- *ngSwitchCase="'background'"
2160
- [attr.title]="title"
2161
- [format]="'hex'"
2162
- [(value)]="value"
2163
- [tabindex]="tabindex"
2164
- [clearButton]="false"
2165
- fillMode="flat"
2166
- ></kendo-colorpicker>
2167
- </div>
2168
- `,
2169
- standalone: true,
2170
- imports: [NgSwitch, NgSwitchCase, FontFamilyDropDownListComponent, FontSizeDropDownListComponent, ColorPickerComponent]
2171
- }]
2172
- }], ctorParameters: function () { return [{ type: i1$1.DialogRef }]; } });
2173
-
2174
- /**
2175
- * @hidden
2176
- */
2177
- class SpreadsheetDropDownToolBase extends ToolBarToolComponent {
2178
- constructor(command, dialogService, localization, spreadsheetService, toolsService, toolbar) {
2179
- super();
2180
- this.command = command;
2181
- this.dialogService = dialogService;
2182
- this.localization = localization;
2183
- this.spreadsheetService = spreadsheetService;
2184
- this.toolsService = toolsService;
2185
- this.toolbar = toolbar;
2186
- /**
2187
- * Fires when the user updates the value of the drop-down list.
2188
- */
2189
- this.valueChange = new EventEmitter();
2190
- this.tabindex = -1;
2191
- this.svgIcon = commandSVGIcons[this.command];
2192
- this.icon = commandIcons[this.command];
2193
- this.value = DEFAULT_FONT_VALUES[this.command];
2194
- this.data = FONT_DATA[this.command];
2195
- this.isBuiltInTool = true;
2196
- }
2197
- ngOnInit() {
2198
- this.value = this.toolsService.toolsState[this.command];
2199
- this.subs = this.toolsService.stateChange.subscribe(state => {
2200
- this.value = state[this.command];
2201
- });
2202
- }
2203
- ngOnDestroy() {
2204
- if (this.subs) {
2205
- this.subs.unsubscribe();
2206
- }
2207
- }
2208
- /**
2209
- * @hidden
2210
- */
2211
- messageFor(key) {
2212
- return this.localization.get(key);
2213
- }
2214
- /**
2215
- * @hidden
2216
- */
2217
- onValueChange(ev) {
2218
- if (isPresent(ev)) {
2219
- if (hasObservers(this.valueChange)) {
2220
- this.valueChange.emit(ev);
2221
- }
2222
- const options = {
2223
- command: 'PropertyChangeCommand',
2224
- options: { property: this.command, value: ev || null }
2225
- };
2226
- this.spreadsheetService.spreadsheet.executeCommand(options);
2227
- }
2228
- }
2229
- /**
2230
- * @hidden
2231
- */
2232
- get outerWidth() {
2233
- if (this.element) {
2234
- return outerWidth(this.element.nativeElement);
2235
- }
2236
- }
2237
- /**
2238
- * @hidden
2239
- */
2240
- openDialog() {
2241
- const dialogSettings = {
2242
- appendTo: this.spreadsheetService.dialogContainer,
2243
- title: this.messageFor(this.command),
2244
- content: DialogContentComponent,
2245
- actions: [{
2246
- text: this.messageFor('dialogApply'),
2247
- themeColor: 'primary'
2248
- }, {
2249
- text: this.messageFor('dialogCancel')
2250
- }],
2251
- actionsLayout: 'start',
2252
- width: 400,
2253
- autoFocusedElement: '.k-picker'
2254
- };
2255
- this.toolbar.toggle(false);
2256
- const dialog = this.dialogService.open(dialogSettings);
2257
- const dialogInstance = dialog.dialog.instance;
2258
- const dialogContent = dialog.content.instance;
2259
- dialogInstance.action.pipe(take(1)).subscribe((event) => {
2260
- if (event.text === this.messageFor('dialogApply')) {
2261
- const options = {
2262
- command: 'PropertyChangeCommand',
2263
- options: { property: this.command, value: dialogContent.value || null }
2264
- };
2265
- this.spreadsheetService.spreadsheet.executeCommand(options);
2266
- }
2267
- this.toolbar.toggle();
2268
- });
2269
- dialogInstance.close.pipe(take(1)).subscribe(() => {
2270
- this.toolbar.toggle();
2271
- });
2272
- dialogContent.setData({
2273
- data: this.data,
2274
- value: this.value,
2275
- tabindex: this.tabindex,
2276
- componentType: this.command,
2277
- title: this.localization.get(this.command)
2278
- });
2279
- }
2280
- /**
2281
- * @hidden
2282
- */
2283
- focus(e) {
2284
- this.tabindex = 0;
2285
- if (e instanceof PointerEvent) {
2286
- return;
2287
- }
2288
- if (this.overflows) {
2289
- this.popupButton.nativeElement.focus();
2290
- }
2291
- else {
2292
- this.dropDownListRef.focus();
2293
- }
2294
- }
2295
- /**
2296
- * @hidden
2297
- */
2298
- canFocus() {
2299
- return true;
2300
- }
2301
- /**
2302
- * @hidden
2303
- */
2304
- handleKey() {
2305
- this.tabindex = -1;
2306
- return false;
2307
- }
2308
- }
2309
- SpreadsheetDropDownToolBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetDropDownToolBase, deps: [{ token: MY_TOKEN }, { token: i1$1.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: i1$2.ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2310
- SpreadsheetDropDownToolBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", 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 });
2311
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetDropDownToolBase, decorators: [{
2312
- type: Component,
2313
- args: [{
2314
- template: ``
2315
- }]
2316
- }], ctorParameters: function () {
2317
- return [{ type: undefined, decorators: [{
2318
- type: Inject,
2319
- args: [MY_TOKEN]
2320
- }] }, { type: i1$1.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent }];
2321
- }, propDecorators: { toolbarTemplate: [{
2322
- type: ViewChild,
2323
- args: ['toolbarTemplate', { static: true }]
2324
- }], popupTemplate: [{
2325
- type: ViewChild,
2326
- args: ['popupTemplate', { static: true }]
2327
- }], element: [{
2328
- type: ViewChild,
2329
- args: ['element', { read: ElementRef }]
2330
- }], dropDownListRef: [{
2331
- type: ViewChild,
2332
- args: ['element']
2333
- }], popupButton: [{
2334
- type: ViewChild,
2335
- args: ['popupButton', { read: ElementRef }]
2336
- }], valueChange: [{
2337
- type: Output
2338
- }] } });
2339
-
2340
- /**
2341
- * A component which changes the background color of the text ([more information](ToDo).
2342
- * @hidden
2343
- */
2344
- class SpreadsheetBackColorComponent extends SpreadsheetDropDownToolBase {
2345
- constructor(dialogService, localization, spreadsheetService, toolsService, toolbar) {
2346
- super('background', dialogService, localization, spreadsheetService, toolsService, toolbar);
2347
- }
2348
- }
2349
- SpreadsheetBackColorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetBackColorComponent, deps: [{ token: i1$1.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2350
- SpreadsheetBackColorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetBackColorComponent, isStandalone: true, selector: "kendo-spreadsheet-backcolor-tool", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetBackColorComponent) }], usesInheritance: true, ngImport: i0, template: `
2351
- <ng-template #toolbarTemplate>
2352
- <div class="k-toolbar-item">
2353
- <kendo-colorpicker
2354
- #element
2355
- [attr.title]="messageFor(command)"
2356
- [format]="'hex'"
2357
- [(value)]="value"
2358
- [tabindex]="tabindex"
2359
- (valueChange)="onValueChange($event)"
2360
- [clearButton]="false"
2361
- fillMode="flat"
2362
- [icon]="icon"
2363
- [preview]="true"
2364
- [svgIcon]="svgIcon"></kendo-colorpicker>
2365
- </div>
2366
- </ng-template>
2367
- <ng-template #popupTemplate>
2368
- <div #popupButton
2369
- [tabindex]="tabindex"
2370
- role="menuitem"
2371
- class="k-item k-menu-item"
2372
- (click)="openDialog()">
2373
- <span
2374
- class="k-link k-menu-link">
2375
- <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
2376
- <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
2377
- </span>
2378
- </div>
2379
- </ng-template>
2380
- `, isInline: true, dependencies: [{ kind: "component", type: 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"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2381
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetBackColorComponent, decorators: [{
2382
- type: Component,
2383
- args: [{
2384
- providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetBackColorComponent) }],
2385
- selector: 'kendo-spreadsheet-backcolor-tool',
2386
- template: `
2387
- <ng-template #toolbarTemplate>
2388
- <div class="k-toolbar-item">
2389
- <kendo-colorpicker
2390
- #element
2391
- [attr.title]="messageFor(command)"
2392
- [format]="'hex'"
2393
- [(value)]="value"
2394
- [tabindex]="tabindex"
2395
- (valueChange)="onValueChange($event)"
2396
- [clearButton]="false"
2397
- fillMode="flat"
2398
- [icon]="icon"
2399
- [preview]="true"
2400
- [svgIcon]="svgIcon"></kendo-colorpicker>
2401
- </div>
2402
- </ng-template>
2403
- <ng-template #popupTemplate>
2404
- <div #popupButton
2405
- [tabindex]="tabindex"
2406
- role="menuitem"
2407
- class="k-item k-menu-item"
2408
- (click)="openDialog()">
2409
- <span
2410
- class="k-link k-menu-link">
2411
- <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
2412
- <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
2413
- </span>
2414
- </div>
2415
- </ng-template>
2416
- `,
2417
- standalone: true,
2418
- imports: [ColorPickerComponent, IconWrapperComponent, NgIf]
2419
- }]
2420
- }], ctorParameters: function () {
2421
- return [{ type: i1$1.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent, decorators: [{
2422
- type: Inject,
2423
- args: [ToolBarComponent]
2424
- }] }];
2425
- } });
2426
-
2427
- /**
2428
- * A component which changes the color of the text ([more information](ToDo).
2429
- * @hidden
2430
- */
2431
- class SpreadsheetForeColorComponent extends SpreadsheetDropDownToolBase {
2432
- constructor(dialogService, localization, spreadsheetService, toolsService, toolbar) {
2433
- super('color', dialogService, localization, spreadsheetService, toolsService, toolbar);
2434
- }
2435
- }
2436
- SpreadsheetForeColorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetForeColorComponent, deps: [{ token: i1$1.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2437
- SpreadsheetForeColorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetForeColorComponent, isStandalone: true, selector: "kendo-spreadsheet-forecolor-tool", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetForeColorComponent) }], usesInheritance: true, ngImport: i0, template: `
2438
- <ng-template #toolbarTemplate>
2439
- <div class="k-toolbar-item">
2440
- <kendo-colorpicker
2441
- #element
2442
- [attr.title]="messageFor(command)"
2443
- [format]="'hex'"
2444
- [(value)]="value"
2445
- [tabindex]="tabindex"
2446
- (valueChange)="onValueChange($event)"
2447
- [clearButton]="false"
2448
- fillMode="flat"
2449
- [icon]="icon"
2450
- [svgIcon]="svgIcon"
2451
- [preview]="true"></kendo-colorpicker>
2452
- </div>
2453
- </ng-template>
2454
- <ng-template #popupTemplate>
2455
- <div #popupButton
2456
- [tabindex]="tabindex"
2457
- role="menuitem"
2458
- class="k-item k-menu-item"
2459
- (click)="openDialog()">
2460
- <span
2461
- class="k-link k-menu-link">
2462
- <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
2463
- <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
2464
- </span>
2465
- </div>
2466
- </ng-template>
2467
- `, isInline: true, dependencies: [{ kind: "component", type: 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"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2468
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetForeColorComponent, decorators: [{
2469
- type: Component,
2470
- args: [{
2471
- providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetForeColorComponent) }],
2472
- selector: 'kendo-spreadsheet-forecolor-tool',
2473
- template: `
2474
- <ng-template #toolbarTemplate>
2475
- <div class="k-toolbar-item">
2476
- <kendo-colorpicker
2477
- #element
2478
- [attr.title]="messageFor(command)"
2479
- [format]="'hex'"
2480
- [(value)]="value"
2481
- [tabindex]="tabindex"
2482
- (valueChange)="onValueChange($event)"
2483
- [clearButton]="false"
2484
- fillMode="flat"
2485
- [icon]="icon"
2486
- [svgIcon]="svgIcon"
2487
- [preview]="true"></kendo-colorpicker>
2488
- </div>
2489
- </ng-template>
2490
- <ng-template #popupTemplate>
2491
- <div #popupButton
2492
- [tabindex]="tabindex"
2493
- role="menuitem"
2494
- class="k-item k-menu-item"
2495
- (click)="openDialog()">
2496
- <span
2497
- class="k-link k-menu-link">
2498
- <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
2499
- <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
2500
- </span>
2501
- </div>
2502
- </ng-template>
2503
- `,
2504
- standalone: true,
2505
- imports: [ColorPickerComponent, IconWrapperComponent, NgIf]
2506
- }]
2507
- }], ctorParameters: function () {
2508
- return [{ type: i1$1.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent, decorators: [{
2509
- type: Inject,
2510
- args: [ToolBarComponent]
2511
- }] }];
2512
- } });
2513
-
2514
- /**
2515
- * @hidden
2516
- */
2517
- class SpreadsheetUnderlineDirective extends SpreadsheetCommandButton {
2518
- constructor(button, localization, spreadsheetService, toolsService) {
2519
- super('underline', button, localization, spreadsheetService, toolsService, {
2520
- command: 'PropertyChangeCommand',
2521
- options: { property: 'underline',
2522
- value: !button.selected
2523
- }
2524
- });
2525
- }
2526
- }
2527
- SpreadsheetUnderlineDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetUnderlineDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2528
- SpreadsheetUnderlineDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetUnderlineDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]", usesInheritance: true, ngImport: i0 });
2529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetUnderlineDirective, decorators: [{
2530
- type: Directive,
2531
- args: [{
2532
- selector: 'kendo-toolbar-button[kendoSpreadsheetUnderline]',
2533
- standalone: true
2534
- }]
2535
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2536
-
2537
- /**
2538
- * @hidden
2539
- */
2540
- class SpreadsheetItalicDirective extends SpreadsheetCommandButton {
2541
- constructor(button, localization, spreadsheetService, toolsService) {
2542
- super('italic', button, localization, spreadsheetService, toolsService, {
2543
- command: 'PropertyChangeCommand',
2544
- options: { property: 'italic',
2545
- value: !button.selected
2546
- }
2547
- });
2548
- }
2549
- }
2550
- SpreadsheetItalicDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetItalicDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2551
- SpreadsheetItalicDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetItalicDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]", usesInheritance: true, ngImport: i0 });
2552
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetItalicDirective, decorators: [{
2553
- type: Directive,
2554
- args: [{
2555
- selector: 'kendo-toolbar-button[kendoSpreadsheetItalic]',
2556
- standalone: true
2557
- }]
2558
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2559
-
2560
- /**
2561
- * @hidden
2562
- */
2563
- class SpreadsheetBoldDirective extends SpreadsheetCommandButton {
2564
- constructor(button, localization, spreadsheetService, toolsService) {
2565
- super('bold', button, localization, spreadsheetService, toolsService, {
2566
- command: 'PropertyChangeCommand',
2567
- options: { property: 'bold',
2568
- value: !button.selected
2569
- }
2570
- });
2571
- }
2572
- }
2573
- SpreadsheetBoldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetBoldDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2574
- SpreadsheetBoldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetBoldDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetBold]", usesInheritance: true, ngImport: i0 });
2575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetBoldDirective, decorators: [{
2576
- type: Directive,
2577
- args: [{
2578
- selector: 'kendo-toolbar-button[kendoSpreadsheetBold]',
2579
- standalone: true
2580
- }]
2581
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2582
-
2583
- /**
2584
- * @hidden
2585
- */
2586
- class SpreadsheetDecreaseFontSizeDirective extends SpreadsheetCommandButton {
2587
- constructor(button, localization, spreadsheetService, toolsService) {
2588
- super('decreaseFontSize', button, localization, spreadsheetService, toolsService, {
2589
- command: 'PropertyChangeCommand',
2590
- options: { property: 'fontSize' }
2591
- });
2592
- this.value = DEFAULT_FONT_VALUES.fontSize;
2593
- }
2594
- clickHandler() {
2595
- const newValue = this.value - 1;
2596
- const options = {
2597
- command: 'PropertyChangeCommand',
2598
- options: { property: 'fontSize', value: newValue || null }
2599
- };
2600
- this.spreadsheetService.spreadsheet.executeCommand(options);
2601
- }
2602
- ngAfterViewInit() {
2603
- this.value = this.toolsService.toolsState['fontSize'];
2604
- this.subs.add(this.toolsService.stateChange.subscribe(state => {
2605
- this.value = state['fontSize'];
2606
- }));
2607
- }
2608
- }
2609
- SpreadsheetDecreaseFontSizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetDecreaseFontSizeDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2610
- SpreadsheetDecreaseFontSizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetDecreaseFontSizeDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseFontSize]", usesInheritance: true, ngImport: i0 });
2611
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetDecreaseFontSizeDirective, decorators: [{
2612
- type: Directive,
2613
- args: [{
2614
- selector: 'kendo-toolbar-button[kendoSpreadsheetDecreaseFontSize]',
2615
- standalone: true
2616
- }]
2617
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2618
-
2619
- /**
2620
- * @hidden
2621
- */
2622
- class SpreadsheetIncreaseFontSizeDirective extends SpreadsheetCommandButton {
2623
- constructor(button, localization, spreadsheetService, toolsService) {
2624
- super('increaseFontSize', button, localization, spreadsheetService, toolsService, {
2625
- command: 'PropertyChangeCommand',
2626
- options: { property: 'fontSize' }
2627
- });
2628
- this.value = DEFAULT_FONT_VALUES.fontSize;
2629
- }
2630
- clickHandler() {
2631
- const newValue = this.value + 1;
2632
- const options = {
2633
- command: 'PropertyChangeCommand',
2634
- options: { property: 'fontSize', value: newValue || null }
2635
- };
2636
- this.spreadsheetService.spreadsheet.executeCommand(options);
2637
- }
2638
- ngAfterViewInit() {
2639
- this.value = this.toolsService.toolsState['fontSize'];
2640
- this.subs.add(this.toolsService.stateChange.subscribe(state => {
2641
- this.value = state['fontSize'];
2642
- }));
2643
- }
2644
- }
2645
- SpreadsheetIncreaseFontSizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetIncreaseFontSizeDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2646
- SpreadsheetIncreaseFontSizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetIncreaseFontSizeDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseFontSize]", usesInheritance: true, ngImport: i0 });
2647
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetIncreaseFontSizeDirective, decorators: [{
2648
- type: Directive,
2649
- args: [{
2650
- selector: 'kendo-toolbar-button[kendoSpreadsheetIncreaseFontSize]',
2651
- standalone: true
2652
- }]
2653
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2654
-
2655
- /**
2656
- * A component which configures an existing `DropDownListComponent` as a Spreadsheet tool
2657
- * ([see example](ToDo).
2658
- * The component associates a `kendo-toolbar-dropdownlist` with a Spreadsheet command that changes the font size of a content block and
2659
- * automatically defines the options of the drop-down list and sets its values ([see example](ToDo).
2660
- *
2661
- * @hidden
2662
- */
2663
- class SpreadsheetFontSizeComponent extends SpreadsheetDropDownToolBase {
2664
- constructor(dialogService, localization, spreadsheetService, toolsService, toolbar) {
2665
- super('fontSize', dialogService, localization, spreadsheetService, toolsService, toolbar);
2666
- }
2667
- }
2668
- SpreadsheetFontSizeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetFontSizeComponent, deps: [{ token: i1$1.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2669
- SpreadsheetFontSizeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetFontSizeComponent, isStandalone: true, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetFontSizeComponent) }], usesInheritance: true, ngImport: i0, template: `
2670
- <ng-template #toolbarTemplate>
2671
- <kendo-spreadsheet-fontsize-dropdownlist
2672
- #element
2673
- [data]="data"
2674
- [(value)]="value"
2675
- [title]="messageFor(command)"
2676
- [tabindex]="tabindex"
2677
- (valueChange)="onValueChange($event)"></kendo-spreadsheet-fontsize-dropdownlist>
2678
- </ng-template>
2679
- <ng-template #popupTemplate>
2680
- <div #popupButton
2681
- [tabindex]="tabindex"
2682
- role="menuitem"
2683
- class="k-item k-menu-item"
2684
- (click)="openDialog()">
2685
- <span
2686
- class="k-link k-menu-link">
2687
- <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
2688
- <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
2689
- </span>
2690
- </div>
2691
- </ng-template>
2692
- `, isInline: true, dependencies: [{ kind: "component", type: FontSizeDropDownListComponent, selector: "kendo-spreadsheet-fontsize-dropdownlist" }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2693
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetFontSizeComponent, decorators: [{
2694
- type: Component,
2695
- args: [{
2696
- providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetFontSizeComponent) }],
2697
- selector: 'kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]',
2698
- template: `
2699
- <ng-template #toolbarTemplate>
2700
- <kendo-spreadsheet-fontsize-dropdownlist
2701
- #element
2702
- [data]="data"
2703
- [(value)]="value"
2704
- [title]="messageFor(command)"
2705
- [tabindex]="tabindex"
2706
- (valueChange)="onValueChange($event)"></kendo-spreadsheet-fontsize-dropdownlist>
2707
- </ng-template>
2708
- <ng-template #popupTemplate>
2709
- <div #popupButton
2710
- [tabindex]="tabindex"
2711
- role="menuitem"
2712
- class="k-item k-menu-item"
2713
- (click)="openDialog()">
2714
- <span
2715
- class="k-link k-menu-link">
2716
- <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
2717
- <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
2718
- </span>
2719
- </div>
2720
- </ng-template>
2721
- `,
2722
- standalone: true,
2723
- imports: [FontSizeDropDownListComponent, IconWrapperComponent, NgIf]
2724
- }]
2725
- }], ctorParameters: function () {
2726
- return [{ type: i1$1.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent, decorators: [{
2727
- type: Inject,
2728
- args: [ToolBarComponent]
2729
- }] }];
2730
- } });
2731
-
2732
- /**
2733
- * A component which configures an existing `DropDownListComponent` as a Spreadsheet tool
2734
- * ([see example](ToDo).
2735
- * The component associates a `kendo-toolbar-dropdownlist` with a Spreadsheet command that changes the font family of a content block and
2736
- * automatically defines the options of the drop-down list and sets its values ([see example](ToDo).
2737
- *
2738
- * @hidden
2739
- */
2740
- class SpreadsheetFontFamilyComponent extends SpreadsheetDropDownToolBase {
2741
- constructor(dialogService, localization, spreadsheetService, toolsService, toolbar) {
2742
- super('fontFamily', dialogService, localization, spreadsheetService, toolsService, toolbar);
2743
- }
2744
- }
2745
- SpreadsheetFontFamilyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetFontFamilyComponent, deps: [{ token: i1$1.DialogService }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2746
- SpreadsheetFontFamilyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetFontFamilyComponent, isStandalone: true, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]", providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetFontFamilyComponent) }], usesInheritance: true, ngImport: i0, template: `
2747
- <ng-template #toolbarTemplate>
2748
- <kendo-spreadsheet-fontfamily-dropdownlist
2749
- #element
2750
- [data]="data"
2751
- [(value)]="value"
2752
- [title]="messageFor(command)"
2753
- [tabindex]="tabindex"
2754
- (valueChange)="onValueChange($event)"></kendo-spreadsheet-fontfamily-dropdownlist>
2755
- </ng-template>
2756
- <ng-template #popupTemplate>
2757
- <div #popupButton
2758
- [tabindex]="tabindex"
2759
- role="menuitem"
2760
- class="k-item k-menu-item"
2761
- (click)="openDialog()">
2762
- <span
2763
- class="k-link k-menu-link">
2764
- <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
2765
- <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
2766
- </span>
2767
- </div>
2768
- </ng-template>
2769
- `, isInline: true, dependencies: [{ kind: "component", type: FontFamilyDropDownListComponent, selector: "kendo-spreadsheet-fontfamily-dropdownlist" }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2770
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetFontFamilyComponent, decorators: [{
2771
- type: Component,
2772
- args: [{
2773
- providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => SpreadsheetFontFamilyComponent) }],
2774
- selector: 'kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]',
2775
- template: `
2776
- <ng-template #toolbarTemplate>
2777
- <kendo-spreadsheet-fontfamily-dropdownlist
2778
- #element
2779
- [data]="data"
2780
- [(value)]="value"
2781
- [title]="messageFor(command)"
2782
- [tabindex]="tabindex"
2783
- (valueChange)="onValueChange($event)"></kendo-spreadsheet-fontfamily-dropdownlist>
2784
- </ng-template>
2785
- <ng-template #popupTemplate>
2786
- <div #popupButton
2787
- [tabindex]="tabindex"
2788
- role="menuitem"
2789
- class="k-item k-menu-item"
2790
- (click)="openDialog()">
2791
- <span
2792
- class="k-link k-menu-link">
2793
- <kendo-icon-wrapper [name]="icon" [svgIcon]="svgIcon"></kendo-icon-wrapper>
2794
- <span *ngIf="messageFor(command)" class="k-menu-link-text">{{messageFor(command)}}</span>
2795
- </span>
2796
- </div>
2797
- </ng-template>
2798
- `,
2799
- standalone: true,
2800
- imports: [FontFamilyDropDownListComponent, IconWrapperComponent, NgIf]
2801
- }]
2802
- }], ctorParameters: function () {
2803
- return [{ type: i1$1.DialogService }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: i1$2.ToolBarComponent, decorators: [{
2804
- type: Inject,
2805
- args: [ToolBarComponent]
2806
- }] }];
2807
- } });
2808
-
2809
- /**
2810
- * @hidden
2811
- */
2812
- class SpreadsheetRedoDirective extends SpreadsheetCommandButton {
2813
- constructor(button, localization, spreadsheetService, toolsService) {
2814
- super('redo', button, localization, spreadsheetService, toolsService, {
2815
- options: { property: 'redo' }
2816
- });
2817
- }
2818
- clickHandler() {
2819
- this.spreadsheetService.spreadsheet.workbook.undoRedoStack['redo']();
2820
- }
2821
- }
2822
- SpreadsheetRedoDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetRedoDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2823
- SpreadsheetRedoDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetRedoDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]", usesInheritance: true, ngImport: i0 });
2824
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetRedoDirective, decorators: [{
2825
- type: Directive,
2826
- args: [{
2827
- selector: 'kendo-toolbar-button[kendoSpreadsheetRedo]',
2828
- standalone: true
2829
- }]
2830
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2831
-
2832
- /**
2833
- * @hidden
2834
- */
2835
- class SpreadsheetUndoDirective extends SpreadsheetCommandButton {
2836
- constructor(button, localization, spreadsheetService, toolsService) {
2837
- super('undo', button, localization, spreadsheetService, toolsService, {
2838
- options: { property: 'undo' }
2839
- });
2840
- }
2841
- clickHandler() {
2842
- this.spreadsheetService.spreadsheet.workbook.undoRedoStack['undo']();
2843
- }
2844
- }
2845
- SpreadsheetUndoDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetUndoDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2846
- SpreadsheetUndoDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetUndoDirective, isStandalone: true, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]", usesInheritance: true, ngImport: i0 });
2847
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetUndoDirective, decorators: [{
2848
- type: Directive,
2849
- args: [{
2850
- selector: 'kendo-toolbar-button[kendoSpreadsheetUndo]',
2851
- standalone: true
2852
- }]
2853
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2854
-
2855
- /**
2856
- * @hidden
2857
- */
2858
- class SpreadsheetSaveFileDirective {
2859
- constructor(button, localization, spreadsheetService) {
2860
- this.button = button;
2861
- this.localization = localization;
2862
- this.spreadsheetService = spreadsheetService;
2863
- this.subs = new Subscription();
2864
- }
2865
- ngOnInit() {
2866
- this.button.title = this.localization.get('saveFile');
2867
- this.button.icon = commandIcons['download'];
2868
- this.button.svgIcon = commandSVGIcons['download'];
2869
- this.button.fillMode = 'flat';
2870
- this.subs.add(this.button.click.subscribe(() => {
2871
- const spreadsheet = this.spreadsheetService.spreadsheet;
2872
- if (spreadsheet) {
2873
- spreadsheet.saveAsExcel(Object.assign(Object.assign({}, spreadsheet.options.excel), { saveAs,
2874
- Workbook }));
2875
- }
2876
- }));
2877
- }
2878
- ngOnDestroy() {
2879
- this.subs.unsubscribe();
2880
- }
2881
- }
2882
- SpreadsheetSaveFileDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetSaveFileDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }], target: i0.ɵɵFactoryTarget.Directive });
2883
- SpreadsheetSaveFileDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetSaveFileDirective, isStandalone: true, selector: "[kendoSpreadsheetSaveFile]", ngImport: i0 });
2884
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetSaveFileDirective, decorators: [{
2885
- type: Directive,
2886
- args: [{
2887
- selector: '[kendoSpreadsheetSaveFile]',
2888
- standalone: true
2889
- }]
2890
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }]; } });
2891
-
2892
- /**
2893
- * @hidden
2894
- */
2895
- class SpreadsheetLoadFileComponent extends ToolBarToolComponent {
2896
- constructor(localization, spreadsheetService, toolbar) {
2897
- super();
2898
- this.localization = localization;
2899
- this.spreadsheetService = spreadsheetService;
2900
- this.toolbar = toolbar;
2901
- this.icon = commandIcons['folderOpen'];
2902
- this.svgIcon = commandSVGIcons['folderOpen'];
2903
- this.tabindex = -1;
2904
- this.onFileSelect = (e) => {
2905
- const file = e.target.files[0];
2906
- if (file) {
2907
- this.spreadsheetService.spreadsheet.executeCommand({ command: 'OpenCommand', options: { file } });
2908
- e.target.value = null;
2909
- }
2910
- };
2911
- this.isBuiltInTool = true;
2912
- }
2913
- /**
2914
- * @hidden
2915
- */
2916
- messageFor(key) {
2917
- return this.localization.get(key);
2918
- }
2919
- /**
2920
- * @hidden
2921
- */
2922
- canFocus() {
2923
- return true;
2924
- }
2925
- /**
2926
- * @hidden
2927
- */
2928
- focus() {
2929
- this.tabindex = 0;
2930
- if (this.overflows) {
2931
- this.overflowButtonElement.nativeElement.focus();
2932
- }
2933
- else {
2934
- this.button.focus();
2935
- }
2936
- }
2937
- /**
2938
- * @hidden
2939
- */
2940
- handleKey() {
2941
- this.tabindex = -1;
2942
- return false;
2943
- }
2944
- }
2945
- SpreadsheetLoadFileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetLoadFileComponent, deps: [{ token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
2946
- SpreadsheetLoadFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetLoadFileComponent, isStandalone: true, selector: "kendo-spreadsheet-load-file-tool", providers: [
2947
- {
2948
- provide: ToolBarToolComponent,
2949
- useExisting: forwardRef(() => SpreadsheetLoadFileComponent),
2950
- },
2951
- ], 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: `
2952
- <ng-template #toolbarTemplate>
2953
- <button
2954
- #button
2955
- type="button"
2956
- kendoButton
2957
- [title]="messageFor('loadFile')"
2958
- fillMode="flat"
2959
- [icon]="icon"
2960
- [svgIcon]="svgIcon"
2961
- (click)="fileSelectEl.click()"></button>
2962
- <input
2963
- #fileSelectEl
2964
- type="file"
2965
- (change)="onFileSelect($event)"
2966
- [style.display]="'none'"
2967
- aria-hidden="true"
2968
- accept=".xlsx,.XLSX" />
2969
- </ng-template>
2970
- <ng-template #popupTemplate>
2971
- <div
2972
- #overflowButton
2973
- tabindex="-1"
2974
- role="menuitem"
2975
- class="k-item k-menu-item"
2976
- (click)="toolbar.toggle(false); popupFileSelectEl.click()">
2977
- <span
2978
- class="k-link k-menu-link">
2979
- <kendo-icon-wrapper
2980
- [name]="icon"
2981
- [svgIcon]="svgIcon"
2982
- ></kendo-icon-wrapper>
2983
- <span class="k-menu-link-text">{{messageFor('loadFile')}}</span>
2984
- </span>
2985
- <input
2986
- #popupFileSelectEl
2987
- type="file"
2988
- (change)="onFileSelect($event)"
2989
- [style.display]="'none'"
2990
- aria-hidden="true"
2991
- accept=".xlsx,.XLSX" />
2992
- </div>
2993
- </ng-template>
2994
- `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
2995
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetLoadFileComponent, decorators: [{
2996
- type: Component,
2997
- args: [{
2998
- selector: 'kendo-spreadsheet-load-file-tool',
2999
- providers: [
3000
- {
3001
- provide: ToolBarToolComponent,
3002
- useExisting: forwardRef(() => SpreadsheetLoadFileComponent),
3003
- },
3004
- ],
3005
- template: `
3006
- <ng-template #toolbarTemplate>
3007
- <button
3008
- #button
3009
- type="button"
3010
- kendoButton
3011
- [title]="messageFor('loadFile')"
3012
- fillMode="flat"
3013
- [icon]="icon"
3014
- [svgIcon]="svgIcon"
3015
- (click)="fileSelectEl.click()"></button>
3016
- <input
3017
- #fileSelectEl
3018
- type="file"
3019
- (change)="onFileSelect($event)"
3020
- [style.display]="'none'"
3021
- aria-hidden="true"
3022
- accept=".xlsx,.XLSX" />
3023
- </ng-template>
3024
- <ng-template #popupTemplate>
3025
- <div
3026
- #overflowButton
3027
- tabindex="-1"
3028
- role="menuitem"
3029
- class="k-item k-menu-item"
3030
- (click)="toolbar.toggle(false); popupFileSelectEl.click()">
3031
- <span
3032
- class="k-link k-menu-link">
3033
- <kendo-icon-wrapper
3034
- [name]="icon"
3035
- [svgIcon]="svgIcon"
3036
- ></kendo-icon-wrapper>
3037
- <span class="k-menu-link-text">{{messageFor('loadFile')}}</span>
3038
- </span>
3039
- <input
3040
- #popupFileSelectEl
3041
- type="file"
3042
- (change)="onFileSelect($event)"
3043
- [style.display]="'none'"
3044
- aria-hidden="true"
3045
- accept=".xlsx,.XLSX" />
3046
- </div>
3047
- </ng-template>
3048
- `,
3049
- standalone: true,
3050
- imports: [ButtonComponent, IconWrapperComponent]
3051
- }]
3052
- }], ctorParameters: function () {
3053
- return [{ type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: i1$2.ToolBarComponent, decorators: [{
3054
- type: Inject,
3055
- args: [ToolBarComponent]
3056
- }] }];
3057
- }, propDecorators: { toolbarTemplate: [{
3058
- type: ViewChild,
3059
- args: ['toolbarTemplate', { static: true }]
3060
- }], popupTemplate: [{
3061
- type: ViewChild,
3062
- args: ['popupTemplate', { static: true }]
3063
- }], overflowButtonElement: [{
3064
- type: ViewChild,
3065
- args: ['overflowButton', { read: ElementRef, static: false }]
3066
- }], button: [{
3067
- type: ViewChild,
3068
- args: ['button']
3069
- }] } });
3070
-
3071
- /**
3072
- * @hidden
3073
- */
3074
- class MainMenuDirective {
3075
- constructor(host, renderer) {
3076
- this.host = host;
3077
- this.renderer = renderer;
3078
- }
3079
- ngAfterViewInit() {
3080
- isDocumentAvailable() && this.renderer.addClass(this.host.nativeElement.firstElementChild, 'k-spreadsheet-menu');
3081
- }
3082
- }
3083
- MainMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MainMenuDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
3084
- MainMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: MainMenuDirective, isStandalone: true, selector: "[kendoSpreadsheetMenu]", ngImport: i0 });
3085
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MainMenuDirective, decorators: [{
3086
- type: Directive,
3087
- args: [{
3088
- selector: '[kendoSpreadsheetMenu]',
3089
- standalone: true
3090
- }]
3091
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
3092
-
3093
- /**
3094
- * @hidden
3095
- */
3096
- class MessagesDirective extends ComponentMessages {
3097
- }
3098
- MessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessagesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3099
- MessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: MessagesDirective, isStandalone: true, selector: "[kendoSpreadsheetMessages]", inputs: { home: "home", file: "file", insert: "insert", formatTab: "formatTab", saveFile: "saveFile", loadFile: "loadFile", bold: "bold", italic: "italic", underline: "underline", format: "format", fontFamily: "fontFamily", fontSize: "fontSize", undo: "undo", redo: "redo", background: "background", color: "color", gridLines: "gridLines", addColumnLeft: "addColumnLeft", addColumnRight: "addColumnRight", addRowBelow: "addRowBelow", addRowAbove: "addRowAbove", deleteColumn: "deleteColumn", deleteRow: "deleteRow", wrap: "wrap", align: "align", alignHorizontal: "alignHorizontal", alignVertical: "alignVertical", alignLeft: "alignLeft", alignCenter: "alignCenter", alignRight: "alignRight", alignJustify: "alignJustify", alignTop: "alignTop", alignMiddle: "alignMiddle", alignBottom: "alignBottom", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", dialogInsert: "dialogInsert", dialogRemoveLink: "dialogRemoveLink", delete: "delete", rename: "rename", nameBox: "nameBox", formulaInput: "formulaInput", addSheet: "addSheet", sheetsMenu: "sheetsMenu", view: "view", merge: "merge", mergeHorizontally: "mergeHorizontally", mergeVertically: "mergeVertically", mergeAll: "mergeAll", unmerge: "unmerge", insertLink: "insertLink", increaseDecimal: "increaseDecimal", decreaseDecimal: "decreaseDecimal", increaseFontSize: "increaseFontSize", decreaseFontSize: "decreaseFontSize", openUnsupported: "openUnsupported", modifyMerged: "modifyMerged", cannotModifyDisabled: "cannotModifyDisabled", dialogOk: "dialogOk", dialogError: "dialogError", duplicateSheetName: "duplicateSheetName", copy: "copy", cut: "cut", paste: "paste", hideRow: "hideRow", unhideRow: "unhideRow", hideColumn: "hideColumn", unhideColumn: "unhideColumn", sheetDelete: "sheetDelete", sheetRename: "sheetRename", sheetHide: "sheetHide", sheetDuplicate: "sheetDuplicate", sheetMoveLeft: "sheetMoveLeft", sheetMoveRight: "sheetMoveRight", invalidNameError: "invalidNameError" }, usesInheritance: true, ngImport: i0 });
3100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessagesDirective, decorators: [{
3101
- type: Directive,
3102
- args: [{
3103
- selector: '[kendoSpreadsheetMessages]',
3104
- standalone: true
3105
- }]
3106
- }], propDecorators: { home: [{
3107
- type: Input
3108
- }], file: [{
3109
- type: Input
3110
- }], insert: [{
3111
- type: Input
3112
- }], formatTab: [{
3113
- type: Input
3114
- }], saveFile: [{
3115
- type: Input
3116
- }], loadFile: [{
3117
- type: Input
3118
- }], bold: [{
3119
- type: Input
3120
- }], italic: [{
3121
- type: Input
3122
- }], underline: [{
3123
- type: Input
3124
- }], format: [{
3125
- type: Input
3126
- }], fontFamily: [{
3127
- type: Input
3128
- }], fontSize: [{
3129
- type: Input
3130
- }], undo: [{
3131
- type: Input
3132
- }], redo: [{
3133
- type: Input
3134
- }], background: [{
3135
- type: Input
3136
- }], color: [{
3137
- type: Input
3138
- }], gridLines: [{
3139
- type: Input
3140
- }], addColumnLeft: [{
3141
- type: Input
3142
- }], addColumnRight: [{
3143
- type: Input
3144
- }], addRowBelow: [{
3145
- type: Input
3146
- }], addRowAbove: [{
3147
- type: Input
3148
- }], deleteColumn: [{
3149
- type: Input
3150
- }], deleteRow: [{
3151
- type: Input
3152
- }], wrap: [{
3153
- type: Input
3154
- }], align: [{
3155
- type: Input
3156
- }], alignHorizontal: [{
3157
- type: Input
3158
- }], alignVertical: [{
3159
- type: Input
3160
- }], alignLeft: [{
3161
- type: Input
3162
- }], alignCenter: [{
3163
- type: Input
3164
- }], alignRight: [{
3165
- type: Input
3166
- }], alignJustify: [{
3167
- type: Input
3168
- }], alignTop: [{
3169
- type: Input
3170
- }], alignMiddle: [{
3171
- type: Input
3172
- }], alignBottom: [{
3173
- type: Input
3174
- }], dialogApply: [{
3175
- type: Input
3176
- }], dialogCancel: [{
3177
- type: Input
3178
- }], dialogDelete: [{
3179
- type: Input
3180
- }], dialogRename: [{
3181
- type: Input
3182
- }], dialogInsert: [{
3183
- type: Input
3184
- }], dialogRemoveLink: [{
3185
- type: Input
3186
- }], delete: [{
3187
- type: Input
3188
- }], rename: [{
3189
- type: Input
3190
- }], nameBox: [{
3191
- type: Input
3192
- }], formulaInput: [{
3193
- type: Input
3194
- }], addSheet: [{
3195
- type: Input
3196
- }], sheetsMenu: [{
3197
- type: Input
3198
- }], view: [{
3199
- type: Input
3200
- }], merge: [{
3201
- type: Input
3202
- }], mergeHorizontally: [{
3203
- type: Input
3204
- }], mergeVertically: [{
3205
- type: Input
3206
- }], mergeAll: [{
3207
- type: Input
3208
- }], unmerge: [{
3209
- type: Input
3210
- }], insertLink: [{
3211
- type: Input
3212
- }], increaseDecimal: [{
3213
- type: Input
3214
- }], decreaseDecimal: [{
3215
- type: Input
3216
- }], increaseFontSize: [{
3217
- type: Input
3218
- }], decreaseFontSize: [{
3219
- type: Input
3220
- }], openUnsupported: [{
3221
- type: Input
3222
- }], modifyMerged: [{
3223
- type: Input
3224
- }], cannotModifyDisabled: [{
3225
- type: Input
3226
- }], dialogOk: [{
3227
- type: Input
3228
- }], dialogError: [{
3229
- type: Input
3230
- }], duplicateSheetName: [{
3231
- type: Input
3232
- }], copy: [{
3233
- type: Input
3234
- }], cut: [{
3235
- type: Input
3236
- }], paste: [{
3237
- type: Input
3238
- }], hideRow: [{
3239
- type: Input
3240
- }], unhideRow: [{
3241
- type: Input
3242
- }], hideColumn: [{
3243
- type: Input
3244
- }], unhideColumn: [{
3245
- type: Input
3246
- }], sheetDelete: [{
3247
- type: Input
3248
- }], sheetRename: [{
3249
- type: Input
3250
- }], sheetHide: [{
3251
- type: Input
3252
- }], sheetDuplicate: [{
3253
- type: Input
3254
- }], sheetMoveLeft: [{
3255
- type: Input
3256
- }], sheetMoveRight: [{
3257
- type: Input
3258
- }], invalidNameError: [{
3259
- type: Input
3260
- }] } });
3261
-
3262
- /**
3263
- * @hidden
3264
- */
3265
- class LocalizedMessagesDirective extends MessagesDirective {
3266
- constructor(service) {
3267
- super();
3268
- this.service = service;
3269
- }
3270
- }
3271
- LocalizedMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
3272
- LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: LocalizedMessagesDirective, isStandalone: true, selector: "[kendoSpreadsheetLocalizedMessages]", providers: [{
3273
- provide: MessagesDirective,
3274
- useExisting: forwardRef(() => LocalizedMessagesDirective)
3275
- }], usesInheritance: true, ngImport: i0 });
3276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
3277
- type: Directive,
3278
- args: [{
3279
- providers: [{
3280
- provide: MessagesDirective,
3281
- useExisting: forwardRef(() => LocalizedMessagesDirective)
3282
- }],
3283
- selector: '[kendoSpreadsheetLocalizedMessages]',
3284
- standalone: true
3285
- }]
3286
- }], ctorParameters: function () { return [{ type: i2.LocalizationService }]; } });
3287
-
3288
- /**
3289
- * Represents the [Kendo UI Spreadsheet component for Angular]({% slug overview_spreadsheet %}).
3290
- */
3291
- class SpreadsheetComponent {
3292
- constructor(ngZone, intl, host, localization, spreadsheetService, toolsService, errorService, dialogService) {
3293
- this.ngZone = ngZone;
3294
- this.intl = intl;
3295
- this.host = host;
3296
- this.localization = localization;
3297
- this.spreadsheetService = spreadsheetService;
3298
- this.toolsService = toolsService;
3299
- this.errorService = errorService;
3300
- this.dialogService = dialogService;
3301
- this.hostClass = true;
3302
- this.role = 'application';
3303
- /**
3304
- * Sets the overflow option of the built-in Toolbar components.
3305
- * @default false
3306
- */
3307
- this.overflow = false;
3308
- /**
3309
- * Sets the height of the formula list container.
3310
- * Accepts same values as the CSS [`style.height`](https://developer.mozilla.org/en-US/docs/Web/CSS/height) property.
3311
- *
3312
- * @default '300px'
3313
- */
3314
- this.formulaListMaxHeight = '300px';
3315
- /**
3316
- * The number of columns in the document.
3317
- *
3318
- * @default 50
3319
- */
3320
- this.columns = 50;
3321
- /**
3322
- * The initial column width in pixels.
3323
- *
3324
- * @default 100
3325
- */
3326
- this.columnWidth = 100;
3327
- /**
3328
- * The height of the header row in pixels.
3329
- *
3330
- * @default 30
3331
- */
3332
- this.headerHeight = 30;
3333
- /**
3334
- * The width of the header column in pixels.
3335
- *
3336
- * @default 32
3337
- */
3338
- this.headerWidth = 32;
3339
- /**
3340
- * The initial row height in pixels.
3341
- *
3342
- * @default 30
3343
- */
3344
- this.rowHeight = 30;
3345
- /**
3346
- * The number of rows in the document.
3347
- *
3348
- * @default 200
3349
- */
3350
- this.rows = 200;
3351
- /**
3352
- * Fired when a value in the Spreadsheet is changed. Exposes the `SpreadsheetWidget` instance and the selected `Range` as event data.
3353
- */
3354
- this.change = new EventEmitter();
3355
- /**
3356
- * Fired when the selected range format is changed from the UI. Exposes the `SpreadsheetWidget` instance and the selected `Range` as event data.
3357
- */
3358
- this.formatChange = new EventEmitter();
3359
- /**
3360
- * Fired when the selection is changed by the end user. Exposes the `SpreadsheetWidget` instance and the selected `Range` as event data.
3361
- */
3362
- this.selectionChange = new EventEmitter();
3363
- /**
3364
- * Fired when the end user clicks the Export to Excel toolbar button.
3365
- * The event is preventable and exposes the `Workbook` object, a `preventDefault` method
3366
- * (if invoked, the generated file will not be saved), and the SpreadsheetWidget instance.
3367
- */
3368
- this.excelExport = new EventEmitter();
3369
- /**
3370
- * Fired when the end user clicks the Open toolbar button.
3371
- * The event is preventable and exposes the selected `File` or `Blob`, a `preventDefault` method
3372
- * (if invoked, the selected file will not be loaded), and the SpreadsheetWidget instance.
3373
- */
3374
- this.excelImport = new EventEmitter();
3375
- /**
3376
- * Fired when the active sheet is about to change.
3377
- * The event exposes the new active `Sheet` and the SpreadsheetWidget instance.
3378
- */
3379
- this.activeSheetChange = new EventEmitter();
3380
- this.formulaFxIcon = formulaFxIcon;
3381
- this.folderOpenIcon = folderOpenIcon;
3382
- this.downloadIcon = downloadIcon;
3383
- this.showLicenseWatermark = false;
3384
- this.contextMenuItems = [];
3385
- this.subs = new Subscription();
3386
- /**
3387
- * @hidden
3388
- */
3389
- this.onKeyDown = (e) => {
3390
- const isCtrl = e.ctrlKey || e.metaKey;
3391
- const shift = e.shiftKey;
3392
- if (isCtrl && shift && e.keyCode === Keys.KeyS) {
3393
- this.spreadsheetService.onSheetsBarFocus.next();
3394
- }
3395
- };
3396
- this.onChange = (e) => {
3397
- hasObservers(this.change) && this.change.emit(e);
3398
- this.spreadsheetService.selectionChanged.next(e.range);
3399
- };
3400
- this.onSelectionChange = (e) => {
3401
- hasObservers(this.selectionChange) && this.selectionChange.emit(e);
3402
- this.spreadsheetService.selectionChanged.next(e.range);
3403
- };
3404
- this.onChangeFormat = (e) => {
3405
- hasObservers(this.formatChange) && this.formatChange.emit(e);
3406
- this.spreadsheetService.selectionChanged.next(e.range);
3407
- };
3408
- this.onExcelExport = (e) => hasObservers(this.excelExport) && this.excelExport.emit(e);
3409
- this.onExcelImport = (e) => hasObservers(this.excelImport) && this.excelImport.emit(e);
3410
- this.onActiveSheetChanged = (sheet) => {
3411
- const eventArgs = { sender: this.spreadsheetService.spreadsheet, sheet };
3412
- hasObservers(this.activeSheetChange) && this.activeSheetChange.emit(eventArgs);
3413
- const range = sheet.range(sheet.activeCell());
3414
- this.spreadsheetService.selectionChanged.next(range);
3415
- };
3416
- this.updateState = (e) => {
3417
- var _a;
3418
- this.toolsService.updateTools(e);
3419
- if ((_a = e.reason) === null || _a === void 0 ? void 0 : _a.sheetSelection) {
3420
- this.sheets = mapToSheetDescriptor(this.spreadsheetService.spreadsheet.sheets());
3421
- }
3422
- };
3423
- this.onMessage = (e) => {
3424
- this.ngZone.run(() => {
3425
- this.errorService.handleErrorMessage(e);
3426
- });
3427
- };
3428
- const isValid = validatePackage(packageMetadata);
3429
- this.showLicenseWatermark = shouldShowValidationUI(isValid);
3430
- ngZone.onStable.pipe(take(1)).subscribe(() => {
3431
- if (!this.menuItems) {
3432
- this._menuItems = [{
3433
- id: 'file',
3434
- text: this.messageFor('file')
3435
- }, {
3436
- id: 'home',
3437
- text: this.messageFor('home'),
3438
- active: true,
3439
- cssClass: 'k-active'
3440
- }, {
3441
- id: 'insert',
3442
- text: this.messageFor('insert')
3443
- }, {
3444
- id: 'format',
3445
- text: this.messageFor('formatTab')
3446
- }, {
3447
- id: 'view',
3448
- text: this.messageFor('view')
3449
- }];
3450
- }
3451
- this.selectedMenuItem = this.menuItems[1];
3452
- });
3453
- }
3454
- /**
3455
- * The menu items configuration.
3456
- */
3457
- set menuItems(items) {
3458
- this._menuItems = [];
3459
- this.ngZone.onStable.pipe(take(1)).subscribe(() => {
3460
- const normalizedItems = items.map(item => ({
3461
- active: item.active,
3462
- text: item.id === 'format' ? this.messageFor('formatTab') : this.messageFor(item.id),
3463
- cssClass: item.active ? 'k-active' : null,
3464
- id: item.id
3465
- }));
3466
- this._menuItems = normalizedItems;
3467
- const activeItemIndex = this.menuItems.findIndex(item => item.active);
3468
- this.selectedMenuItem = this.menuItems[activeItemIndex > -1 ? activeItemIndex : 0];
3469
- });
3470
- }
3471
- get menuItems() {
3472
- return this._menuItems;
3473
- }
3474
- /**
3475
- * The name of the currently active sheet. Must match one of the sheet names.
3476
- */
3477
- set activeSheet(value) {
3478
- var _a, _b;
3479
- this._activeSheet = value;
3480
- (_b = (_a = this.spreadsheetService.spreadsheet) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.sheetsbar.onSheetSelect(this.activeSheet);
3481
- }
3482
- get activeSheet() {
3483
- var _a, _b;
3484
- return this._activeSheet || ((_b = (_a = this.spreadsheetService.spreadsheet) === null || _a === void 0 ? void 0 : _a.activeSheet()) === null || _b === void 0 ? void 0 : _b.name());
3485
- }
3486
- /**
3487
- * An array which defines the document sheets and their content.
3488
- */
3489
- set sheets(value) {
3490
- const items = value.map((item, index, items) => (Object.assign(Object.assign({}, item), { state: item.state || 'visible', inEdit: false, first: index === 0, last: index === items.length - 1, text: item.name, active: (item.name === this.activeSheet) || items.length === 1, index })));
3491
- this._sheetsInfo = items;
3492
- }
3493
- get sheetsInfo() {
3494
- return this._sheetsInfo;
3495
- }
3496
- get spreadsheetWidget() {
3497
- return this.spreadsheetService.spreadsheet;
3498
- }
3499
- ngAfterViewInit() {
3500
- if (!isDocumentAvailable()) {
3501
- return;
3502
- }
3503
- this.ngZone.runOutsideAngular(() => {
3504
- setTimeout(() => {
3505
- var _a;
3506
- const spreadsheet = this.spreadsheetService.spreadsheet = new SpreadsheetWidget(this.host.nativeElement, this.options);
3507
- spreadsheet.bind('select', this.onSelectionChange);
3508
- spreadsheet.bind('change', this.onChange);
3509
- spreadsheet.bind('changeFormat', this.onChangeFormat);
3510
- spreadsheet.bind('excelImport', this.onExcelImport);
3511
- spreadsheet.bind('excelExport', this.onExcelExport);
3512
- spreadsheet.bind('keydown', this.onKeyDown);
3513
- spreadsheet.view.bind('update', this.updateState);
3514
- spreadsheet.view.bind('message', this.onMessage);
3515
- spreadsheet.bind('contextmenu', this.onContextMenu.bind(this));
3516
- const sheet = spreadsheet.activeSheet();
3517
- if (sheet) {
3518
- this.updateState({ range: sheet.range(sheet.activeCell()) });
3519
- }
3520
- this.updateActiveSheet(this.activeSheet || ((_a = spreadsheet === null || spreadsheet === void 0 ? void 0 : spreadsheet.activeSheet()) === null || _a === void 0 ? void 0 : _a.name()));
3521
- if (!this.sheetsInfo) {
3522
- this.ngZone.run(() => {
3523
- const defaultSheetDescriptors = mapToSheetDescriptor([spreadsheet === null || spreadsheet === void 0 ? void 0 : spreadsheet.activeSheet()]);
3524
- this._sheetsInfo = [Object.assign(Object.assign({ text: this.spreadsheetService.currentActiveSheet, first: true, last: true, state: 'visible' }, defaultSheetDescriptors), { sheetActions: getSheetActions(defaultSheetDescriptors).map(item => (Object.assign(Object.assign({}, item), { text: this.messageFor(item.messageKey) }))) })];
3525
- });
3526
- }
3527
- });
3528
- this.subs.add(this.spreadsheetService.sheetsChanged.subscribe(this.onSheetsChanged.bind(this)));
3529
- this.subs.add(this.spreadsheetService.activeSheetChanged.subscribe(this.onActiveSheetChanged.bind(this)));
3530
- this.subs.add(this.spreadsheetService.selectionChanged.subscribe(range => this.currentRange = range));
3531
- this.spreadsheetService.dialogContainer = this.dialogContainer;
3532
- });
3533
- }
3534
- ngOnChanges(changes) {
3535
- const dynamicOptions = [
3536
- 'columns',
3537
- 'columnWidth',
3538
- 'defaultCellStyle',
3539
- 'excel',
3540
- 'headerHeight',
3541
- 'headerWidth',
3542
- 'images',
3543
- 'names',
3544
- 'rowHeight',
3545
- 'rows'
3546
- ];
3547
- const changedDynamicOptions = dynamicOptions.filter(o => isPresent(changes[o] && !changes[o].firstChange));
3548
- if (this.spreadsheetWidget && changedDynamicOptions.length) {
3549
- const newOptions = this.spreadsheetWidget.toJSON();
3550
- changedDynamicOptions.forEach(o => newOptions[o] = changes[o].currentValue);
3551
- this.spreadsheetWidget.fromJSON(newOptions);
3552
- }
3553
- }
3554
- ngOnDestroy() {
3555
- this.subs.unsubscribe();
3556
- }
3557
- /**
3558
- * @hidden
3559
- */
3560
- onContextMenu(e) {
3561
- if (e.targetType === 'topcorner') {
3562
- return;
3563
- }
3564
- const selection = this.spreadsheetWidget.activeSheet().select();
3565
- const { topLeft, bottomRight } = selection;
3566
- const isRange = e.targetType === 'cell' && (topLeft.row !== bottomRight.row || topLeft.col !== bottomRight.col);
3567
- const targetType = isRange ? 'range' : e.targetType;
3568
- this.contextMenuItems = this.contextMenuItemsForTarget(targetType, e.showUnhide, e.showUnmerge);
3569
- this.contextMenu.show({ top: e.originalEvent.pageY, left: e.originalEvent.pageX });
3570
- }
3571
- /**
3572
- * @hidden
3573
- */
3574
- onContextMenuSelect(e) {
3575
- let command;
3576
- switch (e.item.id) {
3577
- case 'cut':
3578
- command = { command: 'ToolbarCutCommand', options: { workbook: this.spreadsheetWidget.workbook } };
3579
- break;
3580
- case 'copy':
3581
- command = { command: 'ToolbarCopyCommand', options: { workbook: this.spreadsheetWidget.workbook } };
3582
- break;
3583
- case 'unmerge':
3584
- command = { command: 'MergeCellCommand', options: { value: 'unmerge' } };
3585
- break;
3586
- case 'mergeAll':
3587
- command = { command: 'MergeCellCommand', options: { value: 'cells' } };
3588
- break;
3589
- case 'mergeHorizontally':
3590
- command = { command: 'MergeCellCommand', options: { value: 'horizontally' } };
3591
- break;
3592
- case 'mergeVertically':
3593
- command = { command: 'MergeCellCommand', options: { value: 'vertically' } };
3594
- break;
3595
- case 'hideRow':
3596
- command = { command: 'HideLineCommand', options: { axis: 'row' } };
3597
- break;
3598
- case 'hideColumn':
3599
- command = { command: 'HideLineCommand', options: { axis: 'column' } };
3600
- break;
3601
- case 'unhideRow':
3602
- command = { command: 'UnHideLineCommand', options: { axis: 'row' } };
3603
- break;
3604
- case 'unhideColumn':
3605
- command = { command: 'UnHideLineCommand', options: { axis: 'column' } };
3606
- break;
3607
- case 'deleteRow':
3608
- command = { command: 'DeleteRowCommand' };
3609
- break;
3610
- case 'deleteColumn':
3611
- command = { command: 'DeleteColumnCommand' };
3612
- break;
3613
- case 'insertLink':
3614
- this.openLinkDialog();
3615
- break;
3616
- case 'addRowAbove':
3617
- command = { command: 'AddRowCommand', options: { value: 'above' } };
3618
- break;
3619
- case 'addRowBelow':
3620
- command = { command: 'AddRowCommand', options: { value: 'below' } };
3621
- break;
3622
- case 'addColumnLeft':
3623
- command = { command: 'AddColumnCommand', options: { value: 'left' } };
3624
- break;
3625
- case 'addColumnRight':
3626
- command = { command: 'AddColumnCommand', options: { value: 'right' } };
3627
- break;
3628
- }
3629
- if (command) {
3630
- this.spreadsheetWidget.executeCommand(command);
3631
- }
3632
- }
3633
- /**
3634
- * @hidden
3635
- */
3636
- messageFor(key) {
3637
- return this.localization.get(key);
3638
- }
3639
- /**
3640
- * @hidden
3641
- */
3642
- onMenuItemSelect(e) {
3643
- const selectedMenuItem = this.menuItems.find(item => item.text === e.item.text);
3644
- const previousSelectedItem = this.menuItems.find(item => item.active);
3645
- if (selectedMenuItem !== previousSelectedItem) {
3646
- this._menuItems.forEach((item, idx) => {
3647
- item.active = idx === +e.index;
3648
- item.cssClass = idx === +e.index ? 'k-active' : null;
3649
- });
3650
- this.selectedMenuItem = this.menuItems.find(item => item.active);
3651
- }
3652
- }
3653
- updateActiveSheet(name) {
3654
- this.ngZone.run(() => this.spreadsheetService.currentActiveSheet = name);
3655
- }
3656
- onSheetsChanged(e) {
3657
- this.ngZone.run(() => {
3658
- this.sheets = mapToSheetDescriptor(e.sheets);
3659
- this.updateActiveSheet(this.spreadsheetService.activeSheet);
3660
- });
3661
- }
3662
- get options() {
3663
- return Object.assign(Object.assign({ activeSheet: this.activeSheet }, {
3664
- sheets: this.sheetsInfo && JSON.parse(JSON.stringify(this.sheetsInfo)),
3665
- intl: {
3666
- localeInfo: () => localeData(this.intl.localeId),
3667
- parseDate: (value, fmt) => this.intl.parseDate(value, fmt),
3668
- toString: (value, fmt) => this.intl.toString(value, fmt),
3669
- format: (fmt, ...values) => this.intl.format(fmt, ...values)
3670
- }
3671
- }), { columns: this.columns, columnWidth: this.columnWidth, defaultCellStyle: this.defaultCellStyle, excel: this.excel, headerHeight: this.headerHeight, headerWidth: this.headerWidth, images: this.images, rowHeight: this.rowHeight, rows: this.rows, formulaBarInputRef: { current: this.formulaBarInputRef.current }, formulaCellInputRef: { current: this.formulaCellInputRef.current }, nameBoxRef: { current: this.nameBoxRef.current } });
3672
- }
3673
- contextMenuItemsForTarget(target, unhide, unmerge) {
3674
- const commonItems = [{
3675
- text: this.messageFor('copy'),
3676
- icon: commandIcons.copy,
3677
- svgIcon: commandSVGIcons.copy,
3678
- id: 'copy'
3679
- }, {
3680
- text: this.messageFor('cut'),
3681
- icon: commandIcons.cut,
3682
- svgIcon: commandSVGIcons.cut,
3683
- id: 'cut'
3684
- }, {
3685
- text: this.messageFor('paste'),
3686
- icon: commandIcons.paste,
3687
- svgIcon: commandSVGIcons.paste,
3688
- id: 'paste',
3689
- disabled: true
3690
- }, {
3691
- separator: true
3692
- }, {
3693
- text: this.messageFor('mergeAll'),
3694
- icon: commandIcons.mergeAll,
3695
- svgIcon: commandSVGIcons.mergeAll,
3696
- id: 'mergeAll',
3697
- }, {
3698
- text: this.messageFor('mergeHorizontally'),
3699
- icon: commandIcons.mergeHorizontally,
3700
- svgIcon: commandSVGIcons.mergeHorizontally,
3701
- id: 'mergeHorizontally',
3702
- }, {
3703
- text: this.messageFor('mergeVertically'),
3704
- icon: commandIcons.mergeVertically,
3705
- svgIcon: commandSVGIcons.mergeVertically,
3706
- id: 'mergeVertically',
3707
- }, {
3708
- text: this.messageFor('unmerge'),
3709
- icon: commandIcons.unmerge,
3710
- svgIcon: commandSVGIcons.unmerge,
3711
- id: 'unmerge',
3712
- disabled: !unmerge
3713
- }, {
3714
- separator: true
3715
- }, {
3716
- text: this.messageFor('insertLink'),
3717
- icon: commandIcons.insertLink,
3718
- svgIcon: commandSVGIcons.insertLink,
3719
- id: 'insertLink'
3720
- }];
3721
- if (target === 'rowheader') {
3722
- commonItems.push({
3723
- separator: true
3724
- }, {
3725
- text: this.messageFor('addRowAbove'),
3726
- icon: commandIcons.addRowAbove,
3727
- svgIcon: commandSVGIcons.addRowAbove,
3728
- id: 'addRowAbove',
3729
- }, {
3730
- text: this.messageFor('addRowBelow'),
3731
- icon: commandIcons.addRowBelow,
3732
- svgIcon: commandSVGIcons.addRowBelow,
3733
- id: 'addRowBelow',
3734
- }, {
3735
- text: this.messageFor('deleteRow'),
3736
- icon: commandIcons.deleteRow,
3737
- svgIcon: commandSVGIcons.deleteRow,
3738
- id: 'deleteRow',
3739
- }, {
3740
- text: this.messageFor('hideRow'),
3741
- icon: commandIcons.hideRow,
3742
- svgIcon: commandSVGIcons.hideRow,
3743
- id: 'hideRow',
3744
- }, {
3745
- text: this.messageFor('unhideRow'),
3746
- icon: commandIcons.unhideRow,
3747
- svgIcon: commandSVGIcons.unhideRow,
3748
- id: 'unhideRow',
3749
- disabled: !unhide
3750
- });
3751
- }
3752
- if (target === 'columnheader') {
3753
- commonItems.push({
3754
- separator: true
3755
- }, {
3756
- text: this.messageFor('addColumnLeft'),
3757
- icon: commandIcons.addColumnLeft,
3758
- svgIcon: commandSVGIcons.addColumnLeft,
3759
- id: 'addColumnLeft',
3760
- }, {
3761
- text: this.messageFor('addColumnRight'),
3762
- icon: commandIcons.addColumnRight,
3763
- svgIcon: commandSVGIcons.addColumnRight,
3764
- id: 'addColumnRight',
3765
- }, {
3766
- text: this.messageFor('deleteColumn'),
3767
- icon: commandIcons.deleteColumn,
3768
- svgIcon: commandSVGIcons.deleteColumn,
3769
- id: 'deleteColumn',
3770
- }, {
3771
- text: this.messageFor('hideColumn'),
3772
- icon: commandIcons.hideColumn,
3773
- svgIcon: commandSVGIcons.hideColumn,
3774
- id: 'hideColumn',
3775
- }, {
3776
- text: this.messageFor('unhideColumn'),
3777
- icon: commandIcons.unhideColumn,
3778
- svgIcon: commandSVGIcons.unhideColumn,
3779
- id: 'unhideColumn',
3780
- disabled: !unhide
3781
- });
3782
- }
3783
- return commonItems;
3784
- }
3785
- openLinkDialog() {
3786
- var _a, _b;
3787
- const hasLink = isPresent((_a = this.currentRange) === null || _a === void 0 ? void 0 : _a.link());
3788
- const dialogSettings = {
3789
- appendTo: this.spreadsheetService.dialogContainer,
3790
- title: this.localization.get('insertLink'),
3791
- content: InsertLinkDialogComponent,
3792
- actions: [{
3793
- text: this.localization.get('dialogInsert'),
3794
- themeColor: 'primary'
3795
- }, {
3796
- text: this.localization.get('dialogCancel')
3797
- },
3798
- 'spacer', {
3799
- text: this.localization.get('dialogRemoveLink'),
3800
- themeColor: 'primary',
3801
- fillMode: 'clear',
3802
- cssClass: hasLink ? '' : 'k-disabled'
3803
- }],
3804
- actionsLayout: 'start',
3805
- width: 400,
3806
- autoFocusedElement: '.k-textbox > .k-input-inner'
3807
- };
3808
- const dialog = this.dialogService.open(dialogSettings);
3809
- const dialogInstance = dialog.dialog.instance;
3810
- const dialogContent = dialog.content.instance;
3811
- if (hasLink) {
3812
- dialogContent.setData({ link: (_b = this.currentRange) === null || _b === void 0 ? void 0 : _b.link() });
3813
- }
3814
- dialogInstance.action.pipe(take(1)).subscribe((event) => {
3815
- if (event.text === this.localization.get('dialogCancel')) {
3816
- return;
3817
- }
3818
- let link = null;
3819
- if (event.text === this.localization.get('dialogInsert')) {
3820
- link = dialogContent.urlLink || null;
3821
- }
3822
- this.spreadsheetService.spreadsheet.executeCommand({
3823
- command: 'HyperlinkCommand',
3824
- options: { link }
3825
- });
3826
- });
3827
- }
3828
- }
3829
- SpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1$3.IntlService }, { token: i0.ElementRef }, { token: i2.LocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ErrorHandlingService }, { token: i1$1.DialogService }], target: i0.ɵɵFactoryTarget.Component });
3830
- SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetComponent, isStandalone: true, selector: "kendo-spreadsheet", inputs: { menuItems: "menuItems", overflow: "overflow", formulaListMaxHeight: "formulaListMaxHeight", activeSheet: "activeSheet", sheets: "sheets", columns: "columns", columnWidth: "columnWidth", defaultCellStyle: "defaultCellStyle", headerHeight: "headerHeight", headerWidth: "headerWidth", rowHeight: "rowHeight", rows: "rows", images: "images", excel: "excel" }, outputs: { change: "change", formatChange: "formatChange", selectionChange: "selectionChange", excelExport: "excelExport", excelImport: "excelImport", activeSheetChange: "activeSheetChange" }, host: { properties: { "class.k-spreadsheet": "this.hostClass", "attr.role": "this.role" } }, providers: [
3831
- SpreadsheetLocalizationService,
3832
- SpreadsheetService,
3833
- {
3834
- provide: LocalizationService,
3835
- useExisting: SpreadsheetLocalizationService
3836
- },
3837
- {
3838
- provide: L10N_PREFIX,
3839
- useValue: 'kendo.spreadsheet'
3840
- },
3841
- SpreadsheetToolsService,
3842
- PopupService,
3843
- ErrorHandlingService
3844
- ], 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 }, { propertyName: "contextMenu", first: true, predicate: ["contextMenu"], descendants: true }], exportAs: ["kendo-spreadsheet"], usesOnChanges: true, ngImport: i0, template: `
3845
- <ng-container
3846
- kendoSpreadsheetLocalizedMessages
3847
- i18n-background="kendo.spreadsheet.background|The title of the tool that changes the text background color."
3848
- background="Background color"
3849
- i18n-color="kendo.spreadsheet.color|The title of the tool that changes the text font color."
3850
- color="Font color"
3851
- i18n-bold="kendo.spreadsheet.bold|The title of the Bold tool."
3852
- bold="Bold"
3853
- i18n-italic="kendo.spreadsheet.italic|The title of the Italic tool."
3854
- italic="Italic"
3855
- i18n-underline="kendo.spreadsheet.underline|The title of the Underline tool."
3856
- underline="Underline"
3857
- i18n-loadFile="kendo.spreadsheet.loadFile|The title of the Load File tool."
3858
- loadFile="Open..."
3859
- i18n-saveFile="kendo.spreadsheet.saveFile|The title of the Save File tool."
3860
- saveFile="Export..."
3861
- i18n-format="kendo.spreadsheet.format|The text of the Format tool."
3862
- format="Custom format..."
3863
- i18n-fontFamily="kendo.spreadsheet.fontFamily|The text of the Font Family tool."
3864
- fontFamily="Font"
3865
- i18n-fontSize="kendo.spreadsheet.fontSize|The text of the Font Size tool."
3866
- fontSize="Font size"
3867
- i18n-home="kendo.spreadsheet.home|The text of the Home toolbar tab."
3868
- home="Home"
3869
- i18n-file="kendo.spreadsheet.file|The text of the File toolbar tab."
3870
- file="File"
3871
- i18n-insert="kendo.spreadsheet.insert|The text of the Insert toolbar tab."
3872
- insert="Insert"
3873
- i18n-formatTab="kendo.spreadsheet.formatTab|The text of the Format toolbar tab."
3874
- formatTab="Format"
3875
- i18n-view="kendo.spreadsheet.view|The text of the View toolbar tab."
3876
- view="View"
3877
- i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
3878
- undo="Undo"
3879
- i18n-redo="kendo.spreadsheet.redo|The title of the Redo tool."
3880
- redo="Redo"
3881
- i18n-gridLines="kendo.spreadsheet.gridLines|The title of the Grid Lines tool."
3882
- gridLines="Toggle grid lines"
3883
- i18n-addColumnLeft="kendo.spreadsheet.addColumnLeft|The title of the tool that adds new column before currently selected column."
3884
- addColumnLeft="Add column left"
3885
- i18n-addColumnRight="kendo.spreadsheet.addColumnRight|The title of the tool that adds new column after currently selected column."
3886
- addColumnRight="Add column right"
3887
- i18n-addRowBelow="kendo.spreadsheet.addRowBelow|The title of the tool that adds new row below currently selected row."
3888
- addRowBelow="Add row below"
3889
- i18n-addRowAbove="kendo.spreadsheet.addRowAbove|The title of the tool that adds new row above currently selected row."
3890
- addRowAbove="Add row above"
3891
- i18n-deleteColumn="kendo.spreadsheet.deleteColumn|The title of the tool that deletes a column."
3892
- deleteColumn="Delete column"
3893
- i18n-deleteRow="kendo.spreadsheet.deleteRow|The title of the tool that deletes a row."
3894
- deleteRow="Delete row"
3895
- i18n-wrap="kendo.spreadsheet.wrap|The title of the Text Wrap tool."
3896
- wrap="Text wrap"
3897
- i18n-align="kendo.spreadsheet.align|The title of the Text Align tool."
3898
- align="Align"
3899
- i18n-alignHorizontal="kendo.spreadsheet.alignHorizontal|The title of the Text Align Horizontal tool."
3900
- alignHorizontal="Align horizontally"
3901
- i18n-alignVertical="kendo.spreadsheet.alignVertical|The title of the Text Align Vertical tool."
3902
- alignVertical="Align vertically"
3903
- i18n-alignLeft="kendo.spreadsheet.alignLeft|The title of the Text Align Left tool."
3904
- alignLeft="Align Left"
3905
- i18n-alignCenter="kendo.spreadsheet.alignCenter|The title of the Text Align Center tool."
3906
- alignCenter="Align Center"
3907
- i18n-alignRight="kendo.spreadsheet.alignRight|The title of the Text Align Right tool."
3908
- alignRight="Align Right"
3909
- i18n-alignJustify="kendo.spreadsheet.alignJustify|The title of the Text Align Justify tool."
3910
- alignJustify="Align Justify"
3911
- i18n-alignTop="kendo.spreadsheet.alignTop|The title of the Text Align Top tool."
3912
- alignTop="Align Top"
3913
- i18n-alignMiddle="kendo.spreadsheet.alignMiddle|The title of the Text Align Middle tool."
3914
- alignMiddle="Align Middle"
3915
- i18n-alignBottom="kendo.spreadsheet.alignBottom|The title of the Text Align Bottom tool."
3916
- alignBottom="Align Bottom"
3917
- i18n-merge="kendo.spreadsheet.merge|The title of the Cells Merge tool."
3918
- merge="Merge"
3919
- i18n-mergeAll="kendo.spreadsheet.mergeAll|The title of the Merge all tool."
3920
- mergeAll="Merge all"
3921
- i18n-mergeHorizontally="kendo.spreadsheet.mergeHorizontally|The title of the Merge horizontally tool."
3922
- mergeHorizontally="Merge horizontally"
3923
- i18n-mergeVertically="kendo.spreadsheet.mergeVertically|The title of the Merge vertically tool."
3924
- mergeVertically="Merge vertically"
3925
- i18n-unmerge="kendo.spreadsheet.unmerge|The title of the Unmerge tool."
3926
- unmerge="Unmerge"
3927
- i18n-insertLink="kendo.spreadsheet.insertLink|The title of the tool that inserts a link."
3928
- insertLink="Insert link"
3929
- i18n-decreaseDecimal="kendo.spreadsheet.decreaseDecimal|The title of the tool that decreases decimals."
3930
- decreaseDecimal="Decrease decimal"
3931
- i18n-increaseDecimal="kendo.spreadsheet.increaseDecimal|The title of the tool that increases decimals."
3932
- increaseDecimal="Increase decimal"
3933
- i18n-increaseFontSize="kendo.spreadsheet.increaseFontSize|The title of the tool that increases the cell font size."
3934
- increaseFontSize="Increase font size"
3935
- i18n-decreaseFontSize="kendo.spreadsheet.decreaseFontSize|The title of the tool that decreases the cell font size."
3936
- decreaseFontSize="Decrease font size"
3937
- i18n-dialogApply="kendo.spreadsheet.dialogApply|The text of the **Apply** button in all Spreadsheet dialogs."
3938
- dialogApply="Apply"
3939
- i18n-dialogCancel="kendo.spreadsheet.dialogCancel|The text of the **Cancel** button in all Spreadsheet dialogs."
3940
- dialogCancel="Cancel"
3941
- i18n-dialogDelete="kendo.spreadsheet.dialogDelete|The text of the **Delete** button in the Delete sheet dialog."
3942
- dialogDelete="Delete"
3943
- i18n-dialogRename="kendo.spreadsheet.dialogRename|The text of the **Rename** button in the Rename sheet dialog."
3944
- dialogRename="Rename"
3945
- i18n-dialogInsert="kendo.spreadsheet.dialogInsert|The text of the **Insert** button in all Spreadsheet dialogs."
3946
- dialogInsert="Insert"
3947
- i18n-dialogRemoveLink="kendo.spreadsheet.dialogRemoveLink|The text of the **Remove link** button in the Link tool dialog."
3948
- dialogRemoveLink="Remove link"
3949
- i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
3950
- rename="Rename Sheet"
3951
- i18n-delete="kendo.spreadsheet.delete|The title of the Delete sheet dialog."
3952
- delete="Delete Sheet"
3953
- i18n-nameBox="kendo.spreadsheet.nameBox|The title of the Name Box input."
3954
- nameBox="Name Box"
3955
- i18n-formulaInput="kendo.spreadsheet.formulaInput|The title of the Formula input."
3956
- formulaInput="Formula Input"
3957
- i18n-addSheet="kendo.spreadsheet.addSheet|The title of the Add new sheet button."
3958
- addSheet="Add New Sheet"
3959
- i18n-sheetsMenu="kendo.spreadsheet.sheetsMenu|The title of the Sheets menu button."
3960
- sheetsMenu="All Sheets"
3961
- i18n-openUnsupported="kendo.spreadsheet.openUnsupported|The content of the dialog that warns about an unsupported file type."
3962
- openUnsupported="Unsupported format. Please select an .xlsx file."
3963
- i18n-modifyMerged="kendo.spreadsheet.modifyMerged|The content of the dialog that warns about modifying a merged cell."
3964
- modifyMerged="Cannot change part of a merged cell."
3965
- i18n-cannotModifyDisabled="kendo.spreadsheet.cannotModifyDisabled|The content of the dialog that warns about modifying a disabled cell."
3966
- cannotModifyDisabled="Cannot modify disabled cells."
3967
- i18n-dialogOk="kendo.spreadsheet.dialogOk|The text of the **OK** dialog button."
3968
- dialogOk="OK"
3969
- i18n-dialogError="kendo.spreadsheet.dialogError|The title of an error dialog."
3970
- dialogError="Error"
3971
- i18n-duplicateSheetName="kendo.spreadsheet.duplicateSheetName|The content of the dialog that warns about duplicated sheet name."
3972
- duplicateSheetName="There is an existing sheet with this name. Please enter another name."
3973
- i18n-copy="kendo.spreadsheet.copy|The Copy command text."
3974
- copy="Copy"
3975
- i18n-cut="kendo.spreadsheet.cut|The Cut command text."
3976
- cut="Cut"
3977
- i18n-paste="kendo.spreadsheet.paste|The Paste command text."
3978
- paste="Paste (use Ctrl/⌘ + V)"
3979
- i18n-hideRow="kendo.spreadsheet.hideRow|The Hide row command text."
3980
- hideRow="Hide"
3981
- i18n-unhideRow="kendo.spreadsheet.unhideRow|The Unhide row command text."
3982
- unhideRow="Unhide"
3983
- i18n-hideColumn="kendo.spreadsheet.hideColumn|The Hide column command text."
3984
- hideColumn="Hide"
3985
- i18n-unhideColumn="kendo.spreadsheet.unhideColumn|The Unhide column command text."
3986
- unhideColumn="Unhide"
3987
- i18n-sheetDelete="kendo.spreadsheet.sheetDelete|The text of the Sheet menu Delete option."
3988
- sheetDelete="Delete"
3989
- i18n-sheetRename="kendo.spreadsheet.sheetRename|The text of the Sheet menu Rename option."
3990
- sheetRename="Rename"
3991
- i18n-sheetDuplicate="kendo.spreadsheet.sheetDuplicate|The text of the Sheet menu Duplicate option."
3992
- sheetDuplicate="Duplicate"
3993
- i18n-sheetHide="kendo.spreadsheet.sheetHide|The text of the Sheet menu Hide option."
3994
- sheetHide="Hide"
3995
- i18n-sheetMoveLeft="kendo.spreadsheet.sheetMoveLeft|The text of the Sheet menu Move Left option."
3996
- sheetMoveLeft="Move Left"
3997
- i18n-sheetMoveRight="kendo.spreadsheet.sheetMoveRight|The text of the Sheet menu Move Right option."
3998
- sheetMoveRight="Move Right"
3999
- i18n-invalidNameError="kendo.spreadsheet.invalidNameError|The content of the dialog that warns about invalid name input."
4000
- invalidNameError="{{ 'Invalid name: {inputValue}' }}">
4001
- </ng-container>
4002
- <div class="k-spreadsheet-header">
4003
- <kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
4004
- <kendo-menu-item *ngFor="let item of menuItems" [text]="item.text" [cssClass]="item.cssClass"></kendo-menu-item>
4005
- </kendo-menu>
4006
- <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'file'"
4007
- [attr.aria-label]="messageFor('file')"
4008
- fillMode="flat"
4009
- class="k-spreadsheet-toolbar"
4010
- [overflow]="overflow">
4011
- <kendo-spreadsheet-load-file-tool></kendo-spreadsheet-load-file-tool>
4012
- <kendo-toolbar-button kendoSpreadsheetSaveFile></kendo-toolbar-button>
4013
- </kendo-toolbar>
4014
- <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'home'"
4015
- [attr.aria-label]="messageFor('home')"
4016
- class="k-spreadsheet-toolbar"
4017
- fillMode="flat"
4018
- [overflow]="overflow">
4019
- <kendo-toolbar-button kendoSpreadsheetUndo></kendo-toolbar-button>
4020
- <kendo-toolbar-button kendoSpreadsheetRedo></kendo-toolbar-button>
4021
- <kendo-toolbar-separator></kendo-toolbar-separator>
4022
- <kendo-toolbar-dropdownlist kendoSpreadsheetFontFamily></kendo-toolbar-dropdownlist>
4023
- <kendo-toolbar-dropdownlist kendoSpreadsheetFontSize></kendo-toolbar-dropdownlist>
4024
- <kendo-toolbar-buttongroup fillMode="flat">
4025
- <kendo-toolbar-button kendoSpreadsheetIncreaseFontSize></kendo-toolbar-button>
4026
- <kendo-toolbar-button kendoSpreadsheetDecreaseFontSize></kendo-toolbar-button>
4027
- </kendo-toolbar-buttongroup>
4028
- <kendo-toolbar-separator></kendo-toolbar-separator>
4029
- <kendo-toolbar-buttongroup fillMode="flat">
4030
- <kendo-toolbar-button kendoSpreadsheetBold></kendo-toolbar-button>
4031
- <kendo-toolbar-button kendoSpreadsheetItalic></kendo-toolbar-button>
4032
- <kendo-toolbar-button kendoSpreadsheetUnderline></kendo-toolbar-button>
4033
- </kendo-toolbar-buttongroup>
4034
- <kendo-spreadsheet-forecolor-tool></kendo-spreadsheet-forecolor-tool>
4035
- <kendo-toolbar-separator></kendo-toolbar-separator>
4036
- <kendo-spreadsheet-backcolor-tool></kendo-spreadsheet-backcolor-tool>
4037
- <kendo-toolbar-separator></kendo-toolbar-separator>
4038
- <kendo-toolbar-dropdownbutton kendoSpreadsheetHorizontalTextAlign></kendo-toolbar-dropdownbutton>
4039
- <kendo-toolbar-dropdownbutton kendoSpreadsheetVerticalTextAlign></kendo-toolbar-dropdownbutton>
4040
- <kendo-toolbar-button kendoSpreadsheetTextWrap></kendo-toolbar-button>
4041
- <kendo-toolbar-separator></kendo-toolbar-separator>
4042
- <kendo-toolbar-dropdownbutton kendoSpreadsheetFormat></kendo-toolbar-dropdownbutton>
4043
- </kendo-toolbar>
4044
- <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'insert'"
4045
- [attr.aria-label]="messageFor('insert')"
4046
- fillMode="flat"
4047
- class="k-spreadsheet-toolbar"
4048
- [overflow]="overflow">
4049
- <kendo-toolbar-button kendoSpreadsheetInsertLink></kendo-toolbar-button>
4050
- <kendo-toolbar-separator></kendo-toolbar-separator>
4051
- <kendo-toolbar-button kendoSpreadsheetAddColumnLeftButton></kendo-toolbar-button>
4052
- <kendo-toolbar-button kendoSpreadsheetAddColumnRightButton></kendo-toolbar-button>
4053
- <kendo-toolbar-button kendoSpreadsheetAddRowBelowButton></kendo-toolbar-button>
4054
- <kendo-toolbar-button kendoSpreadsheetAddRowAboveButton></kendo-toolbar-button>
4055
- <kendo-toolbar-separator></kendo-toolbar-separator>
4056
- <kendo-toolbar-button kendoSpreadsheetDeleteColumnButton></kendo-toolbar-button>
4057
- <kendo-toolbar-button kendoSpreadsheetDeleteRowButton></kendo-toolbar-button>
4058
- </kendo-toolbar>
4059
- <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'format'"
4060
- [attr.aria-label]="messageFor('formatTab')"
4061
- fillMode="flat"
4062
- class="k-spreadsheet-toolbar"
4063
- [overflow]="overflow">
4064
- <kendo-toolbar-button kendoSpreadsheetDecreaseDecimal></kendo-toolbar-button>
4065
- <kendo-toolbar-button kendoSpreadsheetIncreaseDecimal></kendo-toolbar-button>
4066
- </kendo-toolbar>
4067
- <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'view'"
4068
- [attr.aria-label]="messageFor('view')"
4069
- fillMode="flat"
4070
- class="k-spreadsheet-toolbar"
4071
- [overflow]="overflow">
4072
- <kendo-toolbar-dropdownbutton kendoSpreadsheetMerge></kendo-toolbar-dropdownbutton>
4073
- <kendo-toolbar-separator></kendo-toolbar-separator>
4074
- <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
4075
- </kendo-toolbar>
4076
- </div>
4077
- <div class="k-spreadsheet-action-bar">
4078
- <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
4079
- <div class="k-spreadsheet-formula-bar">
4080
- <span class="k-separator k-separator-vertical"></span>
4081
- <kendo-icon-wrapper
4082
- name="formula-fx"
4083
- [svgIcon]="formulaFxIcon">
4084
- </kendo-icon-wrapper>
4085
- <span class="k-separator k-separator-vertical"></span>
4086
- <div
4087
- #formulaBar
4088
- kendoSpreadsheetFormulaInput
4089
- [formulaListMaxHeight]="formulaListMaxHeight"
4090
- class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
4091
- </div>
4092
- </div>
4093
- <div class="k-spreadsheet-view">
4094
- <div class="k-spreadsheet-fixed-container"></div>
4095
- <div class="k-spreadsheet-scroller">
4096
- <div class="k-spreadsheet-view-size"></div>
4097
- </div>
4098
- <div tabIndex="0" class="k-spreadsheet-clipboard" contentEditable="true"></div>
4099
- <div #formulaCell kendoSpreadsheetFormulaInput class="k-spreadsheet-cell-editor" data-role="formulainput"></div>
4100
- </div>
4101
- <div class="k-spreadsheet-sheets-bar"
4102
- kendoSpreadsheetSheetsBar
4103
- [sheets]="sheetsInfo"
4104
- [sheetDescriptors]="sheets">
4105
- </div>
4106
- <ng-container #dialogContainer></ng-container>
4107
-
4108
- <kendo-contextmenu
4109
- #contextMenu
4110
- [items]="contextMenuItems"
4111
- (select)="onContextMenuSelect($event)"></kendo-contextmenu>
4112
-
4113
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
4114
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSpreadsheetLocalizedMessages]" }, { kind: "component", type: MenuComponent, selector: "kendo-menu", inputs: ["appendTo", "menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { kind: "directive", type: MainMenuDirective, selector: "[kendoSpreadsheetMenu]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MenuItemComponent, selector: "kendo-menu-item", inputs: ["text", "url", "disabled", "cssClass", "cssStyle", "icon", "svgIcon", "data", "separator"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "fillMode", "tabindex", "size", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { kind: "component", type: SpreadsheetLoadFileComponent, selector: "kendo-spreadsheet-load-file-tool" }, { kind: "component", type: 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"] }, { kind: "directive", type: SpreadsheetSaveFileDirective, selector: "[kendoSpreadsheetSaveFile]" }, { kind: "component", type: ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "fillMode", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { kind: "directive", type: SpreadsheetUndoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]" }, { kind: "directive", type: SpreadsheetRedoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]" }, { kind: "component", type: ToolBarSeparatorComponent, selector: "kendo-toolbar-separator", exportAs: ["kendoToolBarSeparator"] }, { kind: "component", type: SpreadsheetFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]" }, { kind: "component", type: SpreadsheetFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]" }, { kind: "directive", type: SpreadsheetIncreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseFontSize]" }, { kind: "directive", type: SpreadsheetDecreaseFontSizeDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseFontSize]" }, { kind: "directive", type: SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { kind: "directive", type: SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { kind: "directive", type: SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { kind: "component", type: SpreadsheetForeColorComponent, selector: "kendo-spreadsheet-forecolor-tool" }, { kind: "component", type: SpreadsheetBackColorComponent, selector: "kendo-spreadsheet-backcolor-tool" }, { kind: "component", type: 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"] }, { kind: "directive", type: SpreadsheetHorizontalTextAlignDirective, selector: "[kendoSpreadsheetHorizontalTextAlign]" }, { kind: "directive", type: SpreadsheetVerticalTextAlignDirective, selector: "[kendoSpreadsheetVerticalTextAlign]" }, { kind: "directive", type: SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { kind: "directive", type: SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { kind: "directive", type: SpreadsheetInsertLinkDirective, selector: "kendo-toolbar-button[kendoSpreadsheetInsertLink]" }, { kind: "directive", type: SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]" }, { kind: "directive", type: SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]" }, { kind: "directive", type: SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]" }, { kind: "directive", type: SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]" }, { kind: "directive", type: SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]" }, { kind: "directive", type: SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]" }, { kind: "directive", type: SpreadsheetDecreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDecreaseDecimal]" }, { kind: "directive", type: SpreadsheetIncreaseDecimalDirective, selector: "kendo-toolbar-button[kendoSpreadsheetIncreaseDecimal]" }, { kind: "directive", type: SpreadsheetMergeDirective, selector: "[kendoSpreadsheetMerge]" }, { kind: "directive", type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { kind: "component", type: NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: ["data", "spreadsheetWidget"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "directive", type: FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]", inputs: ["formulaListMaxHeight"] }, { kind: "component", type: SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: ["sheets", "sheetDescriptors"] }, { kind: "component", type: ContextMenuComponent, selector: "kendo-contextmenu", inputs: ["showOn", "target", "filter", "alignToAnchor", "vertical", "popupAnimate", "popupAlign", "anchorAlign", "collision", "appendTo", "ariaLabel"], outputs: ["popupOpen", "popupClose", "select", "open", "close"], exportAs: ["kendoContextMenu"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }] });
4115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetComponent, decorators: [{
4116
- type: Component,
4117
- args: [{
4118
- exportAs: 'kendo-spreadsheet',
4119
- selector: 'kendo-spreadsheet',
4120
- providers: [
4121
- SpreadsheetLocalizationService,
4122
- SpreadsheetService,
4123
- {
4124
- provide: LocalizationService,
4125
- useExisting: SpreadsheetLocalizationService
4126
- },
4127
- {
4128
- provide: L10N_PREFIX,
4129
- useValue: 'kendo.spreadsheet'
4130
- },
4131
- SpreadsheetToolsService,
4132
- PopupService,
4133
- ErrorHandlingService
4134
- ],
4135
- template: `
4136
- <ng-container
4137
- kendoSpreadsheetLocalizedMessages
4138
- i18n-background="kendo.spreadsheet.background|The title of the tool that changes the text background color."
4139
- background="Background color"
4140
- i18n-color="kendo.spreadsheet.color|The title of the tool that changes the text font color."
4141
- color="Font color"
4142
- i18n-bold="kendo.spreadsheet.bold|The title of the Bold tool."
4143
- bold="Bold"
4144
- i18n-italic="kendo.spreadsheet.italic|The title of the Italic tool."
4145
- italic="Italic"
4146
- i18n-underline="kendo.spreadsheet.underline|The title of the Underline tool."
4147
- underline="Underline"
4148
- i18n-loadFile="kendo.spreadsheet.loadFile|The title of the Load File tool."
4149
- loadFile="Open..."
4150
- i18n-saveFile="kendo.spreadsheet.saveFile|The title of the Save File tool."
4151
- saveFile="Export..."
4152
- i18n-format="kendo.spreadsheet.format|The text of the Format tool."
4153
- format="Custom format..."
4154
- i18n-fontFamily="kendo.spreadsheet.fontFamily|The text of the Font Family tool."
4155
- fontFamily="Font"
4156
- i18n-fontSize="kendo.spreadsheet.fontSize|The text of the Font Size tool."
4157
- fontSize="Font size"
4158
- i18n-home="kendo.spreadsheet.home|The text of the Home toolbar tab."
4159
- home="Home"
4160
- i18n-file="kendo.spreadsheet.file|The text of the File toolbar tab."
4161
- file="File"
4162
- i18n-insert="kendo.spreadsheet.insert|The text of the Insert toolbar tab."
4163
- insert="Insert"
4164
- i18n-formatTab="kendo.spreadsheet.formatTab|The text of the Format toolbar tab."
4165
- formatTab="Format"
4166
- i18n-view="kendo.spreadsheet.view|The text of the View toolbar tab."
4167
- view="View"
4168
- i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
4169
- undo="Undo"
4170
- i18n-redo="kendo.spreadsheet.redo|The title of the Redo tool."
4171
- redo="Redo"
4172
- i18n-gridLines="kendo.spreadsheet.gridLines|The title of the Grid Lines tool."
4173
- gridLines="Toggle grid lines"
4174
- i18n-addColumnLeft="kendo.spreadsheet.addColumnLeft|The title of the tool that adds new column before currently selected column."
4175
- addColumnLeft="Add column left"
4176
- i18n-addColumnRight="kendo.spreadsheet.addColumnRight|The title of the tool that adds new column after currently selected column."
4177
- addColumnRight="Add column right"
4178
- i18n-addRowBelow="kendo.spreadsheet.addRowBelow|The title of the tool that adds new row below currently selected row."
4179
- addRowBelow="Add row below"
4180
- i18n-addRowAbove="kendo.spreadsheet.addRowAbove|The title of the tool that adds new row above currently selected row."
4181
- addRowAbove="Add row above"
4182
- i18n-deleteColumn="kendo.spreadsheet.deleteColumn|The title of the tool that deletes a column."
4183
- deleteColumn="Delete column"
4184
- i18n-deleteRow="kendo.spreadsheet.deleteRow|The title of the tool that deletes a row."
4185
- deleteRow="Delete row"
4186
- i18n-wrap="kendo.spreadsheet.wrap|The title of the Text Wrap tool."
4187
- wrap="Text wrap"
4188
- i18n-align="kendo.spreadsheet.align|The title of the Text Align tool."
4189
- align="Align"
4190
- i18n-alignHorizontal="kendo.spreadsheet.alignHorizontal|The title of the Text Align Horizontal tool."
4191
- alignHorizontal="Align horizontally"
4192
- i18n-alignVertical="kendo.spreadsheet.alignVertical|The title of the Text Align Vertical tool."
4193
- alignVertical="Align vertically"
4194
- i18n-alignLeft="kendo.spreadsheet.alignLeft|The title of the Text Align Left tool."
4195
- alignLeft="Align Left"
4196
- i18n-alignCenter="kendo.spreadsheet.alignCenter|The title of the Text Align Center tool."
4197
- alignCenter="Align Center"
4198
- i18n-alignRight="kendo.spreadsheet.alignRight|The title of the Text Align Right tool."
4199
- alignRight="Align Right"
4200
- i18n-alignJustify="kendo.spreadsheet.alignJustify|The title of the Text Align Justify tool."
4201
- alignJustify="Align Justify"
4202
- i18n-alignTop="kendo.spreadsheet.alignTop|The title of the Text Align Top tool."
4203
- alignTop="Align Top"
4204
- i18n-alignMiddle="kendo.spreadsheet.alignMiddle|The title of the Text Align Middle tool."
4205
- alignMiddle="Align Middle"
4206
- i18n-alignBottom="kendo.spreadsheet.alignBottom|The title of the Text Align Bottom tool."
4207
- alignBottom="Align Bottom"
4208
- i18n-merge="kendo.spreadsheet.merge|The title of the Cells Merge tool."
4209
- merge="Merge"
4210
- i18n-mergeAll="kendo.spreadsheet.mergeAll|The title of the Merge all tool."
4211
- mergeAll="Merge all"
4212
- i18n-mergeHorizontally="kendo.spreadsheet.mergeHorizontally|The title of the Merge horizontally tool."
4213
- mergeHorizontally="Merge horizontally"
4214
- i18n-mergeVertically="kendo.spreadsheet.mergeVertically|The title of the Merge vertically tool."
4215
- mergeVertically="Merge vertically"
4216
- i18n-unmerge="kendo.spreadsheet.unmerge|The title of the Unmerge tool."
4217
- unmerge="Unmerge"
4218
- i18n-insertLink="kendo.spreadsheet.insertLink|The title of the tool that inserts a link."
4219
- insertLink="Insert link"
4220
- i18n-decreaseDecimal="kendo.spreadsheet.decreaseDecimal|The title of the tool that decreases decimals."
4221
- decreaseDecimal="Decrease decimal"
4222
- i18n-increaseDecimal="kendo.spreadsheet.increaseDecimal|The title of the tool that increases decimals."
4223
- increaseDecimal="Increase decimal"
4224
- i18n-increaseFontSize="kendo.spreadsheet.increaseFontSize|The title of the tool that increases the cell font size."
4225
- increaseFontSize="Increase font size"
4226
- i18n-decreaseFontSize="kendo.spreadsheet.decreaseFontSize|The title of the tool that decreases the cell font size."
4227
- decreaseFontSize="Decrease font size"
4228
- i18n-dialogApply="kendo.spreadsheet.dialogApply|The text of the **Apply** button in all Spreadsheet dialogs."
4229
- dialogApply="Apply"
4230
- i18n-dialogCancel="kendo.spreadsheet.dialogCancel|The text of the **Cancel** button in all Spreadsheet dialogs."
4231
- dialogCancel="Cancel"
4232
- i18n-dialogDelete="kendo.spreadsheet.dialogDelete|The text of the **Delete** button in the Delete sheet dialog."
4233
- dialogDelete="Delete"
4234
- i18n-dialogRename="kendo.spreadsheet.dialogRename|The text of the **Rename** button in the Rename sheet dialog."
4235
- dialogRename="Rename"
4236
- i18n-dialogInsert="kendo.spreadsheet.dialogInsert|The text of the **Insert** button in all Spreadsheet dialogs."
4237
- dialogInsert="Insert"
4238
- i18n-dialogRemoveLink="kendo.spreadsheet.dialogRemoveLink|The text of the **Remove link** button in the Link tool dialog."
4239
- dialogRemoveLink="Remove link"
4240
- i18n-rename="kendo.spreadsheet.rename|The title of the Rename sheet dialog."
4241
- rename="Rename Sheet"
4242
- i18n-delete="kendo.spreadsheet.delete|The title of the Delete sheet dialog."
4243
- delete="Delete Sheet"
4244
- i18n-nameBox="kendo.spreadsheet.nameBox|The title of the Name Box input."
4245
- nameBox="Name Box"
4246
- i18n-formulaInput="kendo.spreadsheet.formulaInput|The title of the Formula input."
4247
- formulaInput="Formula Input"
4248
- i18n-addSheet="kendo.spreadsheet.addSheet|The title of the Add new sheet button."
4249
- addSheet="Add New Sheet"
4250
- i18n-sheetsMenu="kendo.spreadsheet.sheetsMenu|The title of the Sheets menu button."
4251
- sheetsMenu="All Sheets"
4252
- i18n-openUnsupported="kendo.spreadsheet.openUnsupported|The content of the dialog that warns about an unsupported file type."
4253
- openUnsupported="Unsupported format. Please select an .xlsx file."
4254
- i18n-modifyMerged="kendo.spreadsheet.modifyMerged|The content of the dialog that warns about modifying a merged cell."
4255
- modifyMerged="Cannot change part of a merged cell."
4256
- i18n-cannotModifyDisabled="kendo.spreadsheet.cannotModifyDisabled|The content of the dialog that warns about modifying a disabled cell."
4257
- cannotModifyDisabled="Cannot modify disabled cells."
4258
- i18n-dialogOk="kendo.spreadsheet.dialogOk|The text of the **OK** dialog button."
4259
- dialogOk="OK"
4260
- i18n-dialogError="kendo.spreadsheet.dialogError|The title of an error dialog."
4261
- dialogError="Error"
4262
- i18n-duplicateSheetName="kendo.spreadsheet.duplicateSheetName|The content of the dialog that warns about duplicated sheet name."
4263
- duplicateSheetName="There is an existing sheet with this name. Please enter another name."
4264
- i18n-copy="kendo.spreadsheet.copy|The Copy command text."
4265
- copy="Copy"
4266
- i18n-cut="kendo.spreadsheet.cut|The Cut command text."
4267
- cut="Cut"
4268
- i18n-paste="kendo.spreadsheet.paste|The Paste command text."
4269
- paste="Paste (use Ctrl/⌘ + V)"
4270
- i18n-hideRow="kendo.spreadsheet.hideRow|The Hide row command text."
4271
- hideRow="Hide"
4272
- i18n-unhideRow="kendo.spreadsheet.unhideRow|The Unhide row command text."
4273
- unhideRow="Unhide"
4274
- i18n-hideColumn="kendo.spreadsheet.hideColumn|The Hide column command text."
4275
- hideColumn="Hide"
4276
- i18n-unhideColumn="kendo.spreadsheet.unhideColumn|The Unhide column command text."
4277
- unhideColumn="Unhide"
4278
- i18n-sheetDelete="kendo.spreadsheet.sheetDelete|The text of the Sheet menu Delete option."
4279
- sheetDelete="Delete"
4280
- i18n-sheetRename="kendo.spreadsheet.sheetRename|The text of the Sheet menu Rename option."
4281
- sheetRename="Rename"
4282
- i18n-sheetDuplicate="kendo.spreadsheet.sheetDuplicate|The text of the Sheet menu Duplicate option."
4283
- sheetDuplicate="Duplicate"
4284
- i18n-sheetHide="kendo.spreadsheet.sheetHide|The text of the Sheet menu Hide option."
4285
- sheetHide="Hide"
4286
- i18n-sheetMoveLeft="kendo.spreadsheet.sheetMoveLeft|The text of the Sheet menu Move Left option."
4287
- sheetMoveLeft="Move Left"
4288
- i18n-sheetMoveRight="kendo.spreadsheet.sheetMoveRight|The text of the Sheet menu Move Right option."
4289
- sheetMoveRight="Move Right"
4290
- i18n-invalidNameError="kendo.spreadsheet.invalidNameError|The content of the dialog that warns about invalid name input."
4291
- invalidNameError="{{ 'Invalid name: {inputValue}' }}">
4292
- </ng-container>
4293
- <div class="k-spreadsheet-header">
4294
- <kendo-menu kendoSpreadsheetMenu (select)="onMenuItemSelect($event)">
4295
- <kendo-menu-item *ngFor="let item of menuItems" [text]="item.text" [cssClass]="item.cssClass"></kendo-menu-item>
4296
- </kendo-menu>
4297
- <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'file'"
4298
- [attr.aria-label]="messageFor('file')"
4299
- fillMode="flat"
4300
- class="k-spreadsheet-toolbar"
4301
- [overflow]="overflow">
4302
- <kendo-spreadsheet-load-file-tool></kendo-spreadsheet-load-file-tool>
4303
- <kendo-toolbar-button kendoSpreadsheetSaveFile></kendo-toolbar-button>
4304
- </kendo-toolbar>
4305
- <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'home'"
4306
- [attr.aria-label]="messageFor('home')"
4307
- class="k-spreadsheet-toolbar"
4308
- fillMode="flat"
4309
- [overflow]="overflow">
4310
- <kendo-toolbar-button kendoSpreadsheetUndo></kendo-toolbar-button>
4311
- <kendo-toolbar-button kendoSpreadsheetRedo></kendo-toolbar-button>
4312
- <kendo-toolbar-separator></kendo-toolbar-separator>
4313
- <kendo-toolbar-dropdownlist kendoSpreadsheetFontFamily></kendo-toolbar-dropdownlist>
4314
- <kendo-toolbar-dropdownlist kendoSpreadsheetFontSize></kendo-toolbar-dropdownlist>
4315
- <kendo-toolbar-buttongroup fillMode="flat">
4316
- <kendo-toolbar-button kendoSpreadsheetIncreaseFontSize></kendo-toolbar-button>
4317
- <kendo-toolbar-button kendoSpreadsheetDecreaseFontSize></kendo-toolbar-button>
4318
- </kendo-toolbar-buttongroup>
4319
- <kendo-toolbar-separator></kendo-toolbar-separator>
4320
- <kendo-toolbar-buttongroup fillMode="flat">
4321
- <kendo-toolbar-button kendoSpreadsheetBold></kendo-toolbar-button>
4322
- <kendo-toolbar-button kendoSpreadsheetItalic></kendo-toolbar-button>
4323
- <kendo-toolbar-button kendoSpreadsheetUnderline></kendo-toolbar-button>
4324
- </kendo-toolbar-buttongroup>
4325
- <kendo-spreadsheet-forecolor-tool></kendo-spreadsheet-forecolor-tool>
4326
- <kendo-toolbar-separator></kendo-toolbar-separator>
4327
- <kendo-spreadsheet-backcolor-tool></kendo-spreadsheet-backcolor-tool>
4328
- <kendo-toolbar-separator></kendo-toolbar-separator>
4329
- <kendo-toolbar-dropdownbutton kendoSpreadsheetHorizontalTextAlign></kendo-toolbar-dropdownbutton>
4330
- <kendo-toolbar-dropdownbutton kendoSpreadsheetVerticalTextAlign></kendo-toolbar-dropdownbutton>
4331
- <kendo-toolbar-button kendoSpreadsheetTextWrap></kendo-toolbar-button>
4332
- <kendo-toolbar-separator></kendo-toolbar-separator>
4333
- <kendo-toolbar-dropdownbutton kendoSpreadsheetFormat></kendo-toolbar-dropdownbutton>
4334
- </kendo-toolbar>
4335
- <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'insert'"
4336
- [attr.aria-label]="messageFor('insert')"
4337
- fillMode="flat"
4338
- class="k-spreadsheet-toolbar"
4339
- [overflow]="overflow">
4340
- <kendo-toolbar-button kendoSpreadsheetInsertLink></kendo-toolbar-button>
4341
- <kendo-toolbar-separator></kendo-toolbar-separator>
4342
- <kendo-toolbar-button kendoSpreadsheetAddColumnLeftButton></kendo-toolbar-button>
4343
- <kendo-toolbar-button kendoSpreadsheetAddColumnRightButton></kendo-toolbar-button>
4344
- <kendo-toolbar-button kendoSpreadsheetAddRowBelowButton></kendo-toolbar-button>
4345
- <kendo-toolbar-button kendoSpreadsheetAddRowAboveButton></kendo-toolbar-button>
4346
- <kendo-toolbar-separator></kendo-toolbar-separator>
4347
- <kendo-toolbar-button kendoSpreadsheetDeleteColumnButton></kendo-toolbar-button>
4348
- <kendo-toolbar-button kendoSpreadsheetDeleteRowButton></kendo-toolbar-button>
4349
- </kendo-toolbar>
4350
- <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'format'"
4351
- [attr.aria-label]="messageFor('formatTab')"
4352
- fillMode="flat"
4353
- class="k-spreadsheet-toolbar"
4354
- [overflow]="overflow">
4355
- <kendo-toolbar-button kendoSpreadsheetDecreaseDecimal></kendo-toolbar-button>
4356
- <kendo-toolbar-button kendoSpreadsheetIncreaseDecimal></kendo-toolbar-button>
4357
- </kendo-toolbar>
4358
- <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'view'"
4359
- [attr.aria-label]="messageFor('view')"
4360
- fillMode="flat"
4361
- class="k-spreadsheet-toolbar"
4362
- [overflow]="overflow">
4363
- <kendo-toolbar-dropdownbutton kendoSpreadsheetMerge></kendo-toolbar-dropdownbutton>
4364
- <kendo-toolbar-separator></kendo-toolbar-separator>
4365
- <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
4366
- </kendo-toolbar>
4367
- </div>
4368
- <div class="k-spreadsheet-action-bar">
4369
- <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
4370
- <div class="k-spreadsheet-formula-bar">
4371
- <span class="k-separator k-separator-vertical"></span>
4372
- <kendo-icon-wrapper
4373
- name="formula-fx"
4374
- [svgIcon]="formulaFxIcon">
4375
- </kendo-icon-wrapper>
4376
- <span class="k-separator k-separator-vertical"></span>
4377
- <div
4378
- #formulaBar
4379
- kendoSpreadsheetFormulaInput
4380
- [formulaListMaxHeight]="formulaListMaxHeight"
4381
- class="k-textbox k-input k-input-md k-input-flat k-rounded-md"></div>
4382
- </div>
4383
- </div>
4384
- <div class="k-spreadsheet-view">
4385
- <div class="k-spreadsheet-fixed-container"></div>
4386
- <div class="k-spreadsheet-scroller">
4387
- <div class="k-spreadsheet-view-size"></div>
4388
- </div>
4389
- <div tabIndex="0" class="k-spreadsheet-clipboard" contentEditable="true"></div>
4390
- <div #formulaCell kendoSpreadsheetFormulaInput class="k-spreadsheet-cell-editor" data-role="formulainput"></div>
4391
- </div>
4392
- <div class="k-spreadsheet-sheets-bar"
4393
- kendoSpreadsheetSheetsBar
4394
- [sheets]="sheetsInfo"
4395
- [sheetDescriptors]="sheets">
4396
- </div>
4397
- <ng-container #dialogContainer></ng-container>
4398
-
4399
- <kendo-contextmenu
4400
- #contextMenu
4401
- [items]="contextMenuItems"
4402
- (select)="onContextMenuSelect($event)"></kendo-contextmenu>
4403
-
4404
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
4405
- `,
4406
- standalone: true,
4407
- imports: [LocalizedMessagesDirective, MenuComponent, MainMenuDirective, NgFor, MenuItemComponent, NgIf, ToolBarComponent, SpreadsheetLoadFileComponent, ToolBarButtonComponent, SpreadsheetSaveFileDirective, ToolBarButtonGroupComponent, SpreadsheetUndoDirective, SpreadsheetRedoDirective, ToolBarSeparatorComponent, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetIncreaseFontSizeDirective, SpreadsheetDecreaseFontSizeDirective, SpreadsheetBoldDirective, SpreadsheetItalicDirective, SpreadsheetUnderlineDirective, SpreadsheetForeColorComponent, SpreadsheetBackColorComponent, ToolBarDropDownButtonComponent, SpreadsheetHorizontalTextAlignDirective, SpreadsheetVerticalTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetFormatDirective, SpreadsheetInsertLinkDirective, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetDecreaseDecimalDirective, SpreadsheetIncreaseDecimalDirective, SpreadsheetMergeDirective, SpreadsheetGridLinesDirective, NameBoxComponent, IconWrapperComponent, FormulaInputDirective, SheetsBarComponent, ContextMenuComponent, WatermarkOverlayComponent]
4408
- }]
4409
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1$3.IntlService }, { type: i0.ElementRef }, { type: i2.LocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }, { type: ErrorHandlingService }, { type: i1$1.DialogService }]; }, propDecorators: { formulaBarInputRef: [{
4410
- type: ViewChild,
4411
- args: ['formulaBar', { read: FormulaInputDirective }]
4412
- }], formulaCellInputRef: [{
4413
- type: ViewChild,
4414
- args: ['formulaCell', { read: FormulaInputDirective }]
4415
- }], nameBoxRef: [{
4416
- type: ViewChild,
4417
- args: ['nameBox']
4418
- }], dialogContainer: [{
4419
- type: ViewChild,
4420
- args: ['dialogContainer', { read: ViewContainerRef }]
4421
- }], contextMenu: [{
4422
- type: ViewChild,
4423
- args: ['contextMenu']
4424
- }], hostClass: [{
4425
- type: HostBinding,
4426
- args: ['class.k-spreadsheet']
4427
- }], role: [{
4428
- type: HostBinding,
4429
- args: ['attr.role']
4430
- }], menuItems: [{
4431
- type: Input
4432
- }], overflow: [{
4433
- type: Input
4434
- }], formulaListMaxHeight: [{
4435
- type: Input
4436
- }], activeSheet: [{
4437
- type: Input
4438
- }], sheets: [{
4439
- type: Input
4440
- }], columns: [{
4441
- type: Input
4442
- }], columnWidth: [{
4443
- type: Input
4444
- }], defaultCellStyle: [{
4445
- type: Input
4446
- }], headerHeight: [{
4447
- type: Input
4448
- }], headerWidth: [{
4449
- type: Input
4450
- }], rowHeight: [{
4451
- type: Input
4452
- }], rows: [{
4453
- type: Input
4454
- }], images: [{
4455
- type: Input
4456
- }], excel: [{
4457
- type: Input
4458
- }], change: [{
4459
- type: Output
4460
- }], formatChange: [{
4461
- type: Output
4462
- }], selectionChange: [{
4463
- type: Output
4464
- }], excelExport: [{
4465
- type: Output
4466
- }], excelImport: [{
4467
- type: Output
4468
- }], activeSheetChange: [{
4469
- type: Output
4470
- }] } });
4471
-
4472
- /**
4473
- * Custom component messages override default component messages.
4474
- */
4475
- class CustomMessagesComponent extends MessagesDirective {
4476
- constructor(service) {
4477
- super();
4478
- this.service = service;
4479
- }
4480
- get override() {
4481
- return true;
4482
- }
4483
- }
4484
- CustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
4485
- CustomMessagesComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CustomMessagesComponent, isStandalone: true, selector: "kendo-spreadsheet-messages", providers: [
4486
- {
4487
- provide: MessagesDirective,
4488
- useExisting: forwardRef(() => CustomMessagesComponent)
4489
- }
4490
- ], usesInheritance: true, ngImport: i0 });
4491
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomMessagesComponent, decorators: [{
4492
- type: Directive,
4493
- args: [{
4494
- providers: [
4495
- {
4496
- provide: MessagesDirective,
4497
- useExisting: forwardRef(() => CustomMessagesComponent)
4498
- }
4499
- ],
4500
- // eslint-disable-next-line @angular-eslint/directive-selector
4501
- selector: 'kendo-spreadsheet-messages',
4502
- standalone: true
4503
- }]
4504
- }], ctorParameters: function () { return [{ type: i2.LocalizationService }]; } });
4505
-
4506
- /**
4507
- * @hidden
4508
- */
4509
- class SpreadsheetTextAlignDirective {
4510
- constructor(host, localization, spreadsheetService, toolsService) {
4511
- this.host = host;
4512
- this.spreadsheetService = spreadsheetService;
4513
- this.toolsService = toolsService;
4514
- this.commandName = 'align';
4515
- this.subs = new Subscription();
4516
- host.svgIcon = commandSVGIcons[this.commandName];
4517
- host.icon = commandIcons[this.commandName];
4518
- host.arrowIcon = true;
4519
- host.fillMode = 'flat';
4520
- host.data = ALIGNS.map(item => (Object.assign(Object.assign({}, item), { textKey: localization.get(item.commandId) })));
4521
- this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
4522
- host.title = localization.get(this.commandName);
4523
- host.textField = 'textKey';
4524
- }
4525
- ngOnInit() {
4526
- this.subs.add(this.toolsService.stateChange.subscribe(state => this.host.data.forEach(i => i.cssClass = i.value === state[i.commandName] ? 'k-selected' : '')));
4527
- }
4528
- ngOnDestroy() {
4529
- this.subs.unsubscribe();
4530
- }
4531
- onItemClick(item) {
4532
- const value = item.value || null;
4533
- const options = {
4534
- command: 'PropertyChangeCommand', options: { property: item.commandName, value }
4535
- };
4536
- this.spreadsheetService.spreadsheet.executeCommand(options);
4537
- }
4538
- }
4539
- SpreadsheetTextAlignDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetTextAlignDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
4540
- SpreadsheetTextAlignDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpreadsheetTextAlignDirective, isStandalone: true, selector: "[kendoSpreadsheetTextAlign]", ngImport: i0 });
4541
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetTextAlignDirective, decorators: [{
4542
- type: Directive,
4543
- args: [{
4544
- selector: '[kendoSpreadsheetTextAlign]',
4545
- standalone: true
4546
- }]
4547
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
4548
-
4549
- /**
4550
- * Utility array that contains all `@progress/kendo-angular-spreadsheet` related components and directives.
4551
- */
4552
- const KENDO_SPREADSHEET = [
4553
- SpreadsheetComponent,
4554
- CustomMessagesComponent,
4555
- SpreadsheetBoldDirective,
4556
- SpreadsheetItalicDirective,
4557
- SpreadsheetUnderlineDirective,
4558
- SpreadsheetLoadFileComponent,
4559
- SpreadsheetSaveFileDirective,
4560
- SpreadsheetFormatDirective,
4561
- SpreadsheetUndoDirective,
4562
- SpreadsheetRedoDirective,
4563
- SpreadsheetFontFamilyComponent,
4564
- SpreadsheetFontSizeComponent,
4565
- SpreadsheetBackColorComponent,
4566
- SpreadsheetForeColorComponent,
4567
- SpreadsheetGridLinesDirective,
4568
- SpreadsheetAddColumnLeftButtonDirective,
4569
- SpreadsheetAddColumnRightButtonDirective,
4570
- SpreadsheetAddRowAboveButtonDirective,
4571
- SpreadsheetAddRowBelowButtonDirective,
4572
- SpreadsheetDeleteColumnButtonDirective,
4573
- SpreadsheetDeleteRowButtonDirective,
4574
- SpreadsheetTextAlignDirective,
4575
- SpreadsheetTextWrapDirective,
4576
- SpreadsheetMergeDirective,
4577
- SpreadsheetInsertLinkDirective,
4578
- SpreadsheetIncreaseFontSizeDirective,
4579
- SpreadsheetDecreaseFontSizeDirective,
4580
- SpreadsheetIncreaseDecimalDirective,
4581
- SpreadsheetDecreaseDecimalDirective,
4582
- SpreadsheetHorizontalTextAlignDirective,
4583
- SpreadsheetVerticalTextAlignDirective
4584
- ];
4585
-
4586
- // IMPORTANT: NgModule export kept for backwards compatibility
4587
- /**
4588
- * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
4589
- * definition for the Spreadsheet component.
4590
- */
4591
- class SpreadsheetModule {
4592
- }
4593
- SpreadsheetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4594
- SpreadsheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetModule, imports: [SpreadsheetComponent, CustomMessagesComponent, SpreadsheetBoldDirective, SpreadsheetItalicDirective, SpreadsheetUnderlineDirective, SpreadsheetLoadFileComponent, SpreadsheetSaveFileDirective, SpreadsheetFormatDirective, SpreadsheetUndoDirective, SpreadsheetRedoDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetBackColorComponent, SpreadsheetForeColorComponent, SpreadsheetGridLinesDirective, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetMergeDirective, SpreadsheetInsertLinkDirective, SpreadsheetIncreaseFontSizeDirective, SpreadsheetDecreaseFontSizeDirective, SpreadsheetIncreaseDecimalDirective, SpreadsheetDecreaseDecimalDirective, SpreadsheetHorizontalTextAlignDirective, SpreadsheetVerticalTextAlignDirective], exports: [SpreadsheetComponent, CustomMessagesComponent, SpreadsheetBoldDirective, SpreadsheetItalicDirective, SpreadsheetUnderlineDirective, SpreadsheetLoadFileComponent, SpreadsheetSaveFileDirective, SpreadsheetFormatDirective, SpreadsheetUndoDirective, SpreadsheetRedoDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetBackColorComponent, SpreadsheetForeColorComponent, SpreadsheetGridLinesDirective, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetMergeDirective, SpreadsheetInsertLinkDirective, SpreadsheetIncreaseFontSizeDirective, SpreadsheetDecreaseFontSizeDirective, SpreadsheetIncreaseDecimalDirective, SpreadsheetDecreaseDecimalDirective, SpreadsheetHorizontalTextAlignDirective, SpreadsheetVerticalTextAlignDirective] });
4595
- SpreadsheetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetModule, providers: [IconsService, PopupService, ResizeBatchService, DialogContainerService, DialogService, WindowService, WindowContainerService], imports: [SpreadsheetComponent, SpreadsheetLoadFileComponent, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetBackColorComponent, SpreadsheetForeColorComponent] });
4596
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetModule, decorators: [{
4597
- type: NgModule,
4598
- args: [{
4599
- exports: [...KENDO_SPREADSHEET],
4600
- imports: [...KENDO_SPREADSHEET],
4601
- providers: [IconsService, PopupService, ResizeBatchService, DialogContainerService, DialogService, WindowService, WindowContainerService]
4602
- }]
4603
- }] });
4604
-
4605
- /**
4606
- * Generated bundle index. Do not edit.
4607
- */
4608
-
4609
- export { CustomMessagesComponent, FormulaInputDirective, FormulaListComponent, KENDO_SPREADSHEET, NameBoxComponent, SheetsBarComponent, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetBackColorComponent, SpreadsheetBoldDirective, SpreadsheetComponent, SpreadsheetDecreaseDecimalDirective, SpreadsheetDecreaseFontSizeDirective, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetForeColorComponent, SpreadsheetFormatDirective, SpreadsheetGridLinesDirective, SpreadsheetHorizontalTextAlignDirective, SpreadsheetIncreaseDecimalDirective, SpreadsheetIncreaseFontSizeDirective, SpreadsheetInsertLinkDirective, SpreadsheetItalicDirective, SpreadsheetLoadFileComponent, SpreadsheetMergeDirective, SpreadsheetModule, SpreadsheetRedoDirective, SpreadsheetSaveFileDirective, SpreadsheetTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetUnderlineDirective, SpreadsheetUndoDirective, SpreadsheetVerticalTextAlignDirective };
4610
-