@progress/kendo-angular-spreadsheet 21.0.0-develop.9 → 21.0.1-develop.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,5 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export {};
@@ -0,0 +1,5 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ export {};
@@ -5,3 +5,5 @@
5
5
  export * from './sheet-info';
6
6
  export * from './main-menu-item';
7
7
  export * from './events';
8
+ export * from './cell-editor-options';
9
+ export * from './cell-editor-action-args';
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1761910369,
14
- version: '21.0.0-develop.9',
13
+ publishDate: 1762953419,
14
+ version: '21.0.1-develop.1',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning',
16
16
  };
@@ -200,6 +200,11 @@ export class SpreadsheetComponent {
200
200
  * @default 200
201
201
  */
202
202
  rows = 200;
203
+ /**
204
+ * Sets the custom cell editors for the Spreadsheet.
205
+ * Accepts an array of `SpreadsheetCellEditorOptions` objects that define custom editors.
206
+ */
207
+ cellEditors;
203
208
  /**
204
209
  * An object containing any images used in the Spreadsheet. The keys should be image IDs (they are referenced by this ID in `sheets.drawings`),
205
210
  * and the values should be image URLs. The image URLs can be either [`data URLs`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs)
@@ -358,6 +363,9 @@ export class SpreadsheetComponent {
358
363
  changedDynamicOptions.forEach(o => newOptions[o] = changes[o].currentValue);
359
364
  this.spreadsheetWidget.fromJSON(newOptions);
360
365
  }
366
+ if (changes['cellEditors'] && !changes['cellEditors'].firstChange) {
367
+ this.registerCustomEditors();
368
+ }
361
369
  }
362
370
  ngOnDestroy() {
363
371
  this.subs.unsubscribe();
@@ -842,6 +850,42 @@ export class SpreadsheetComponent {
842
850
  icon: { iconName: 'calendar', svgIcon: calendarIcon }
843
851
  };
844
852
  });
853
+ this.registerCustomEditors();
854
+ }
855
+ registerCustomEditors() {
856
+ if (!this.cellEditors?.length) {
857
+ return;
858
+ }
859
+ this.cellEditors.forEach((editor) => this.registerCustomEditor(editor));
860
+ }
861
+ registerCustomEditor(editor) {
862
+ registerEditor(editor.name, () => ({
863
+ edit: (options) => this.openCustomEditorPopup(editor, options),
864
+ icon: { iconName: editor.icon, svgIcon: editor.svgIcon }
865
+ }));
866
+ }
867
+ openCustomEditorPopup(editor, options) {
868
+ this.closePopup();
869
+ this.popupRef = this.popupService.open({
870
+ anchor: options.view.element.querySelector('.k-spreadsheet-editor-button'),
871
+ content: editor.component,
872
+ popupAlign: options.alignLeft ? { horizontal: 'right', vertical: 'top' } : { horizontal: 'left', vertical: 'top' },
873
+ anchorAlign: options.alignLeft ? { horizontal: 'right', vertical: 'bottom' } : { horizontal: 'left', vertical: 'bottom' }
874
+ });
875
+ const componentInstance = this.popupRef.content.instance;
876
+ editor.actions.forEach(action => {
877
+ const actionStream = componentInstance[action.name];
878
+ actionStream?.subscribe((args) => {
879
+ const eventArgs = { originalEvent: args, ...options };
880
+ action.handler?.apply(componentInstance, [eventArgs]);
881
+ });
882
+ });
883
+ }
884
+ closePopup() {
885
+ if (this.popupRef) {
886
+ this.popupRef.close();
887
+ this.popupRef = null;
888
+ }
845
889
  }
846
890
  isValidFormula(validation) {
847
891
  const formula = calc.runtime.Formula;
@@ -851,7 +895,7 @@ export class SpreadsheetComponent {
851
895
  return new Date(serialToDate(isPresent(sheet) ? sheet.range(validation.value.row, validation.value.col).value() : validation));
852
896
  }
853
897
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1.IntlService }, { token: i0.ElementRef }, { token: i2.LocalizationService }, { token: i3.SpreadsheetService }, { token: i4.SpreadsheetToolsService }, { token: i5.ErrorHandlingService }, { token: i6.DialogService }, { token: i7.PopupService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
854
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SpreadsheetComponent, isStandalone: true, selector: "kendo-spreadsheet", inputs: { menuItems: "menuItems", overflow: "overflow", formulaListMaxHeight: "formulaListMaxHeight", activeSheet: "activeSheet", sheets: "sheets", columns: "columns", columnWidth: "columnWidth", defaultCellStyle: "defaultCellStyle", headerHeight: "headerHeight", headerWidth: "headerWidth", rowHeight: "rowHeight", rows: "rows", images: "images", excel: "excel" }, outputs: { change: "change", formatChange: "formatChange", selectionChange: "selectionChange", excelExport: "excelExport", excelImport: "excelImport", activeSheetChange: "activeSheetChange" }, host: { properties: { "class.k-spreadsheet": "this.hostClass", "attr.role": "this.role" } }, providers: [
898
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SpreadsheetComponent, isStandalone: true, selector: "kendo-spreadsheet", inputs: { menuItems: "menuItems", overflow: "overflow", formulaListMaxHeight: "formulaListMaxHeight", activeSheet: "activeSheet", sheets: "sheets", columns: "columns", columnWidth: "columnWidth", defaultCellStyle: "defaultCellStyle", headerHeight: "headerHeight", headerWidth: "headerWidth", rowHeight: "rowHeight", rows: "rows", cellEditors: "cellEditors", images: "images", excel: "excel" }, outputs: { change: "change", formatChange: "formatChange", selectionChange: "selectionChange", excelExport: "excelExport", excelImport: "excelImport", activeSheetChange: "activeSheetChange" }, host: { properties: { "class.k-spreadsheet": "this.hostClass", "attr.role": "this.role" } }, providers: [
855
899
  SpreadsheetLocalizationService,
856
900
  SpreadsheetService,
857
901
  {
@@ -1626,6 +1670,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
1626
1670
  type: Input
1627
1671
  }], rows: [{
1628
1672
  type: Input
1673
+ }], cellEditors: [{
1674
+ type: Input
1629
1675
  }], images: [{
1630
1676
  type: Input
1631
1677
  }], excel: [{
@@ -43,8 +43,8 @@ const packageMetadata = {
43
43
  productName: 'Kendo UI for Angular',
44
44
  productCode: 'KENDOUIANGULAR',
45
45
  productCodes: ['KENDOUIANGULAR'],
46
- publishDate: 1761910369,
47
- version: '21.0.0-develop.9',
46
+ publishDate: 1762953419,
47
+ version: '21.0.1-develop.1',
48
48
  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',
49
49
  };
50
50
 
@@ -4957,6 +4957,11 @@ class SpreadsheetComponent {
4957
4957
  * @default 200
4958
4958
  */
4959
4959
  rows = 200;
4960
+ /**
4961
+ * Sets the custom cell editors for the Spreadsheet.
4962
+ * Accepts an array of `SpreadsheetCellEditorOptions` objects that define custom editors.
4963
+ */
4964
+ cellEditors;
4960
4965
  /**
4961
4966
  * An object containing any images used in the Spreadsheet. The keys should be image IDs (they are referenced by this ID in `sheets.drawings`),
4962
4967
  * and the values should be image URLs. The image URLs can be either [`data URLs`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs)
@@ -5115,6 +5120,9 @@ class SpreadsheetComponent {
5115
5120
  changedDynamicOptions.forEach(o => newOptions[o] = changes[o].currentValue);
5116
5121
  this.spreadsheetWidget.fromJSON(newOptions);
5117
5122
  }
5123
+ if (changes['cellEditors'] && !changes['cellEditors'].firstChange) {
5124
+ this.registerCustomEditors();
5125
+ }
5118
5126
  }
5119
5127
  ngOnDestroy() {
5120
5128
  this.subs.unsubscribe();
@@ -5599,6 +5607,42 @@ class SpreadsheetComponent {
5599
5607
  icon: { iconName: 'calendar', svgIcon: calendarIcon }
5600
5608
  };
5601
5609
  });
5610
+ this.registerCustomEditors();
5611
+ }
5612
+ registerCustomEditors() {
5613
+ if (!this.cellEditors?.length) {
5614
+ return;
5615
+ }
5616
+ this.cellEditors.forEach((editor) => this.registerCustomEditor(editor));
5617
+ }
5618
+ registerCustomEditor(editor) {
5619
+ registerEditor(editor.name, () => ({
5620
+ edit: (options) => this.openCustomEditorPopup(editor, options),
5621
+ icon: { iconName: editor.icon, svgIcon: editor.svgIcon }
5622
+ }));
5623
+ }
5624
+ openCustomEditorPopup(editor, options) {
5625
+ this.closePopup();
5626
+ this.popupRef = this.popupService.open({
5627
+ anchor: options.view.element.querySelector('.k-spreadsheet-editor-button'),
5628
+ content: editor.component,
5629
+ popupAlign: options.alignLeft ? { horizontal: 'right', vertical: 'top' } : { horizontal: 'left', vertical: 'top' },
5630
+ anchorAlign: options.alignLeft ? { horizontal: 'right', vertical: 'bottom' } : { horizontal: 'left', vertical: 'bottom' }
5631
+ });
5632
+ const componentInstance = this.popupRef.content.instance;
5633
+ editor.actions.forEach(action => {
5634
+ const actionStream = componentInstance[action.name];
5635
+ actionStream?.subscribe((args) => {
5636
+ const eventArgs = { originalEvent: args, ...options };
5637
+ action.handler?.apply(componentInstance, [eventArgs]);
5638
+ });
5639
+ });
5640
+ }
5641
+ closePopup() {
5642
+ if (this.popupRef) {
5643
+ this.popupRef.close();
5644
+ this.popupRef = null;
5645
+ }
5602
5646
  }
5603
5647
  isValidFormula(validation) {
5604
5648
  const formula = calc.runtime.Formula;
@@ -5608,7 +5652,7 @@ class SpreadsheetComponent {
5608
5652
  return new Date(serialToDate(isPresent(sheet) ? sheet.range(validation.value.row, validation.value.col).value() : validation));
5609
5653
  }
5610
5654
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.NgZone }, { token: i1$4.IntlService }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: SpreadsheetService }, { token: SpreadsheetToolsService }, { token: ErrorHandlingService }, { token: i1$2.DialogService }, { token: i1$1.PopupService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
5611
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SpreadsheetComponent, isStandalone: true, selector: "kendo-spreadsheet", inputs: { menuItems: "menuItems", overflow: "overflow", formulaListMaxHeight: "formulaListMaxHeight", activeSheet: "activeSheet", sheets: "sheets", columns: "columns", columnWidth: "columnWidth", defaultCellStyle: "defaultCellStyle", headerHeight: "headerHeight", headerWidth: "headerWidth", rowHeight: "rowHeight", rows: "rows", images: "images", excel: "excel" }, outputs: { change: "change", formatChange: "formatChange", selectionChange: "selectionChange", excelExport: "excelExport", excelImport: "excelImport", activeSheetChange: "activeSheetChange" }, host: { properties: { "class.k-spreadsheet": "this.hostClass", "attr.role": "this.role" } }, providers: [
5655
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SpreadsheetComponent, isStandalone: true, selector: "kendo-spreadsheet", inputs: { menuItems: "menuItems", overflow: "overflow", formulaListMaxHeight: "formulaListMaxHeight", activeSheet: "activeSheet", sheets: "sheets", columns: "columns", columnWidth: "columnWidth", defaultCellStyle: "defaultCellStyle", headerHeight: "headerHeight", headerWidth: "headerWidth", rowHeight: "rowHeight", rows: "rows", cellEditors: "cellEditors", images: "images", excel: "excel" }, outputs: { change: "change", formatChange: "formatChange", selectionChange: "selectionChange", excelExport: "excelExport", excelImport: "excelImport", activeSheetChange: "activeSheetChange" }, host: { properties: { "class.k-spreadsheet": "this.hostClass", "attr.role": "this.role" } }, providers: [
5612
5656
  SpreadsheetLocalizationService,
5613
5657
  SpreadsheetService,
5614
5658
  {
@@ -6383,6 +6427,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
6383
6427
  type: Input
6384
6428
  }], rows: [{
6385
6429
  type: Input
6430
+ }], cellEditors: [{
6431
+ type: Input
6386
6432
  }], images: [{
6387
6433
  type: Input
6388
6434
  }], excel: [{
package/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export { FormulaListComponent } from './action-bar/list.component';
8
8
  export { FormulaInputDirective } from './action-bar/formula-input.directive';
9
9
  export { NameBoxComponent } from './action-bar/namebox.component';
10
10
  export { SheetsBarComponent } from './sheets-bar/sheets-bar.component';
11
- export { SheetInfo, SpreadsheetMainMenuItem as ToolbarTab, SpreadsheetChangeEvent, SpreadsheetActiveSheetChangeEvent, SpreadsheetExcelExportEvent, SpreadsheetExcelImportEvent, SpreadsheetMainMenuItem, } from './models';
11
+ export { SheetInfo, SpreadsheetMainMenuItem as ToolbarTab, SpreadsheetChangeEvent, SpreadsheetActiveSheetChangeEvent, SpreadsheetExcelExportEvent, SpreadsheetExcelImportEvent, SpreadsheetMainMenuItem, SpreadsheetCellEditorOptions, SpreadsheetCellEditorHandlerArgs, Rectangle } from './models';
12
12
  export * from './tools';
13
13
  export * from './directives';
14
14
  export { CustomMessagesComponent } from './localization/custom-messages.component';
@@ -0,0 +1,63 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Range, View } from "@progress/kendo-spreadsheet-common";
6
+ /**
7
+ * Represents the rectangular dimensions and position of a cell or range.
8
+ */
9
+ export interface Rectangle {
10
+ /**
11
+ * Represents the left position of the rectangle in pixels.
12
+ */
13
+ left: number;
14
+ /**
15
+ * Represents the top position of the rectangle in pixels.
16
+ */
17
+ top: number;
18
+ /**
19
+ * Represents the width of the rectangle in pixels.
20
+ */
21
+ width: number;
22
+ /**
23
+ * Represents the height of the rectangle in pixels.
24
+ */
25
+ height: number;
26
+ /**
27
+ * Represents the right position of the rectangle in pixels.
28
+ */
29
+ right: number;
30
+ /**
31
+ * Represents the bottom position of the rectangle in pixels.
32
+ */
33
+ bottom: number;
34
+ }
35
+ /**
36
+ * Represents the arguments passed to the handler callback for each cell editor ([see example](slug:custom_cell_editors_spreadsheet#action-handlers)).
37
+ */
38
+ export interface SpreadsheetCellEditorHandlerArgs {
39
+ /**
40
+ * The data returned from the component's original event (for example, the selected color value from a ColorPalette's `valueChange` event).
41
+ */
42
+ originalEvent?: any;
43
+ /**
44
+ * The Spreadsheet `Range` object representing the currently selected cells. Provides methods to apply values, formatting, and styling to the Spreadsheet cells using the original event's data.
45
+ */
46
+ range?: Range;
47
+ /**
48
+ * Represents the `Rectangle` object that provides position and dimension information about the active range, useful for custom positioning logic.
49
+ */
50
+ rect?: Rectangle;
51
+ /**
52
+ * The current Spreadsheet `View` instance, giving access to the broader Spreadsheet context.
53
+ */
54
+ view?: View;
55
+ /**
56
+ * Any validation rules configured for the active range, allowing you to respect existing constraints.
57
+ */
58
+ validation?: any;
59
+ /**
60
+ * A function that edits the active cell or range with a provided value. Use this as an alternative to `args.range.value` manipulation for updating the cell content.
61
+ */
62
+ callback?: Function;
63
+ }
@@ -0,0 +1,38 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { SVGIcon } from "@progress/kendo-svg-icons";
6
+ /**
7
+ * Represents the configuration object for defining custom cell editors.
8
+ * Use this interface to render specific cell editors when you focus a cell or a range.
9
+ */
10
+ export interface SpreadsheetCellEditorOptions {
11
+ /**
12
+ * Sets the unique name of the cell editor.
13
+ * Use this name when you specify the editor for a cell or a range.
14
+ *
15
+ * Please note that `_validation_list` and `_validation_date` are reserved names for built-in editors.
16
+ */
17
+ name: string;
18
+ /**
19
+ * Sets the component to use as a cell editor.
20
+ */
21
+ component?: any;
22
+ /**
23
+ * Provides the actions that the cell editor can use.
24
+ * The `name` property must match an event name of the editor component.
25
+ */
26
+ actions?: Array<{
27
+ name: string;
28
+ handler: Function;
29
+ }>;
30
+ /**
31
+ * Sets the name of an existing icon from a Kendo UI theme.
32
+ */
33
+ icon?: string;
34
+ /**
35
+ * Sets the [`SVGIcon`](slug:api_icons_svgicon) to render.
36
+ */
37
+ svgIcon?: SVGIcon;
38
+ }
package/models/index.d.ts CHANGED
@@ -5,3 +5,5 @@
5
5
  export * from './sheet-info';
6
6
  export * from './main-menu-item';
7
7
  export * from './events';
8
+ export * from './cell-editor-options';
9
+ export * from './cell-editor-action-args';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-spreadsheet",
3
- "version": "21.0.0-develop.9",
3
+ "version": "21.0.1-develop.1",
4
4
  "description": "A Spreadsheet Component for Angular",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -19,7 +19,7 @@
19
19
  "package": {
20
20
  "productName": "Kendo UI for Angular",
21
21
  "productCode": "KENDOUIANGULAR",
22
- "publishDate": 1761910369,
22
+ "publishDate": 1762953419,
23
23
  "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"
24
24
  }
25
25
  },
