@syncfusion/ej2-angular-spreadsheet 21.2.10 → 22.1.34

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.
Files changed (100) hide show
  1. package/README.md +67 -144
  2. package/esm2020/src/spreadsheet/cells.directive.mjs +1 -1
  3. package/esm2020/src/spreadsheet/spreadsheet.component.mjs +3 -3
  4. package/fesm2015/syncfusion-ej2-angular-spreadsheet.mjs +2 -2
  5. package/fesm2015/syncfusion-ej2-angular-spreadsheet.mjs.map +1 -1
  6. package/fesm2020/syncfusion-ej2-angular-spreadsheet.mjs +2 -2
  7. package/fesm2020/syncfusion-ej2-angular-spreadsheet.mjs.map +1 -1
  8. package/license +10 -0
  9. package/package.json +23 -9
  10. package/schematics/utils/lib-details.ts +2 -2
  11. package/src/spreadsheet/cells.directive.d.ts +1 -1
  12. package/src/spreadsheet/spreadsheet.component.d.ts +1 -1
  13. package/styles/bootstrap-dark.css +84 -57
  14. package/styles/bootstrap.css +84 -57
  15. package/styles/bootstrap4.css +84 -57
  16. package/styles/bootstrap5-dark.css +85 -67
  17. package/styles/bootstrap5.css +85 -67
  18. package/styles/fabric-dark.css +84 -57
  19. package/styles/fabric.css +84 -57
  20. package/styles/fluent-dark.css +84 -61
  21. package/styles/fluent.css +84 -61
  22. package/styles/highcontrast-light.css +72 -57
  23. package/styles/highcontrast.css +84 -57
  24. package/styles/material-dark.css +84 -59
  25. package/styles/material.css +84 -56
  26. package/styles/material3-dark.css +4507 -0
  27. package/styles/material3-dark.scss +4 -0
  28. package/styles/material3.css +4563 -0
  29. package/styles/material3.scss +4 -0
  30. package/styles/spreadsheet/_bootstrap-dark-definition.scss +7 -0
  31. package/styles/spreadsheet/_bootstrap-definition.scss +7 -0
  32. package/styles/spreadsheet/_bootstrap4-definition.scss +7 -0
  33. package/styles/spreadsheet/_bootstrap5-definition.scss +7 -0
  34. package/styles/spreadsheet/_fabric-dark-definition.scss +7 -0
  35. package/styles/spreadsheet/_fabric-definition.scss +8 -1
  36. package/styles/spreadsheet/_fluent-definition.scss +7 -0
  37. package/styles/spreadsheet/_highcontrast-definition.scss +7 -0
  38. package/styles/spreadsheet/_highcontrast-light-definition.scss +7 -0
  39. package/styles/spreadsheet/_layout.scss +1094 -240
  40. package/styles/spreadsheet/_material-dark-definition.scss +7 -0
  41. package/styles/spreadsheet/_material-definition.scss +7 -0
  42. package/styles/spreadsheet/_material3-dark-definition.scss +1 -0
  43. package/styles/spreadsheet/_material3-definition.scss +246 -0
  44. package/styles/spreadsheet/_tailwind-definition.scss +7 -0
  45. package/styles/spreadsheet/_theme.scss +280 -25
  46. package/styles/spreadsheet/bootstrap-dark.css +84 -57
  47. package/styles/spreadsheet/bootstrap.css +84 -57
  48. package/styles/spreadsheet/bootstrap4.css +84 -57
  49. package/styles/spreadsheet/bootstrap5-dark.css +85 -67
  50. package/styles/spreadsheet/bootstrap5.css +85 -67
  51. package/styles/spreadsheet/fabric-dark.css +84 -57
  52. package/styles/spreadsheet/fabric.css +84 -57
  53. package/styles/spreadsheet/fluent-dark.css +84 -61
  54. package/styles/spreadsheet/fluent.css +84 -61
  55. package/styles/spreadsheet/highcontrast-light.css +72 -57
  56. package/styles/spreadsheet/highcontrast.css +84 -57
  57. package/styles/spreadsheet/icons/_bootstrap-dark.scss +18 -0
  58. package/styles/spreadsheet/icons/_bootstrap.scss +18 -0
  59. package/styles/spreadsheet/icons/_bootstrap4.scss +18 -0
  60. package/styles/spreadsheet/icons/_bootstrap5.scss +18 -0
  61. package/styles/spreadsheet/icons/_fabric-dark.scss +18 -0
  62. package/styles/spreadsheet/icons/_fabric.scss +18 -0
  63. package/styles/spreadsheet/icons/_fluent.scss +18 -0
  64. package/styles/spreadsheet/icons/_fusionnew.scss +18 -0
  65. package/styles/spreadsheet/icons/_highcontrast.scss +18 -0
  66. package/styles/spreadsheet/icons/_material-dark.scss +18 -0
  67. package/styles/spreadsheet/icons/_material.scss +18 -0
  68. package/styles/spreadsheet/icons/_material3-dark.scss +1 -0
  69. package/styles/spreadsheet/icons/_material3.scss +32 -8
  70. package/styles/spreadsheet/icons/_tailwind-dark.scss +18 -0
  71. package/styles/spreadsheet/icons/_tailwind.scss +18 -0
  72. package/styles/spreadsheet/material-dark.css +84 -59
  73. package/styles/spreadsheet/material.css +84 -56
  74. package/styles/spreadsheet/material3-dark.css +4366 -0
  75. package/styles/spreadsheet/material3-dark.scss +23 -0
  76. package/styles/spreadsheet/material3.css +4422 -0
  77. package/styles/spreadsheet/material3.scss +24 -0
  78. package/styles/spreadsheet/tailwind-dark.css +112 -68
  79. package/styles/spreadsheet/tailwind.css +84 -67
  80. package/styles/spreadsheet-ribbon/_layout.scss +64 -9
  81. package/styles/spreadsheet-ribbon/_material3-dark-definition.scss +1 -0
  82. package/styles/spreadsheet-ribbon/_material3-definition.scss +21 -0
  83. package/styles/spreadsheet-ribbon/_mixin.scss +51 -0
  84. package/styles/spreadsheet-ribbon/_theme.scss +22 -3
  85. package/styles/spreadsheet-ribbon/icons/_material3-dark.scss +1 -0
  86. package/styles/spreadsheet-ribbon/material3-dark.css +196 -0
  87. package/styles/spreadsheet-ribbon/material3-dark.scss +5 -0
  88. package/styles/spreadsheet-ribbon/material3.css +252 -0
  89. package/styles/spreadsheet-ribbon/material3.scss +5 -0
  90. package/styles/tailwind-dark.css +112 -68
  91. package/styles/tailwind.css +84 -67
  92. package/schematics/collection.json +0 -10
  93. package/schematics/ng-add/index.d.ts +0 -3
  94. package/schematics/ng-add/index.js +0 -9
  95. package/schematics/ng-add/schema.d.ts +0 -13
  96. package/schematics/ng-add/schema.js +0 -2
  97. package/schematics/ng-add/schema.json +0 -34
  98. package/schematics/tsconfig.json +0 -25
  99. package/schematics/utils/lib-details.d.ts +0 -4
  100. package/schematics/utils/lib-details.js +0 -6
package/README.md CHANGED
@@ -1,164 +1,87 @@
1
- # Angular Spreadsheet Component
1
+ # ej2-angular-spreadsheet
2
2
 
