@progress/kendo-angular-spreadsheet 14.1.0-develop.1 → 14.1.0-develop.11
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/common/spreadsheet.service.d.ts +2 -1
- package/esm2020/common/spreadsheet.service.mjs +1 -0
- package/esm2020/localization/messages.mjs +5 -1
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/spreadsheet.component.mjs +41 -14
- package/esm2020/spreadsheet.module.mjs +9 -4
- package/esm2020/tools/shared/command-icons.mjs +13 -3
- package/esm2020/tools/shared/constants.mjs +17 -8
- package/esm2020/tools/tables/index.mjs +1 -0
- package/esm2020/tools/tables/merge-tool.directive.mjs +68 -0
- package/fesm2015/progress-kendo-angular-spreadsheet.mjs +164 -56
- package/fesm2020/progress-kendo-angular-spreadsheet.mjs +164 -56
- package/localization/messages.d.ts +9 -1
- package/package.json +13 -13
- package/schematics/ngAdd/index.js +1 -1
- package/spreadsheet.module.d.ts +15 -14
- package/tools/shared/commands.d.ts +1 -1
- package/tools/shared/constants.d.ts +11 -0
- package/tools/tables/index.d.ts +1 -0
- package/tools/tables/merge-tool.directive.d.ts +25 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { ViewContainerRef } from '@angular/core';
|
|
6
|
-
import { Sheet, SpreadsheetWidget } from '@progress/kendo-spreadsheet-common';
|
|
6
|
+
import { Range, Sheet, SpreadsheetWidget } from '@progress/kendo-spreadsheet-common';
|
|
7
7
|
import { Subject } from 'rxjs';
|
|
8
8
|
import { SheetsChanges } from './sheet-changes';
|
|
9
9
|
import { SheetInfo } from '../models';
|
|
@@ -15,6 +15,7 @@ export declare class SpreadsheetService {
|
|
|
15
15
|
spreadsheet: SpreadsheetWidget;
|
|
16
16
|
sheetsChanged: Subject<SheetsChanges>;
|
|
17
17
|
activeSheetChanged: Subject<Sheet>;
|
|
18
|
+
selectionChanged: Subject<Range>;
|
|
18
19
|
dialogContainer: ViewContainerRef;
|
|
19
20
|
constructor();
|
|
20
21
|
set currentActiveSheet(value: string);
|
|
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
|
|
|
11
11
|
export class MessagesDirective extends ComponentMessages {
|
|
12
12
|
}
|
|
13
13
|
MessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
14
|
-
MessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: MessagesDirective, selector: "[kendoSpreadsheetMessages]", inputs: { home: "home", file: "file", insert: "insert", saveFile: "saveFile", loadFile: "loadFile", bold: "bold", italic: "italic", underline: "underline", format: "format", fontFamily: "fontFamily", fontSize: "fontSize", undo: "undo", redo: "redo", background: "background", color: "color", gridLines: "gridLines", addColumnLeft: "addColumnLeft", addColumnRight: "addColumnRight", addRowBelow: "addRowBelow", addRowAbove: "addRowAbove", deleteColumn: "deleteColumn", deleteRow: "deleteRow", wrap: "wrap", align: "align", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", delete: "delete", rename: "rename", nameBox: "nameBox", addSheet: "addSheet", sheetsMenu: "sheetsMenu" }, usesInheritance: true, ngImport: i0 });
|
|
14
|
+
MessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: MessagesDirective, selector: "[kendoSpreadsheetMessages]", inputs: { home: "home", file: "file", insert: "insert", saveFile: "saveFile", loadFile: "loadFile", bold: "bold", italic: "italic", underline: "underline", format: "format", fontFamily: "fontFamily", fontSize: "fontSize", undo: "undo", redo: "redo", background: "background", color: "color", gridLines: "gridLines", addColumnLeft: "addColumnLeft", addColumnRight: "addColumnRight", addRowBelow: "addRowBelow", addRowAbove: "addRowAbove", deleteColumn: "deleteColumn", deleteRow: "deleteRow", wrap: "wrap", align: "align", dialogApply: "dialogApply", dialogCancel: "dialogCancel", dialogDelete: "dialogDelete", dialogRename: "dialogRename", delete: "delete", rename: "rename", nameBox: "nameBox", addSheet: "addSheet", sheetsMenu: "sheetsMenu", view: "view", merge: "merge" }, usesInheritance: true, ngImport: i0 });
|
|
15
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, decorators: [{
|
|
16
16
|
type: Directive,
|
|
17
17
|
args: [{
|
|
@@ -83,4 +83,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
83
83
|
type: Input
|
|
84
84
|
}], sheetsMenu: [{
|
|
85
85
|
type: Input
|
|
86
|
+
}], view: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], merge: [{
|
|
89
|
+
type: Input
|
|
86
90
|
}] } });
|
|
@@ -9,7 +9,7 @@ export const packageMetadata = {
|
|
|
9
9
|
name: '@progress/kendo-angular-spreadsheet',
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
12
|
-
publishDate:
|
|
13
|
-
version: '14.1.0-develop.
|
|
12
|
+
publishDate: 1699450670,
|
|
13
|
+
version: '14.1.0-develop.11',
|
|
14
14
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning',
|
|
15
15
|
};
|
|
@@ -46,14 +46,15 @@ import * as i24 from "./tools/typographical-emphasis/underline-tool.directive";
|
|
|
46
46
|
import * as i25 from "./tools/align-tool.directive";
|
|
47
47
|
import * as i26 from "./tools/text-wrap-tool.directive";
|
|
48
48
|
import * as i27 from "./tools/format-tool.directive";
|
|
49
|
-
import * as i28 from "./tools/
|
|
50
|
-
import * as i29 from "./tools/tables/add-column-
|
|
51
|
-
import * as i30 from "./tools/tables/add-
|
|
52
|
-
import * as i31 from "./tools/tables/add-row-
|
|
53
|
-
import * as i32 from "./tools/tables/
|
|
54
|
-
import * as i33 from "./tools/tables/delete-
|
|
55
|
-
import * as i34 from "./tools/tables/
|
|
56
|
-
import * as i35 from "./
|
|
49
|
+
import * as i28 from "./tools/tables/add-column-left-button.directive";
|
|
50
|
+
import * as i29 from "./tools/tables/add-column-right-button.directive";
|
|
51
|
+
import * as i30 from "./tools/tables/add-row-below-button.directive";
|
|
52
|
+
import * as i31 from "./tools/tables/add-row-above-button.directive";
|
|
53
|
+
import * as i32 from "./tools/tables/delete-column-button.directive";
|
|
54
|
+
import * as i33 from "./tools/tables/delete-row-button.directive";
|
|
55
|
+
import * as i34 from "./tools/tables/merge-tool.directive";
|
|
56
|
+
import * as i35 from "./tools/gridlines-tool.directive";
|
|
57
|
+
import * as i36 from "./action-bar/formula-input.directive";
|
|
57
58
|
/**
|
|
58
59
|
* Represents the [Kendo UI Spreadsheet component for Angular]({% slug overview_spreadsheet %}).
|
|
59
60
|
*/
|
|
@@ -145,7 +146,10 @@ export class SpreadsheetComponent {
|
|
|
145
146
|
*/
|
|
146
147
|
this.showLicenseWatermark = false;
|
|
147
148
|
this.onChange = (e) => hasObservers(this.change) && this.change.emit(e);
|
|
148
|
-
this.onSelectionChange = (e) =>
|
|
149
|
+
this.onSelectionChange = (e) => {
|
|
150
|
+
hasObservers(this.selectionChange) && this.selectionChange.emit(e);
|
|
151
|
+
this.spreadsheetService.selectionChanged.next(e.range);
|
|
152
|
+
};
|
|
149
153
|
this.onChangeFormat = (e) => hasObservers(this.formatChange) && this.formatChange.emit(e);
|
|
150
154
|
this.onExcelExport = (e) => hasObservers(this.excelExport) && this.excelExport.emit(e);
|
|
151
155
|
this.onExcelImport = (e) => hasObservers(this.excelImport) && this.excelImport.emit(e);
|
|
@@ -174,6 +178,9 @@ export class SpreadsheetComponent {
|
|
|
174
178
|
}, {
|
|
175
179
|
id: 'insert',
|
|
176
180
|
text: this.messageFor('insert')
|
|
181
|
+
}, {
|
|
182
|
+
id: 'view',
|
|
183
|
+
text: this.messageFor('view')
|
|
177
184
|
}];
|
|
178
185
|
}
|
|
179
186
|
this.selectedMenuItem = this.menuItems[1];
|
|
@@ -379,6 +386,8 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
379
386
|
file="File"
|
|
380
387
|
i18n-insert="kendo.spreadsheet.insert|The text of the Insert toolbar tab."
|
|
381
388
|
insert="Insert"
|
|
389
|
+
i18n-view="kendo.spreadsheet.view|The text of the View toolbar tab."
|
|
390
|
+
view="View"
|
|
382
391
|
i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
|
|
383
392
|
undo="Undo"
|
|
384
393
|
i18n-redo="kendo.spreadsheet.redo|The title of the Redo tool."
|
|
@@ -401,6 +410,8 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
401
410
|
wrap="Text wrap"
|
|
402
411
|
i18n-align="kendo.spreadsheet.align|The title of the Text Align tool."
|
|
403
412
|
align="Align"
|
|
413
|
+
i18n-merge="kendo.spreadsheet.merge|The title of the Cells Merge tool."
|
|
414
|
+
merge="Merge"
|
|
404
415
|
i18n-dialogApply="kendo.spreadsheet.dialogApply|The text of the **Apply** button in all Spreadsheet dialogs."
|
|
405
416
|
dialogApply="Apply"
|
|
406
417
|
i18n-dialogCancel="kendo.spreadsheet.dialogCancel|The text of the **Cancel** button in all Spreadsheet dialogs."
|
|
@@ -455,8 +466,6 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
455
466
|
<kendo-toolbar-button kendoSpreadsheetTextWrap></kendo-toolbar-button>
|
|
456
467
|
<kendo-toolbar-separator></kendo-toolbar-separator>
|
|
457
468
|
<kendo-toolbar-dropdownbutton kendoSpreadsheetFormat></kendo-toolbar-dropdownbutton>
|
|
458
|
-
<kendo-toolbar-separator></kendo-toolbar-separator>
|
|
459
|
-
<kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
|
|
460
469
|
</kendo-toolbar>
|
|
461
470
|
<kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'insert'"
|
|
462
471
|
[attr.aria-label]="messageFor('insert')"
|
|
@@ -470,6 +479,14 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
470
479
|
<kendo-toolbar-button kendoSpreadsheetDeleteColumnButton></kendo-toolbar-button>
|
|
471
480
|
<kendo-toolbar-button kendoSpreadsheetDeleteRowButton></kendo-toolbar-button>
|
|
472
481
|
</kendo-toolbar>
|
|
482
|
+
<kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'view'"
|
|
483
|
+
[attr.aria-label]="messageFor('view')"
|
|
484
|
+
class="k-spreadsheet-toolbar"
|
|
485
|
+
[overflow]="overflow">
|
|
486
|
+
<kendo-toolbar-dropdownbutton kendoSpreadsheetMerge></kendo-toolbar-dropdownbutton>
|
|
487
|
+
<kendo-toolbar-separator></kendo-toolbar-separator>
|
|
488
|
+
<kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
|
|
489
|
+
</kendo-toolbar>
|
|
473
490
|
</div>
|
|
474
491
|
<div class="k-spreadsheet-action-bar">
|
|
475
492
|
<div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
|
|
@@ -499,7 +516,7 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
499
516
|
<ng-container #dialogContainer></ng-container>
|
|
500
517
|
|
|
501
518
|
<div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
|
|
502
|
-
`, isInline: true, components: [{ type: i5.MenuComponent, selector: "kendo-menu", inputs: ["menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { type: i5.MenuItemComponent, selector: "kendo-menu-item", inputs: ["text", "url", "disabled", "cssClass", "cssStyle", "icon", "svgIcon", "data", "separator"] }, { type: i6.ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "tabindex", "size", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { type: i7.SpreadsheetLoadFileComponent, selector: "kendo-spreadsheet-load-file-tool" }, { type: i6.ToolBarButtonComponent, selector: "kendo-toolbar-button", inputs: ["showText", "showIcon", "text", "style", "className", "title", "disabled", "toggleable", "look", "togglable", "selected", "fillMode", "themeColor", "icon", "iconClass", "svgIcon", "imageUrl"], outputs: ["click", "pointerdown", "selectedChange"], exportAs: ["kendoToolBarButton"] }, { type: i6.ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { type: i6.ToolBarSeparatorComponent, selector: "kendo-toolbar-separator", exportAs: ["kendoToolBarSeparator"] }, { type: i8.SpreadsheetFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]" }, { type: i9.SpreadsheetFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]" }, { type: i10.SpreadsheetForeColorComponent, selector: "kendo-spreadsheet-forecolor-tool" }, { type: i11.SpreadsheetBackColorComponent, selector: "kendo-spreadsheet-backcolor-tool" }, { type: i6.ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: ["arrowIcon", "title", "showText", "showIcon", "text", "icon", "svgIcon", "iconClass", "imageUrl", "popupSettings", "look", "primary", "fillMode", "themeColor", "buttonClass", "textField", "disabled", "data"], outputs: ["itemClick", "open", "close"], exportAs: ["kendoToolBarDropDownButton"] }, { type: i12.NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: ["data", "spreadsheetWidget"] }, { type: i13.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i14.SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: ["sheets", "sheetDescriptors"] }, { type: i15.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], directives: [{ type: i16.LocalizedMessagesDirective, selector: "[kendoSpreadsheetLocalizedMessages]" }, { type: i17.MainMenuDirective, selector: "[kendoSpreadsheetMenu]" }, { type: i18.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i18.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i19.SpreadsheetSaveFileDirective, selector: "[kendoSpreadsheetSaveFile]" }, { type: i20.SpreadsheetUndoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]" }, { type: i21.SpreadsheetRedoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]" }, { type: i22.SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { type: i23.SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { type: i24.SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { type: i25.SpreadsheetTextAlignDirective, selector: "[kendoSpreadsheetTextAlign]" }, { type: i26.SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { type: i27.SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { type: i28.
|
|
519
|
+
`, isInline: true, components: [{ type: i5.MenuComponent, selector: "kendo-menu", inputs: ["menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { type: i5.MenuItemComponent, selector: "kendo-menu-item", inputs: ["text", "url", "disabled", "cssClass", "cssStyle", "icon", "svgIcon", "data", "separator"] }, { type: i6.ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "tabindex", "size", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { type: i7.SpreadsheetLoadFileComponent, selector: "kendo-spreadsheet-load-file-tool" }, { type: i6.ToolBarButtonComponent, selector: "kendo-toolbar-button", inputs: ["showText", "showIcon", "text", "style", "className", "title", "disabled", "toggleable", "look", "togglable", "selected", "fillMode", "themeColor", "icon", "iconClass", "svgIcon", "imageUrl"], outputs: ["click", "pointerdown", "selectedChange"], exportAs: ["kendoToolBarButton"] }, { type: i6.ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { type: i6.ToolBarSeparatorComponent, selector: "kendo-toolbar-separator", exportAs: ["kendoToolBarSeparator"] }, { type: i8.SpreadsheetFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]" }, { type: i9.SpreadsheetFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]" }, { type: i10.SpreadsheetForeColorComponent, selector: "kendo-spreadsheet-forecolor-tool" }, { type: i11.SpreadsheetBackColorComponent, selector: "kendo-spreadsheet-backcolor-tool" }, { type: i6.ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: ["arrowIcon", "title", "showText", "showIcon", "text", "icon", "svgIcon", "iconClass", "imageUrl", "popupSettings", "look", "primary", "fillMode", "themeColor", "buttonClass", "textField", "disabled", "data"], outputs: ["itemClick", "open", "close"], exportAs: ["kendoToolBarDropDownButton"] }, { type: i12.NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: ["data", "spreadsheetWidget"] }, { type: i13.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: i14.SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: ["sheets", "sheetDescriptors"] }, { type: i15.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], directives: [{ type: i16.LocalizedMessagesDirective, selector: "[kendoSpreadsheetLocalizedMessages]" }, { type: i17.MainMenuDirective, selector: "[kendoSpreadsheetMenu]" }, { type: i18.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i18.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i19.SpreadsheetSaveFileDirective, selector: "[kendoSpreadsheetSaveFile]" }, { type: i20.SpreadsheetUndoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]" }, { type: i21.SpreadsheetRedoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]" }, { type: i22.SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { type: i23.SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { type: i24.SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { type: i25.SpreadsheetTextAlignDirective, selector: "[kendoSpreadsheetTextAlign]" }, { type: i26.SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { type: i27.SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { type: i28.SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]" }, { type: i29.SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]" }, { type: i30.SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]" }, { type: i31.SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]" }, { type: i32.SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]" }, { type: i33.SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]" }, { type: i34.SpreadsheetMergeDirective, selector: "[kendoSpreadsheetMerge]" }, { type: i35.SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { type: i36.FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]" }] });
|
|
503
520
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, decorators: [{
|
|
504
521
|
type: Component,
|
|
505
522
|
args: [{
|
|
@@ -547,6 +564,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
547
564
|
file="File"
|
|
548
565
|
i18n-insert="kendo.spreadsheet.insert|The text of the Insert toolbar tab."
|
|
549
566
|
insert="Insert"
|
|
567
|
+
i18n-view="kendo.spreadsheet.view|The text of the View toolbar tab."
|
|
568
|
+
view="View"
|
|
550
569
|
i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
|
|
551
570
|
undo="Undo"
|
|
552
571
|
i18n-redo="kendo.spreadsheet.redo|The title of the Redo tool."
|
|
@@ -569,6 +588,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
569
588
|
wrap="Text wrap"
|
|
570
589
|
i18n-align="kendo.spreadsheet.align|The title of the Text Align tool."
|
|
571
590
|
align="Align"
|
|
591
|
+
i18n-merge="kendo.spreadsheet.merge|The title of the Cells Merge tool."
|
|
592
|
+
merge="Merge"
|
|
572
593
|
i18n-dialogApply="kendo.spreadsheet.dialogApply|The text of the **Apply** button in all Spreadsheet dialogs."
|
|
573
594
|
dialogApply="Apply"
|
|
574
595
|
i18n-dialogCancel="kendo.spreadsheet.dialogCancel|The text of the **Cancel** button in all Spreadsheet dialogs."
|
|
@@ -623,8 +644,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
623
644
|
<kendo-toolbar-button kendoSpreadsheetTextWrap></kendo-toolbar-button>
|
|
624
645
|
<kendo-toolbar-separator></kendo-toolbar-separator>
|
|
625
646
|
<kendo-toolbar-dropdownbutton kendoSpreadsheetFormat></kendo-toolbar-dropdownbutton>
|
|
626
|
-
<kendo-toolbar-separator></kendo-toolbar-separator>
|
|
627
|
-
<kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
|
|
628
647
|
</kendo-toolbar>
|
|
629
648
|
<kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'insert'"
|
|
630
649
|
[attr.aria-label]="messageFor('insert')"
|
|
@@ -638,6 +657,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
638
657
|
<kendo-toolbar-button kendoSpreadsheetDeleteColumnButton></kendo-toolbar-button>
|
|
639
658
|
<kendo-toolbar-button kendoSpreadsheetDeleteRowButton></kendo-toolbar-button>
|
|
640
659
|
</kendo-toolbar>
|
|
660
|
+
<kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'view'"
|
|
661
|
+
[attr.aria-label]="messageFor('view')"
|
|
662
|
+
class="k-spreadsheet-toolbar"
|
|
663
|
+
[overflow]="overflow">
|
|
664
|
+
<kendo-toolbar-dropdownbutton kendoSpreadsheetMerge></kendo-toolbar-dropdownbutton>
|
|
665
|
+
<kendo-toolbar-separator></kendo-toolbar-separator>
|
|
666
|
+
<kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
|
|
667
|
+
</kendo-toolbar>
|
|
641
668
|
</div>
|
|
642
669
|
<div class="k-spreadsheet-action-bar">
|
|
643
670
|
<div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
|
|
@@ -50,6 +50,7 @@ import { DialogContentComponent } from './tools/shared/dialog-content.component'
|
|
|
50
50
|
import { MenuModule } from '@progress/kendo-angular-menu';
|
|
51
51
|
import { MainMenuDirective } from './common/main-menu.directive';
|
|
52
52
|
import { ActionDialogComponent } from './sheets-bar/action-dialog.component';
|
|
53
|
+
import { SpreadsheetMergeDirective } from './tools/tables/merge-tool.directive';
|
|
53
54
|
import * as i0 from "@angular/core";
|
|
54
55
|
const DIRECTIVES = [
|
|
55
56
|
SpreadsheetComponent,
|
|
@@ -85,7 +86,8 @@ const DIRECTIVES = [
|
|
|
85
86
|
FontSizeDropDownListComponent,
|
|
86
87
|
DialogContentComponent,
|
|
87
88
|
MainMenuDirective,
|
|
88
|
-
ActionDialogComponent
|
|
89
|
+
ActionDialogComponent,
|
|
90
|
+
SpreadsheetMergeDirective
|
|
89
91
|
];
|
|
90
92
|
const EXPORTS = [
|
|
91
93
|
SpreadsheetComponent,
|
|
@@ -110,7 +112,8 @@ const EXPORTS = [
|
|
|
110
112
|
SpreadsheetDeleteColumnButtonDirective,
|
|
111
113
|
SpreadsheetDeleteRowButtonDirective,
|
|
112
114
|
SpreadsheetTextAlignDirective,
|
|
113
|
-
SpreadsheetTextWrapDirective
|
|
115
|
+
SpreadsheetTextWrapDirective,
|
|
116
|
+
SpreadsheetMergeDirective
|
|
114
117
|
];
|
|
115
118
|
/**
|
|
116
119
|
* Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
|
|
@@ -152,7 +155,8 @@ SpreadsheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
|
|
|
152
155
|
FontSizeDropDownListComponent,
|
|
153
156
|
DialogContentComponent,
|
|
154
157
|
MainMenuDirective,
|
|
155
|
-
ActionDialogComponent
|
|
158
|
+
ActionDialogComponent,
|
|
159
|
+
SpreadsheetMergeDirective], imports: [CommonModule,
|
|
156
160
|
ButtonsModule,
|
|
157
161
|
ComboBoxModule,
|
|
158
162
|
DropDownListModule,
|
|
@@ -188,7 +192,8 @@ SpreadsheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
|
|
|
188
192
|
SpreadsheetDeleteColumnButtonDirective,
|
|
189
193
|
SpreadsheetDeleteRowButtonDirective,
|
|
190
194
|
SpreadsheetTextAlignDirective,
|
|
191
|
-
SpreadsheetTextWrapDirective
|
|
195
|
+
SpreadsheetTextWrapDirective,
|
|
196
|
+
SpreadsheetMergeDirective] });
|
|
192
197
|
SpreadsheetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetModule, imports: [[
|
|
193
198
|
CommonModule,
|
|
194
199
|
ButtonsModule,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2023 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 { alignCenterIcon, alignJustifyIcon, alignLeftIcon, alignRightIcon, boldIcon, dropletIcon, foregroundColorIcon, italicIcon, tableColumnDeleteIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableRowDeleteIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, underlineIcon, arrowRotateCcwIcon, arrowRotateCwIcon, bordersNoneIcon, alignTopIcon, alignMiddleIcon, alignBottomIcon, textWrapIcon, folderOpenIcon, downloadIcon, customFormatIcon, fontSizeIcon, fontFamilyIcon } from '@progress/kendo-svg-icons';
|
|
5
|
+
import { alignCenterIcon, alignJustifyIcon, alignLeftIcon, alignRightIcon, boldIcon, dropletIcon, foregroundColorIcon, italicIcon, tableColumnDeleteIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableRowDeleteIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, underlineIcon, arrowRotateCcwIcon, arrowRotateCwIcon, bordersNoneIcon, alignTopIcon, alignMiddleIcon, alignBottomIcon, textWrapIcon, folderOpenIcon, downloadIcon, customFormatIcon, fontSizeIcon, fontFamilyIcon, cellsMergeHorizontallyIcon, cellsMergeIcon, cellsMergeVerticallyIcon, tableUnmergeIcon } from '@progress/kendo-svg-icons';
|
|
6
6
|
/**
|
|
7
7
|
* @hidden
|
|
8
8
|
*/
|
|
@@ -34,7 +34,12 @@ export const commandIcons = {
|
|
|
34
34
|
download: 'download',
|
|
35
35
|
format: 'custom-format',
|
|
36
36
|
fontSize: 'font-size',
|
|
37
|
-
fontFamily: 'font-family'
|
|
37
|
+
fontFamily: 'font-family',
|
|
38
|
+
merge: 'cells-merge',
|
|
39
|
+
mergeAll: 'cells-merge',
|
|
40
|
+
mergeHorizontally: 'cells-merge-horizontally',
|
|
41
|
+
mergeVertically: 'cells-merge-vertically',
|
|
42
|
+
unmerge: 'table-unmerge'
|
|
38
43
|
};
|
|
39
44
|
/**
|
|
40
45
|
* @hidden
|
|
@@ -67,5 +72,10 @@ export const commandSVGIcons = {
|
|
|
67
72
|
download: downloadIcon,
|
|
68
73
|
format: customFormatIcon,
|
|
69
74
|
fontSize: fontSizeIcon,
|
|
70
|
-
fontFamily: fontFamilyIcon
|
|
75
|
+
fontFamily: fontFamilyIcon,
|
|
76
|
+
merge: cellsMergeIcon,
|
|
77
|
+
mergeAll: cellsMergeIcon,
|
|
78
|
+
mergeHorizontally: cellsMergeHorizontallyIcon,
|
|
79
|
+
mergeVertically: cellsMergeVerticallyIcon,
|
|
80
|
+
unmerge: tableUnmergeIcon
|
|
71
81
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { InjectionToken } from "@angular/core";
|
|
6
|
-
import { commandSVGIcons } from './command-icons';
|
|
6
|
+
import { commandIcons, commandSVGIcons } from './command-icons';
|
|
7
7
|
const DEFAULT_FONT_FAMILY = 'Arial';
|
|
8
8
|
const DEFAULT_FONT_SIZE = 12;
|
|
9
9
|
/**
|
|
@@ -47,13 +47,22 @@ export const FORMATS = [
|
|
|
47
47
|
* @hidden
|
|
48
48
|
*/
|
|
49
49
|
export const ALIGNS = [
|
|
50
|
-
{ icon:
|
|
51
|
-
{ icon:
|
|
52
|
-
{ icon:
|
|
53
|
-
{ icon:
|
|
54
|
-
{ icon:
|
|
55
|
-
{ icon:
|
|
56
|
-
{ icon:
|
|
50
|
+
{ icon: commandIcons.alignLeft, svgIcon: commandSVGIcons.alignLeft, textKey: 'Align Left', commandName: 'textAlign', value: 'left', cssClass: '' },
|
|
51
|
+
{ icon: commandIcons.alignCenter, svgIcon: commandSVGIcons.alignCenter, textKey: 'Align Center', commandName: 'textAlign', value: 'center', cssClass: '' },
|
|
52
|
+
{ icon: commandIcons.alignRight, svgIcon: commandSVGIcons.alignRight, textKey: 'Align Right', commandName: 'textAlign', value: 'right', cssClass: '' },
|
|
53
|
+
{ icon: commandIcons.alignJustify, svgIcon: commandSVGIcons.alignJustify, textKey: 'Align Justify', commandName: 'textAlign', value: 'justify', cssClass: '' },
|
|
54
|
+
{ icon: commandIcons.alignTop, svgIcon: commandSVGIcons.alignTop, textKey: 'Align Top', commandName: 'verticalAlign', value: 'top', cssClass: '' },
|
|
55
|
+
{ icon: commandIcons.alignMiddle, svgIcon: commandSVGIcons.alignMiddle, textKey: 'Align Middle', commandName: 'verticalAlign', value: 'center', cssClass: '' },
|
|
56
|
+
{ icon: commandIcons.alignBottom, svgIcon: commandSVGIcons.alignBottom, textKey: 'Align Bottom', commandName: 'verticalAlign', value: 'bottom', cssClass: '' }
|
|
57
|
+
];
|
|
58
|
+
/**
|
|
59
|
+
* @hidden
|
|
60
|
+
*/
|
|
61
|
+
export const MERGE = [
|
|
62
|
+
{ icon: commandIcons.mergeAll, svgIcon: commandSVGIcons.mergeAll, textKey: 'Merge all', commandName: 'cells', value: 'cells', disabled: false },
|
|
63
|
+
{ icon: commandIcons.mergeHorizontally, svgIcon: commandSVGIcons.mergeHorizontally, textKey: 'Merge horizontally', commandName: 'horizontally', value: 'horizontally', disabled: false },
|
|
64
|
+
{ icon: commandIcons.mergeVertically, svgIcon: commandSVGIcons.mergeVertically, textKey: 'Merge vertically', commandName: 'vertically', value: 'vertically', disabled: false },
|
|
65
|
+
{ icon: commandIcons.unmerge, svgIcon: commandSVGIcons.unmerge, textKey: 'Unmerge', commandName: 'unmerge', value: 'unmerge', disabled: false }
|
|
57
66
|
];
|
|
58
67
|
/**
|
|
59
68
|
* @hidden
|
|
@@ -8,3 +8,4 @@ export { SpreadsheetAddRowAboveButtonDirective } from './add-row-above-button.di
|
|
|
8
8
|
export { SpreadsheetAddRowBelowButtonDirective } from './add-row-below-button.directive';
|
|
9
9
|
export { SpreadsheetDeleteColumnButtonDirective } from './delete-column-button.directive';
|
|
10
10
|
export { SpreadsheetDeleteRowButtonDirective } from './delete-row-button.directive';
|
|
11
|
+
export { SpreadsheetMergeDirective } from './merge-tool.directive';
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { Directive } from '@angular/core';
|
|
6
|
+
import { Subscription } from 'rxjs';
|
|
7
|
+
import { ToolBarDropDownButtonComponent } from '@progress/kendo-angular-toolbar';
|
|
8
|
+
import { SpreadsheetLocalizationService } from '../../localization/spreadsheet-localization.service';
|
|
9
|
+
import { SpreadsheetService } from '../../common/spreadsheet.service';
|
|
10
|
+
import { commandIcons, commandSVGIcons } from '../shared/command-icons';
|
|
11
|
+
import { MERGE } from '../shared/constants';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@progress/kendo-angular-toolbar";
|
|
14
|
+
import * as i2 from "../../localization/spreadsheet-localization.service";
|
|
15
|
+
import * as i3 from "../../common/spreadsheet.service";
|
|
16
|
+
/**
|
|
17
|
+
* @hidden
|
|
18
|
+
*/
|
|
19
|
+
export class SpreadsheetMergeDirective {
|
|
20
|
+
constructor(host, localization, spreadsheetService) {
|
|
21
|
+
this.host = host;
|
|
22
|
+
this.spreadsheetService = spreadsheetService;
|
|
23
|
+
this.commandName = 'merge';
|
|
24
|
+
this.subs = new Subscription();
|
|
25
|
+
host.svgIcon = commandSVGIcons[this.commandName];
|
|
26
|
+
host.icon = commandIcons[this.commandName];
|
|
27
|
+
host.arrowIcon = true;
|
|
28
|
+
host.fillMode = 'flat';
|
|
29
|
+
host.data = [...MERGE];
|
|
30
|
+
this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
|
|
31
|
+
host.title = localization.get(this.commandName);
|
|
32
|
+
host.textField = 'textKey';
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
this.subs.add(this.host.open.subscribe(() => {
|
|
36
|
+
const sheet = this.spreadsheetService.spreadsheet.activeSheet();
|
|
37
|
+
const isMergedCellWithinRange = this.hasMergedCells(sheet);
|
|
38
|
+
const unmergeItem = this.host.data.find(i => i.commandName === 'unmerge');
|
|
39
|
+
unmergeItem.disabled = !isMergedCellWithinRange;
|
|
40
|
+
}));
|
|
41
|
+
this.subs.add(this.spreadsheetService.selectionChanged.subscribe(range => this.selectedRange = range));
|
|
42
|
+
}
|
|
43
|
+
ngOnDestroy() {
|
|
44
|
+
this.subs.unsubscribe();
|
|
45
|
+
}
|
|
46
|
+
onItemClick(item) {
|
|
47
|
+
if (item.disabled) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const value = item.value || null;
|
|
51
|
+
const options = {
|
|
52
|
+
command: 'MergeCellCommand', options: { property: item.commandName, value }
|
|
53
|
+
};
|
|
54
|
+
this.spreadsheetService.spreadsheet.executeCommand(options);
|
|
55
|
+
}
|
|
56
|
+
hasMergedCells(sheet) {
|
|
57
|
+
const range = sheet._ref(this.selectedRange);
|
|
58
|
+
return sheet._getMergedCells(range).hasMerged;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
SpreadsheetMergeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetMergeDirective, deps: [{ token: i1.ToolBarDropDownButtonComponent }, { token: i2.SpreadsheetLocalizationService }, { token: i3.SpreadsheetService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
62
|
+
SpreadsheetMergeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetMergeDirective, selector: "[kendoSpreadsheetMerge]", ngImport: i0 });
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetMergeDirective, decorators: [{
|
|
64
|
+
type: Directive,
|
|
65
|
+
args: [{
|
|
66
|
+
selector: '[kendoSpreadsheetMerge]',
|
|
67
|
+
}]
|
|
68
|
+
}], ctorParameters: function () { return [{ type: i1.ToolBarDropDownButtonComponent }, { type: i2.SpreadsheetLocalizationService }, { type: i3.SpreadsheetService }]; } });
|