@progress/kendo-angular-spreadsheet 14.1.0-develop.2 → 14.1.0-develop.4

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.
@@ -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: 1698869775,
13
- version: '14.1.0-develop.2',
12
+ publishDate: 1699263528,
13
+ version: '14.1.0-develop.4',
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/gridlines-tool.directive";
50
- import * as i29 from "./tools/tables/add-column-left-button.directive";
51
- import * as i30 from "./tools/tables/add-column-right-button.directive";
52
- import * as i31 from "./tools/tables/add-row-below-button.directive";
53
- import * as i32 from "./tools/tables/add-row-above-button.directive";
54
- import * as i33 from "./tools/tables/delete-column-button.directive";
55
- import * as i34 from "./tools/tables/delete-row-button.directive";
56
- import * as i35 from "./action-bar/formula-input.directive";
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
  */
@@ -174,6 +175,9 @@ export class SpreadsheetComponent {
174
175
  }, {
175
176
  id: 'insert',
176
177
  text: this.messageFor('insert')
178
+ }, {
179
+ id: 'view',
180
+ text: this.messageFor('view')
177
181
  }];
178
182
  }
179
183
  this.selectedMenuItem = this.menuItems[1];
@@ -379,6 +383,8 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
379
383
  file="File"
380
384
  i18n-insert="kendo.spreadsheet.insert|The text of the Insert toolbar tab."
381
385
  insert="Insert"
386
+ i18n-view="kendo.spreadsheet.view|The text of the View toolbar tab."
387
+ view="View"
382
388
  i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
383
389
  undo="Undo"
384
390
  i18n-redo="kendo.spreadsheet.redo|The title of the Redo tool."
@@ -401,6 +407,8 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
401
407
  wrap="Text wrap"
402
408
  i18n-align="kendo.spreadsheet.align|The title of the Text Align tool."
403
409
  align="Align"
410
+ i18n-merge="kendo.spreadsheet.merge|The title of the Cells Merge tool."
411
+ merge="Merge"
404
412
  i18n-dialogApply="kendo.spreadsheet.dialogApply|The text of the **Apply** button in all Spreadsheet dialogs."
405
413
  dialogApply="Apply"
406
414
  i18n-dialogCancel="kendo.spreadsheet.dialogCancel|The text of the **Cancel** button in all Spreadsheet dialogs."
@@ -455,8 +463,6 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
455
463
  <kendo-toolbar-button kendoSpreadsheetTextWrap></kendo-toolbar-button>
456
464
  <kendo-toolbar-separator></kendo-toolbar-separator>
457
465
  <kendo-toolbar-dropdownbutton kendoSpreadsheetFormat></kendo-toolbar-dropdownbutton>
458
- <kendo-toolbar-separator></kendo-toolbar-separator>
459
- <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
460
466
  </kendo-toolbar>
461
467
  <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'insert'"
462
468
  [attr.aria-label]="messageFor('insert')"
@@ -470,6 +476,14 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
470
476
  <kendo-toolbar-button kendoSpreadsheetDeleteColumnButton></kendo-toolbar-button>
471
477
  <kendo-toolbar-button kendoSpreadsheetDeleteRowButton></kendo-toolbar-button>
472
478
  </kendo-toolbar>
479
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'view'"
480
+ [attr.aria-label]="messageFor('view')"
481
+ class="k-spreadsheet-toolbar"
482
+ [overflow]="overflow">
483
+ <kendo-toolbar-dropdownbutton kendoSpreadsheetMerge></kendo-toolbar-dropdownbutton>
484
+ <kendo-toolbar-separator></kendo-toolbar-separator>
485
+ <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
486
+ </kendo-toolbar>
473
487
  </div>
474
488
  <div class="k-spreadsheet-action-bar">
475
489
  <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
@@ -499,7 +513,7 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
499
513
  <ng-container #dialogContainer></ng-container>
500
514
 
501
515
  <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.SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { type: i29.SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]" }, { type: i30.SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]" }, { type: i31.SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]" }, { type: i32.SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]" }, { type: i33.SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]" }, { type: i34.SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]" }, { type: i35.FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]" }] });