3
- The [Angular Spreadsheet](https://www.syncfusion.com/angular-ui-components/angular-spreadsheet?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm) is an user interactive component to organize and analyze data in tabular format with configuration options for customization. It will load data by importing an Excel/CSV file or from local and remote data sources such as JSON, RESTful services, OData services, and more. The populated data can be exported as Excel with xlsx, xls, CSV and PDF formats.
3
+ The [Angular Spreadsheet](https://www.syncfusion.com/angular-ui-components/angular-spreadsheet?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm) is an user interactive component to organize and analyze data in tabular format with configuration options for customization. It will load data by importing an excel file or from a data source, such as RESTful JSON data services and local JavaScript object array binding. The populated data can be exported as Excel with xlsx, xls and csv formats.
4
4
 
5
- <p align="center">
6
- <a href="https://ej2.syncfusion.com/angular/documentation/spreadsheet/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm">Getting started</a> .
7
- <a href="https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/default">Online demos</a> .
8
- <a href="https://www.syncfusion.com/angular-components/angular-spreadsheet?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm">Learn more</a>
9
- </p>
5
+ ![Spreadsheet](https://ej2.syncfusion.com/products/images/spreadsheet/readme.gif)
10
6
 
11
- <p align="center">
12
- <img src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/angular/angular-spreadsheet.png" alt="Angular Spreadsheet Component" />
13
- </p>
7
+ > This is a commercial product and requires a paid license for possession or use. Syncfusion’s licensed software, including this component, is subject to the terms and conditions of Syncfusion's EULA (https://www.syncfusion.com/eula/es/). To acquire a license, you can purchase one at https://www.syncfusion.com/sales/products or start a free 30-day trial here (https://www.syncfusion.com/account/manage-trials/start-trials).
14
8
 
15
- <p align="center">
16
- Trusted by the world's leading companies
17
- <a href="https://www.syncfusion.com">
18
- <img src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/syncfusion/syncfusion-trusted-companies.webp" alt="Bootstrap logo">
19
- </a>
20
- </p>
9
+ > A free community license (https://www.syncfusion.com/products/communitylicense) is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.
21
10
 
22
11
  ## Setup
23
12
 
24
- ### Create an Angular Application
13
+ To install Spreadsheet and its dependent packages, use the following command.
25
14
 
26
- You can use [Angular CLI](https://github.com/angular/angular-cli) to setup your Angular applications. To install the Angular CLI, use the following command.
27
-
28
- ```bash
29
- npm install -g @angular/cli
30
- ```
31
-
32
- Create a new Angular application using the following Angular CLI command.
33
-
34
- ```bash
35
- ng new my-app
36
- cd my-app
37
- ```
38
-
39
- ### Add Syncfusion Spreadsheet package
40
-
41
- All Syncfusion Angular packages are available in [npmjs.com](https://www.npmjs.com/~syncfusionorg). To install the Angular Spreadsheet package, use the following command.
42
-
43
- ```bash
44
- ng add @syncfusion/ej2-angular-spreadsheet
45
- ```
46
-
47
- The above command does the below configuration to your Angular app.
48
-
49
- * Adds `@syncfusion/ej2-angular-spreadsheet` package and its peer dependencies to your `package.json` file.
50
- * Imports the `SpreadsheetModule` in your application module `app.module.ts`.
51
- * Registers the Syncfusion UI default theme (material) in the `angular.json` file.
52
-
53
- This makes it easy to add the Syncfusion Angular Spreadsheet module to your project and start using it in your application.
54
-
55
- ### Add Spreadsheet component
56
-
57
- In **src/app/app.component.ts**, use `<ejs-spreadsheet>` selector in the `template` attribute of the `@Component` directive to render the Syncfusion Angular Spreadsheet component.
58
-
59
- ```typescript
60
- import { Component, OnInit } from '@angular/core';
61
-
62
- @Component({
63
- selector: 'app-root',
64
- template: `<ejs-spreadsheet>
65
- <e-sheets>
66
- <e-sheet>
67
- <e-ranges>
68
- <e-range [dataSource]='data'></e-range>
69
- </e-ranges>
70
- </e-sheet>
71
- </e-sheets>
72
- </ejs-spreadsheet>`
73
- })
74
- export class AppComponent implements OnInit {
75
-
76
- public data: object[] = [];
77
-
78
- ngOnInit(): void {
79
- this.data = [
80
- { OrderID: 10248, CustomerID: 'VINET', EmployeeID: 5, ShipCity: 'Reims' },
81
- { OrderID: 10249, CustomerID: 'TOMSP', EmployeeID: 6, ShipCity: 'Münster' },
82
- { OrderID: 10250, CustomerID: 'HANAR', EmployeeID: 4, ShipCity: 'Lyon' }
83
- ];
84
- }
85
- }
15
+ ```sh
16
+ npm install @syncfusion/ej2-angular-spreadsheet
86
17
  ```
87
18
 
88
- ## Supported frameworks
89
-
90
- Spreadsheet component is also offered in the following list of frameworks.
91
-
92
- | [<img src="https://ej2.syncfusion.com/github/images/js.svg" height="50" />](https://www.syncfusion.com/javascript-ui-controls?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[JavaScript](https://www.syncfusion.com/javascript-ui-controls?utm_medium=listing&utm_source=github)&nbsp;&nbsp;&nbsp;&nbsp; | [<img src="https://ej2.syncfusion.com/github/images/react.svg" height="50" />](https://www.syncfusion.com/react-ui-components?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[React](https://www.syncfusion.com/react-ui-components?utm_medium=listing&utm_source=github)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | [<img src="https://ej2.syncfusion.com/github/images/vue.svg" height="50" />](https://www.syncfusion.com/vue-ui-components?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Vue](https://www.syncfusion.com/vue-ui-components?utm_medium=listing&utm_source=github)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | [<img src="https://ej2.syncfusion.com/github/images/netcore.svg" height="50" />](https://www.syncfusion.com/aspnet-core-ui-controls?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;[ASP.NET&nbsp;Core](https://www.syncfusion.com/aspnet-core-ui-controls?utm_medium=listing&utm_source=github)&nbsp;&nbsp; | [<img src="https://ej2.syncfusion.com/github/images/netmvc.svg" height="50" />](https://www.syncfusion.com/aspnet-mvc-ui-controls?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;[ASP.NET&nbsp;MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls?utm_medium=listing&utm_source=github)&nbsp;&nbsp; |
93
- | :-----: | :-----: | :-----: | :-----: | :-----: |
94
-
95
- ## Showcase samples
96
-
97
- * Expense Tracker - [Source](https://github.com/syncfusion/ej2-showcase-angular-expensetracker?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm), [Live Demo](https://ej2.syncfusion.com/showcase/angular/expensetracker/#/dashboard?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm)
98
- * Loan Calculator - [Source](https://github.com/syncfusion/ej2-sample-ng-loancalculator?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm), [Live Demo](https://ej2.syncfusion.com/showcase/angular/loancalculator/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm)
99
- * Fitness Tracker - [Source](https://github.com/SyncfusionExamples/showcase-angular-health-tracker-dashboard-demo), [Live Demo](https://ej2.syncfusion.com/showcase/angular/fitness-tracker-app/)
100
-
101
- ## Key features
102
-
103
- * [Data sources](https://ej2.syncfusion.com/angular/documentation/spreadsheet/data-binding/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#local-data): Bind the Spreadsheet component with an array of objects or data from a web service using [DataManager](https://ej2.syncfusion.com/angular/documentation/data/data-binding/).
104
- * [Virtualization](https://ej2.syncfusion.com/angular/documentation/spreadsheet/scrolling/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#virtual-scrolling): Provides the option to load large amount of data without performance degradation.
105
- * [Selection](https://ej2.syncfusion.com/angular/documentation/spreadsheet/selection/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm): Provides the option to select a cell or range of cells.
106
- * [Editing](https://ej2.syncfusion.com/angular/documentation/spreadsheet/editing/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm): Provides the option to dynamically edit a cell.
107
- * [Formulas](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/formula): Provides built-in calculation library with pre-defined formulas and named range support.
108
- * [Clipboard](https://ej2.syncfusion.com/angular/documentation/spreadsheet/clipboard/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm): Provides the option to perform clipboard operations.
109
- * [Cell formatting](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/cell-formatting): Provides the option to customize the appearance of cells.
110
- * [Number formatting](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/number-formatting): Provides the option to format the cell value.
111
- * [Open](https://ej2.syncfusion.com/angular/documentation/spreadsheet/open-save/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#open): Provides the option to open Excel and CSV files in Spreadsheet.
112
- * [Save](https://ej2.syncfusion.com/angular/documentation/spreadsheet/open-save/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#save): Provides the option to save Spreadsheet data as Excel, CSV, and PDF documents.
113
- * [Sorting](https://ej2.syncfusion.com/angular/documentation/spreadsheet/sort/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#sort-by-cell-value): Helps you to arrange the data to particular order in a selected range of cells.
114
- * [Filtering](https://ej2.syncfusion.com/angular/documentation/spreadsheet/filter/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#apply-filter-on-ui): Helps you to view specific rows in the Spreadsheet by hiding the other rows.
115
- * [Undo Redo](https://ej2.syncfusion.com/angular/documentation/spreadsheet/undo-redo/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm): Provides the option to perform undo redo operations in Spreadsheet.
116
- * [Collaborative editing](https://ej2.syncfusion.com/angular/documentation/spreadsheet/use-cases/collaborative-editing/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm): Provides the option for real time changes across multiple users in the Spreadsheet.
117
- * [Hyperlink](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/hyperlink): Provides the option to navigate to web link or cell reference within the sheet or to other sheet in Spreadsheet.
118
- * [Resize](https://ej2.syncfusion.com/angular/documentation/spreadsheet/mobile-responsiveness/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm): Allows you to change the row height and column width. Auto fit the rows and columns based on its content.
119
- * [Wrap text](https://ej2.syncfusion.com/angular/documentation/spreadsheet/cell-range/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#wrap-text): Provides the option to display the large content as multiple lines in a single cell.
120
- * [Data validation](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/data-validation): Provides the option to validate edited values based on data validation rules defined for a cell or range of cells.
121
- * [Find and replace](https://ej2.syncfusion.com/angular/documentation/spreadsheet/searching/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#find): Provides the option to find the data and replace it across all sheets in Spreadsheet.
122
- * [Protect sheet](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/protect-sheet): Provides the option to restrict user actions like cell editing, row and column insertion, deletion, and resizing.
123
- * [Borders](https://ej2.syncfusion.com/angular/documentation/spreadsheet/formatting/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#borders): Provides the option to customize cell gridlines such as color and its style for enhanced UI.
124
- * [Show/hide](https://ej2.syncfusion.com/angular/documentation/spreadsheet/worksheet/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#sheet-visibility): Provides the option to show/hide rows, columns and sheets.
125
- * [Insert/delete](https://ej2.syncfusion.com/angular/documentation/spreadsheet/rows-and-columns/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#insert): Provides the option to insert/delete rows, columns and sheets.
126
- * [Merge cells](https://ej2.syncfusion.com/angular/documentation/spreadsheet/cell-range/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#merge-cells): Provides the option to combine two or more cells located in the same row or column into a single cell.
127
- * [Conditional formatting](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/conditional-formatting): Provides the option to format a cell or range of cells based on conditions applied.
128
- * [Autofill](https://ej2.syncfusion.com/angular/documentation/spreadsheet/cell-range/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#auto-fill): Provides the option to fill or copy a series or pattern of values and formats into adjacent cells in any direction.
129
- * [Clear](https://ej2.syncfusion.com/angular/documentation/spreadsheet/cell-range/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#clear): Provides the option to clear the content, formats, and hyperlinks applied to a cell or range of cells in a Spreadsheet.
130
- * [Aggregates](https://ej2.syncfusion.com/angular/documentation/spreadsheet/formulas/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm): Provides the option to check the sum, average, count, and more for the selected cells or range in the sheet.
131
- * [Picture](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/image): Allows you to view, insert, and modify a picture in a Spreadsheet with customizing options.
132
- * [Chart](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/chart): Transforms your Spreadsheet data to an intuitive overview for better understanding and to make smart business decisions.
133
- * [Freeze panes](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/freeze-pane): Allows you to keep the specified rows and columns always visible at the top and left side of the sheet while scrolling through the sheet.
134
- * [Password protection](https://ej2.syncfusion.com/angular/documentation/spreadsheet/protect-sheet/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#protect-workbook): Allows you to protect the workbook with a password.
135
- * [Multi-line editing](https://ej2.syncfusion.com/angular/documentation/spreadsheet/editing/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm): Allows you to insert a line break between paragraphs of the text within a cell in a Spreadsheet.
136
- * [Calculate range selection](https://ej2.syncfusion.com/angular/documentation/spreadsheet/selection/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm): Helps you to select a range or multiple ranges when editing a formula in a cell.
137
- * [Right-to-left (RTL)](https://ej2.syncfusion.com/angular/documentation/right-to-left/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm): Aligns content in the Spreadsheet component from right to left.
138
- * [Templates](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/cell-template): Templates can be used to create custom user experiences in the Spreadsheet.
139
- * [Globalization](https://ej2.syncfusion.com/angular/documentation/spreadsheet/global-local/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#localization): Personalize the Spreadsheet component with different languages, as well as culture-specific number, date, and time formatting.
140
- * [Accessibility](https://ej2.syncfusion.com/angular/documentation/spreadsheet/accessibility/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm): Provides with built-in accessibility support which helps to access all the Spreadsheet component features through the keyboard, screen readers, or other assistive technology devices.
19
+ ## Resources
20
+
21
+ * [Product Page](https://www.syncfusion.com/angular-ui-components/angular-spreadsheet?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm)
22
+ * [Getting Started](https://ej2.syncfusion.com/angular/documentation/spreadsheet/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm)
23
+ * [View Online Demos](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm#/material/spreadsheet/default)
24
+
25
+ ## Supported Frameworks
26
+
27
+ Spreadsheet component is also offered in following list of frameworks.
28
+
29
+ 1. [Javascript Spreadsheet](https://www.syncfusion.com/javascript-ui-controls/js-spreadsheet?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm)
30
+ 2. [React Spreadsheet](https://www.syncfusion.com/react-ui-components/react-spreadsheet?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm)
31
+ 3. [VueJS Spreadsheet](https://www.syncfusion.com/vue-ui-components/vue-spreadsheet?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm)
32
+ 4. [ASP.NET Core Spreadsheet](https://www.syncfusion.com/aspnet-core-ui-controls/spreadsheet?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm)
33
+ 5. [ASP.NET MVC Spreadsheet](https://www.syncfusion.com/aspnet-mvc-ui-controls/spreadsheet?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm)
34
+
35
+ ## Key Features
36
+
37
+ - **Data sources** - Bind the spreadsheet component with an array of JavaScript objects or DataManager.
38
+ - **Virtualization** - Provides the option to load large amount of data without performance degradation.
39
+ - **Selection** - Provides the option to select a cell or range of cells.
40
+ - **Editing** - Provides the options to dynamically edit a cell.
41
+ - **Formulas** - Provides built-in calculation library with predefined formulas and named range support.
42
+ - **Clipboard** - Provides the option to perform clipboard operations.
43
+ - **Cell formatting** - Provides option to customize the appearance of cells.
44
+ - **Number formatting** - Provides option to format the cell value.
45
+ - **Open** - Provides the option to open excel file in spreadsheet.
46
+ - **Save** - Provides option to save spreadsheet data as excel file.
47
+ - **Sorting:** Helps you to arrange the data to particular order in a selected range of cells.
48
+ - **Resize:** Allows you to change the row height and column width. Auto fit the rows and columns based on its content.
49
+ - **Wrap text:** Provides the option to display the large content as multiple lines in a single cell.
50
+ - **Data validation:** Provides the option to validate edited values based on data validation rules defined for a cell or range of cells.
51
+ - **Find and Replace:** Provides the option to find the data and replace it across all the sheets in Spreadsheet.
52
+ - **Protect sheet:** Provides the option to restrict the user actions like cell editing, row and column insertion, deletion, and resizing.
53
+ - **Borders:** Provides the option to customize cell gridlines such as color and its style for enhanced UI.
54
+ - **Show/Hide:** Provides the option to show/hide the rows, columns and sheets.
55
+ - **Insert/delete:** Provides the option to insert/delete the rows, columns and sheets.
56
+ - **Merge cells:** Provides option to can combine two or more cells located in the same row or column into a single cell.
57
+ - **Conditional formatting:** Provides option to format a cell or range of cells based on the conditions applied.
58
+ - **Clear:** Provides option to clear the content, formats, and hyperlinks applied to a cell or range of cells in a spreadsheet.
59
+ - **Aggregates:** Provides option to check the sum, average, and count for the selected cells or range in the sheet tab.
60
+ - **Picture:** Allows you to view, insert, and modify a picture in a spreadsheet with customizing options.
61
+ - **Chart:** Transforms your Spreadsheet data to an intuitive overview for better understanding and to make smart business decisions.
62
+ - **Freeze pane:** Allows users to keep the specified rows and columns always visible at the top and left side of the sheet while scrolling through the sheet.
63
+ - **PDF Export:** Allows users to save the spreadsheet data as a PDF document.
64
+ - **Password protection:** Allows users to protect the workbook with a password.
65
+ - **Multi-line editing:** Allows you to insert a line break between paragraphs of the text within a cell in a Spreadsheet.
66
+ - **Range selection helper:** Helps you to select a range or multiple ranges when editing a formula in a cell.
67
+ - **RTL** - Provides right-to-left mode which aligns content in the spreadsheet component from right to left.
68
+ - **Localization** - Provides inherent support to localize the UI.
69
+ - **Accessibility** - Provides with built-in accessibility support which helps to access all the spreadsheet component features through the keyboard, screen readers, or other assistive technology devices.
141
70
 
142
71
  ## Support
143
72
 
144
- Product support is available through the following mediums.
73
+ Product support is available for through following mediums.
145
74
 
146
- * [Support ticket](https://support.syncfusion.com/support/tickets/create) - Guaranteed Response in 24 hours | Unlimited tickets | Holiday support
147
- * [Community forum](https://www.syncfusion.com/forums/angular-js2?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm)
148
- * [GitHub issues](https://github.com/syncfusion/ej2-angular-ui-components/issues/new)
149
- * [Request feature or report bug](https://www.syncfusion.com/feedback/angular?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm)
150
- * Live chat
75
+ * Creating incident in Syncfusion [Direct-trac](https://www.syncfusion.com/support/directtrac/incidents?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm) support system or [Community forum](https://www.syncfusion.com/forums/essential-js2?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm).
76
+ * New [GitHub issue](https://github.com/syncfusion/ej2-angular-ui-components/issues/new?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm).
77
+ * Ask your query in Stack Overflow with tag `syncfusion`, `ej2`.
151
78
 
152
- ## Changelog
79
+ ## License
153
80
 
154
- Check the changelog [here](https://github.com/syncfusion/ej2-angular-ui-components/blob/master/components/spreadsheet/CHANGELOG.md?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm). Get minor improvements and bug fixes every week to stay up to date with frequent updates.
81
+ Check the license detail [here](https://github.com/syncfusion/ej2-javascript-ui-controls/blob/master/license?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm).
155
82
 
156
- ## License and copyright
157
-
158
- > This is a commercial product and requires a paid license for possession or use. Syncfusion’s licensed software, including this component, is subject to the terms and conditions of Syncfusion's [EULA](https://www.syncfusion.com/eula/es/). To acquire a license for 80+ [Angular UI components](https://www.syncfusion.com/angular-components), you can [purchase](https://www.syncfusion.com/sales/products) or [start a free 30-day trial](https://www.syncfusion.com/account/manage-trials/start-trials).
159
-
160
- > A free community [license](https://www.syncfusion.com/products/communitylicense) is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.
83
+ ## Changelog
161
84
 
162
- See [LICENSE FILE](https://github.com/syncfusion/ej2-angular-ui-components/blob/master/license?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm) for more info.
85
+ Check the changelog [here](https://github.com/syncfusion/ej2-angular-ui-components/blob/master/components/spreadsheet/CHANGELOG.md?utm_source=npm&utm_medium=listing&utm_campaign=angular-spreadsheet-npm)
163
86
 
164
87
  © Copyright 2023 Syncfusion, Inc. All Rights Reserved. The Syncfusion Essential Studio license and copyright applies to this distribution.
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
68
68
  },
69
69
  }]
70
70
  }], ctorParameters: function () { return []; } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NwcmVhZHNoZWV0L2NlbGxzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXBELElBQUksS0FBSyxHQUFhLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOUosSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO0FBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFVSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFdBQTBCO0lBNEV6RCxZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBdkU5QyxTQUFJLEdBQWEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUF5RXZDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7OzBHQWpGUSxhQUFhOzhGQUFiLGFBQWEsOFZBSlcsZUFBZSw2RUFDZixlQUFlOzJGQUd2QyxhQUFhO2tCQVR6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLE1BQU0sRUFBRSxLQUFLO29CQUNiLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUU7d0JBQ0wsVUFBVSxFQUFFLElBQUksWUFBWSxDQUFDLGVBQWUsQ0FBQzt3QkFDN0MsVUFBVSxFQUFFLElBQUksWUFBWSxDQUFDLGVBQWUsQ0FBQztxQkFDaEQ7aUJBQ0o7O0FBcUZEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBeUI7SUFDekQ7UUFDSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsQ0FBQzs7MkdBSFEsY0FBYzsrRkFBZCxjQUFjLDhFQUhXLGFBQWE7MkZBR3RDLGNBQWM7a0JBTjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLE9BQU8sRUFBRTt3QkFDTCxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsYUFBYSxDQUFDO3FCQUMvQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiwgQ29udGVudENoaWxkcmVuLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cbmltcG9ydCB7IEltYWdlc0RpcmVjdGl2ZSB9IGZyb20gJy4vaW1hZ2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IENoYXJ0c0RpcmVjdGl2ZSB9IGZyb20gJy4vY2hhcnQuZGlyZWN0aXZlJztcblxubGV0IGlucHV0OiBzdHJpbmdbXSA9IFsnY2hhcnQnLCAnY29sU3BhbicsICdmb3JtYXQnLCAnZm9ybXVsYScsICdoeXBlcmxpbmsnLCAnaW1hZ2UnLCAnaW5kZXgnLCAnaXNMb2NrZWQnLCAncm93U3BhbicsICdzdHlsZScsICd2YWxpZGF0aW9uJywgJ3ZhbHVlJywgJ3dyYXAnXTtcbmxldCBvdXRwdXRzOiBzdHJpbmdbXSA9IFtdO1xuLyoqXG4gKiBgZS1jZWxsYCBkaXJlY3RpdmUgcmVwcmVzZW50IGEgY2VsbCBvZiB0aGUgQW5ndWxhciBTcHJlYWRzaGVldC5cbiAqIEl0IG11c3QgYmUgY29udGFpbmVkIGluIGEgYGUtcm93YCBkaXJlY3RpdmUuXG4gKiBgYGBodG1sXG4gKiA8ZWpzLXNwcmVhZHNoZWV0PlxuICogICA8ZS1zaGVldHM+XG4gKiAgICA8ZS1zaGVldD5cbiAqICAgIDxlLXJvd3M+XG4gKiAgICA8ZS1yb3c+XG4gKiAgICA8ZS1jZWxscz5cbiAqICAgIDxlLWNlbGwgdmFsdWU9J0ExJz48L2UtY2VsbD5cbiAqICAgIDwvZS1jZWxscz5cbiAqICAgIDwvZS1yb3c+XG4gKiAgICA8L2Utcm93cz5cbiAqICAgIDwvZS1zaGVldD5cbiAqICAgPC9lLXNoZWV0cz5cbiAqIDwvZWpzLXNwcmVhZHNoZWV0PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZS1jZWxscz5lLWNlbGwnLFxuICAgIGlucHV0czogaW5wdXQsXG4gICAgb3V0cHV0czogb3V0cHV0cywgICAgXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZEltYWdlOiBuZXcgQ29udGVudENoaWxkKEltYWdlc0RpcmVjdGl2ZSksIFxuICAgICAgICBjaGlsZENoYXJ0OiBuZXcgQ29udGVudENoaWxkKENoYXJ0c0RpcmVjdGl2ZSlcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIENlbGxEaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxDZWxsRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuICAgIHB1YmxpYyBjaGlsZEltYWdlOiBhbnk7XG4gICAgcHVibGljIGNoaWxkQ2hhcnQ6IGFueTtcbiAgICBwdWJsaWMgdGFnczogc3RyaW5nW10gPSBbJ2ltYWdlJywgJ2NoYXJ0J107XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgY2hhcnQgb2YgdGhlIGNlbGwuXG4gICAgICogQGRlZmF1bHQgW11cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hhcnQ6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBjb2x1bW4td2lzZSBjZWxsIG1lcmdlIGNvdW50LlxuICAgICAqIEBkZWZhdWx0IDFcbiAgICAgKiBAYXNwdHlwZSBpbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29sU3BhbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIG51bWJlciBmb3JtYXQgY29kZSB0byBkaXNwbGF5IHZhbHVlIGluIHNwZWNpZmllZCBudW1iZXIgZm9ybWF0LlxuICAgICAqIEBkZWZhdWx0ICdHZW5lcmFsJ1xuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtYXQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZm9ybXVsYSBvciBleHByZXNzaW9uIG9mIHRoZSBjZWxsLlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIGZvcm11bGE6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBoeXBlcmxpbmsgb2YgdGhlIGNlbGwuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgaHlwZXJsaW5rOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgaW1hZ2Ugb2YgdGhlIGNlbGwuXG4gICAgICogQGRlZmF1bHQgW11cbiAgICAgKi9cbiAgICBwdWJsaWMgaW1hZ2U6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBpbmRleCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICogQGFzcHR5cGUgaW50XG4gICAgICovXG4gICAgcHVibGljIGluZGV4OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgY2VsbCBpcyBsb2NrZWQgb3Igbm90LCBmb3IgYWxsb3cgZWRpdCByYW5nZSBpbiBzcHJlYWRzaGVldCBwcm90ZWN0IG9wdGlvbi5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIGlzTG9ja2VkOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgcm93LXdpc2UgY2VsbCBtZXJnZSBjb3VudC5cbiAgICAgKiBAZGVmYXVsdCAxXG4gICAgICogQGFzcHR5cGUgaW50XG4gICAgICovXG4gICAgcHVibGljIHJvd1NwYW46IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBjZWxsIHN0eWxlIG9wdGlvbnMuIFxuICAgICAqICBcbiAgICAgKiBAZGVmYXVsdCB7fVxuICAgICAqL1xuICAgIHB1YmxpYyBzdHlsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHZhbGlkYXRpb24gb2YgdGhlIGNlbGwuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGlvbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB2YWx1ZSBvZiB0aGUgY2VsbCB3aGljaCBjYW4gYmUgdGV4dCBvciBudW1iZXIuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsdWU6IGFueTtcbiAgICAvKiogXG4gICAgICogV3JhcHMgdGhlIGNlbGwgdGV4dCB0byB0aGUgbmV4dCBsaW5lLCBpZiB0aGUgdGV4dCB3aWR0aCBleGNlZWRzIHRoZSBjb2x1bW4gd2lkdGguXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JhcDogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogQ2VsbCBBcnJheSBEaXJlY3RpdmVcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZS1yb3c+ZS1jZWxscycsXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZHJlbjogbmV3IENvbnRlbnRDaGlsZHJlbihDZWxsRGlyZWN0aXZlKVxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIENlbGxzRGlyZWN0aXZlIGV4dGVuZHMgQXJyYXlCYXNlPENlbGxzRGlyZWN0aXZlPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdjZWxscycpO1xuICAgIH1cbn0iXX0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NwcmVhZHNoZWV0L2NlbGxzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXBELElBQUksS0FBSyxHQUFhLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDOUosSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO0FBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFVSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFdBQTBCO0lBNEV6RCxZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBdkU5QyxTQUFJLEdBQWEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUF5RXZDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7OzBHQWpGUSxhQUFhOzhGQUFiLGFBQWEsOFZBSlcsZUFBZSw2RUFDZixlQUFlOzJGQUd2QyxhQUFhO2tCQVR6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLE1BQU0sRUFBRSxLQUFLO29CQUNiLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUU7d0JBQ0wsVUFBVSxFQUFFLElBQUksWUFBWSxDQUFDLGVBQWUsQ0FBQzt3QkFDN0MsVUFBVSxFQUFFLElBQUksWUFBWSxDQUFDLGVBQWUsQ0FBQztxQkFDaEQ7aUJBQ0o7O0FBcUZEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBeUI7SUFDekQ7UUFDSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsQ0FBQzs7MkdBSFEsY0FBYzsrRkFBZCxjQUFjLDhFQUhXLGFBQWE7MkZBR3RDLGNBQWM7a0JBTjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLE9BQU8sRUFBRTt3QkFDTCxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsYUFBYSxDQUFDO3FCQUMvQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiwgQ29udGVudENoaWxkcmVuLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cbmltcG9ydCB7IEltYWdlc0RpcmVjdGl2ZSB9IGZyb20gJy4vaW1hZ2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IENoYXJ0c0RpcmVjdGl2ZSB9IGZyb20gJy4vY2hhcnQuZGlyZWN0aXZlJztcblxubGV0IGlucHV0OiBzdHJpbmdbXSA9IFsnY2hhcnQnLCAnY29sU3BhbicsICdmb3JtYXQnLCAnZm9ybXVsYScsICdoeXBlcmxpbmsnLCAnaW1hZ2UnLCAnaW5kZXgnLCAnaXNMb2NrZWQnLCAncm93U3BhbicsICdzdHlsZScsICd2YWxpZGF0aW9uJywgJ3ZhbHVlJywgJ3dyYXAnXTtcbmxldCBvdXRwdXRzOiBzdHJpbmdbXSA9IFtdO1xuLyoqXG4gKiBgZS1jZWxsYCBkaXJlY3RpdmUgcmVwcmVzZW50IGEgY2VsbCBvZiB0aGUgQW5ndWxhciBTcHJlYWRzaGVldC5cbiAqIEl0IG11c3QgYmUgY29udGFpbmVkIGluIGEgYGUtcm93YCBkaXJlY3RpdmUuXG4gKiBgYGBodG1sXG4gKiA8ZWpzLXNwcmVhZHNoZWV0PlxuICogICA8ZS1zaGVldHM+XG4gKiAgICA8ZS1zaGVldD5cbiAqICAgIDxlLXJvd3M+XG4gKiAgICA8ZS1yb3c+XG4gKiAgICA8ZS1jZWxscz5cbiAqICAgIDxlLWNlbGwgdmFsdWU9J0ExJz48L2UtY2VsbD5cbiAqICAgIDwvZS1jZWxscz5cbiAqICAgIDwvZS1yb3c+XG4gKiAgICA8L2Utcm93cz5cbiAqICAgIDwvZS1zaGVldD5cbiAqICAgPC9lLXNoZWV0cz5cbiAqIDwvZWpzLXNwcmVhZHNoZWV0PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZS1jZWxscz5lLWNlbGwnLFxuICAgIGlucHV0czogaW5wdXQsXG4gICAgb3V0cHV0czogb3V0cHV0cywgICAgXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZEltYWdlOiBuZXcgQ29udGVudENoaWxkKEltYWdlc0RpcmVjdGl2ZSksIFxuICAgICAgICBjaGlsZENoYXJ0OiBuZXcgQ29udGVudENoaWxkKENoYXJ0c0RpcmVjdGl2ZSlcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIENlbGxEaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxDZWxsRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuICAgIHB1YmxpYyBjaGlsZEltYWdlOiBhbnk7XG4gICAgcHVibGljIGNoaWxkQ2hhcnQ6IGFueTtcbiAgICBwdWJsaWMgdGFnczogc3RyaW5nW10gPSBbJ2ltYWdlJywgJ2NoYXJ0J107XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgY2hhcnQgb2YgdGhlIGNlbGwuXG4gICAgICogQGRlZmF1bHQgW11cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hhcnQ6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBjb2x1bW4td2lzZSBjZWxsIG1lcmdlIGNvdW50LlxuICAgICAqIEBkZWZhdWx0IDFcbiAgICAgKiBAYXNwdHlwZSBpbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29sU3BhbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIG51bWJlciBmb3JtYXQgY29kZSB0byBkaXNwbGF5IHZhbHVlIGluIHNwZWNpZmllZCBudW1iZXIgZm9ybWF0LlxuICAgICAqIEBkZWZhdWx0ICdHZW5lcmFsJ1xuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtYXQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZm9ybXVsYSBvciBleHByZXNzaW9uIG9mIHRoZSBjZWxsLlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIGZvcm11bGE6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBoeXBlcmxpbmsgb2YgdGhlIGNlbGwuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgaHlwZXJsaW5rOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgaW1hZ2Ugb2YgdGhlIGNlbGwuXG4gICAgICogQGRlZmF1bHQgW11cbiAgICAgKi9cbiAgICBwdWJsaWMgaW1hZ2U6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBpbmRleCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICogQGFzcHR5cGUgaW50XG4gICAgICovXG4gICAgcHVibGljIGluZGV4OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgY2VsbCBpcyBsb2NrZWQgb3Igbm90LCBmb3IgYWxsb3cgZWRpdCByYW5nZSBpbiBzcHJlYWRzaGVldCBwcm90ZWN0IG9wdGlvbi5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGlzTG9ja2VkOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgcm93LXdpc2UgY2VsbCBtZXJnZSBjb3VudC5cbiAgICAgKiBAZGVmYXVsdCAxXG4gICAgICogQGFzcHR5cGUgaW50XG4gICAgICovXG4gICAgcHVibGljIHJvd1NwYW46IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBjZWxsIHN0eWxlIG9wdGlvbnMuIFxuICAgICAqICBcbiAgICAgKiBAZGVmYXVsdCB7fVxuICAgICAqL1xuICAgIHB1YmxpYyBzdHlsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHZhbGlkYXRpb24gb2YgdGhlIGNlbGwuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGlvbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSB2YWx1ZSBvZiB0aGUgY2VsbCB3aGljaCBjYW4gYmUgdGV4dCBvciBudW1iZXIuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsdWU6IGFueTtcbiAgICAvKiogXG4gICAgICogV3JhcHMgdGhlIGNlbGwgdGV4dCB0byB0aGUgbmV4dCBsaW5lLCBpZiB0aGUgdGV4dCB3aWR0aCBleGNlZWRzIHRoZSBjb2x1bW4gd2lkdGguXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgd3JhcDogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogQ2VsbCBBcnJheSBEaXJlY3RpdmVcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZS1yb3c+ZS1jZWxscycsXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZHJlbjogbmV3IENvbnRlbnRDaGlsZHJlbihDZWxsRGlyZWN0aXZlKVxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIENlbGxzRGlyZWN0aXZlIGV4dGVuZHMgQXJyYXlCYXNlPENlbGxzRGlyZWN0aXZlPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdjZWxscycpO1xuICAgIH1cbn0iXX0=
@@ -6,7 +6,7 @@ import { Template } from '@syncfusion/ej2-angular-base';
6
6
  import { SheetsDirective } from './sheets.directive';
7
7
  import { DefinedNamesDirective } from './definednames.directive';
8
8
  import * as i0 from "@angular/core";
9
- export const inputs = ['activeSheetIndex', 'allowAutoFill', 'allowCellFormatting', 'allowChart', 'allowConditionalFormat', 'allowDataValidation', 'allowDelete', 'allowEditing', 'allowFiltering', 'allowFindAndReplace', 'allowFreezePane', 'allowHyperlink', 'allowImage', 'allowInsert', 'allowMerge', 'allowNumberFormatting', 'allowOpen', 'allowResizing', 'allowSave', 'allowScrolling', 'allowSorting', 'allowUndoRedo', 'allowWrap', 'autoFillSettings', 'cellStyle', 'cssClass', 'currencyCode', 'definedNames', 'enableClipboard', 'enableContextMenu', 'enableKeyboardNavigation', 'enableKeyboardShortcut', 'enablePersistence', 'enableRtl', 'height', 'isProtected', 'locale', 'openUrl', 'password', 'saveUrl', 'scrollSettings', 'selectionSettings', 'sheets', 'showAggregate', 'showFormulaBar', 'showRibbon', 'showSheetTabs', 'width'];
9
+ export const inputs = ['activeSheetIndex', 'allowAutoFill', 'allowCellFormatting', 'allowChart', 'allowConditionalFormat', 'allowDataValidation', 'allowDelete', 'allowEditing', 'allowFiltering', 'allowFindAndReplace', 'allowFreezePane', 'allowHyperlink', 'allowImage', 'allowInsert', 'allowMerge', 'allowNumberFormatting', 'allowOpen', 'allowResizing', 'allowSave', 'allowScrolling', 'allowSorting', 'allowUndoRedo', 'allowWrap', 'autoFillSettings', 'cellStyle', 'cssClass', 'definedNames', 'enableClipboard', 'enableContextMenu', 'enableKeyboardNavigation', 'enableKeyboardShortcut', 'enablePersistence', 'enableRtl', 'height', 'isProtected', 'locale', 'openUrl', 'password', 'saveUrl', 'scrollSettings', 'selectionSettings', 'sheets', 'showAggregate', 'showFormulaBar', 'showRibbon', 'showSheetTabs', 'width'];
10
10
  export const outputs = ['actionBegin', 'actionComplete', 'afterHyperlinkClick', 'afterHyperlinkCreate', 'beforeCellFormat', 'beforeCellRender', 'beforeCellSave', 'beforeCellUpdate', 'beforeConditionalFormat', 'beforeDataBound', 'beforeHyperlinkClick', 'beforeHyperlinkCreate', 'beforeOpen', 'beforeSave', 'beforeSelect', 'beforeSort', 'cellEdit', 'cellEditing', 'cellSave', 'contextMenuBeforeClose', 'contextMenuBeforeOpen', 'contextMenuItemSelect', 'created', 'dataBound', 'dataSourceChanged', 'dialogBeforeOpen', 'fileMenuBeforeClose', 'fileMenuBeforeOpen', 'fileMenuItemSelect', 'openComplete', 'openFailure', 'queryCellInfo', 'saveComplete', 'select', 'sortComplete'];
11
11
  export const twoWays = [''];
12
12
  /**
@@ -174,7 +174,7 @@ let SpreadsheetComponent = class SpreadsheetComponent extends Spreadsheet {
174
174
  }
175
175
  };
176
176
  SpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
177
- SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: SpreadsheetComponent, selector: "ejs-spreadsheet", inputs: { activeSheetIndex: "activeSheetIndex", allowAutoFill: "allowAutoFill", allowCellFormatting: "allowCellFormatting", allowChart: "allowChart", allowConditionalFormat: "allowConditionalFormat", allowDataValidation: "allowDataValidation", allowDelete: "allowDelete", allowEditing: "allowEditing", allowFiltering: "allowFiltering", allowFindAndReplace: "allowFindAndReplace", allowFreezePane: "allowFreezePane", allowHyperlink: "allowHyperlink", allowImage: "allowImage", allowInsert: "allowInsert", allowMerge: "allowMerge", allowNumberFormatting: "allowNumberFormatting", allowOpen: "allowOpen", allowResizing: "allowResizing", allowSave: "allowSave", allowScrolling: "allowScrolling", allowSorting: "allowSorting", allowUndoRedo: "allowUndoRedo", allowWrap: "allowWrap", autoFillSettings: "autoFillSettings", cellStyle: "cellStyle", cssClass: "cssClass", currencyCode: "currencyCode", definedNames: "definedNames", enableClipboard: "enableClipboard", enableContextMenu: "enableContextMenu", enableKeyboardNavigation: "enableKeyboardNavigation", enableKeyboardShortcut: "enableKeyboardShortcut", enablePersistence: "enablePersistence", enableRtl: "enableRtl", height: "height", isProtected: "isProtected", locale: "locale", openUrl: "openUrl", password: "password", saveUrl: "saveUrl", scrollSettings: "scrollSettings", selectionSettings: "selectionSettings", sheets: "sheets", showAggregate: "showAggregate", showFormulaBar: "showFormulaBar", showRibbon: "showRibbon", showSheetTabs: "showSheetTabs", width: "width" }, outputs: { actionBegin: "actionBegin", actionComplete: "actionComplete", afterHyperlinkClick: "afterHyperlinkClick", afterHyperlinkCreate: "afterHyperlinkCreate", beforeCellFormat: "beforeCellFormat", beforeCellRender: "beforeCellRender", beforeCellSave: "beforeCellSave", beforeCellUpdate: "beforeCellUpdate", beforeConditionalFormat: "beforeConditionalFormat", beforeDataBound: "beforeDataBound", beforeHyperlinkClick: "beforeHyperlinkClick", beforeHyperlinkCreate: "beforeHyperlinkCreate", beforeOpen: "beforeOpen", beforeSave: "beforeSave", beforeSelect: "beforeSelect", beforeSort: "beforeSort", cellEdit: "cellEdit", cellEditing: "cellEditing", cellSave: "cellSave", contextMenuBeforeClose: "contextMenuBeforeClose", contextMenuBeforeOpen: "contextMenuBeforeOpen", contextMenuItemSelect: "contextMenuItemSelect", created: "created", dataBound: "dataBound", dataSourceChanged: "dataSourceChanged", dialogBeforeOpen: "dialogBeforeOpen", fileMenuBeforeClose: "fileMenuBeforeClose", fileMenuBeforeOpen: "fileMenuBeforeOpen", fileMenuItemSelect: "fileMenuItemSelect", openComplete: "openComplete", openFailure: "openFailure", queryCellInfo: "queryCellInfo", saveComplete: "saveComplete", select: "select", sortComplete: "sortComplete" }, queries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }, { propertyName: "childSheets", first: true, predicate: SheetsDirective, descendants: true }, { propertyName: "childDefinedNames", first: true, predicate: DefinedNamesDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
177
+ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: SpreadsheetComponent, selector: "ejs-spreadsheet", inputs: { activeSheetIndex: "activeSheetIndex", allowAutoFill: "allowAutoFill", allowCellFormatting: "allowCellFormatting", allowChart: "allowChart", allowConditionalFormat: "allowConditionalFormat", allowDataValidation: "allowDataValidation", allowDelete: "allowDelete", allowEditing: "allowEditing", allowFiltering: "allowFiltering", allowFindAndReplace: "allowFindAndReplace", allowFreezePane: "allowFreezePane", allowHyperlink: "allowHyperlink", allowImage: "allowImage", allowInsert: "allowInsert", allowMerge: "allowMerge", allowNumberFormatting: "allowNumberFormatting", allowOpen: "allowOpen", allowResizing: "allowResizing", allowSave: "allowSave", allowScrolling: "allowScrolling", allowSorting: "allowSorting", allowUndoRedo: "allowUndoRedo", allowWrap: "allowWrap", autoFillSettings: "autoFillSettings", cellStyle: "cellStyle", cssClass: "cssClass", definedNames: "definedNames", enableClipboard: "enableClipboard", enableContextMenu: "enableContextMenu", enableKeyboardNavigation: "enableKeyboardNavigation", enableKeyboardShortcut: "enableKeyboardShortcut", enablePersistence: "enablePersistence", enableRtl: "enableRtl", height: "height", isProtected: "isProtected", locale: "locale", openUrl: "openUrl", password: "password", saveUrl: "saveUrl", scrollSettings: "scrollSettings", selectionSettings: "selectionSettings", sheets: "sheets", showAggregate: "showAggregate", showFormulaBar: "showFormulaBar", showRibbon: "showRibbon", showSheetTabs: "showSheetTabs", width: "width" }, outputs: { actionBegin: "actionBegin", actionComplete: "actionComplete", afterHyperlinkClick: "afterHyperlinkClick", afterHyperlinkCreate: "afterHyperlinkCreate", beforeCellFormat: "beforeCellFormat", beforeCellRender: "beforeCellRender", beforeCellSave: "beforeCellSave", beforeCellUpdate: "beforeCellUpdate", beforeConditionalFormat: "beforeConditionalFormat", beforeDataBound: "beforeDataBound", beforeHyperlinkClick: "beforeHyperlinkClick", beforeHyperlinkCreate: "beforeHyperlinkCreate", beforeOpen: "beforeOpen", beforeSave: "beforeSave", beforeSelect: "beforeSelect", beforeSort: "beforeSort", cellEdit: "cellEdit", cellEditing: "cellEditing", cellSave: "cellSave", contextMenuBeforeClose: "contextMenuBeforeClose", contextMenuBeforeOpen: "contextMenuBeforeOpen", contextMenuItemSelect: "contextMenuItemSelect", created: "created", dataBound: "dataBound", dataSourceChanged: "dataSourceChanged", dialogBeforeOpen: "dialogBeforeOpen", fileMenuBeforeClose: "fileMenuBeforeClose", fileMenuBeforeOpen: "fileMenuBeforeOpen", fileMenuItemSelect: "fileMenuItemSelect", openComplete: "openComplete", openFailure: "openFailure", queryCellInfo: "queryCellInfo", saveComplete: "saveComplete", select: "select", sortComplete: "sortComplete" }, queries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }, { propertyName: "childSheets", first: true, predicate: SheetsDirective, descendants: true }, { propertyName: "childDefinedNames", first: true, predicate: DefinedNamesDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
178
178
  __decorate([
179
179
  Template()
180
180
  ], SpreadsheetComponent.prototype, "template", void 0);
@@ -199,4 +199,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
199
199
  type: ContentChild,
200
200
  args: ['template']
201
201
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByZWFkc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NwcmVhZHNoZWV0L3NwcmVhZHNoZWV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0MsdUJBQXVCLEVBQWlELFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SixPQUFPLEVBQUUsYUFBYSxFQUErQixlQUFlLEVBQTBCLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUVqRSxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQWEsQ0FBQyxrQkFBa0IsRUFBQyxlQUFlLEVBQUMscUJBQXFCLEVBQUMsWUFBWSxFQUFDLHdCQUF3QixFQUFDLHFCQUFxQixFQUFDLGFBQWEsRUFBQyxjQUFjLEVBQUMsZ0JBQWdCLEVBQUMscUJBQXFCLEVBQUMsaUJBQWlCLEVBQUMsZ0JBQWdCLEVBQUMsWUFBWSxFQUFDLGFBQWEsRUFBQyxZQUFZLEVBQUMsdUJBQXVCLEVBQUMsV0FBVyxFQUFDLGVBQWUsRUFBQyxXQUFXLEVBQUMsZ0JBQWdCLEVBQUMsY0FBYyxFQUFDLGVBQWUsRUFBQyxXQUFXLEVBQUMsa0JBQWtCLEVBQUMsV0FBVyxFQUFDLFVBQVUsRUFBQyxjQUFjLEVBQUMsY0FBYyxFQUFDLGlCQUFpQixFQUFDLG1CQUFtQixFQUFDLDBCQUEwQixFQUFDLHdCQUF3QixFQUFDLG1CQUFtQixFQUFDLFdBQVcsRUFBQyxRQUFRLEVBQUMsYUFBYSxFQUFDLFFBQVEsRUFBQyxTQUFT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aW5lclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyLCBJbmplY3RvciwgVmFsdWVQcm92aWRlciwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRCYXNlLCBJQ29tcG9uZW50QmFzZSwgYXBwbHlNaXhpbnMsIENvbXBvbmVudE1peGlucywgUHJvcGVydHlDb2xsZWN0aW9uSW5mbywgc2V0VmFsdWUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IFNwcmVhZHNoZWV0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLXNwcmVhZHNoZWV0JztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5pbXBvcnQgeyBTaGVldHNEaXJlY3RpdmUgfSBmcm9tICcuL3NoZWV0cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGVmaW5lZE5hbWVzRGlyZWN0aXZlIH0gZnJvbSAnLi9kZWZpbmVkbmFtZXMuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IGlucHV0czogc3RyaW5nW10gPSBbJ2FjdGl2ZVNoZWV0SW5kZXgnLCdhbGxvd0F1dG9GaWxsJywnYWxsb3dDZWxsRm9ybWF0dGluZycsJ2FsbG93Q2hhcnQnLCdhbGxvd0NvbmRpdGlvbmFsRm9ybWF0JywnYWxsb3dEYXRhVmFsaWRhdGlvbicsJ2FsbG93RGVsZXRlJywnYWxsb3dFZGl0aW5nJywnYWxsb3dGaWx0ZXJpbmcnLCdhbGxvd0ZpbmRBbmRSZXBsYWNlJywnYWxsb3dGcmVlemVQYW5lJywnYWxsb3dIeXBlcmxpbmsnLCdhbGxvd0ltYWdlJywnYWxsb3dJbnNlcnQnLCdhbGxvd01lcmdlJywnYWxsb3dOdW1iZXJGb3JtYXR0aW5nJywnYWxsb3dPcGVuJywnYWxsb3dSZXNpemluZycsJ2FsbG93U2F2ZScsJ2FsbG93U2Nyb2xsaW5nJywnYWxsb3dTb3J0aW5nJywnYWxsb3dVbmRvUmVkbycsJ2FsbG93V3JhcCcsJ2F1dG9GaWxsU2V0dGluZ3MnLCdjZWxsU3R5bGUnLCdjc3NDbGFzcycsJ2N1cnJlbmN5Q29kZScsJ2RlZmluZWROYW1lcycsJ2VuYWJsZUNsaXBib2FyZCcsJ2VuYWJsZUNvbnRleHRNZW51JywnZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uJywnZW5hYmxlS2V5Ym9hcmRTaG9ydGN1dCcsJ2VuYWJsZVBlcnNpc3RlbmNlJywnZW5hYmxlUnRsJywnaGVpZ2h0JywnaXNQcm90ZWN0ZWQnLCdsb2NhbGUnLCdvcGVuVXJsJywncGFzc3dvcmQnLCdzYXZlVXJsJywnc2Nyb2xsU2V0dGluZ3MnLCdzZWxlY3Rpb25TZXR0aW5ncycsJ3NoZWV0cycsJ3Nob3dBZ2dyZWdhdGUnLCdzaG93Rm9ybXVsYUJhcicsJ3Nob3dSaWJib24nLCdzaG93U2hlZXRUYWJzJywnd2lkdGgnXTtcbmV4cG9ydCBjb25zdCBvdXRwdXRzOiBzdHJpbmdbXSA9IFsnYWN0aW9uQmVnaW4nLCdhY3Rpb25Db21wbGV0ZScsJ2FmdGVySHlwZXJsaW5rQ2xpY2snLCdhZnRlckh5cGVybGlua0NyZWF0ZScsJ2JlZm9yZUNlbGxGb3JtYXQnLCdiZWZvcmVDZWxsUmVuZGVyJywnYmVmb3JlQ2VsbFNhdmUnLCdiZWZvcmVDZWxsVXBkYXRlJywnYmVmb3JlQ29uZGl0aW9uYWxGb3JtYXQnLCdiZWZvcmVEYXRhQm91bmQnLCdiZWZvcmVIeXBlcmxpbmtDbGljaycsJ2JlZm9yZUh5cGVybGlua0NyZWF0ZScsJ2JlZm9yZU9wZW4nLCdiZWZvcmVTYXZlJywnYmVmb3JlU2VsZWN0JywnYmVmb3JlU29ydCcsJ2NlbGxFZGl0JywnY2VsbEVkaXRpbmcnLCdjZWxsU2F2ZScsJ2NvbnRleHRNZW51QmVmb3JlQ2xvc2UnLCdjb250ZXh0TWVudUJlZm9yZU9wZW4nLCdjb250ZXh0TWVudUl0ZW1TZWxlY3QnLCdjcmVhdGVkJywnZGF0YUJvdW5kJywnZGF0YVNvdXJjZUNoYW5nZWQnLCdkaWFsb2dCZWZvcmVPcGVuJywnZmlsZU1lbnVCZWZvcmVDbG9zZScsJ2ZpbGVNZW51QmVmb3JlT3BlbicsJ2ZpbGVNZW51SXRlbVNlbGVjdCcsJ29wZW5Db21wbGV0ZScsJ29wZW5GYWlsdXJlJywncXVlcnlDZWxsSW5mbycsJ3NhdmVDb21wbGV0ZScsJ3NlbGVjdCcsJ3NvcnRDb21wbGV0ZSddO1xuZXhwb3J0IGNvbnN0IHR3b1dheXM6IHN0cmluZ1tdID0gWycnXTtcblxuLyoqXG4gKiBgZWpzLXNwcmVhZHNoZWV0YCByZXByZXNlbnRzIHRoZSBBbmd1bGFyIFNwcmVhZHNoZWV0IENvbXBvbmVudC5cbiAqIGBgYGh0bWxcbiAqIDxlanMtc3ByZWFkc2hlZXQ+PC9lanMtc3ByZWFkc2hlZXQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlanMtc3ByZWFkc2hlZXQnLFxuICAgIGlucHV0czogaW5wdXRzLFxuICAgIG91dHB1dHM6IG91dHB1dHMsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgICAgY2hpbGRTaGVldHM6IG5ldyBDb250ZW50Q2hpbGQoU2hlZXRzRGlyZWN0aXZlKSwgXG4gICAgICAgIGNoaWxkRGVmaW5lZE5hbWVzOiBuZXcgQ29udGVudENoaWxkKERlZmluZWROYW1lc0RpcmVjdGl2ZSlcbiAgICB9XG59KVxuQENvbXBvbmVudE1peGlucyhbQ29tcG9uZW50QmFzZV0pXG5leHBvcnQgY2xhc3MgU3ByZWFkc2hlZXRDb21wb25lbnQgZXh0ZW5kcyBTcHJlYWRzaGVldCBpbXBsZW1lbnRzIElDb21wb25lbnRCYXNlIHtcbiAgICBwdWJsaWMgY29udGV4dCA6IGFueTtcbiAgICBwdWJsaWMgdGFnT2JqZWN0czogYW55O1xuXHRhY3Rpb25CZWdpbjogYW55O1xuXHRhY3Rpb25Db21wbGV0ZTogYW55O1xuXHRhZnRlckh5cGVybGlua0NsaWNrOiBhbnk7XG5cdGFmdGVySHlwZXJsaW5rQ3JlYXRlOiBhbnk7XG5cdGJlZm9yZUNlbGxGb3JtYXQ6IGFueTtcblx0YmVmb3JlQ2VsbFJlbmRlcjogYW55O1xuXHRiZWZvcmVDZWxsU2F2ZTogYW55O1xuXHRiZWZvcmVDZWxsVXBkYXRlOiBhbnk7XG5cdGJlZm9yZUNvbmRpdGlvbmFsRm9ybWF0OiBhbnk7XG5cdGJlZm9yZURhdGFCb3VuZDogYW55O1xuXHRiZWZvcmVIeXBlcmxpbmtDbGljazogYW55O1xuXHRiZWZvcmVIeXBlcmxpbmtDcmVhdGU6IGFueTtcblx0YmVmb3JlT3BlbjogYW55O1xuXHRiZWZvcmVTYXZlOiBhbnk7XG5cdGJlZm9yZVNlbGVjdDogYW55O1xuXHRiZWZvcmVTb3J0OiBhbnk7XG5cdGNlbGxFZGl0OiBhbnk7XG5cdGNlbGxFZGl0aW5nOiBhbnk7XG5cdGNlbGxTYXZlOiBhbnk7XG5cdGNvbnRleHRNZW51QmVmb3JlQ2xvc2U6IGFueTtcblx0Y29udGV4dE1lbnVCZWZvcmVPcGVuOiBhbnk7XG5cdGNvbnRleHRNZW51SXRlbVNlbGVjdDogYW55O1xuXHRjcmVhdGVkOiBhbnk7XG5cdGRhdGFCb3VuZDogYW55O1xuXHRkYXRhU291cmNlQ2hhbmdlZDogYW55O1xuXHRkaWFsb2dCZWZvcmVPcGVuOiBhbnk7XG5cdGZpbGVNZW51QmVmb3JlQ2xvc2U6IGFueTtcblx0ZmlsZU1lbnVCZWZvcmVPcGVuOiBhbnk7XG5cdGZpbGVNZW51SXRlbVNlbGVjdDogYW55O1xuXHRvcGVuQ29tcGxldGU6IGFueTtcblx0b3BlbkZhaWx1cmU6IGFueTtcblx0cXVlcnlDZWxsSW5mbzogYW55O1xuXHRzYXZlQ29tcGxldGU6IGFueTtcblx0c2VsZWN0OiBhbnk7XG5cdHB1YmxpYyBzb3J0Q29tcGxldGU6IGFueTtcbiAgICBwdWJsaWMgY2hpbGRTaGVldHM6IFF1ZXJ5TGlzdDxTaGVldHNEaXJlY3RpdmU+O1xuICAgIHB1YmxpYyBjaGlsZERlZmluZWROYW1lczogUXVlcnlMaXN0PERlZmluZWROYW1lc0RpcmVjdGl2ZT47XG4gICAgcHVibGljIHRhZ3M6IHN0cmluZ1tdID0gWydzaGVldHMnLCAnZGVmaW5lZE5hbWVzJ107XG4gICAgQENvbnRlbnRDaGlsZCgndGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHRlbXBsYXRlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nRWxlOiBFbGVtZW50UmVmLCBwcml2YXRlIHNyZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6Vmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gdGhpcy5uZ0VsZS5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcyA9IHRoaXMuaW5qZWN0ZWRNb2R1bGVzIHx8IFtdO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRDbGlwYm9hcmQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1NwcmVhZHNoZWV0RWRpdCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRLZXlib2FyZE5hdmlnYXRpb24nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1NwcmVhZHNoZWV0S2V5Ym9hcmRTaG9ydGN1dCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRDb2xsYWJvcmF0aXZlRWRpdGluZycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRTZWxlY3Rpb24nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1NwcmVhZHNoZWV0Q29udGV4dE1lbnUnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1NwcmVhZHNoZWV0Rm9ybXVsYUJhcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRSaWJib24nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1NwcmVhZHNoZWV0U2F2ZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRPcGVuJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdTcHJlYWRzaGVldFNoZWV0VGFicycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXREYXRhQmluZCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRBbGxNb2R1bGUnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1NwcmVhZHNoZWV0QmFzaWNNb2R1bGUnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1NwcmVhZHNoZWV0Q2VsbEZvcm1hdCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXROdW1iZXJGb3JtYXQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1NwcmVhZHNoZWV0Rm9ybXVsYScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyXG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuYWRkVHdvV2F5LmNhbGwodGhpcywgdHdvV2F5cyk7XG4gICAgICAgIHNldFZhbHVlKCdjdXJyZW50SW5zdGFuY2UnLCB0aGlzLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLmNvbnRleHQgID0gbmV3IENvbXBvbmVudEJhc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY29udGV4dC5uZ09uSW5pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQubmdBZnRlclZpZXdJbml0KHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0Lm5nT25EZXN0cm95KHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFnT2JqZWN0c1swXS5pbnN0YW5jZSA9IHRoaXMuY2hpbGRTaGVldHM7XG4gICAgICAgIGlmICh0aGlzLmNoaWxkRGVmaW5lZE5hbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0c1sxXS5pbnN0YW5jZSA9IHRoaXMuY2hpbGREZWZpbmVkTmFtZXMgYXMgYW55O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0Lm5nQWZ0ZXJDb250ZW50Q2hlY2tlZCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJFdmVudHM6IChldmVudExpc3Q6IHN0cmluZ1tdKSA9PiB2b2lkO1xuICAgIHB1YmxpYyBhZGRUd29XYXk6IChwcm9wTGlzdDogc3RyaW5nW10pID0+IHZvaWQ7XG59XG5cbiJdfQ==
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByZWFkc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NwcmVhZHNoZWV0L3NwcmVhZHNoZWV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0MsdUJBQXVCLEVBQWlELFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SixPQUFPLEVBQUUsYUFBYSxFQUErQixlQUFlLEVBQTBCLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUVqRSxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQWEsQ0FBQyxrQkFBa0IsRUFBQyxlQUFlLEVBQUMscUJBQXFCLEVBQUMsWUFBWSxFQUFDLHdCQUF3QixFQUFDLHFCQUFxQixFQUFDLGFBQWEsRUFBQyxjQUFjLEVBQUMsZ0JBQWdCLEVBQUMscUJBQXFCLEVBQUMsaUJBQWlCLEVBQUMsZ0JBQWdCLEVBQUMsWUFBWSxFQUFDLGFBQWEsRUFBQyxZQUFZLEVBQUMsdUJBQXVCLEVBQUMsV0FBVyxFQUFDLGVBQWUsRUFBQyxXQUFXLEVBQUMsZ0JBQWdCLEVBQUMsY0FBYyxFQUFDLGVBQWUsRUFBQyxXQUFXLEVBQUMsa0JBQWtCLEVBQUMsV0FBVyxFQUFDLFVBQVUsRUFBQyxjQUFjLEVBQUMsaUJBQWlCLEVBQUMsbUJBQW1CLEVBQUMsMEJBQTBCLEVBQUMsd0JBQXdCLEVBQUMsbUJBQW1CLEVBQUMsV0FBVyxFQUFDLFFBQVEsRUFBQyxhQUFhLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxVQUFV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aGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIEluamVjdG9yLCBWYWx1ZVByb3ZpZGVyLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudEJhc2UsIElDb21wb25lbnRCYXNlLCBhcHBseU1peGlucywgQ29tcG9uZW50TWl4aW5zLCBQcm9wZXJ0eUNvbGxlY3Rpb25JbmZvLCBzZXRWYWx1ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgU3ByZWFkc2hlZXQgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItc3ByZWFkc2hlZXQnO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IFNoZWV0c0RpcmVjdGl2ZSB9IGZyb20gJy4vc2hlZXRzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEZWZpbmVkTmFtZXNEaXJlY3RpdmUgfSBmcm9tICcuL2RlZmluZWRuYW1lcy5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgaW5wdXRzOiBzdHJpbmdbXSA9IFsnYWN0aXZlU2hlZXRJbmRleCcsJ2FsbG93QXV0b0ZpbGwnLCdhbGxvd0NlbGxGb3JtYXR0aW5nJywnYWxsb3dDaGFydCcsJ2FsbG93Q29uZGl0aW9uYWxGb3JtYXQnLCdhbGxvd0RhdGFWYWxpZGF0aW9uJywnYWxsb3dEZWxldGUnLCdhbGxvd0VkaXRpbmcnLCdhbGxvd0ZpbHRlcmluZycsJ2FsbG93RmluZEFuZFJlcGxhY2UnLCdhbGxvd0ZyZWV6ZVBhbmUnLCdhbGxvd0h5cGVybGluaycsJ2FsbG93SW1hZ2UnLCdhbGxvd0luc2VydCcsJ2FsbG93TWVyZ2UnLCdhbGxvd051bWJlckZvcm1hdHRpbmcnLCdhbGxvd09wZW4nLCdhbGxvd1Jlc2l6aW5nJywnYWxsb3dTYXZlJywnYWxsb3dTY3JvbGxpbmcnLCdhbGxvd1NvcnRpbmcnLCdhbGxvd1VuZG9SZWRvJywnYWxsb3dXcmFwJywnYXV0b0ZpbGxTZXR0aW5ncycsJ2NlbGxTdHlsZScsJ2Nzc0NsYXNzJywnZGVmaW5lZE5hbWVzJywnZW5hYmxlQ2xpcGJvYXJkJywnZW5hYmxlQ29udGV4dE1lbnUnLCdlbmFibGVLZXlib2FyZE5hdmlnYXRpb24nLCdlbmFibGVLZXlib2FyZFNob3J0Y3V0JywnZW5hYmxlUGVyc2lzdGVuY2UnLCdlbmFibGVSdGwnLCdoZWlnaHQnLCdpc1Byb3RlY3RlZCcsJ2xvY2FsZScsJ29wZW5VcmwnLCdwYXNzd29yZCcsJ3NhdmVVcmwnLCdzY3JvbGxTZXR0aW5ncycsJ3NlbGVjdGlvblNldHRpbmdzJywnc2hlZXRzJywnc2hvd0FnZ3JlZ2F0ZScsJ3Nob3dGb3JtdWxhQmFyJywnc2hvd1JpYmJvbicsJ3Nob3dTaGVldFRhYnMnLCd3aWR0aCddO1xuZXhwb3J0IGNvbnN0IG91dHB1dHM6IHN0cmluZ1tdID0gWydhY3Rpb25CZWdpbicsJ2FjdGlvbkNvbXBsZXRlJywnYWZ0ZXJIeXBlcmxpbmtDbGljaycsJ2FmdGVySHlwZXJsaW5rQ3JlYXRlJywnYmVmb3JlQ2VsbEZvcm1hdCcsJ2JlZm9yZUNlbGxSZW5kZXInLCdiZWZvcmVDZWxsU2F2ZScsJ2JlZm9yZUNlbGxVcGRhdGUnLCdiZWZvcmVDb25kaXRpb25hbEZvcm1hdCcsJ2JlZm9yZURhdGFCb3VuZCcsJ2JlZm9yZUh5cGVybGlua0NsaWNrJywnYmVmb3JlSHlwZXJsaW5rQ3JlYXRlJywnYmVmb3JlT3BlbicsJ2JlZm9yZVNhdmUnLCdiZWZvcmVTZWxlY3QnLCdiZWZvcmVTb3J0JywnY2VsbEVkaXQnLCdjZWxsRWRpdGluZycsJ2NlbGxTYXZlJywnY29udGV4dE1lbnVCZWZvcmVDbG9zZScsJ2NvbnRleHRNZW51QmVmb3JlT3BlbicsJ2NvbnRleHRNZW51SXRlbVNlbGVjdCcsJ2NyZWF0ZWQnLCdkYXRhQm91bmQnLCdkYXRhU291cmNlQ2hhbmdlZCcsJ2RpYWxvZ0JlZm9yZU9wZW4nLCdmaWxlTWVudUJlZm9yZUNsb3NlJywnZmlsZU1lbnVCZWZvcmVPcGVuJywnZmlsZU1lbnVJdGVtU2VsZWN0Jywnb3BlbkNvbXBsZXRlJywnb3BlbkZhaWx1cmUnLCdxdWVyeUNlbGxJbmZvJywnc2F2ZUNvbXBsZXRlJywnc2VsZWN0Jywnc29ydENvbXBsZXRlJ107XG5leHBvcnQgY29uc3QgdHdvV2F5czogc3RyaW5nW10gPSBbJyddO1xuXG4vKipcbiAqIGBlanMtc3ByZWFkc2hlZXRgIHJlcHJlc2VudHMgdGhlIEFuZ3VsYXIgU3ByZWFkc2hlZXQgQ29tcG9uZW50LlxuICogYGBgaHRtbFxuICogPGVqcy1zcHJlYWRzaGVldD48L2Vqcy1zcHJlYWRzaGVldD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Vqcy1zcHJlYWRzaGVldCcsXG4gICAgaW5wdXRzOiBpbnB1dHMsXG4gICAgb3V0cHV0czogb3V0cHV0cyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZFNoZWV0czogbmV3IENvbnRlbnRDaGlsZChTaGVldHNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGREZWZpbmVkTmFtZXM6IG5ldyBDb250ZW50Q2hpbGQoRGVmaW5lZE5hbWVzRGlyZWN0aXZlKVxuICAgIH1cbn0pXG5AQ29tcG9uZW50TWl4aW5zKFtDb21wb25lbnRCYXNlXSlcbmV4cG9ydCBjbGFzcyBTcHJlYWRzaGVldENvbXBvbmVudCBleHRlbmRzIFNwcmVhZHNoZWV0IGltcGxlbWVudHMgSUNvbXBvbmVudEJhc2Uge1xuICAgIHB1YmxpYyBjb250ZXh0IDogYW55O1xuICAgIHB1YmxpYyB0YWdPYmplY3RzOiBhbnk7XG5cdGFjdGlvbkJlZ2luOiBhbnk7XG5cdGFjdGlvbkNvbXBsZXRlOiBhbnk7XG5cdGFmdGVySHlwZXJsaW5rQ2xpY2s6IGFueTtcblx0YWZ0ZXJIeXBlcmxpbmtDcmVhdGU6IGFueTtcblx0YmVmb3JlQ2VsbEZvcm1hdDogYW55O1xuXHRiZWZvcmVDZWxsUmVuZGVyOiBhbnk7XG5cdGJlZm9yZUNlbGxTYXZlOiBhbnk7XG5cdGJlZm9yZUNlbGxVcGRhdGU6IGFueTtcblx0YmVmb3JlQ29uZGl0aW9uYWxGb3JtYXQ6IGFueTtcblx0YmVmb3JlRGF0YUJvdW5kOiBhbnk7XG5cdGJlZm9yZUh5cGVybGlua0NsaWNrOiBhbnk7XG5cdGJlZm9yZUh5cGVybGlua0NyZWF0ZTogYW55O1xuXHRiZWZvcmVPcGVuOiBhbnk7XG5cdGJlZm9yZVNhdmU6IGFueTtcblx0YmVmb3JlU2VsZWN0OiBhbnk7XG5cdGJlZm9yZVNvcnQ6IGFueTtcblx0Y2VsbEVkaXQ6IGFueTtcblx0Y2VsbEVkaXRpbmc6IGFueTtcblx0Y2VsbFNhdmU6IGFueTtcblx0Y29udGV4dE1lbnVCZWZvcmVDbG9zZTogYW55O1xuXHRjb250ZXh0TWVudUJlZm9yZU9wZW46IGFueTtcblx0Y29udGV4dE1lbnVJdGVtU2VsZWN0OiBhbnk7XG5cdGNyZWF0ZWQ6IGFueTtcblx0ZGF0YUJvdW5kOiBhbnk7XG5cdGRhdGFTb3VyY2VDaGFuZ2VkOiBhbnk7XG5cdGRpYWxvZ0JlZm9yZU9wZW46IGFueTtcblx0ZmlsZU1lbnVCZWZvcmVDbG9zZTogYW55O1xuXHRmaWxlTWVudUJlZm9yZU9wZW46IGFueTtcblx0ZmlsZU1lbnVJdGVtU2VsZWN0OiBhbnk7XG5cdG9wZW5Db21wbGV0ZTogYW55O1xuXHRvcGVuRmFpbHVyZTogYW55O1xuXHRxdWVyeUNlbGxJbmZvOiBhbnk7XG5cdHNhdmVDb21wbGV0ZTogYW55O1xuXHRzZWxlY3Q6IGFueTtcblx0cHVibGljIHNvcnRDb21wbGV0ZTogYW55O1xuICAgIHB1YmxpYyBjaGlsZFNoZWV0czogUXVlcnlMaXN0PFNoZWV0c0RpcmVjdGl2ZT47XG4gICAgcHVibGljIGNoaWxkRGVmaW5lZE5hbWVzOiBRdWVyeUxpc3Q8RGVmaW5lZE5hbWVzRGlyZWN0aXZlPjtcbiAgICBwdWJsaWMgdGFnczogc3RyaW5nW10gPSBbJ3NoZWV0cycsICdkZWZpbmVkTmFtZXMnXTtcbiAgICBAQ29udGVudENoaWxkKCd0ZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdGVtcGxhdGU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdFbGU6IEVsZW1lbnRSZWYsIHByaXZhdGUgc3JlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjpWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSB0aGlzLm5nRWxlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzID0gdGhpcy5pbmplY3RlZE1vZHVsZXMgfHwgW107XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdTcHJlYWRzaGVldENsaXBib2FyZCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRFZGl0Jyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdTcHJlYWRzaGVldEtleWJvYXJkTmF2aWdhdGlvbicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRLZXlib2FyZFNob3J0Y3V0Jyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdTcHJlYWRzaGVldENvbGxhYm9yYXRpdmVFZGl0aW5nJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdTcHJlYWRzaGVldFNlbGVjdGlvbicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRDb250ZXh0TWVudScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRGb3JtdWxhQmFyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdTcHJlYWRzaGVldFJpYmJvbicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRTYXZlJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdTcHJlYWRzaGVldE9wZW4nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1NwcmVhZHNoZWV0U2hlZXRUYWJzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdTcHJlYWRzaGVldERhdGFCaW5kJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdTcHJlYWRzaGVldEFsbE1vZHVsZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRCYXNpY01vZHVsZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRDZWxsRm9ybWF0Jyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdTcHJlYWRzaGVldE51bWJlckZvcm1hdCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnU3ByZWFkc2hlZXRGb3JtdWxhJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHJcbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50cyhvdXRwdXRzKTtcbiAgICAgICAgdGhpcy5hZGRUd29XYXkuY2FsbCh0aGlzLCB0d29XYXlzKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMuY29udGV4dCAgPSBuZXcgQ29tcG9uZW50QmFzZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0Lm5nT25Jbml0KHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5uZ0FmdGVyVmlld0luaXQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQubmdPbkRlc3Ryb3kodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWdPYmplY3RzWzBdLmluc3RhbmNlID0gdGhpcy5jaGlsZFNoZWV0cztcbiAgICAgICAgaWYgKHRoaXMuY2hpbGREZWZpbmVkTmFtZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzWzFdLmluc3RhbmNlID0gdGhpcy5jaGlsZERlZmluZWROYW1lcyBhcyBhbnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRleHQubmdBZnRlckNvbnRlbnRDaGVja2VkKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckV2ZW50czogKGV2ZW50TGlzdDogc3RyaW5nW10pID0+IHZvaWQ7XG4gICAgcHVibGljIGFkZFR3b1dheTogKHByb3BMaXN0OiBzdHJpbmdbXSkgPT4gdm9pZDtcbn1cblxuIl19
@@ -515,7 +515,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
515
515
  }]
516
516
  }], ctorParameters: function () { return []; } });
517
517
 
518
- const inputs = ['activeSheetIndex', 'allowAutoFill', 'allowCellFormatting', 'allowChart', 'allowConditionalFormat', 'allowDataValidation', 'allowDelete', 'allowEditing', 'allowFiltering', 'allowFindAndReplace', 'allowFreezePane', 'allowHyperlink', 'allowImage', 'allowInsert', 'allowMerge', 'allowNumberFormatting', 'allowOpen', 'allowResizing', 'allowSave', 'allowScrolling', 'allowSorting', 'allowUndoRedo', 'allowWrap', 'autoFillSettings', 'cellStyle', 'cssClass', 'currencyCode', 'definedNames', 'enableClipboard', 'enableContextMenu', 'enableKeyboardNavigation', 'enableKeyboardShortcut', 'enablePersistence', 'enableRtl', 'height', 'isProtected', 'locale', 'openUrl', 'password', 'saveUrl', 'scrollSettings', 'selectionSettings', 'sheets', 'showAggregate', 'showFormulaBar', 'showRibbon', 'showSheetTabs', 'width'];
518
+ const inputs = ['activeSheetIndex', 'allowAutoFill', 'allowCellFormatting', 'allowChart', 'allowConditionalFormat', 'allowDataValidation', 'allowDelete', 'allowEditing', 'allowFiltering', 'allowFindAndReplace', 'allowFreezePane', 'allowHyperlink', 'allowImage', 'allowInsert', 'allowMerge', 'allowNumberFormatting', 'allowOpen', 'allowResizing', 'allowSave', 'allowScrolling', 'allowSorting', 'allowUndoRedo', 'allowWrap', 'autoFillSettings', 'cellStyle', 'cssClass', 'definedNames', 'enableClipboard', 'enableContextMenu', 'enableKeyboardNavigation', 'enableKeyboardShortcut', 'enablePersistence', 'enableRtl', 'height', 'isProtected', 'locale', 'openUrl', 'password', 'saveUrl', 'scrollSettings', 'selectionSettings', 'sheets', 'showAggregate', 'showFormulaBar', 'showRibbon', 'showSheetTabs', 'width'];
519
519
  const outputs = ['actionBegin', 'actionComplete', 'afterHyperlinkClick', 'afterHyperlinkCreate', 'beforeCellFormat', 'beforeCellRender', 'beforeCellSave', 'beforeCellUpdate', 'beforeConditionalFormat', 'beforeDataBound', 'beforeHyperlinkClick', 'beforeHyperlinkCreate', 'beforeOpen', 'beforeSave', 'beforeSelect', 'beforeSort', 'cellEdit', 'cellEditing', 'cellSave', 'contextMenuBeforeClose', 'contextMenuBeforeOpen', 'contextMenuItemSelect', 'created', 'dataBound', 'dataSourceChanged', 'dialogBeforeOpen', 'fileMenuBeforeClose', 'fileMenuBeforeOpen', 'fileMenuItemSelect', 'openComplete', 'openFailure', 'queryCellInfo', 'saveComplete', 'select', 'sortComplete'];
520
520
  const twoWays = [''];
521
521
  /**
@@ -683,7 +683,7 @@ let SpreadsheetComponent = class SpreadsheetComponent extends Spreadsheet {
683
683
  }
684
684
  };
685
685
  SpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SpreadsheetComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
686
- SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: SpreadsheetComponent, selector: "ejs-spreadsheet", inputs: { activeSheetIndex: "activeSheetIndex", allowAutoFill: "allowAutoFill", allowCellFormatting: "allowCellFormatting", allowChart: "allowChart", allowConditionalFormat: "allowConditionalFormat", allowDataValidation: "allowDataValidation", allowDelete: "allowDelete", allowEditing: "allowEditing", allowFiltering: "allowFiltering", allowFindAndReplace: "allowFindAndReplace", allowFreezePane: "allowFreezePane", allowHyperlink: "allowHyperlink", allowImage: "allowImage", allowInsert: "allowInsert", allowMerge: "allowMerge", allowNumberFormatting: "allowNumberFormatting", allowOpen: "allowOpen", allowResizing: "allowResizing", allowSave: "allowSave", allowScrolling: "allowScrolling", allowSorting: "allowSorting", allowUndoRedo: "allowUndoRedo", allowWrap: "allowWrap", autoFillSettings: "autoFillSettings", cellStyle: "cellStyle", cssClass: "cssClass", currencyCode: "currencyCode", definedNames: "definedNames", enableClipboard: "enableClipboard", enableContextMenu: "enableContextMenu", enableKeyboardNavigation: "enableKeyboardNavigation", enableKeyboardShortcut: "enableKeyboardShortcut", enablePersistence: "enablePersistence", enableRtl: "enableRtl", height: "height", isProtected: "isProtected", locale: "locale", openUrl: "openUrl", password: "password", saveUrl: "saveUrl", scrollSettings: "scrollSettings", selectionSettings: "selectionSettings", sheets: "sheets", showAggregate: "showAggregate", showFormulaBar: "showFormulaBar", showRibbon: "showRibbon", showSheetTabs: "showSheetTabs", width: "width" }, outputs: { actionBegin: "actionBegin", actionComplete: "actionComplete", afterHyperlinkClick: "afterHyperlinkClick", afterHyperlinkCreate: "afterHyperlinkCreate", beforeCellFormat: "beforeCellFormat", beforeCellRender: "beforeCellRender", beforeCellSave: "beforeCellSave", beforeCellUpdate: "beforeCellUpdate", beforeConditionalFormat: "beforeConditionalFormat", beforeDataBound: "beforeDataBound", beforeHyperlinkClick: "beforeHyperlinkClick", beforeHyperlinkCreate: "beforeHyperlinkCreate", beforeOpen: "beforeOpen", beforeSave: "beforeSave", beforeSelect: "beforeSelect", beforeSort: "beforeSort", cellEdit: "cellEdit", cellEditing: "cellEditing", cellSave: "cellSave", contextMenuBeforeClose: "contextMenuBeforeClose", contextMenuBeforeOpen: "contextMenuBeforeOpen", contextMenuItemSelect: "contextMenuItemSelect", created: "created", dataBound: "dataBound", dataSourceChanged: "dataSourceChanged", dialogBeforeOpen: "dialogBeforeOpen", fileMenuBeforeClose: "fileMenuBeforeClose", fileMenuBeforeOpen: "fileMenuBeforeOpen", fileMenuItemSelect: "fileMenuItemSelect", openComplete: "openComplete", openFailure: "openFailure", queryCellInfo: "queryCellInfo", saveComplete: "saveComplete", select: "select", sortComplete: "sortComplete" }, queries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }, { propertyName: "childSheets", first: true, predicate: SheetsDirective, descendants: true }, { propertyName: "childDefinedNames", first: true, predicate: DefinedNamesDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
686
+ SpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: SpreadsheetComponent, selector: "ejs-spreadsheet", inputs: { activeSheetIndex: "activeSheetIndex", allowAutoFill: "allowAutoFill", allowCellFormatting: "allowCellFormatting", allowChart: "allowChart", allowConditionalFormat: "allowConditionalFormat", allowDataValidation: "allowDataValidation", allowDelete: "allowDelete", allowEditing: "allowEditing", allowFiltering: "allowFiltering", allowFindAndReplace: "allowFindAndReplace", allowFreezePane: "allowFreezePane", allowHyperlink: "allowHyperlink", allowImage: "allowImage", allowInsert: "allowInsert", allowMerge: "allowMerge", allowNumberFormatting: "allowNumberFormatting", allowOpen: "allowOpen", allowResizing: "allowResizing", allowSave: "allowSave", allowScrolling: "allowScrolling", allowSorting: "allowSorting", allowUndoRedo: "allowUndoRedo", allowWrap: "allowWrap", autoFillSettings: "autoFillSettings", cellStyle: "cellStyle", cssClass: "cssClass", definedNames: "definedNames", enableClipboard: "enableClipboard", enableContextMenu: "enableContextMenu", enableKeyboardNavigation: "enableKeyboardNavigation", enableKeyboardShortcut: "enableKeyboardShortcut", enablePersistence: "enablePersistence", enableRtl: "enableRtl", height: "height", isProtected: "isProtected", locale: "locale", openUrl: "openUrl", password: "password", saveUrl: "saveUrl", scrollSettings: "scrollSettings", selectionSettings: "selectionSettings", sheets: "sheets", showAggregate: "showAggregate", showFormulaBar: "showFormulaBar", showRibbon: "showRibbon", showSheetTabs: "showSheetTabs", width: "width" }, outputs: { actionBegin: "actionBegin", actionComplete: "actionComplete", afterHyperlinkClick: "afterHyperlinkClick", afterHyperlinkCreate: "afterHyperlinkCreate", beforeCellFormat: "beforeCellFormat", beforeCellRender: "beforeCellRender", beforeCellSave: "beforeCellSave", beforeCellUpdate: "beforeCellUpdate", beforeConditionalFormat: "beforeConditionalFormat", beforeDataBound: "beforeDataBound", beforeHyperlinkClick: "beforeHyperlinkClick", beforeHyperlinkCreate: "beforeHyperlinkCreate", beforeOpen: "beforeOpen", beforeSave: "beforeSave", beforeSelect: "beforeSelect", beforeSort: "beforeSort", cellEdit: "cellEdit", cellEditing: "cellEditing", cellSave: "cellSave", contextMenuBeforeClose: "contextMenuBeforeClose", contextMenuBeforeOpen: "contextMenuBeforeOpen", contextMenuItemSelect: "contextMenuItemSelect", created: "created", dataBound: "dataBound", dataSourceChanged: "dataSourceChanged", dialogBeforeOpen: "dialogBeforeOpen", fileMenuBeforeClose: "fileMenuBeforeClose", fileMenuBeforeOpen: "fileMenuBeforeOpen", fileMenuItemSelect: "fileMenuItemSelect", openComplete: "openComplete", openFailure: "openFailure", queryCellInfo: "queryCellInfo", saveComplete: "saveComplete", select: "select", sortComplete: "sortComplete" }, queries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }, { propertyName: "childSheets", first: true, predicate: SheetsDirective, descendants: true }, { propertyName: "childDefinedNames", first: true, predicate: DefinedNamesDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
687
687
  __decorate([
688
688
  Template()
689
689
  ], SpreadsheetComponent.prototype, "template", void 0);