@progress/kendo-angular-spreadsheet 14.0.2-develop.9 → 14.1.0-develop.10

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.
@@ -8,7 +8,7 @@ import { validatePackage } from '@progress/kendo-licensing';
8
8
  import { SpreadsheetWidget } from '@progress/kendo-spreadsheet-common';
9
9
  import * as i1$5 from '@progress/kendo-angular-intl';
10
10
  import { localeData, IntlModule } from '@progress/kendo-angular-intl';
11
- import { formulaFxIcon, trashIcon, copyIcon, pencilIcon, arrowRightIcon, arrowLeftIcon, alignCenterIcon, alignJustifyIcon, alignLeftIcon, alignRightIcon, alignTopIcon, alignMiddleIcon, alignBottomIcon, dropletIcon, boldIcon, foregroundColorIcon, italicIcon, arrowRotateCwIcon, underlineIcon, arrowRotateCcwIcon, textWrapIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, tableRowDeleteIcon, tableColumnDeleteIcon, bordersNoneIcon, folderOpenIcon, downloadIcon, customFormatIcon, fontSizeIcon, fontFamilyIcon, plusIcon, menuIcon, caretAltDownIcon, caretAltLeftIcon, caretAltRightIcon, eyeIcon } from '@progress/kendo-svg-icons';
11
+ import { formulaFxIcon, trashIcon, copyIcon, pencilIcon, arrowRightIcon, arrowLeftIcon, alignCenterIcon, alignJustifyIcon, alignLeftIcon, alignRightIcon, alignTopIcon, alignMiddleIcon, alignBottomIcon, dropletIcon, boldIcon, foregroundColorIcon, italicIcon, arrowRotateCwIcon, underlineIcon, arrowRotateCcwIcon, textWrapIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, tableRowDeleteIcon, tableColumnDeleteIcon, bordersNoneIcon, folderOpenIcon, downloadIcon, customFormatIcon, fontSizeIcon, fontFamilyIcon, cellsMergeIcon, cellsMergeHorizontallyIcon, cellsMergeVerticallyIcon, tableUnmergeIcon, plusIcon, menuIcon, caretAltDownIcon, caretAltLeftIcon, caretAltRightIcon, eyeIcon } from '@progress/kendo-svg-icons';
12
12
  import * as i1 from '@progress/kendo-angular-l10n';
13
13
  import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
14
14
  import * as i3 from '@progress/kendo-angular-common';
@@ -46,8 +46,8 @@ const packageMetadata = {
46
46
  name: '@progress/kendo-angular-spreadsheet',
47
47
  productName: 'Kendo UI for Angular',
48
48
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
49
- publishDate: 1698069142,
50
- version: '14.0.2-develop.9',
49
+ publishDate: 1699437600,
50
+ version: '14.1.0-develop.10',
51
51
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning',
52
52
  };
53
53
 