@@ -29,32 +29,32 @@
29
29
  "@angular/core": "18 - 20",
30
30
  "@angular/platform-browser": "18 - 20",
31
31
  "@progress/kendo-licensing": "^1.7.0",
32
- "@progress/kendo-angular-buttons": "21.0.0-develop.9",
33
- "@progress/kendo-angular-common": "21.0.0-develop.9",
34
- "@progress/kendo-angular-dialog": "21.0.0-develop.9",
35
- "@progress/kendo-angular-dropdowns": "21.0.0-develop.9",
36
- "@progress/kendo-angular-icons": "21.0.0-develop.9",
37
- "@progress/kendo-angular-inputs": "21.0.0-develop.9",
38
- "@progress/kendo-angular-dateinputs": "21.0.0-develop.9",
39
- "@progress/kendo-angular-intl": "21.0.0-develop.9",
40
- "@progress/kendo-angular-l10n": "21.0.0-develop.9",
41
- "@progress/kendo-angular-label": "21.0.0-develop.9",
42
- "@progress/kendo-angular-layout": "21.0.0-develop.9",
43
- "@progress/kendo-angular-menu": "21.0.0-develop.9",
44
- "@progress/kendo-angular-popup": "21.0.0-develop.9",
45
- "@progress/kendo-angular-toolbar": "21.0.0-develop.9",
32
+ "@progress/kendo-angular-buttons": "21.0.1-develop.1",
33
+ "@progress/kendo-angular-common": "21.0.1-develop.1",
34
+ "@progress/kendo-angular-dialog": "21.0.1-develop.1",
35
+ "@progress/kendo-angular-dropdowns": "21.0.1-develop.1",
36
+ "@progress/kendo-angular-icons": "21.0.1-develop.1",
37
+ "@progress/kendo-angular-inputs": "21.0.1-develop.1",
38
+ "@progress/kendo-angular-dateinputs": "21.0.1-develop.1",
39
+ "@progress/kendo-angular-intl": "21.0.1-develop.1",
40
+ "@progress/kendo-angular-l10n": "21.0.1-develop.1",
41
+ "@progress/kendo-angular-label": "21.0.1-develop.1",
42
+ "@progress/kendo-angular-layout": "21.0.1-develop.1",
43
+ "@progress/kendo-angular-menu": "21.0.1-develop.1",
44
+ "@progress/kendo-angular-popup": "21.0.1-develop.1",
45
+ "@progress/kendo-angular-toolbar": "21.0.1-develop.1",
46
46
  "rxjs": "^6.5.3 || ^7.0.0"
