@progress/kendo-angular-spreadsheet 17.0.0-develop.4 → 17.0.0-develop.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -19
- package/action-bar/formula-input.directive.d.ts +1 -1
- package/action-bar/list.component.d.ts +5 -4
- package/action-bar/namebox.component.d.ts +1 -1
- package/{esm2020 → esm2022}/action-bar/formula-input.directive.mjs +63 -54
- package/{esm2020 → esm2022}/action-bar/list.component.mjs +21 -16
- package/{esm2020 → esm2022}/action-bar/namebox.component.mjs +20 -12
- package/{esm2020 → esm2022}/common/error-handling.service.mjs +12 -6
- package/{esm2020 → esm2022}/common/main-menu.directive.mjs +5 -3
- package/{esm2020 → esm2022}/common/spreadsheet.service.mjs +10 -7
- package/{esm2020 → esm2022}/localization/custom-messages.component.mjs +9 -8
- package/{esm2020 → esm2022}/localization/localized-messages.directive.mjs +7 -6
- package/esm2022/localization/messages.mjs +494 -0
- package/{esm2020 → esm2022}/localization/spreadsheet-localization.service.mjs +3 -3
- package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
- package/{esm2020 → esm2022}/sheets-bar/action-dialog.component.mjs +8 -4
- package/{esm2020 → esm2022}/sheets-bar/sheets-bar.component.mjs +138 -116
- package/{esm2020 → esm2022}/spreadsheet.component.mjs +236 -194
- package/{esm2020 → esm2022}/spreadsheet.module.mjs +4 -4
- package/{esm2020 → esm2022}/tools/align/align-tool.directive.mjs +8 -5
- package/{esm2020 → esm2022}/tools/align/horizontal-align-tool.directive.mjs +8 -5
- package/{esm2020 → esm2022}/tools/align/vertical-align-tool.directive.mjs +8 -5
- package/{esm2020 → esm2022}/tools/colorpicker/spreadsheet-backcolor.component.mjs +32 -28
- package/{esm2020 → esm2022}/tools/colorpicker/spreadsheet-forecolor.component.mjs +32 -28
- package/{esm2020 → esm2022}/tools/decrease-decimal-tool.directive.mjs +3 -3
- package/{esm2020 → esm2022}/tools/font-family/font-family-dropdownlist.component.mjs +6 -4
- package/{esm2020 → esm2022}/tools/font-family/spreadsheet-fontfamily-tool.component.mjs +4 -4
- package/{esm2020 → esm2022}/tools/font-size/decrease-font-tool.directive.mjs +4 -3
- package/{esm2020 → esm2022}/tools/font-size/font-size-dropdownlist.component.mjs +6 -4
- package/{esm2020 → esm2022}/tools/font-size/increase-font-tool.directive.mjs +4 -3
- package/{esm2020 → esm2022}/tools/font-size/spreadsheet-fontsize-tool.component.mjs +4 -4
- package/{esm2020 → esm2022}/tools/format-tool.directive.mjs +19 -16
- package/{esm2020 → esm2022}/tools/gridlines-tool.directive.mjs +3 -3
- package/{esm2020 → esm2022}/tools/history/redo-tool.mjs +3 -3
- package/{esm2020 → esm2022}/tools/history/undo-tool.mjs +3 -3
- package/{esm2020 → esm2022}/tools/increase-decimal-tool.directive.mjs +3 -3
- package/{esm2020 → esm2022}/tools/insert/insert-link-dialog.component.mjs +7 -5
- package/{esm2020 → esm2022}/tools/insert/insert-link-tool.directive.mjs +5 -3
- package/{esm2020 → esm2022}/tools/load-file.component.mjs +27 -28
- package/{esm2020 → esm2022}/tools/save-file-tool.directive.mjs +7 -4
- package/{esm2020 → esm2022}/tools/shared/dialog-content.component.mjs +10 -5
- package/{esm2020 → esm2022}/tools/shared/spreadsheet-command-base.mjs +9 -4
- package/{esm2020 → esm2022}/tools/shared/spreadsheet-command-button.mjs +6 -0
- package/{esm2020 → esm2022}/tools/shared/spreadsheet-dropdown-tools-base.mjs +25 -18
- package/{esm2020 → esm2022}/tools/shared/spreadsheet-dropdownlist.base.mjs +12 -8
- package/{esm2020 → esm2022}/tools/tables/add-column-left-button.directive.mjs +3 -3
- package/{esm2020 → esm2022}/tools/tables/add-column-right-button.directive.mjs +3 -3
- package/{esm2020 → esm2022}/tools/tables/add-row-above-button.directive.mjs +3 -3
- package/{esm2020 → esm2022}/tools/tables/add-row-below-button.directive.mjs +3 -3
- package/{esm2020 → esm2022}/tools/tables/delete-column-button.directive.mjs +3 -3
- package/{esm2020 → esm2022}/tools/tables/delete-row-button.directive.mjs +3 -3
- package/{esm2020 → esm2022}/tools/tables/merge-tool.directive.mjs +8 -5
- package/{esm2020 → esm2022}/tools/text-wrap-tool.directive.mjs +3 -3
- package/esm2022/tools/tools.service.mjs +61 -0
- package/{esm2020 → esm2022}/tools/typographical-emphasis/bold-tool.directive.mjs +3 -3
- package/{esm2020 → esm2022}/tools/typographical-emphasis/italic-tool.directive.mjs +3 -3
- package/{esm2020 → esm2022}/tools/typographical-emphasis/underline-tool.directive.mjs +3 -3
- package/{fesm2020 → fesm2022}/progress-kendo-angular-spreadsheet.mjs +1194 -709
- package/localization/messages.d.ts +1 -1
- package/models/sheet-info.d.ts +2 -2
- package/package.json +26 -32
- package/schematics/ngAdd/index.js +2 -2
- package/sheets-bar/sheets-bar.component.d.ts +1 -1
- package/spreadsheet.component.d.ts +1 -1
- package/tools/load-file.component.d.ts +0 -3
- package/tools/shared/commands.d.ts +1 -1
- package/tools/shared/spreadsheet-dropdown-tools-base.d.ts +1 -3
- package/tools/shared/spreadsheet-dropdownlist.base.d.ts +1 -1
- package/esm2020/localization/messages.mjs +0 -175
- package/esm2020/tools/tools.service.mjs +0 -60
- package/fesm2015/progress-kendo-angular-spreadsheet.mjs +0 -4580
- /package/{esm2020 → esm2022}/common/sheet-changes.mjs +0 -0
- /package/{esm2020 → esm2022}/directives.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/models/events.mjs +0 -0
- /package/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/models/main-menu-item.mjs +0 -0
- /package/{esm2020 → esm2022}/models/sheet-info.mjs +0 -0
- /package/{esm2020 → esm2022}/progress-kendo-angular-spreadsheet.mjs +0 -0
- /package/{esm2020 → esm2022}/sheets-bar/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/tools/index.mjs +0 -0
- /package/{esm2020 → esm2022}/tools/shared/command-icons.mjs +0 -0
- /package/{esm2020 → esm2022}/tools/shared/commands.mjs +0 -0
- /package/{esm2020 → esm2022}/tools/shared/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/tools/tables/index.mjs +0 -0
- /package/{esm2020 → esm2022}/tools/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/utils.mjs +0 -0
package/README.md
CHANGED
@@ -1,31 +1,42 @@
|
|
1
|
-
<a href="https://www.telerik.com/kendo-angular-ui/" target="_blank">
|
1
|
+
<a href="https://www.telerik.com/kendo-angular-ui/components/spreadsheet" target="_blank">
|
2
2
|
<img width="631" src="https://www.telerik.com/kendo-angular-ui/npm-banner.svg">
|
3
3
|
</a>
|
4
4
|
|
5
5
|
## Kendo UI for Angular Spreadsheet Component
|
6
6
|
|
7
|
-
>
|
8
|
-
>
|
9
|
-
> -
|
10
|
-
> - You will need to install a license key when adding the package to your project. For more information, please refer to the [Kendo UI for Angular My License page](https://www.telerik.com/kendo-angular-ui/my-license?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-angular-trial-spreadsheet).
|
11
|
-
> - To receive a license key, you need to either [purchase a license](https://www.telerik.com/purchase/kendo-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-angular-trial-spreadsheet) or register for a [free trial](https://www.telerik.com/download-login-v2-kendo-angular-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-angular-trial-spreadsheet). Doing so indicates that you [accept the Kendo UI for Angular License Agreement](https://www.telerik.com/purchase/license-agreement/kendo-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-angular-trial-spreadsheet).
|
12
|
-
> - The 30-day free trial gives you access to all the Kendo UI for Angular components and their full functionality. Additionally, for the period of your license, you get access to our legendary technical support provided directly by the Kendo UI for Angular dev team!
|
13
|
-
>
|
14
|
-
> [Start using Kendo UI for Angular](https://www.telerik.com/download-login-v2-kendo-angular-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-angular-trial-spreadsheet) and speed up your development process!
|
7
|
+
> * This package is part of the [Kendo UI for Angular](https://www.telerik.com/kendo-angular-ui/)—a commercial UI library.
|
8
|
+
> * You must [install a license key](https://www.telerik.com/kendo-angular-ui/my-license) when adding the package to your project. To receive a license key, either [purchase a license](https://www.telerik.com/purchase/kendo-ui) or register for a [free trial](https://www.telerik.com/download-login-v2-kendo-angular-ui).
|
9
|
+
> * The 30-day free trial gives you access to all the Kendo UI for Angular components and their full functionality. Additionally, for the period of your license, you get access to our legendary technical support provided directly by the Kendo UI for Angular team!
|
15
10
|
|
16
|
-
|
11
|
+
The Kendo UI for Angular Spreadsheet allows you to create, edit, and manipulate tabular data with ease. Just like in an MS Excel spreadsheet, you can edit, resize columns and rows, calculate formulas, import and export to Excel, and many more.
|
12
|
+
|
13
|
+
## Key Features
|
14
|
+
|
15
|
+
Among the many features which the Kendo UI for Angular Spreadsheet delivers are:
|
16
|
+
|
17
|
+
* Toolbar Tools—The Spreadsheet component provides a variety of built-in tools that help you to create, edit, and style the sheet data. [Read more about the built-in toolbar tools of the Spreadsheet...](https://www.telerik.com/kendo-angular-ui/components/spreadsheet/tools)
|
18
|
+
* Action Bar—The Spreadsheet action bar allows you to control the cell selection and calculate cell values by entering formulas into the dedicated formula input. [Read more about the action bar capabilities of the Spreadsheet...](https://www.telerik.com/kendo-angular-ui/components/spreadsheet/action-bar)
|
19
|
+
* Sheets Bar—The sheets bar provides a convenient way to rename, duplicate, and delete sheets as necessary. [Read more about the sheets bar options of the Spreadsheet...](https://www.telerik.com/kendo-angular-ui/components/spreadsheet/sheets-bar)
|
20
|
+
* Appearance—You can use the options provided by the Spreadsheet component to customize its appearance. [Read more about the customizable appearance of the Spreadsheet...](https://www.telerik.com/kendo-angular-ui/components/spreadsheet/appearance)
|
21
|
+
* Events—The Spreadsheet exposes several events to let you easily handle any file operations logic. [Read more about the events of the Spreadsheet...](https://www.telerik.com/kendo-angular-ui/components/spreadsheet/events)
|
22
|
+
* Accessibility—The Spreadsheet is accessible for screen readers and supports WAI-ARIA attributes. [Read more about the accessibility of the Spreadsheet...](https://www.telerik.com/kendo-angular-ui/components/spreadsheet/accessibility)
|
23
|
+
* Keyboard Navigation—The Spreadsheet supports a number of keyboard shortcuts which allow users to accomplish various commands. [Read more about the keyboard navigation of the Spreadsheet...](https://www.telerik.com/kendo-angular-ui/components/spreadsheet/keyboard-navigation)
|
17
24
|
|
18
|
-
|
19
|
-
- [Demos, documentation, and component reference](https://www.telerik.com/kendo-angular-ui/components)
|
20
|
-
- [Blogs](http://www.telerik.com/blogs/kendo-ui)
|
21
|
-
- [Kendo UI for Angular pricing and licensing](https://www.telerik.com/purchase/kendo-ui)
|
25
|
+
## Support Options
|
22
26
|
|
23
|
-
|
27
|
+
For any issues you might encounter while working with the Kendo UI for Angular Spreadsheet, you have the following support channels available:
|
28
|
+
|
29
|
+
* Industry-leading technical support—Kendo UI for Angular paid license holders and users with an active (free) trial license can take advantage of our outstanding customer support. To submit a ticket, use the [dedicated Kendo UI for Angular support system](https://www.telerik.com/account/support-center/contact-us/technical-support).
|
30
|
+
* Product forums—The [Kendo UI for Angular forums](https://www.telerik.com/forums/kendo-angular-ui) are part of the free support you can get from the community and from the Kendo UI for Angular team.
|
31
|
+
* Feedback portal—The [Kendo UI for Angular feedback portal](https://feedback.telerik.com/kendo-angular-ui) is where you can request and vote for new features to be added.
|
32
|
+
|
33
|
+
## Resources
|
24
34
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
35
|
+
* [Getting Started with Kendo UI for Angular](https://www.telerik.com/kendo-angular-ui/getting-started)
|
36
|
+
* [Getting Started with the Kendo UI for Angular Spreadsheet](https://www.telerik.com/kendo-angular-ui/components/spreadsheet/installation/getting-started)
|
37
|
+
* [Demos, documentation, and component reference](https://www.telerik.com/kendo-angular-ui/components)
|
38
|
+
* [Blogs](http://www.telerik.com/blogs/kendo-ui)
|
39
|
+
* [Kendo UI for Angular pricing and licensing](https://www.telerik.com/purchase/kendo-ui)
|
29
40
|
|
30
41
|
_Copyright © 2024 Progress Software Corporation and/or one of its subsidiaries or affiliates. All rights reserved._
|
31
42
|
|
@@ -34,5 +34,5 @@ export declare class FormulaInputDirective {
|
|
34
34
|
private unfocus;
|
35
35
|
private focusNext;
|
36
36
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormulaInputDirective, never>;
|
37
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<FormulaInputDirective, "[kendoSpreadsheetFormulaInput]", never, { "formulaListMaxHeight": "formulaListMaxHeight"; }, {}, never, never, true, never>;
|
37
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<FormulaInputDirective, "[kendoSpreadsheetFormulaInput]", never, { "formulaListMaxHeight": { "alias": "formulaListMaxHeight"; "required": false; }; }, {}, never, never, true, never>;
|
38
38
|
}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* Copyright © 2024 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 { ElementRef } from '@angular/core';
|
5
|
+
import { ElementRef, Renderer2 } from '@angular/core';
|
6
6
|
import { SVGIcon } from '@progress/kendo-svg-icons';
|
7
7
|
import { SpreadsheetService } from '../common/spreadsheet.service';
|
8
8
|
import * as i0 from "@angular/core";
|
@@ -12,13 +12,14 @@ import * as i0 from "@angular/core";
|
|
12
12
|
export declare class FormulaListComponent {
|
13
13
|
element: ElementRef;
|
14
14
|
private spreadsheetService;
|
15
|
-
|
15
|
+
private renderer;
|
16
16
|
maxHeight: string;
|
17
17
|
data: any[];
|
18
18
|
itemClick: (value: any) => void;
|
19
19
|
formulaFxIcon: SVGIcon;
|
20
|
-
constructor(element: ElementRef, spreadsheetService: SpreadsheetService);
|
20
|
+
constructor(element: ElementRef, spreadsheetService: SpreadsheetService, renderer: Renderer2);
|
21
|
+
ngOnInit(): void;
|
21
22
|
handleMouseDown: (ev: MouseEvent) => void;
|
22
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormulaListComponent, never>;
|
23
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FormulaListComponent, "kendo-spreadsheet-formula-list", never, { "maxHeight": "maxHeight"; "data": "data"; "itemClick": "itemClick"; }, {}, never, never, true, never>;
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormulaListComponent, "kendo-spreadsheet-formula-list", never, { "maxHeight": { "alias": "maxHeight"; "required": false; }; "data": { "alias": "data"; "required": false; }; "itemClick": { "alias": "itemClick"; "required": false; }; }, {}, never, never, true, never>;
|
24
25
|
}
|
@@ -32,5 +32,5 @@ export declare class NameBoxComponent implements AfterViewInit {
|
|
32
32
|
name: string;
|
33
33
|
}>;
|
34
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<NameBoxComponent, never>;
|
35
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NameBoxComponent, "[kendoSpreadsheetNameBox]", never, { "data": "data"; "spreadsheetWidget": "spreadsheetWidget"; }, {}, never, never, true, never>;
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NameBoxComponent, "[kendoSpreadsheetNameBox]", never, { "data": { "alias": "data"; "required": false; }; "spreadsheetWidget": { "alias": "spreadsheetWidget"; "required": false; }; }, {}, never, never, true, never>;
|
36
36
|
}
|
@@ -15,63 +15,31 @@ import * as i3 from "../localization/spreadsheet-localization.service";
|
|
15
15
|
* @hidden
|
16
16
|
*/
|
17
17
|
export class FormulaInputDirective {
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
this.hostClasses = true;
|
24
|
-
this.role = 'combobox';
|
25
|
-
this.ariaHasPopup = 'menu';
|
26
|
-
this.ariaExpanded = 'false';
|
27
|
-
this.focusedItem = () => this.list?.element.nativeElement.querySelector('.k-focus');
|
28
|
-
this.unfocus = () => {
|
29
|
-
const focused = this.focusedItem();
|
30
|
-
if (focused) {
|
31
|
-
focused.classList.remove('k-focus');
|
32
|
-
}
|
33
|
-
};
|
34
|
-
this.focusNext = (dir) => {
|
35
|
-
const element = this.list?.element.nativeElement.firstElementChild;
|
36
|
-
const items = Array.from((element && element.children) || []);
|
37
|
-
const focused = this.focusedItem();
|
38
|
-
let next;
|
39
|
-
if (focused) {
|
40
|
-
const index = items.indexOf(focused);
|
41
|
-
focused.classList.remove('k-focus');
|
42
|
-
next = items[index + dir] ? items[index + dir] : (dir === 1 ? items[0] : items[items.length - 1]);
|
43
|
-
}
|
44
|
-
else {
|
45
|
-
next = (dir === 1 ? items[0] : items[items.length - 1]);
|
46
|
-
}
|
47
|
-
if (next) {
|
48
|
-
next.classList.add('k-focus');
|
49
|
-
const { offsetTop, offsetHeight, parentElement } = next;
|
50
|
-
if (dir > 0) {
|
51
|
-
if (offsetTop + offsetHeight >= parentElement.offsetHeight + parentElement.scrollTop) {
|
52
|
-
parentElement.scrollTop = Math.min(parentElement.scrollTop + offsetHeight, parentElement.scrollHeight - parentElement.offsetHeight);
|
53
|
-
}
|
54
|
-
if (next === items[0]) {
|
55
|
-
next.scrollIntoView();
|
56
|
-
}
|
57
|
-
}
|
58
|
-
else {
|
59
|
-
if (offsetTop <= parentElement.scrollTop) {
|
60
|
-
parentElement.scrollTop = Math.max(parentElement.scrollTop - offsetHeight, 0);
|
61
|
-
}
|
62
|
-
if (next === items[items.length - 1]) {
|
63
|
-
next.scrollIntoView();
|
64
|
-
}
|
65
|
-
}
|
66
|
-
}
|
67
|
-
};
|
68
|
-
}
|
18
|
+
element;
|
19
|
+
popupService;
|
20
|
+
spreadsheetService;
|
21
|
+
localization;
|
22
|
+
hostClasses = true;
|
69
23
|
get title() {
|
70
24
|
return this.localization.get('formulaInput');
|
71
25
|
}
|
26
|
+
role = 'combobox';
|
27
|
+
ariaHasPopup = 'menu';
|
28
|
+
ariaExpanded = 'false';
|
72
29
|
get ariaControls() {
|
73
30
|
return this.ariaExpanded === 'true' ? this.spreadsheetService.formulaListId : null;
|
74
31
|
}
|
32
|
+
formulaListMaxHeight;
|
33
|
+
list;
|
34
|
+
data;
|
35
|
+
constructor(element, popupService, spreadsheetService, localization) {
|
36
|
+
this.element = element;
|
37
|
+
this.popupService = popupService;
|
38
|
+
this.spreadsheetService = spreadsheetService;
|
39
|
+
this.localization = localization;
|
40
|
+
}
|
41
|
+
popupRef;
|
42
|
+
handler;
|
75
43
|
get listElement() {
|
76
44
|
return this.list?.element.nativeElement.firstElementChild;
|
77
45
|
}
|
@@ -144,10 +112,51 @@ export class FormulaInputDirective {
|
|
144
112
|
}
|
145
113
|
};
|
146
114
|
}
|
115
|
+
focusedItem = () => this.list?.element.nativeElement.querySelector('.k-focus');
|
116
|
+
unfocus = () => {
|
117
|
+
const focused = this.focusedItem();
|
118
|
+
if (focused) {
|
119
|
+
focused.classList.remove('k-focus');
|
120
|
+
}
|
121
|
+
};
|
122
|
+
focusNext = (dir) => {
|
123
|
+
const element = this.list?.element.nativeElement.firstElementChild;
|
124
|
+
const items = Array.from((element && element.children) || []);
|
125
|
+
const focused = this.focusedItem();
|
126
|
+
let next;
|
127
|
+
if (focused) {
|
128
|
+
const index = items.indexOf(focused);
|
129
|
+
focused.classList.remove('k-focus');
|
130
|
+
next = items[index + dir] ? items[index + dir] : (dir === 1 ? items[0] : items[items.length - 1]);
|
131
|
+
}
|
132
|
+
else {
|
133
|
+
next = (dir === 1 ? items[0] : items[items.length - 1]);
|
134
|
+
}
|
135
|
+
if (next) {
|
136
|
+
next.classList.add('k-focus');
|
137
|
+
const { offsetTop, offsetHeight, parentElement } = next;
|
138
|
+
if (dir > 0) {
|
139
|
+
if (offsetTop + offsetHeight >= parentElement.offsetHeight + parentElement.scrollTop) {
|
140
|
+
parentElement.scrollTop = Math.min(parentElement.scrollTop + offsetHeight, parentElement.scrollHeight - parentElement.offsetHeight);
|
141
|
+
}
|
142
|
+
if (next === items[0]) {
|
143
|
+
next.scrollIntoView();
|
144
|
+
}
|
145
|
+
}
|
146
|
+
else {
|
147
|
+
if (offsetTop <= parentElement.scrollTop) {
|
148
|
+
parentElement.scrollTop = Math.max(parentElement.scrollTop - offsetHeight, 0);
|
149
|
+
}
|
150
|
+
if (next === items[items.length - 1]) {
|
151
|
+
next.scrollIntoView();
|
152
|
+
}
|
153
|
+
}
|
154
|
+
}
|
155
|
+
};
|
156
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormulaInputDirective, deps: [{ token: i0.ElementRef }, { token: i1.PopupService }, { token: i2.SpreadsheetService }, { token: i3.SpreadsheetLocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
|
157
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FormulaInputDirective, isStandalone: true, selector: "[kendoSpreadsheetFormulaInput]", inputs: { formulaListMaxHeight: "formulaListMaxHeight" }, host: { properties: { "class.k-spreadsheet-formula-input": "this.hostClasses", "attr.title": "this.title", "attr.role": "this.role", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-controls": "this.ariaControls" } }, ngImport: i0 });
|
147
158
|
}
|
148
|
-
|
149
|
-
FormulaInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FormulaInputDirective, isStandalone: true, selector: "[kendoSpreadsheetFormulaInput]", inputs: { formulaListMaxHeight: "formulaListMaxHeight" }, host: { properties: { "class.k-spreadsheet-formula-input": "this.hostClasses", "attr.title": "this.title", "attr.role": "this.role", "attr.aria-haspopup": "this.ariaHasPopup", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-controls": "this.ariaControls" } }, ngImport: i0 });
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormulaInputDirective, decorators: [{
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormulaInputDirective, decorators: [{
|
151
160
|
type: Directive,
|
152
161
|
args: [{
|
153
162
|
selector: '[kendoSpreadsheetFormulaInput]',
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* Copyright © 2024 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 { Component, ElementRef,
|
5
|
+
import { Component, ElementRef, Input, Renderer2 } from '@angular/core';
|
6
6
|
import { NgFor } from '@angular/common';
|
7
7
|
import { formulaFxIcon } from '@progress/kendo-svg-icons';
|
8
8
|
import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
@@ -14,19 +14,26 @@ import * as i1 from "../common/spreadsheet.service";
|
|
14
14
|
* @hidden
|
15
15
|
*/
|
16
16
|
export class FormulaListComponent {
|
17
|
-
|
17
|
+
element;
|
18
|
+
spreadsheetService;
|
19
|
+
renderer;
|
20
|
+
maxHeight;
|
21
|
+
data = [];
|
22
|
+
itemClick;
|
23
|
+
formulaFxIcon = formulaFxIcon;
|
24
|
+
constructor(element, spreadsheetService, renderer) {
|
18
25
|
this.element = element;
|
19
26
|
this.spreadsheetService = spreadsheetService;
|
20
|
-
this.
|
21
|
-
this.data = [];
|
22
|
-
this.formulaFxIcon = formulaFxIcon;
|
23
|
-
this.handleMouseDown = (ev) => {
|
24
|
-
ev.preventDefault();
|
25
|
-
};
|
27
|
+
this.renderer = renderer;
|
26
28
|
}
|
27
|
-
|
28
|
-
|
29
|
-
|
29
|
+
ngOnInit() {
|
30
|
+
this.renderer.setAttribute(this.element.nativeElement, 'id', this.spreadsheetService.formulaListId);
|
31
|
+
}
|
32
|
+
handleMouseDown = (ev) => {
|
33
|
+
ev.preventDefault();
|
34
|
+
};
|
35
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormulaListComponent, deps: [{ token: i0.ElementRef }, { token: i1.SpreadsheetService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
36
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormulaListComponent, isStandalone: true, selector: "kendo-spreadsheet-formula-list", inputs: { maxHeight: "maxHeight", data: "data", itemClick: "itemClick" }, ngImport: i0, template: `
|
30
37
|
<ul #ulRef
|
31
38
|
class="k-spreadsheet-formula-list k-list-ul k-list-md k-group k-reset"
|
32
39
|
role="menu"
|
@@ -45,7 +52,8 @@ FormulaListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
45
52
|
</li>
|
46
53
|
</ul>
|
47
54
|
`, isInline: true, dependencies: [{ kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
48
|
-
|
55
|
+
}
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormulaListComponent, decorators: [{
|
49
57
|
type: Component,
|
50
58
|
args: [{
|
51
59
|
selector: 'kendo-spreadsheet-formula-list',
|
@@ -71,10 +79,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
71
79
|
standalone: true,
|
72
80
|
imports: [EventsOutsideAngularDirective, NgFor, IconWrapperComponent]
|
73
81
|
}]
|
74
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SpreadsheetService }]; }, propDecorators: {
|
75
|
-
type: HostBinding,
|
76
|
-
args: ['attr.id']
|
77
|
-
}], maxHeight: [{
|
82
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SpreadsheetService }, { type: i0.Renderer2 }]; }, propDecorators: { maxHeight: [{
|
78
83
|
type: Input
|
79
84
|
}], data: [{
|
80
85
|
type: Input
|
@@ -13,14 +13,11 @@ import * as i1 from "../localization/spreadsheet-localization.service";
|
|
13
13
|
* @hidden
|
14
14
|
*/
|
15
15
|
export class NameBoxComponent {
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
this.hostClass = true;
|
22
|
-
this.valueNormalizer = (text) => text.pipe(map((content) => ({ name: content })));
|
23
|
-
}
|
16
|
+
ngZone;
|
17
|
+
host;
|
18
|
+
localization;
|
19
|
+
renderer;
|
20
|
+
hostClass = true;
|
24
21
|
keyDownHandler() {
|
25
22
|
const editor = this.spreadsheetWidget.view.nameEditor;
|
26
23
|
if (editor) {
|
@@ -28,10 +25,20 @@ export class NameBoxComponent {
|
|
28
25
|
editor.trigger('enter', { value: name });
|
29
26
|
}
|
30
27
|
}
|
28
|
+
combobox;
|
29
|
+
data;
|
30
|
+
spreadsheetWidget;
|
31
|
+
constructor(ngZone, host, localization, renderer) {
|
32
|
+
this.ngZone = ngZone;
|
33
|
+
this.host = host;
|
34
|
+
this.localization = localization;
|
35
|
+
this.renderer = renderer;
|
36
|
+
}
|
31
37
|
ngAfterViewInit() {
|
32
38
|
this.renderer.setAttribute(this.inputElement, 'title', this.title);
|
33
39
|
this.renderer.setAttribute(this.inputElement, 'aria-label', this.title);
|
34
40
|
}
|
41
|
+
value;
|
35
42
|
get inputElement() {
|
36
43
|
return this.host.nativeElement.querySelector('.k-input-inner');
|
37
44
|
}
|
@@ -69,9 +76,9 @@ export class NameBoxComponent {
|
|
69
76
|
this.data = editor.readData();
|
70
77
|
}
|
71
78
|
}
|
72
|
-
}
|
73
|
-
|
74
|
-
|
79
|
+
valueNormalizer = (text) => text.pipe(map((content) => ({ name: content })));
|
80
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NameBoxComponent, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i1.SpreadsheetLocalizationService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
81
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NameBoxComponent, isStandalone: true, selector: "[kendoSpreadsheetNameBox]", inputs: { data: "data", spreadsheetWidget: "spreadsheetWidget" }, host: { listeners: { "keydown.enter": "keyDownHandler()" }, properties: { "class.k-spreadsheet-name-editor": "this.hostClass" } }, viewQueries: [{ propertyName: "combobox", first: true, predicate: ["combobox"], descendants: true }], ngImport: i0, template: `
|
75
82
|
<kendo-combobox #combobox
|
76
83
|
[popupSettings]="{popupClass: 'k-spreadsheet-names-popup'}"
|
77
84
|
fillMode="flat"
|
@@ -87,7 +94,8 @@ NameBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versi
|
|
87
94
|
[attr.title]="title"
|
88
95
|
></kendo-combobox>
|
89
96
|
`, isInline: true, dependencies: [{ kind: "component", type: ComboBoxComponent, selector: "kendo-combobox", inputs: ["icon", "svgIcon", "inputAttributes", "showStickyHeader", "focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur", "escape"], exportAs: ["kendoComboBox"] }] });
|
90
|
-
|
97
|
+
}
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NameBoxComponent, decorators: [{
|
91
99
|
type: Component,
|
92
100
|
args: [{
|
93
101
|
selector: '[kendoSpreadsheetNameBox]',
|
@@ -17,13 +17,18 @@ import * as i3 from "@progress/kendo-angular-dialog";
|
|
17
17
|
* @hidden
|
18
18
|
*/
|
19
19
|
export class ErrorHandlingService {
|
20
|
+
spreadsheetService;
|
21
|
+
localization;
|
22
|
+
dialogService;
|
23
|
+
spreadsheet;
|
24
|
+
sheetsChanged = new Subject();
|
25
|
+
activeSheetChanged = new Subject();
|
26
|
+
selectionChanged = new Subject();
|
27
|
+
dialogContainer;
|
20
28
|
constructor(spreadsheetService, localization, dialogService) {
|
21
29
|
this.spreadsheetService = spreadsheetService;
|
22
30
|
this.localization = localization;
|
23
31
|
this.dialogService = dialogService;
|
24
|
-
this.sheetsChanged = new Subject();
|
25
|
-
this.activeSheetChanged = new Subject();
|
26
|
-
this.selectionChanged = new Subject();
|
27
32
|
}
|
28
33
|
set currentActiveSheet(value) {
|
29
34
|
this._currentActiveSheet = value;
|
@@ -34,6 +39,7 @@ export class ErrorHandlingService {
|
|
34
39
|
get activeSheet() {
|
35
40
|
return this.spreadsheet.activeSheet()?.name();
|
36
41
|
}
|
42
|
+
_currentActiveSheet;
|
37
43
|
notifySheetsChange(actionType, sheetInfo) {
|
38
44
|
const sheets = this.spreadsheet.sheets();
|
39
45
|
this.sheetsChanged.next({ sheets, sheet: sheetInfo, actionType });
|
@@ -79,9 +85,9 @@ export class ErrorHandlingService {
|
|
79
85
|
messageFor(text) {
|
80
86
|
return this.localization.get(text);
|
81
87
|
}
|
88
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlingService, deps: [{ token: i1.SpreadsheetService }, { token: i2.LocalizationService }, { token: i3.DialogService }], target: i0.ɵɵFactoryTarget.Injectable });
|
89
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlingService });
|
82
90
|
}
|
83
|
-
|
84
|
-
ErrorHandlingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ErrorHandlingService });
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ErrorHandlingService, decorators: [{
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorHandlingService, decorators: [{
|
86
92
|
type: Injectable
|
87
93
|
}], ctorParameters: function () { return [{ type: i1.SpreadsheetService }, { type: i2.LocalizationService }, { type: i3.DialogService }]; } });
|
@@ -9,6 +9,8 @@ import * as i0 from "@angular/core";
|
|
9
9
|
* @hidden
|
10
10
|
*/
|
11
11
|
export class MainMenuDirective {
|
12
|
+
host;
|
13
|
+
renderer;
|
12
14
|
constructor(host, renderer) {
|
13
15
|
this.host = host;
|
14
16
|
this.renderer = renderer;
|
@@ -16,10 +18,10 @@ export class MainMenuDirective {
|
|
16
18
|
ngAfterViewInit() {
|
17
19
|
isDocumentAvailable() && this.renderer.addClass(this.host.nativeElement.firstElementChild, 'k-spreadsheet-menu');
|
18
20
|
}
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainMenuDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
22
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: MainMenuDirective, isStandalone: true, selector: "[kendoSpreadsheetMenu]", ngImport: i0 });
|
19
23
|
}
|
20
|
-
|
21
|
-
MainMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: MainMenuDirective, isStandalone: true, selector: "[kendoSpreadsheetMenu]", ngImport: i0 });
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MainMenuDirective, decorators: [{
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainMenuDirective, decorators: [{
|
23
25
|
type: Directive,
|
24
26
|
args: [{
|
25
27
|
selector: '[kendoSpreadsheetMenu]',
|
@@ -10,11 +10,13 @@ let spreadsheetCounter = 0;
|
|
10
10
|
* @hidden
|
11
11
|
*/
|
12
12
|
export class SpreadsheetService {
|
13
|
+
spreadsheet;
|
14
|
+
sheetsChanged = new Subject();
|
15
|
+
onSheetsBarFocus = new Subject();
|
16
|
+
activeSheetChanged = new Subject();
|
17
|
+
selectionChanged = new Subject();
|
18
|
+
dialogContainer;
|
13
19
|
constructor() {
|
14
|
-
this.sheetsChanged = new Subject();
|
15
|
-
this.onSheetsBarFocus = new Subject();
|
16
|
-
this.activeSheetChanged = new Subject();
|
17
|
-
this.selectionChanged = new Subject();
|
18
20
|
spreadsheetCounter++;
|
19
21
|
}
|
20
22
|
set currentActiveSheet(value) {
|
@@ -32,13 +34,14 @@ export class SpreadsheetService {
|
|
32
34
|
get tablistId() {
|
33
35
|
return `k-spreadsheet-${spreadsheetCounter}-tablist`;
|
34
36
|
}
|
37
|
+
_currentActiveSheet;
|
35
38
|
notifySheetsChange(actionType, sheetInfo) {
|
36
39
|
const sheets = this.spreadsheet.sheets();
|
37
40
|
this.sheetsChanged.next({ sheets, sheet: sheetInfo, actionType });
|
38
41
|
}
|
42
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
43
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetService });
|
39
44
|
}
|
40
|
-
|
41
|
-
SpreadsheetService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetService });
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpreadsheetService, decorators: [{
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SpreadsheetService, decorators: [{
|
43
46
|
type: Injectable
|
44
47
|
}], ctorParameters: function () { return []; } });
|
@@ -11,6 +11,7 @@ import * as i1 from "@progress/kendo-angular-l10n";
|
|
11
11
|
* Custom component messages override default component messages.
|
12
12
|
*/
|
13
13
|
export class CustomMessagesComponent extends MessagesDirective {
|
14
|
+
service;
|
14
15
|
constructor(service) {
|
15
16
|
super();
|
16
17
|
this.service = service;
|
@@ -18,15 +19,15 @@ export class CustomMessagesComponent extends MessagesDirective {
|
|
18
19
|
get override() {
|
19
20
|
return true;
|
20
21
|
}
|
22
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
|
23
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CustomMessagesComponent, isStandalone: true, selector: "kendo-spreadsheet-messages", providers: [
|
24
|
+
{
|
25
|
+
provide: MessagesDirective,
|
26
|
+
useExisting: forwardRef(() => CustomMessagesComponent)
|
27
|
+
}
|
28
|
+
], usesInheritance: true, ngImport: i0 });
|
21
29
|
}
|
22
|
-
|
23
|
-
CustomMessagesComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CustomMessagesComponent, isStandalone: true, selector: "kendo-spreadsheet-messages", providers: [
|
24
|
-
{
|
25
|
-
provide: MessagesDirective,
|
26
|
-
useExisting: forwardRef(() => CustomMessagesComponent)
|
27
|
-
}
|
28
|
-
], usesInheritance: true, ngImport: i0 });
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomMessagesComponent, decorators: [{
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomMessagesComponent, decorators: [{
|
30
31
|
type: Directive,
|
31
32
|
args: [{
|
32
33
|
providers: [
|
@@ -11,17 +11,18 @@ import * as i1 from "@progress/kendo-angular-l10n";
|
|
11
11
|
* @hidden
|
12
12
|
*/
|
13
13
|
export class LocalizedMessagesDirective extends MessagesDirective {
|
14
|
+
service;
|
14
15
|
constructor(service) {
|
15
16
|
super();
|
16
17
|
this.service = service;
|
17
18
|
}
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
|
20
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: LocalizedMessagesDirective, isStandalone: true, selector: "[kendoSpreadsheetLocalizedMessages]", providers: [{
|
21
|
+
provide: MessagesDirective,
|
22
|
+
useExisting: forwardRef(() => LocalizedMessagesDirective)
|
23
|
+
}], usesInheritance: true, ngImport: i0 });
|
18
24
|
}
|
19
|
-
|
20
|
-
LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: LocalizedMessagesDirective, isStandalone: true, selector: "[kendoSpreadsheetLocalizedMessages]", providers: [{
|
21
|
-
provide: MessagesDirective,
|
22
|
-
useExisting: forwardRef(() => LocalizedMessagesDirective)
|
23
|
-
}], usesInheritance: true, ngImport: i0 });
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
|
25
26
|
type: Directive,
|
26
27
|
args: [{
|
27
28
|
providers: [{
|