@@ -162,6 +162,7 @@ class SpreadsheetService {
162
162
  constructor() {
163
163
  this.sheetsChanged = new Subject();
164
164
  this.activeSheetChanged = new Subject();
165
+ this.selectionChanged = new Subject();
165
166
  spreadsheetCounter++;
166
167
  }
167
168
  set currentActiveSheet(value) {
@@ -466,7 +467,12 @@ const commandIcons = {
466
467
  download: 'download',
467
468
  format: 'custom-format',
468
469
  fontSize: 'font-size',
469
- fontFamily: 'font-family'
470
+ fontFamily: 'font-family',
471
+ merge: 'cells-merge',
472
+ mergeAll: 'cells-merge',
473
+ mergeHorizontally: 'cells-merge-horizontally',
474
+ mergeVertically: 'cells-merge-vertically',
475
+ unmerge: 'table-unmerge'
470
476
  };
471
477
  /**
472
478
  * @hidden
@@ -499,7 +505,12 @@ const commandSVGIcons = {
499
505
  download: downloadIcon,
500
506
  format: customFormatIcon,
501
507
  fontSize: fontSizeIcon,
502
- fontFamily: fontFamilyIcon
508
+ fontFamily: fontFamilyIcon,
509
+ merge: cellsMergeIcon,
510
+ mergeAll: cellsMergeIcon,
511
+ mergeHorizontally: cellsMergeHorizontallyIcon,
512
+ mergeVertically: cellsMergeVerticallyIcon,
513
+ unmerge: tableUnmergeIcon
503
514
  };
504
515
 
505
516
  /**
@@ -721,13 +732,22 @@ const FORMATS = [
721
732
  * @hidden
722
733
  */
723
734
  const ALIGNS = [
724
- { icon: 'align-left', svgIcon: commandSVGIcons.alignLeft, textKey: 'Align Left', commandName: 'textAlign', value: 'left', cssClass: '' },
725
- { icon: 'align-center', svgIcon: commandSVGIcons.alignCenter, textKey: 'Align Center', commandName: 'textAlign', value: 'center', cssClass: '' },
726
- { icon: 'align-right', svgIcon: commandSVGIcons.alignRight, textKey: 'Align Right', commandName: 'textAlign', value: 'right', cssClass: '' },
727
- { icon: 'align-justify', svgIcon: commandSVGIcons.alignJustify, textKey: 'Align Justify', commandName: 'textAlign', value: 'justify', cssClass: '' },
728
- { icon: 'align-top', svgIcon: commandSVGIcons.alignTop, textKey: 'Align Top', commandName: 'verticalAlign', value: 'top', cssClass: '' },
729
- { icon: 'align-middle', svgIcon: commandSVGIcons.alignMiddle, textKey: 'Align Middle', commandName: 'verticalAlign', value: 'center', cssClass: '' },
730
- { icon: 'align-bottom', svgIcon: commandSVGIcons.alignBottom, textKey: 'Align Bottom', commandName: 'verticalAlign', value: 'bottom', cssClass: '' }
735
+ { icon: commandIcons.alignLeft, svgIcon: commandSVGIcons.alignLeft, textKey: 'Align Left', commandName: 'textAlign', value: 'left', cssClass: '' },
736
+ { icon: commandIcons.alignCenter, svgIcon: commandSVGIcons.alignCenter, textKey: 'Align Center', commandName: 'textAlign', value: 'center', cssClass: '' },
737
+ { icon: commandIcons.alignRight, svgIcon: commandSVGIcons.alignRight, textKey: 'Align Right', commandName: 'textAlign', value: 'right', cssClass: '' },
738
+ { icon: commandIcons.alignJustify, svgIcon: commandSVGIcons.alignJustify, textKey: 'Align Justify', commandName: 'textAlign', value: 'justify', cssClass: '' },
739
+ { icon: commandIcons.alignTop, svgIcon: commandSVGIcons.alignTop, textKey: 'Align Top', commandName: 'verticalAlign', value: 'top', cssClass: '' },
740
+ { icon: commandIcons.alignMiddle, svgIcon: commandSVGIcons.alignMiddle, textKey: 'Align Middle', commandName: 'verticalAlign', value: 'center', cssClass: '' },
741
+ { icon: commandIcons.alignBottom, svgIcon: commandSVGIcons.alignBottom, textKey: 'Align Bottom', commandName: 'verticalAlign', value: 'bottom', cssClass: '' }
742
+ ];
743
+ /**
744
+ * @hidden
745
+ */
746
+ const MERGE = [
747
+ { icon: commandIcons.mergeAll, svgIcon: commandSVGIcons.mergeAll, textKey: 'Merge all', commandName: 'cells', value: 'cells', disabled: false },
748
+ { icon: commandIcons.mergeHorizontally, svgIcon: commandSVGIcons.mergeHorizontally, textKey: 'Merge horizontally', commandName: 'horizontally', value: 'horizontally', disabled: false },
749
+ { icon: commandIcons.mergeVertically, svgIcon: commandSVGIcons.mergeVertically, textKey: 'Merge vertically', commandName: 'vertically', value: 'vertically', disabled: false },
750
+ { icon: commandIcons.unmerge, svgIcon: commandSVGIcons.unmerge, textKey: 'Unmerge', commandName: 'unmerge', value: 'unmerge', disabled: false }
731
751
  ];
732
752
  /**
733
753
  * @hidden
@@ -1931,7 +1951,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1931
1951
  class MessagesDirective extends ComponentMessages {
1932
1952
  }
1933
1953
  MessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1934
- 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 });
1954
+ 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 });
1935
1955
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: MessagesDirective, decorators: [{
1936
1956
  type: Directive,
1937
1957
  args: [{
@@ -2003,6 +2023,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2003
2023
  type: Input
2004
2024
  }], sheetsMenu: [{
2005
2025
  type: Input
2026
+ }], view: [{
2027
+ type: Input
2028
+ }], merge: [{
2029
+ type: Input
2006
2030
  }] } });
2007
2031
 
2008
2032
  /**
@@ -2387,38 +2411,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2387
2411
  }]
2388
2412
  }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2389
2413
 
2390
- /**
2391
- * @hidden
2392
- */
2393
- class SpreadsheetGridLinesDirective extends SpreadsheetCommandButton {
2394
- constructor(button, localization, spreadsheetService, toolsService) {
2395
- super('gridLines', button, localization, spreadsheetService, toolsService, {
2396
- command: 'GridLinesChangeCommand',
2397
- options: { property: 'gridLines',
2398
- value: !button.selected
2399
- }
2400
- });
2401
- }
2402
- clickHandler() {
2403
- const sheet = this.spreadsheetService.spreadsheet.activeSheet();
2404
- if (sheet) {
2405
- const value = !sheet.showGridLines();
2406
- const options = {
2407
- command: 'GridLinesChangeCommand', options: { property: 'gridLines', value }
2408
- };
2409
- this.spreadsheetService.spreadsheet.executeCommand(options);
2410
- }
2411
- }
2412
- }
2413
- SpreadsheetGridLinesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetGridLinesDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2414
- SpreadsheetGridLinesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]", usesInheritance: true, ngImport: i0 });
2415
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetGridLinesDirective, decorators: [{
2416
- type: Directive,
2417
- args: [{
2418
- selector: 'kendo-toolbar-button[kendoSpreadsheetGridLines]'
2419
- }]
2420
- }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2421
-
2422
2414
  /**
2423
2415
  * @hidden
2424
2416
  */
@@ -2547,6 +2539,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2547
2539
  }]