516
+ `, 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
517
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, decorators: [{
504
518
  type: Component,
505
519
  args: [{
@@ -547,6 +561,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
547
561
  file="File"
548
562
  i18n-insert="kendo.spreadsheet.insert|The text of the Insert toolbar tab."
549
563
  insert="Insert"
564
+ i18n-view="kendo.spreadsheet.view|The text of the View toolbar tab."
565
+ view="View"
550
566
  i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
551
567
  undo="Undo"
552
568
  i18n-redo="kendo.spreadsheet.redo|The title of the Redo tool."
@@ -569,6 +585,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
569
585
  wrap="Text wrap"
570
586
  i18n-align="kendo.spreadsheet.align|The title of the Text Align tool."
571
587
  align="Align"
588
+ i18n-merge="kendo.spreadsheet.merge|The title of the Cells Merge tool."
589
+ merge="Merge"
572
590
  i18n-dialogApply="kendo.spreadsheet.dialogApply|The text of the **Apply** button in all Spreadsheet dialogs."
573
591
  dialogApply="Apply"
574
592
  i18n-dialogCancel="kendo.spreadsheet.dialogCancel|The text of the **Cancel** button in all Spreadsheet dialogs."
@@ -623,8 +641,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
623
641
  <kendo-toolbar-button kendoSpreadsheetTextWrap></kendo-toolbar-button>
624
642
  <kendo-toolbar-separator></kendo-toolbar-separator>
625
643
  <kendo-toolbar-dropdownbutton kendoSpreadsheetFormat></kendo-toolbar-dropdownbutton>
626
- <kendo-toolbar-separator></kendo-toolbar-separator>
627
- <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
628
644
  </kendo-toolbar>
629
645
  <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'insert'"
630
646
  [attr.aria-label]="messageFor('insert')"
@@ -638,6 +654,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
638
654
  <kendo-toolbar-button kendoSpreadsheetDeleteColumnButton></kendo-toolbar-button>
639
655
  <kendo-toolbar-button kendoSpreadsheetDeleteRowButton></kendo-toolbar-button>
640
656
  </kendo-toolbar>
657
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'view'"
658
+ [attr.aria-label]="messageFor('view')"
659
+ class="k-spreadsheet-toolbar"
660
+ [overflow]="overflow">
661
+ <kendo-toolbar-dropdownbutton kendoSpreadsheetMerge></kendo-toolbar-dropdownbutton>
662
+ <kendo-toolbar-separator></kendo-toolbar-separator>
663
+ <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
664
+ </kendo-toolbar>
641
665
  </div>
642
666
  <div class="k-spreadsheet-action-bar">
643
667
  <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], imports: [CommonModule,
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, paneFreezeIcon } 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-horizontally',
39
+ mergeAll: 'pane-freeze',
40
+ mergeHorizontally: 'cells-merge-horizontally',
41
+ mergeVertically: 'borders-none',
42
+ unmerge: 'borders-none'
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: cellsMergeHorizontallyIcon,
77
+ mergeAll: paneFreezeIcon,
78
+ mergeHorizontally: cellsMergeHorizontallyIcon,
79
+ mergeVertically: bordersNoneIcon,
80
+ unmerge: bordersNoneIcon
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: 'align-left', svgIcon: commandSVGIcons.alignLeft, textKey: 'Align Left', commandName: 'textAlign', value: 'left', cssClass: '' },
51
- { icon: 'align-center', svgIcon: commandSVGIcons.alignCenter, textKey: 'Align Center', commandName: 'textAlign', value: 'center', cssClass: '' },
52
- { icon: 'align-right', svgIcon: commandSVGIcons.alignRight, textKey: 'Align Right', commandName: 'textAlign', value: 'right', cssClass: '' },
53
- { icon: 'align-justify', svgIcon: commandSVGIcons.alignJustify, textKey: 'Align Justify', commandName: 'textAlign', value: 'justify', cssClass: '' },
54
- { icon: 'align-top', svgIcon: commandSVGIcons.alignTop, textKey: 'Align Top', commandName: 'verticalAlign', value: 'top', cssClass: '' },
55
- { icon: 'align-middle', svgIcon: commandSVGIcons.alignMiddle, textKey: 'Align Middle', commandName: 'verticalAlign', value: 'center', cssClass: '' },
56
- { icon: 'align-bottom', svgIcon: commandSVGIcons.alignBottom, textKey: 'Align Bottom', commandName: 'verticalAlign', value: 'bottom', cssClass: '' }
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,67 @@
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 unmergeItem = this.host.data.find(i => i.commandName === 'unmerge');
38
+ const isCellMerged = this.isCellMerged(sheet.activeCell());
39
+ unmergeItem.disabled = !isCellMerged;
40
+ }));
41
+ }
42
+ ngOnDestroy() {
43
+ this.subs.unsubscribe();
44
+ }
45
+ onItemClick(item) {
46
+ const value = item.value || null;
47
+ const options = {
48
+ command: 'MergeCellCommand', options: { property: item.commandName, value }
49
+ };
50
+ this.spreadsheetService.spreadsheet.executeCommand(options);
51
+ }
52
+ isCellMerged(cell) {
53
+ const startRow = cell.topLeft.row;
54
+ const endRow = cell.bottomRight.row;
55
+ const startCol = cell.topLeft.col;
56
+ const endCol = cell.bottomRight.col;
57
+ return (startRow !== endRow) || (startCol !== endCol);
58
+ }
59
+ }
60
+ 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 });
61
+ SpreadsheetMergeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetMergeDirective, selector: "[kendoSpreadsheetMerge]", ngImport: i0 });
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetMergeDirective, decorators: [{
63
+ type: Directive,
64
+ args: [{
65
+ selector: '[kendoSpreadsheetMerge]',
66
+ }]
67
+ }], ctorParameters: function () { return [{ type: i1.ToolBarDropDownButtonComponent }, { type: i2.SpreadsheetLocalizationService }, { type: i3.SpreadsheetService }]; } });