@progress/kendo-angular-spreadsheet 21.1.1-develop.1 → 21.2.0-develop.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/action-bar/list.component.mjs +38 -35
- package/esm2022/common/list-editor.component.mjs +28 -25
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/sheets-bar/action-dialog.component.mjs +38 -35
- package/esm2022/sheets-bar/sheets-bar.component.mjs +106 -102
- package/esm2022/spreadsheet.component.mjs +688 -657
- package/esm2022/tools/colorpicker/spreadsheet-backcolor.component.mjs +86 -83
- package/esm2022/tools/colorpicker/spreadsheet-forecolor.component.mjs +86 -83
- package/esm2022/tools/data-validation-dialog.component.mjs +220 -207
- package/esm2022/tools/font-family/spreadsheet-fontfamily-tool.component.mjs +58 -55
- package/esm2022/tools/font-size/spreadsheet-fontsize-tool.component.mjs +58 -55
- package/esm2022/tools/shared/dialog-content.component.mjs +44 -35
- package/fesm2022/progress-kendo-angular-spreadsheet.mjs +1453 -1364
- package/package.json +17 -17
- package/schematics/ngAdd/index.js +6 -2
- package/sheets-bar/sheets-bar.component.d.ts +2 -0
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { Component, ElementRef, Input, Renderer2 } from '@angular/core';
|
|
6
|
-
import { NgFor } from '@angular/common';
|
|
7
6
|
import { formulaFxIcon } from '@progress/kendo-svg-icons';
|
|
8
7
|
import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
|
9
8
|
import { EventsOutsideAngularDirective } from '@progress/kendo-angular-common';
|
|
@@ -33,25 +32,27 @@ export class FormulaListComponent {
|
|
|
33
32
|
ev.preventDefault();
|
|
34
33
|
};
|
|
35
34
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormulaListComponent, deps: [{ token: i0.ElementRef }, { token: i1.SpreadsheetService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FormulaListComponent, isStandalone: true, selector: "kendo-spreadsheet-formula-list", inputs: { maxHeight: "maxHeight", data: "data", itemClick: "itemClick" }, ngImport: i0, template: `
|
|
37
36
|
<ul #ulRef
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
37
|
+
class="k-spreadsheet-formula-list k-list-ul k-list-md k-group k-reset"
|
|
38
|
+
role="menu"
|
|
39
|
+
[style.overflowY]="'auto'"
|
|
40
|
+
[style.maxHeight]="maxHeight"
|
|
41
|
+
[kendoEventsOutsideAngular]="{mousedown: handleMouseDown}">
|
|
42
|
+
@for (item of data; track item) {
|
|
43
|
+
<li
|
|
44
|
+
(click)="itemClick(item.text)"
|
|
45
|
+
class="k-list-item"
|
|
46
|
+
role="menuitem">
|
|
47
|
+
<kendo-icon-wrapper
|
|
48
|
+
[svgIcon]="formulaFxIcon"
|
|
49
|
+
name="formula-fx"
|
|
50
|
+
></kendo-icon-wrapper>
|
|
51
|
+
<span className="k-list-item-text">{{item.text}}</span>
|
|
52
|
+
</li>
|
|
53
|
+
}
|
|
53
54
|
</ul>
|
|
54
|
-
|
|
55
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
55
56
|
}
|
|
56
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormulaListComponent, decorators: [{
|
|
57
58
|
type: Component,
|
|
@@ -59,25 +60,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
59
60
|
selector: 'kendo-spreadsheet-formula-list',
|
|
60
61
|
template: `
|
|
61
62
|
<ul #ulRef
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
63
|
+
class="k-spreadsheet-formula-list k-list-ul k-list-md k-group k-reset"
|
|
64
|
+
role="menu"
|
|
65
|
+
[style.overflowY]="'auto'"
|
|
66
|
+
[style.maxHeight]="maxHeight"
|
|
67
|
+
[kendoEventsOutsideAngular]="{mousedown: handleMouseDown}">
|
|
68
|
+
@for (item of data; track item) {
|
|
69
|
+
<li
|
|
70
|
+
(click)="itemClick(item.text)"
|
|
71
|
+
class="k-list-item"
|
|
72
|
+
role="menuitem">
|
|
73
|
+
<kendo-icon-wrapper
|
|
74
|
+
[svgIcon]="formulaFxIcon"
|
|
75
|
+
name="formula-fx"
|
|
76
|
+
></kendo-icon-wrapper>
|
|
77
|
+
<span className="k-list-item-text">{{item.text}}</span>
|
|
78
|
+
</li>
|
|
79
|
+
}
|
|
77
80
|
</ul>
|
|
78
|
-
|
|
81
|
+
`,
|
|
79
82
|
standalone: true,
|
|
80
|
-
imports: [EventsOutsideAngularDirective,
|
|
83
|
+
imports: [EventsOutsideAngularDirective, IconWrapperComponent]
|
|
81
84
|
}]
|
|
82
85
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.SpreadsheetService }, { type: i0.Renderer2 }], propDecorators: { maxHeight: [{
|
|
83
86
|
type: Input
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { NgForOf } from '@angular/common';
|
|
6
5
|
import { Component, EventEmitter, Output, ViewChildren, QueryList, ElementRef, NgZone } from '@angular/core';
|
|
7
6
|
import { Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
|
8
7
|
import { SpreadsheetService } from './spreadsheet.service';
|
|
@@ -96,42 +95,46 @@ export class ListEditorComponent {
|
|
|
96
95
|
}
|
|
97
96
|
}
|
|
98
97
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListEditorComponent, deps: [{ token: i0.NgZone }, { token: i1.SpreadsheetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
99
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
98
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ListEditorComponent, isStandalone: true, selector: "ng-component", outputs: { itemSelect: "itemSelect", close: "close" }, viewQueries: [{ propertyName: "listItems", predicate: ["listItem"], descendants: true, read: ElementRef }], ngImport: i0, template: `
|
|
100
99
|
<ul class="k-list k-reset k-list-ul" role="listbox">
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
100
|
+
@for (item of data; track item; let i = $index) {
|
|
101
|
+
<li
|
|
102
|
+
role="option"
|
|
103
|
+
class="k-list-item"
|
|
104
|
+
[class.k-focus]="i === focusedIndex"
|
|
105
|
+
[attr.aria-selected]="i === focusedIndex"
|
|
106
|
+
[attr.tabindex]="i === focusedIndex ? 0 : -1"
|
|
107
|
+
(click)="onItemClick(item)"
|
|
108
|
+
(keydown)="onKeyDown($event, i)"
|
|
109
|
+
#listItem>
|
|
110
|
+
<span class="k-list-item-text">{{item.value}}</span>
|
|
111
111
|
</li>
|
|
112
|
+
}
|
|
112
113
|
</ul>
|
|
113
|
-
|
|
114
|
+
`, isInline: true });
|
|
114
115
|
}
|
|
115
116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListEditorComponent, decorators: [{
|
|
116
117
|
type: Component,
|
|
117
118
|
args: [{
|
|
118
119
|
template: `
|
|
119
120
|
<ul class="k-list k-reset k-list-ul" role="listbox">
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
121
|
+
@for (item of data; track item; let i = $index) {
|
|
122
|
+
<li
|
|
123
|
+
role="option"
|
|
124
|
+
class="k-list-item"
|
|
125
|
+
[class.k-focus]="i === focusedIndex"
|
|
126
|
+
[attr.aria-selected]="i === focusedIndex"
|
|
127
|
+
[attr.tabindex]="i === focusedIndex ? 0 : -1"
|
|
128
|
+
(click)="onItemClick(item)"
|
|
129
|
+
(keydown)="onKeyDown($event, i)"
|
|
130
|
+
#listItem>
|
|
131
|
+
<span class="k-list-item-text">{{item.value}}</span>
|
|
130
132
|
</li>
|
|
133
|
+
}
|
|
131
134
|
</ul>
|
|
132
|
-
|
|
135
|
+
`,
|
|
133
136
|
standalone: true,
|
|
134
|
-
imports: [
|
|
137
|
+
imports: []
|
|
135
138
|
}]
|
|
136
139
|
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.SpreadsheetService }], propDecorators: { itemSelect: [{
|
|
137
140
|
type: Output
|
|
@@ -10,7 +10,7 @@ export const packageMetadata = {
|
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCode: 'KENDOUIANGULAR',
|
|
12
12
|
productCodes: ['KENDOUIANGULAR'],
|
|
13
|
-
publishDate:
|
|
14
|
-
version: '21.
|
|
13
|
+
publishDate: 1763998296,
|
|
14
|
+
version: '21.2.0-develop.1',
|
|
15
15
|
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',
|
|
16
16
|
};
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { Component } from '@angular/core';
|
|
6
|
-
import { NgIf } from '@angular/common';
|
|
7
6
|
import { DialogRef, DialogContentBase } from '@progress/kendo-angular-dialog';
|
|
8
7
|
import { TextBoxComponent } from '@progress/kendo-angular-inputs';
|
|
9
8
|
import { LabelComponent } from '@progress/kendo-angular-label';
|
|
@@ -27,49 +26,53 @@ export class ActionDialogComponent extends DialogContentBase {
|
|
|
27
26
|
this.commandName = args.commandName;
|
|
28
27
|
}
|
|
29
28
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActionDialogComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ActionDialogComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
30
|
+
@if (commandName === 'delete') {
|
|
31
|
+
<p>The deleted sheet data will be lost.</p>
|
|
32
|
+
<p>Are you sure you want to proceed?</p>
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@if (commandName === 'rename') {
|
|
36
|
+
<form class="k-form k-form-md" method="dialog">
|
|
37
37
|
<div class="k-form-field">
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
38
|
+
<kendo-label [for]="textbox" text="Rename sheet"></kendo-label>
|
|
39
|
+
<div class="k-form-field-wrap">
|
|
40
|
+
<kendo-textbox #textbox
|
|
41
|
+
autocomplete="off"
|
|
42
|
+
placeholder="Sheet name"
|
|
43
|
+
[(value)]="value">
|
|
44
|
+
</kendo-textbox>
|
|
45
|
+
</div>
|
|
46
46
|
</div>
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
</form>
|
|
48
|
+
}
|
|
49
|
+
`, 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"] }] });
|
|
49
50
|
}
|
|
50
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActionDialogComponent, decorators: [{
|
|
51
52
|
type: Component,
|
|
52
53
|
args: [{
|
|
53
54
|
template: `
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
@if (commandName === 'delete') {
|
|
56
|
+
<p>The deleted sheet data will be lost.</p>
|
|
57
|
+
<p>Are you sure you want to proceed?</p>
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@if (commandName === 'rename') {
|
|
61
|
+
<form class="k-form k-form-md" method="dialog">
|
|
60
62
|
<div class="k-form-field">
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
<kendo-label [for]="textbox" text="Rename sheet"></kendo-label>
|
|
64
|
+
<div class="k-form-field-wrap">
|
|
65
|
+
<kendo-textbox #textbox
|
|
66
|
+
autocomplete="off"
|
|
67
|
+
placeholder="Sheet name"
|
|
68
|
+
[(value)]="value">
|
|
69
|
+
</kendo-textbox>
|
|
70
|
+
</div>
|
|
69
71
|
</div>
|
|
70
|
-
|
|
71
|
-
|
|
72
|
+
</form>
|
|
73
|
+
}
|
|
74
|
+
`,
|
|
72
75
|
standalone: true,
|
|
73
|
-
imports: [
|
|
76
|
+
imports: [LabelComponent, TextBoxComponent]
|
|
74
77
|
}]
|
|
75
78
|
}], ctorParameters: () => [{ type: i1.DialogRef }] });
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { Component, ElementRef, HostBinding, Input, NgZone, QueryList, Renderer2, ViewChild, ViewChildren } from '@angular/core';
|
|
6
|
-
import { NgFor, NgIf } from '@angular/common';
|
|
7
6
|
import { Subscription } from 'rxjs';
|
|
8
7
|
import { take } from 'rxjs/operators';
|
|
9
8
|
import { ButtonComponent, DropDownButtonComponent } from '@progress/kendo-angular-buttons';
|
|
@@ -31,9 +30,11 @@ export class SheetsBarComponent {
|
|
|
31
30
|
dialogService;
|
|
32
31
|
ngZone;
|
|
33
32
|
hostClasses = true;
|
|
33
|
+
trackByItemKey = (index, item) => this.hiding ? item : index;
|
|
34
34
|
sheets;
|
|
35
35
|
sheetDescriptors;
|
|
36
36
|
subs = new Subscription();
|
|
37
|
+
hiding = false;
|
|
37
38
|
constructor(spreadsheetService, element, renderer, localization, dialogService, ngZone) {
|
|
38
39
|
this.spreadsheetService = spreadsheetService;
|
|
39
40
|
this.element = element;
|
|
@@ -226,6 +227,7 @@ export class SheetsBarComponent {
|
|
|
226
227
|
this.notifySheetsChange();
|
|
227
228
|
},
|
|
228
229
|
hide: (sheet) => {
|
|
230
|
+
this.hiding = true;
|
|
229
231
|
sheet.state = 'hidden';
|
|
230
232
|
const sheets = this.spreadsheetService.spreadsheet.sheets();
|
|
231
233
|
const sheetIndex = sheets.findIndex(s => s.name() === sheet.text);
|
|
@@ -281,65 +283,66 @@ export class SheetsBarComponent {
|
|
|
281
283
|
svgIcon: this.hiddenStateSVGIcons[sheet.state]
|
|
282
284
|
}));
|
|
283
285
|
});
|
|
284
|
-
this.ngZone.onStable.pipe(take(1)).subscribe(() => this.spreadsheetService.spreadsheet.view.clipboard.focus());
|
|
286
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => { this.spreadsheetService.spreadsheet.view.clipboard.focus(); this.hiding = false; });
|
|
285
287
|
}
|
|
286
288
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetsBarComponent, deps: [{ token: i1.SpreadsheetService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.SpreadsheetLocalizationService }, { token: i3.DialogService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
287
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
289
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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: `
|
|
288
290
|
<button kendoButton #addButton
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
291
|
+
[title]="messageFor('addSheet')"
|
|
292
|
+
type="button"
|
|
293
|
+
fillMode="flat"
|
|
294
|
+
class="k-spreadsheet-sheet-add"
|
|
295
|
+
icon="plus"
|
|
296
|
+
[svgIcon]="plusIcon"
|
|
297
|
+
[kendoEventsOutsideAngular]="{click: onAddClick}"
|
|
298
|
+
[attr.aria-controls]="tablistId">
|
|
297
299
|
</button>
|
|
298
300
|
<kendo-dropdownbutton #menuButton
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
301
|
+
fillMode="flat"
|
|
302
|
+
buttonClass="k-spreadsheet-sheets-menu"
|
|
303
|
+
icon="menu"
|
|
304
|
+
[svgIcon]="menuIcon"
|
|
305
|
+
[data]="sheetsMenuList"
|
|
306
|
+
(itemClick)="onMenuItemClick($event)"
|
|
307
|
+
(open)="onOpen(menuButton)"
|
|
308
|
+
[buttonAttributes]="{title: messageFor('sheetsMenu')}"
|
|
309
|
+
[attr.aria-controls]="tablistId">
|
|
308
310
|
</kendo-dropdownbutton>
|
|
309
311
|
<kendo-tabstrip #tabstrip
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
312
|
+
[tabPosition]="'bottom'"
|
|
313
|
+
[showContentArea]="false"
|
|
314
|
+
[scrollable]="{ scrollButtonsPosition: 'end', mouseScroll: false }"
|
|
315
|
+
class="k-spreadsheet-sheets"
|
|
316
|
+
(tabSelect)="onTabSelect($event)">
|
|
317
|
+
@for (sheet of sheets; track trackByItemKey($index, sheet)) {
|
|
318
|
+
@if (sheet.state === 'visible') {
|
|
319
|
+
<kendo-tabstrip-tab
|
|
320
|
+
[title]="sheet.text"
|
|
321
|
+
[selected]="sheet.text === activeSheet">
|
|
322
|
+
<ng-template kendoTabTemplate>
|
|
323
|
+
<span class="k-link">
|
|
324
|
+
<span class="k-link-text">{{sheet.text}}</span>
|
|
325
|
+
</span>
|
|
326
|
+
<span class="k-item-actions">
|
|
327
|
+
<kendo-dropdownbutton #sheetDdb
|
|
328
|
+
fillMode="flat"
|
|
329
|
+
icon="caret-alt-down"
|
|
330
|
+
[svgIcon]="caretAltDownIcon"
|
|
331
|
+
buttonClass="k-menu-button"
|
|
332
|
+
[data]="sheet.sheetActions"
|
|
333
|
+
[buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
|
|
334
|
+
(open)="onOpen(sheetDdb)"
|
|
335
|
+
(close)="onClose()"
|
|
336
|
+
(click)="$event.stopPropagation()"
|
|
337
|
+
(itemClick)="onActionClick($event, sheet)">
|
|
338
|
+
</kendo-dropdownbutton>
|
|
339
|
+
</span>
|
|
340
|
+
</ng-template>
|
|
341
|
+
</kendo-tabstrip-tab>
|
|
342
|
+
}
|
|
343
|
+
}
|
|
341
344
|
</kendo-tabstrip>
|
|
342
|
-
|
|
345
|
+
`, 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", "size", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { 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]" }] });
|
|
343
346
|
}
|
|
344
347
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetsBarComponent, decorators: [{
|
|
345
348
|
type: Component,
|
|
@@ -347,62 +350,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
347
350
|
selector: '[kendoSpreadsheetSheetsBar]',
|
|
348
351
|
template: `
|
|
349
352
|
<button kendoButton #addButton
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
353
|
+
[title]="messageFor('addSheet')"
|
|
354
|
+
type="button"
|
|
355
|
+
fillMode="flat"
|
|
356
|
+
class="k-spreadsheet-sheet-add"
|
|
357
|
+
icon="plus"
|
|
358
|
+
[svgIcon]="plusIcon"
|
|
359
|
+
[kendoEventsOutsideAngular]="{click: onAddClick}"
|
|
360
|
+
[attr.aria-controls]="tablistId">
|
|
358
361
|
</button>
|
|
359
362
|
<kendo-dropdownbutton #menuButton
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
363
|
+
fillMode="flat"
|
|
364
|
+
buttonClass="k-spreadsheet-sheets-menu"
|
|
365
|
+
icon="menu"
|
|
366
|
+
[svgIcon]="menuIcon"
|
|
367
|
+
[data]="sheetsMenuList"
|
|
368
|
+
(itemClick)="onMenuItemClick($event)"
|
|
369
|
+
(open)="onOpen(menuButton)"
|
|
370
|
+
[buttonAttributes]="{title: messageFor('sheetsMenu')}"
|
|
371
|
+
[attr.aria-controls]="tablistId">
|
|
369
372
|
</kendo-dropdownbutton>
|
|
370
373
|
<kendo-tabstrip #tabstrip
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
374
|
+
[tabPosition]="'bottom'"
|
|
375
|
+
[showContentArea]="false"
|
|
376
|
+
[scrollable]="{ scrollButtonsPosition: 'end', mouseScroll: false }"
|
|
377
|
+
class="k-spreadsheet-sheets"
|
|
378
|
+
(tabSelect)="onTabSelect($event)">
|
|
379
|
+
@for (sheet of sheets; track trackByItemKey($index, sheet)) {
|
|
380
|
+
@if (sheet.state === 'visible') {
|
|
381
|
+
<kendo-tabstrip-tab
|
|
382
|
+
[title]="sheet.text"
|
|
383
|
+
[selected]="sheet.text === activeSheet">
|
|
384
|
+
<ng-template kendoTabTemplate>
|
|
385
|
+
<span class="k-link">
|
|
386
|
+
<span class="k-link-text">{{sheet.text}}</span>
|
|
387
|
+
</span>
|
|
388
|
+
<span class="k-item-actions">
|
|
389
|
+
<kendo-dropdownbutton #sheetDdb
|
|
390
|
+
fillMode="flat"
|
|
391
|
+
icon="caret-alt-down"
|
|
392
|
+
[svgIcon]="caretAltDownIcon"
|
|
393
|
+
buttonClass="k-menu-button"
|
|
394
|
+
[data]="sheet.sheetActions"
|
|
395
|
+
[buttonAttributes]="{'aria-hidden': 'true', 'tabindex': '-1', role: 'presentation'}"
|
|
396
|
+
(open)="onOpen(sheetDdb)"
|
|
397
|
+
(close)="onClose()"
|
|
398
|
+
(click)="$event.stopPropagation()"
|
|
399
|
+
(itemClick)="onActionClick($event, sheet)">
|
|
400
|
+
</kendo-dropdownbutton>
|
|
401
|
+
</span>
|
|
402
|
+
</ng-template>
|
|
403
|
+
</kendo-tabstrip-tab>
|
|
404
|
+
}
|
|
405
|
+
}
|
|
402
406
|
</kendo-tabstrip>
|
|
403
|
-
|
|
407
|
+
`,
|
|
404
408
|
standalone: true,
|
|
405
|
-
imports: [ButtonComponent, EventsOutsideAngularDirective, DropDownButtonComponent, TabStripComponent,
|
|
409
|
+
imports: [ButtonComponent, EventsOutsideAngularDirective, DropDownButtonComponent, TabStripComponent, TabStripTabComponent, TabTemplateDirective]
|
|
406
410
|
}]
|
|
407
411
|
}], ctorParameters: () => [{ type: i1.SpreadsheetService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i2.SpreadsheetLocalizationService }, { type: i3.DialogService }, { type: i0.NgZone }], propDecorators: { hostClasses: [{
|
|
408
412
|
type: HostBinding,
|