2548
2540
  }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2549
2541
 
2542
+ /**
2543
+ * @hidden
2544
+ */
2545
+ class SpreadsheetMergeDirective {
2546
+ constructor(host, localization, spreadsheetService) {
2547
+ this.host = host;
2548
+ this.spreadsheetService = spreadsheetService;
2549
+ this.commandName = 'merge';
2550
+ this.subs = new Subscription();
2551
+ host.svgIcon = commandSVGIcons[this.commandName];
2552
+ host.icon = commandIcons[this.commandName];
2553
+ host.arrowIcon = true;
2554
+ host.fillMode = 'flat';
2555
+ host.data = [...MERGE];
2556
+ this.subs.add(host.itemClick.subscribe((e) => this.onItemClick(e)));
2557
+ host.title = localization.get(this.commandName);
2558
+ host.textField = 'textKey';
2559
+ }
2560
+ ngOnInit() {
2561
+ this.subs.add(this.host.open.subscribe(() => {
2562
+ const sheet = this.spreadsheetService.spreadsheet.activeSheet();
2563
+ const isMergedCellWithinRange = this.hasMergedCells(sheet);
2564
+ const unmergeItem = this.host.data.find(i => i.commandName === 'unmerge');
2565
+ unmergeItem.disabled = !isMergedCellWithinRange;
2566
+ }));
2567
+ this.subs.add(this.spreadsheetService.selectionChanged.subscribe(range => this.selectedRange = range));
2568
+ }
2569
+ ngOnDestroy() {
2570
+ this.subs.unsubscribe();
2571
+ }
2572
+ onItemClick(item) {
2573
+ if (item.disabled) {
2574
+ return;
2575
+ }
2576
+ const value = item.value || null;
2577
+ const options = {
2578
+ command: 'MergeCellCommand', options: { property: item.commandName, value }
2579
+ };
2580
+ this.spreadsheetService.spreadsheet.executeCommand(options);
2581
+ }
2582
+ hasMergedCells(sheet) {
2583
+ const range = sheet._ref(this.selectedRange);
2584
+ return sheet._getMergedCells(range).hasMerged;
2585
+ }
2586
+ }
2587
+ SpreadsheetMergeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetMergeDirective, deps: [{ token: i1$2.ToolBarDropDownButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }], target: i0.ɵɵFactoryTarget.Directive });
2588
+ SpreadsheetMergeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetMergeDirective, selector: "[kendoSpreadsheetMerge]", ngImport: i0 });
2589
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetMergeDirective, decorators: [{
2590
+ type: Directive,
2591
+ args: [{
2592
+ selector: '[kendoSpreadsheetMerge]',
2593
+ }]
2594
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarDropDownButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }]; } });
2595
+
2596
+ /**
2597
+ * @hidden
2598
+ */
2599
+ class SpreadsheetGridLinesDirective extends SpreadsheetCommandButton {
2600
+ constructor(button, localization, spreadsheetService, toolsService) {
2601
+ super('gridLines', button, localization, spreadsheetService, toolsService, {
2602
+ command: 'GridLinesChangeCommand',
2603
+ options: { property: 'gridLines',
2604
+ value: !button.selected
2605
+ }
2606
+ });
2607
+ }
2608
+ clickHandler() {
2609
+ const sheet = this.spreadsheetService.spreadsheet.activeSheet();
2610
+ if (sheet) {
2611
+ const value = !sheet.showGridLines();
2612
+ const options = {
2613
+ command: 'GridLinesChangeCommand', options: { property: 'gridLines', value }
2614
+ };
2615
+ this.spreadsheetService.spreadsheet.executeCommand(options);
2616
+ }
2617
+ }
2618
+ }
2619
+ SpreadsheetGridLinesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetGridLinesDirective, deps: [{ token: i1$2.ToolBarButtonComponent }, { token: SpreadsheetLocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }], target: i0.ɵɵFactoryTarget.Directive });
2620
+ SpreadsheetGridLinesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]", usesInheritance: true, ngImport: i0 });
2621
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetGridLinesDirective, decorators: [{
2622
+ type: Directive,
2623
+ args: [{
2624
+ selector: 'kendo-toolbar-button[kendoSpreadsheetGridLines]'
2625
+ }]
2626
+ }], ctorParameters: function () { return [{ type: i1$2.ToolBarButtonComponent }, { type: SpreadsheetLocalizationService }, { type: SpreadsheetService }, { type: SpreadsheetToolsService }]; } });
2627
+
2550
2628
  /**
2551
2629
  * Represents the [Kendo UI Spreadsheet component for Angular]({% slug overview_spreadsheet %}).
2552
2630
  */