47
47
  },
48
48
  "dependencies": {
49
49
  "tslib": "^2.3.1",
50
- "@progress/kendo-angular-schematics": "21.0.0-develop.9",
50
+ "@progress/kendo-angular-schematics": "21.0.1-develop.1",
51
51
  "@progress/jszip-esm": "^1.0.3",
52
52
  "@progress/kendo-common": "^1.0.1",
53
53
  "@progress/kendo-date-math": "^1.5.10",
54
54
  "@progress/kendo-drawing": "^1.21.0",
55
55
  "@progress/kendo-file-saver": "^1.1.1",
56
56
  "@progress/kendo-ooxml": "^1.9.0",
57
- "@progress/kendo-spreadsheet-common": "1.2.5"
57
+ "@progress/kendo-spreadsheet-common": "1.2.6"
58
58
  },
59
59
  "schematics": "./schematics/collection.json",
60
60
  "module": "fesm2022/progress-kendo-angular-spreadsheet.mjs",
@@ -7,8 +7,8 @@ function default_1(options) {
7
7
  // Peer dependency of icons
8
8
  '@progress/kendo-svg-icons': '^4.0.0',
9
9
  // peer deps of the dropdowns
10
- '@progress/kendo-angular-navigation': '21.0.0-develop.9',
11
- '@progress/kendo-angular-treeview': '21.0.0-develop.9'
10
+ '@progress/kendo-angular-navigation': '21.0.1-develop.1',
11
+ '@progress/kendo-angular-treeview': '21.0.1-develop.1'
12
12
  } });