@@ -2638,7 +2716,10 @@ class SpreadsheetComponent {
2638
2716
  */
2639
2717
  this.showLicenseWatermark = false;
2640
2718
  this.onChange = (e) => hasObservers(this.change) && this.change.emit(e);
2641
- this.onSelectionChange = (e) => hasObservers(this.selectionChange) && this.selectionChange.emit(e);
2719
+ this.onSelectionChange = (e) => {
2720
+ hasObservers(this.selectionChange) && this.selectionChange.emit(e);
2721
+ this.spreadsheetService.selectionChanged.next(e.range);
2722
+ };
2642
2723
  this.onChangeFormat = (e) => hasObservers(this.formatChange) && this.formatChange.emit(e);
2643
2724
  this.onExcelExport = (e) => hasObservers(this.excelExport) && this.excelExport.emit(e);
2644
2725
  this.onExcelImport = (e) => hasObservers(this.excelImport) && this.excelImport.emit(e);
@@ -2668,6 +2749,9 @@ class SpreadsheetComponent {
2668
2749
  }, {
2669
2750
  id: 'insert',
2670
2751
  text: this.messageFor('insert')
2752
+ }, {
2753
+ id: 'view',
2754
+ text: this.messageFor('view')
2671
2755
  }];
2672
2756
  }
2673
2757
  this.selectedMenuItem = this.menuItems[1];
@@ -2852,6 +2936,8 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
2852
2936
  file="File"
2853
2937
  i18n-insert="kendo.spreadsheet.insert|The text of the Insert toolbar tab."
2854
2938
  insert="Insert"
2939
+ i18n-view="kendo.spreadsheet.view|The text of the View toolbar tab."
2940
+ view="View"
2855
2941
  i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
2856
2942
  undo="Undo"
2857
2943
  i18n-redo="kendo.spreadsheet.redo|The title of the Redo tool."
@@ -2874,6 +2960,8 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
2874
2960
  wrap="Text wrap"
2875
2961
  i18n-align="kendo.spreadsheet.align|The title of the Text Align tool."
2876
2962
  align="Align"
2963
+ i18n-merge="kendo.spreadsheet.merge|The title of the Cells Merge tool."
2964
+ merge="Merge"
2877
2965
  i18n-dialogApply="kendo.spreadsheet.dialogApply|The text of the **Apply** button in all Spreadsheet dialogs."
2878
2966
  dialogApply="Apply"
2879
2967
  i18n-dialogCancel="kendo.spreadsheet.dialogCancel|The text of the **Cancel** button in all Spreadsheet dialogs."
@@ -2928,8 +3016,6 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
2928
3016
  <kendo-toolbar-button kendoSpreadsheetTextWrap></kendo-toolbar-button>
2929
3017
  <kendo-toolbar-separator></kendo-toolbar-separator>
2930
3018
  <kendo-toolbar-dropdownbutton kendoSpreadsheetFormat></kendo-toolbar-dropdownbutton>
2931
- <kendo-toolbar-separator></kendo-toolbar-separator>
2932
- <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
2933
3019
  </kendo-toolbar>
2934
3020
  <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'insert'"
2935
3021
  [attr.aria-label]="messageFor('insert')"
@@ -2943,6 +3029,14 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
2943
3029
  <kendo-toolbar-button kendoSpreadsheetDeleteColumnButton></kendo-toolbar-button>
2944
3030
  <kendo-toolbar-button kendoSpreadsheetDeleteRowButton></kendo-toolbar-button>
2945
3031
  </kendo-toolbar>
3032
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'view'"
3033
+ [attr.aria-label]="messageFor('view')"
3034
+ class="k-spreadsheet-toolbar"
3035
+ [overflow]="overflow">
3036
+ <kendo-toolbar-dropdownbutton kendoSpreadsheetMerge></kendo-toolbar-dropdownbutton>
3037
+ <kendo-toolbar-separator></kendo-toolbar-separator>
3038
+ <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
3039
+ </kendo-toolbar>
2946
3040
  </div>
2947
3041
  <div class="k-spreadsheet-action-bar">
2948
3042
  <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
@@ -2972,7 +3066,7 @@ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
2972
3066
  <ng-container #dialogContainer></ng-container>
2973
3067
 
2974
3068
  <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