13
13
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
14
14
  }
@@ -12,7 +12,7 @@ import { ContextMenuSelectEvent, MenuItem } from '@progress/kendo-angular-menu';
12
12
  import { DialogService } from '@progress/kendo-angular-dialog';
13
13
  import { SpreadsheetService } from './common/spreadsheet.service';
14
14
  import { SpreadsheetToolsService } from './tools/tools.service';
15
- import { SheetInfo, SpreadsheetActiveSheetChangeEvent, SpreadsheetChangeEvent, SpreadsheetExcelExportEvent, SpreadsheetExcelImportEvent, SpreadsheetMainMenuItem } from './models';
15
+ import { SheetInfo, SpreadsheetActiveSheetChangeEvent, SpreadsheetCellEditorOptions, SpreadsheetChangeEvent, SpreadsheetExcelExportEvent, SpreadsheetExcelImportEvent, SpreadsheetMainMenuItem } from './models';
16
16
  import { ErrorHandlingService } from './common/error-handling.service';
17
17
  import * as i0 from "@angular/core";
18
18
  /**
@@ -111,6 +111,11 @@ export declare class SpreadsheetComponent implements AfterViewInit, OnChanges {
111
111
  * @default 200
112
112
  */
113
113
  rows: number;
114
+ /**
115
+ * Sets the custom cell editors for the Spreadsheet.
116
+ * Accepts an array of `SpreadsheetCellEditorOptions` objects that define custom editors.
117
+ */
118
+ cellEditors: Array<SpreadsheetCellEditorOptions>;
114
119
  /**
115
120
  * An object containing any images used in the Spreadsheet. The keys should be image IDs (they are referenced by this ID in `sheets.drawings`),
116
121
  * and the values should be image URLs. The image URLs can be either [`data URLs`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs)
@@ -211,8 +216,12 @@ export declare class SpreadsheetComponent implements AfterViewInit, OnChanges {
211
216
  private openLinkDialog;
212
217
  private configureSheets;
213
218
  private registerEditors;
219
+ private registerCustomEditors;
220
+ private registerCustomEditor;
221
+ private openCustomEditorPopup;
222
+ private closePopup;
214
223
  private isValidFormula;
215
224
  private createDate;
216
225
  static ɵfac: i0.ɵɵFactoryDeclaration<SpreadsheetComponent, never>;
217
- static ɵcmp: i0.ɵɵComponentDeclaration<SpreadsheetComponent, "kendo-spreadsheet", ["kendo-spreadsheet"], { "menuItems": { "alias": "menuItems"; "required": false; }; "overflow": { "alias": "overflow"; "required": false; }; "formulaListMaxHeight": { "alias": "formulaListMaxHeight"; "required": false; }; "activeSheet": { "alias": "activeSheet"; "required": false; }; "sheets": { "alias": "sheets"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "columnWidth": { "alias": "columnWidth"; "required": false; }; "defaultCellStyle": { "alias": "defaultCellStyle"; "required": false; }; "headerHeight": { "alias": "headerHeight"; "required": false; }; "headerWidth": { "alias": "headerWidth"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "images": { "alias": "images"; "required": false; }; "excel": { "alias": "excel"; "required": false; }; }, { "change": "change"; "formatChange": "formatChange"; "selectionChange": "selectionChange"; "excelExport": "excelExport"; "excelImport": "excelImport"; "activeSheetChange": "activeSheetChange"; }, never, never, true, never>;
226
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpreadsheetComponent, "kendo-spreadsheet", ["kendo-spreadsheet"], { "menuItems": { "alias": "menuItems"; "required": false; }; "overflow": { "alias": "overflow"; "required": false; }; "formulaListMaxHeight": { "alias": "formulaListMaxHeight"; "required": false; }; "activeSheet": { "alias": "activeSheet"; "required": false; }; "sheets": { "alias": "sheets"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "columnWidth": { "alias": "columnWidth"; "required": false; }; "defaultCellStyle": { "alias": "defaultCellStyle"; "required": false; }; "headerHeight": { "alias": "headerHeight"; "required": false; }; "headerWidth": { "alias": "headerWidth"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "cellEditors": { "alias": "cellEditors"; "required": false; }; "images": { "alias": "images"; "required": false; }; "excel": { "alias": "excel"; "required": false; }; }, { "change": "change"; "formatChange": "formatChange"; "selectionChange": "selectionChange"; "excelExport": "excelExport"; "excelImport": "excelImport"; "activeSheetChange": "activeSheetChange"; }, never, never, true, never>;
218
227
  }