2975
- `, isInline: true, components: [{ type: i5$2.MenuComponent, selector: "kendo-menu", inputs: ["menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { type: i5$2.MenuItemComponent, selector: "kendo-menu-item", inputs: ["text", "url", "disabled", "cssClass", "cssStyle", "icon", "svgIcon", "data", "separator"] }, { type: i1$2.ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "tabindex", "size", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { type: SpreadsheetLoadFileComponent, selector: "kendo-spreadsheet-load-file-tool" }, { type: i1$2.ToolBarButtonComponent, selector: "kendo-toolbar-button", inputs: ["showText", "showIcon", "text", "style", "className", "title", "disabled", "toggleable", "look", "togglable", "selected", "fillMode", "themeColor", "icon", "iconClass", "svgIcon", "imageUrl"], outputs: ["click", "pointerdown", "selectedChange"], exportAs: ["kendoToolBarButton"] }, { type: i1$2.ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { type: i1$2.ToolBarSeparatorComponent, selector: "kendo-toolbar-separator", exportAs: ["kendoToolBarSeparator"] }, { type: SpreadsheetFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]" }, { type: SpreadsheetFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]" }, { type: SpreadsheetForeColorComponent, selector: "kendo-spreadsheet-forecolor-tool" }, { type: SpreadsheetBackColorComponent, selector: "kendo-spreadsheet-backcolor-tool" }, { type: i1$2.ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: ["arrowIcon", "title", "showText", "showIcon", "text", "icon", "svgIcon", "iconClass", "imageUrl", "popupSettings", "look", "primary", "fillMode", "themeColor", "buttonClass", "textField", "disabled", "data"], outputs: ["itemClick", "open", "close"], exportAs: ["kendoToolBarDropDownButton"] }, { type: NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: ["data", "spreadsheetWidget"] }, { type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: ["sheets", "sheetDescriptors"] }, { type: i3.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoSpreadsheetLocalizedMessages]" }, { type: MainMenuDirective, selector: "[kendoSpreadsheetMenu]" }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: SpreadsheetSaveFileDirective, selector: "[kendoSpreadsheetSaveFile]" }, { type: SpreadsheetUndoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]" }, { type: SpreadsheetRedoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]" }, { type: SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { type: SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { type: SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { type: SpreadsheetTextAlignDirective, selector: "[kendoSpreadsheetTextAlign]" }, { type: SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { type: SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { type: SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]" }, { type: SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]" }, { type: SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]" }, { type: SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]" }, { type: SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]" }, { type: SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]" }, { type: FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]" }] });
3069
+ `, isInline: true, components: [{ type: i5$2.MenuComponent, selector: "kendo-menu", inputs: ["menuItemTemplate", "ariaRole", "menuItemLinkTemplate"], outputs: ["select", "open", "close"], exportAs: ["kendoMenu"] }, { type: i5$2.MenuItemComponent, selector: "kendo-menu-item", inputs: ["text", "url", "disabled", "cssClass", "cssStyle", "icon", "svgIcon", "data", "separator"] }, { type: i1$2.ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "tabindex", "size", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { type: SpreadsheetLoadFileComponent, selector: "kendo-spreadsheet-load-file-tool" }, { type: i1$2.ToolBarButtonComponent, selector: "kendo-toolbar-button", inputs: ["showText", "showIcon", "text", "style", "className", "title", "disabled", "toggleable", "look", "togglable", "selected", "fillMode", "themeColor", "icon", "iconClass", "svgIcon", "imageUrl"], outputs: ["click", "pointerdown", "selectedChange"], exportAs: ["kendoToolBarButton"] }, { type: i1$2.ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { type: i1$2.ToolBarSeparatorComponent, selector: "kendo-toolbar-separator", exportAs: ["kendoToolBarSeparator"] }, { type: SpreadsheetFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontFamily]" }, { type: SpreadsheetFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoSpreadsheetFontSize]" }, { type: SpreadsheetForeColorComponent, selector: "kendo-spreadsheet-forecolor-tool" }, { type: SpreadsheetBackColorComponent, selector: "kendo-spreadsheet-backcolor-tool" }, { type: i1$2.ToolBarDropDownButtonComponent, selector: "kendo-toolbar-dropdownbutton", inputs: ["arrowIcon", "title", "showText", "showIcon", "text", "icon", "svgIcon", "iconClass", "imageUrl", "popupSettings", "look", "primary", "fillMode", "themeColor", "buttonClass", "textField", "disabled", "data"], outputs: ["itemClick", "open", "close"], exportAs: ["kendoToolBarDropDownButton"] }, { type: NameBoxComponent, selector: "[kendoSpreadsheetNameBox]", inputs: ["data", "spreadsheetWidget"] }, { type: i6.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: SheetsBarComponent, selector: "[kendoSpreadsheetSheetsBar]", inputs: ["sheets", "sheetDescriptors"] }, { type: i3.WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], directives: [{ type: LocalizedMessagesDirective, selector: "[kendoSpreadsheetLocalizedMessages]" }, { type: MainMenuDirective, selector: "[kendoSpreadsheetMenu]" }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: SpreadsheetSaveFileDirective, selector: "[kendoSpreadsheetSaveFile]" }, { type: SpreadsheetUndoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUndo]" }, { type: SpreadsheetRedoDirective, selector: "kendo-toolbar-button[kendoSpreadsheetRedo]" }, { type: SpreadsheetBoldDirective, selector: "kendo-toolbar-button[kendoSpreadsheetBold]" }, { type: SpreadsheetItalicDirective, selector: "kendo-toolbar-button[kendoSpreadsheetItalic]" }, { type: SpreadsheetUnderlineDirective, selector: "kendo-toolbar-button[kendoSpreadsheetUnderline]" }, { type: SpreadsheetTextAlignDirective, selector: "[kendoSpreadsheetTextAlign]" }, { type: SpreadsheetTextWrapDirective, selector: "kendo-toolbar-button[kendoSpreadsheetTextWrap]" }, { type: SpreadsheetFormatDirective, selector: "[kendoSpreadsheetFormat]" }, { type: SpreadsheetAddColumnLeftButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnLeftButton]" }, { type: SpreadsheetAddColumnRightButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddColumnRightButton]" }, { type: SpreadsheetAddRowBelowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowBelowButton]" }, { type: SpreadsheetAddRowAboveButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetAddRowAboveButton]" }, { type: SpreadsheetDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteColumnButton]" }, { type: SpreadsheetDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoSpreadsheetDeleteRowButton]" }, { type: SpreadsheetMergeDirective, selector: "[kendoSpreadsheetMerge]" }, { type: SpreadsheetGridLinesDirective, selector: "kendo-toolbar-button[kendoSpreadsheetGridLines]" }, { type: FormulaInputDirective, selector: "[kendoSpreadsheetFormulaInput]" }] });
2976
3070
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetComponent, decorators: [{
2977
3071
  type: Component,
2978
3072
  args: [{
@@ -3020,6 +3114,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3020
3114
  file="File"
3021
3115
  i18n-insert="kendo.spreadsheet.insert|The text of the Insert toolbar tab."
3022
3116
  insert="Insert"
3117
+ i18n-view="kendo.spreadsheet.view|The text of the View toolbar tab."
3118
+ view="View"
3023
3119
  i18n-undo="kendo.spreadsheet.undo|The title of the Undo tool."
3024
3120
  undo="Undo"
3025
3121
  i18n-redo="kendo.spreadsheet.redo|The title of the Redo tool."
@@ -3042,6 +3138,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3042
3138
  wrap="Text wrap"
3043
3139
  i18n-align="kendo.spreadsheet.align|The title of the Text Align tool."
3044
3140
  align="Align"
3141
+ i18n-merge="kendo.spreadsheet.merge|The title of the Cells Merge tool."
3142
+ merge="Merge"
3045
3143
  i18n-dialogApply="kendo.spreadsheet.dialogApply|The text of the **Apply** button in all Spreadsheet dialogs."
3046
3144
  dialogApply="Apply"
3047
3145
  i18n-dialogCancel="kendo.spreadsheet.dialogCancel|The text of the **Cancel** button in all Spreadsheet dialogs."
@@ -3096,8 +3194,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3096
3194
  <kendo-toolbar-button kendoSpreadsheetTextWrap></kendo-toolbar-button>
3097
3195
  <kendo-toolbar-separator></kendo-toolbar-separator>
3098
3196
  <kendo-toolbar-dropdownbutton kendoSpreadsheetFormat></kendo-toolbar-dropdownbutton>
3099
- <kendo-toolbar-separator></kendo-toolbar-separator>
3100
- <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
3101
3197
  </kendo-toolbar>
3102
3198
  <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'insert'"
3103
3199
  [attr.aria-label]="messageFor('insert')"
@@ -3111,6 +3207,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3111
3207
  <kendo-toolbar-button kendoSpreadsheetDeleteColumnButton></kendo-toolbar-button>
3112
3208
  <kendo-toolbar-button kendoSpreadsheetDeleteRowButton></kendo-toolbar-button>
3113
3209
  </kendo-toolbar>
3210
+ <kendo-toolbar *ngIf="selectedMenuItem?.active && selectedMenuItem.id === 'view'"
3211
+ [attr.aria-label]="messageFor('view')"
3212
+ class="k-spreadsheet-toolbar"
3213
+ [overflow]="overflow">
3214
+ <kendo-toolbar-dropdownbutton kendoSpreadsheetMerge></kendo-toolbar-dropdownbutton>
3215
+ <kendo-toolbar-separator></kendo-toolbar-separator>
3216
+ <kendo-toolbar-button kendoSpreadsheetGridLines></kendo-toolbar-button>
3217
+ </kendo-toolbar>
3114
3218
  </div>
3115
3219
  <div class="k-spreadsheet-action-bar">
3116
3220
  <div #nameBox kendoSpreadsheetNameBox [spreadsheetWidget]="spreadsheetWidget"></div>
@@ -3268,7 +3372,8 @@ const DIRECTIVES = [
3268
3372
  FontSizeDropDownListComponent,
3269
3373
  DialogContentComponent,
3270
3374
  MainMenuDirective,
3271
- ActionDialogComponent
3375
+ ActionDialogComponent,
3376
+ SpreadsheetMergeDirective
3272
3377
  ];
3273
3378
  const EXPORTS = [
3274
3379
  SpreadsheetComponent,
@@ -3293,7 +3398,8 @@ const EXPORTS = [
3293
3398
  SpreadsheetDeleteColumnButtonDirective,
3294
3399
  SpreadsheetDeleteRowButtonDirective,
3295
3400
  SpreadsheetTextAlignDirective,
3296
- SpreadsheetTextWrapDirective
3401
+ SpreadsheetTextWrapDirective,
3402
+ SpreadsheetMergeDirective
3297
3403
  ];
3298
3404
  /**
3299
3405
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
@@ -3335,7 +3441,8 @@ SpreadsheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
3335
3441
  FontSizeDropDownListComponent,
3336
3442
  DialogContentComponent,
3337
3443
  MainMenuDirective,
3338
- ActionDialogComponent], imports: [CommonModule,
3444
+ ActionDialogComponent,
3445
+ SpreadsheetMergeDirective], imports: [CommonModule,
3339
3446
  ButtonsModule,
3340
3447
  ComboBoxModule,
3341
3448
  DropDownListModule,
@@ -3371,7 +3478,8 @@ SpreadsheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
3371
3478
  SpreadsheetDeleteColumnButtonDirective,
3372
3479
  SpreadsheetDeleteRowButtonDirective,
3373
3480
  SpreadsheetTextAlignDirective,
3374
- SpreadsheetTextWrapDirective] });
3481
+ SpreadsheetTextWrapDirective,
3482
+ SpreadsheetMergeDirective] });
3375
3483
  SpreadsheetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SpreadsheetModule, imports: [[
3376
3484
  CommonModule,
3377
3485
  ButtonsModule,
@@ -3418,5 +3526,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3418
3526
  * Generated bundle index. Do not edit.
3419
3527
  */
3420
3528
 
3421
- export { CustomMessagesComponent, FormulaInputDirective, FormulaListComponent, NameBoxComponent, SheetsBarComponent, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetBackColorComponent, SpreadsheetBoldDirective, SpreadsheetComponent, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetForeColorComponent, SpreadsheetFormatDirective, SpreadsheetGridLinesDirective, SpreadsheetItalicDirective, SpreadsheetLoadFileComponent, SpreadsheetModule, SpreadsheetRedoDirective, SpreadsheetSaveFileDirective, SpreadsheetTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetUnderlineDirective, SpreadsheetUndoDirective };
3529
+ export { CustomMessagesComponent, FormulaInputDirective, FormulaListComponent, NameBoxComponent, SheetsBarComponent, SpreadsheetAddColumnLeftButtonDirective, SpreadsheetAddColumnRightButtonDirective, SpreadsheetAddRowAboveButtonDirective, SpreadsheetAddRowBelowButtonDirective, SpreadsheetBackColorComponent, SpreadsheetBoldDirective, SpreadsheetComponent, SpreadsheetDeleteColumnButtonDirective, SpreadsheetDeleteRowButtonDirective, SpreadsheetFontFamilyComponent, SpreadsheetFontSizeComponent, SpreadsheetForeColorComponent, SpreadsheetFormatDirective, SpreadsheetGridLinesDirective, SpreadsheetItalicDirective, SpreadsheetLoadFileComponent, SpreadsheetMergeDirective, SpreadsheetModule, SpreadsheetRedoDirective, SpreadsheetSaveFileDirective, SpreadsheetTextAlignDirective, SpreadsheetTextWrapDirective, SpreadsheetUnderlineDirective, SpreadsheetUndoDirective };
3422
3530