@syncfusion/ej2-angular-richtexteditor 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.
- package/README.md +53 -109
- package/esm2020/src/index.mjs +2 -2
- package/esm2020/src/rich-text-editor/richtexteditor-all.module.mjs +4 -13
- package/esm2020/src/rich-text-editor/richtexteditor.component.mjs +4 -25
- package/fesm2015/syncfusion-ej2-angular-richtexteditor.mjs +15 -45
- package/fesm2015/syncfusion-ej2-angular-richtexteditor.mjs.map +1 -1
- package/fesm2020/syncfusion-ej2-angular-richtexteditor.mjs +7 -37
- package/fesm2020/syncfusion-ej2-angular-richtexteditor.mjs.map +1 -1
- package/license +10 -0
- package/package.json +17 -12
- package/schematics/utils/lib-details.ts +2 -2
- package/src/index.d.ts +1 -1
- package/src/rich-text-editor/richtexteditor-all.module.d.ts +0 -3
- package/src/rich-text-editor/richtexteditor.component.d.ts +1 -8
- package/styles/bootstrap-dark.css +299 -137
- package/styles/bootstrap.css +305 -140
- package/styles/bootstrap4.css +304 -133
- package/styles/bootstrap5-dark.css +310 -165
- package/styles/bootstrap5.css +310 -165
- package/styles/fabric-dark.css +297 -136
- package/styles/fabric.css +294 -133
- package/styles/fluent-dark.css +311 -170
- package/styles/fluent.css +311 -170
- package/styles/highcontrast-light.css +289 -128
- package/styles/highcontrast.css +296 -135
- package/styles/material-dark.css +295 -129
- package/styles/material.css +300 -134
- package/styles/material3-dark.css +3082 -0
- package/styles/material3-dark.scss +3 -0
- package/styles/material3.css +3138 -0
- package/styles/material3.scss +3 -0
- package/styles/rich-text-editor/_bootstrap-dark-definition.scss +54 -12
- package/styles/rich-text-editor/_bootstrap-definition.scss +57 -13
- package/styles/rich-text-editor/_bootstrap4-definition.scss +50 -7
- package/styles/rich-text-editor/_bootstrap5-definition.scss +56 -13
- package/styles/rich-text-editor/_fabric-dark-definition.scss +53 -10
- package/styles/rich-text-editor/_fabric-definition.scss +52 -9
- package/styles/rich-text-editor/_fluent-definition.scss +56 -15
- package/styles/rich-text-editor/_fusionnew-definition.scss +46 -4
- package/styles/rich-text-editor/_highcontrast-definition.scss +52 -9
- package/styles/rich-text-editor/_highcontrast-light-definition.scss +48 -5
- package/styles/rich-text-editor/_layout.scss +280 -68
- package/styles/rich-text-editor/_material-dark-definition.scss +48 -5
- package/styles/rich-text-editor/_material-definition.scss +50 -6
- package/styles/rich-text-editor/_material3-dark-definition.scss +1 -0
- package/styles/rich-text-editor/_material3-definition.scss +262 -0
- package/styles/rich-text-editor/_tailwind-definition.scss +63 -23
- package/styles/rich-text-editor/_theme.scss +103 -19
- package/styles/rich-text-editor/bootstrap-dark.css +299 -137
- package/styles/rich-text-editor/bootstrap.css +305 -140
- package/styles/rich-text-editor/bootstrap4.css +304 -133
- package/styles/rich-text-editor/bootstrap5-dark.css +310 -165
- package/styles/rich-text-editor/bootstrap5.css +310 -165
- package/styles/rich-text-editor/fabric-dark.css +297 -136
- package/styles/rich-text-editor/fabric.css +294 -133
- package/styles/rich-text-editor/fluent-dark.css +311 -170
- package/styles/rich-text-editor/fluent.css +311 -170
- package/styles/rich-text-editor/highcontrast-light.css +289 -128
- package/styles/rich-text-editor/highcontrast.css +296 -135
- package/styles/rich-text-editor/icons/_bootstrap-dark.scss +1 -1
- package/styles/rich-text-editor/icons/_bootstrap.scss +1 -1
- package/styles/rich-text-editor/icons/_bootstrap4.scss +1 -1
- package/styles/rich-text-editor/icons/_bootstrap5.scss +1 -1
- package/styles/rich-text-editor/icons/_fabric-dark.scss +1 -1
- package/styles/rich-text-editor/icons/_fabric.scss +1 -1
- package/styles/rich-text-editor/icons/_fluent.scss +1 -1
- package/styles/rich-text-editor/icons/_fusionnew.scss +1 -1
- package/styles/rich-text-editor/icons/_highcontrast-light.scss +1 -1
- package/styles/rich-text-editor/icons/_highcontrast.scss +1 -1
- package/styles/rich-text-editor/icons/_material-dark.scss +1 -1
- package/styles/rich-text-editor/icons/_material.scss +1 -1
- package/styles/rich-text-editor/icons/_material3-dark.scss +1 -0
- package/styles/rich-text-editor/icons/_material3.scss +1 -1
- package/styles/rich-text-editor/icons/_tailwind.scss +1 -1
- package/styles/rich-text-editor/material-dark.css +295 -129
- package/styles/rich-text-editor/material.css +300 -134
- package/styles/rich-text-editor/material3-dark.css +3082 -0
- package/styles/rich-text-editor/material3-dark.scss +5 -0
- package/styles/rich-text-editor/material3.css +3138 -0
- package/styles/rich-text-editor/material3.scss +5 -0
- package/styles/rich-text-editor/tailwind-dark.css +313 -157
- package/styles/rich-text-editor/tailwind.css +313 -157
- package/styles/tailwind-dark.css +313 -157
- package/styles/tailwind.css +313 -157
- package/schematics/collection.json +0 -40
- package/schematics/generators/richtexteditor-iframe/index.d.ts +0 -3
- package/schematics/generators/richtexteditor-iframe/index.js +0 -8
- package/schematics/generators/richtexteditor-iframe/sample-details.d.ts +0 -5
- package/schematics/generators/richtexteditor-iframe/sample-details.js +0 -7
- package/schematics/generators/richtexteditor-iframe/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -3
- package/schematics/generators/richtexteditor-iframe/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -44
- package/schematics/generators/richtexteditor-iframe/schema.d.ts +0 -3
- package/schematics/generators/richtexteditor-iframe/schema.js +0 -2
- package/schematics/generators/richtexteditor-iframe/schema.json +0 -125
- package/schematics/generators/richtexteditor-inline/index.d.ts +0 -3
- package/schematics/generators/richtexteditor-inline/index.js +0 -8
- package/schematics/generators/richtexteditor-inline/sample-details.d.ts +0 -5
- package/schematics/generators/richtexteditor-inline/sample-details.js +0 -7
- package/schematics/generators/richtexteditor-inline/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -3
- package/schematics/generators/richtexteditor-inline/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -10
- package/schematics/generators/richtexteditor-inline/schema.d.ts +0 -3
- package/schematics/generators/richtexteditor-inline/schema.js +0 -2
- package/schematics/generators/richtexteditor-inline/schema.json +0 -125
- package/schematics/generators/richtexteditor-markdown/index.d.ts +0 -3
- package/schematics/generators/richtexteditor-markdown/index.js +0 -8
- package/schematics/generators/richtexteditor-markdown/sample-details.d.ts +0 -5
- package/schematics/generators/richtexteditor-markdown/sample-details.js +0 -7
- package/schematics/generators/richtexteditor-markdown/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -3
- package/schematics/generators/richtexteditor-markdown/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -13
- package/schematics/generators/richtexteditor-markdown/schema.d.ts +0 -3
- package/schematics/generators/richtexteditor-markdown/schema.js +0 -2
- package/schematics/generators/richtexteditor-markdown/schema.json +0 -125
- package/schematics/generators/richtexteditor-overview/images/__path__/__name@dasherize__/RTEImage-Feather.png +0 -0
- package/schematics/generators/richtexteditor-overview/index.d.ts +0 -3
- package/schematics/generators/richtexteditor-overview/index.js +0 -8
- package/schematics/generators/richtexteditor-overview/sample-details.d.ts +0 -5
- package/schematics/generators/richtexteditor-overview/sample-details.js +0 -7
- package/schematics/generators/richtexteditor-overview/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -3
- package/schematics/generators/richtexteditor-overview/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -47
- package/schematics/generators/richtexteditor-overview/schema.d.ts +0 -3
- package/schematics/generators/richtexteditor-overview/schema.js +0 -2
- package/schematics/generators/richtexteditor-overview/schema.json +0 -125
- package/schematics/generators/richtexteditor-reactform/index.d.ts +0 -3
- package/schematics/generators/richtexteditor-reactform/index.js +0 -8
- package/schematics/generators/richtexteditor-reactform/sample-details.d.ts +0 -5
- package/schematics/generators/richtexteditor-reactform/sample-details.js +0 -7
- package/schematics/generators/richtexteditor-reactform/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -3
- package/schematics/generators/richtexteditor-reactform/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -20
- package/schematics/generators/richtexteditor-reactform/schema.d.ts +0 -3
- package/schematics/generators/richtexteditor-reactform/schema.js +0 -2
- package/schematics/generators/richtexteditor-reactform/schema.json +0 -125
- package/schematics/generators/richtexteditor-templatedriven/index.d.ts +0 -3
- package/schematics/generators/richtexteditor-templatedriven/index.js +0 -8
- package/schematics/generators/richtexteditor-templatedriven/sample-details.d.ts +0 -5
- package/schematics/generators/richtexteditor-templatedriven/sample-details.js +0 -7
- package/schematics/generators/richtexteditor-templatedriven/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -3
- package/schematics/generators/richtexteditor-templatedriven/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -19
- package/schematics/generators/richtexteditor-templatedriven/schema.d.ts +0 -3
- package/schematics/generators/richtexteditor-templatedriven/schema.js +0 -2
- package/schematics/generators/richtexteditor-templatedriven/schema.json +0 -125
- package/schematics/ng-add/index.d.ts +0 -3
- package/schematics/ng-add/index.js +0 -9
- package/schematics/ng-add/schema.d.ts +0 -13
- package/schematics/ng-add/schema.js +0 -2
- package/schematics/ng-add/schema.json +0 -34
- package/schematics/tsconfig.json +0 -25
- package/schematics/utils/lib-details.d.ts +0 -4
- package/schematics/utils/lib-details.js +0 -6
package/README.md
CHANGED
|
@@ -1,122 +1,66 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ej2-angular-richtexteditor
|
|
2
2
|
|
|
3
|
-
The [Angular
|
|
3
|
+
The [Angular Rich Text Editor](https://www.syncfusion.com/angular-ui-components/angular-wysiwyg-rich-text-editor?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm) component is a HTML and markdown editor that provides best user experience for creating and updating the content.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
<a href="https://ej2.syncfusion.com/angular/documentation/rich-text-editor/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm">Getting started</a> .
|
|
7
|
-
<a href="https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm#/bootstrap5/rich-text-editor/tools">Online demos</a> .
|
|
8
|
-
<a href="https://www.syncfusion.com/angular-components/angular-wysiwyg-rich-text-editor?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm">Learn more</a>
|
|
9
|
-
</p>
|
|
5
|
+

|
|
10
6
|
|
|
11
|
-
|
|
12
|
-
<img src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/angular/angular-rich-text-editor.gif" alt="Angular RichTextEditor Component"/>
|
|
13
|
-
</p>
|
|
7
|
+
>Note: 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
|
-
|
|
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
|
-
## Setup
|
|
11
|
+
## 1. Setup To install this package and its dependent packages, use the following command
|
|
23
12
|
|
|
24
|
-
|
|
13
|
+
Use the following commands to install rich text editor components and its dependent packages.
|
|
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
15
|
```
|
|
38
|
-
|
|
39
|
-
### Adding Syncfusion Rich Text Editor package
|
|
40
|
-
|
|
41
|
-
To install RichTextEditor and its dependent packages, use the following command.
|
|
16
|
+
npm install @syncfusion/ej2-angular-richtexteditor
|
|
42
17
|
|
|
43
18
|
```
|
|
44
|
-
npm install @syncfusion/ej2-angular-richtexteditor --save
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
The above command does the below configuration to your Angular app.
|
|
48
|
-
|
|
49
|
-
* Adds `@syncfusion/ej2-angular-richtexteditor` package and its peer dependencies to your `package.json` file.
|
|
50
|
-
* Imports the `RichTextEditorModule` 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 Rich Text Editor module to your project and start using it in your application.
|
|
54
|
-
|
|
55
|
-
### Add Rich Text Editor component
|
|
56
|
-
|
|
57
|
-
In **src/app/app.component.ts**, use `<ejs-richtexteditor>` selector in `template` attribute of `@Component` directive to render the Syncfusion Angular Rich Text Editor component.
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
import { Component } from '@angular/core';
|
|
61
|
-
import { ToolbarService, LinkService, ImageService, HtmlEditorService } from '@syncfusion/ej2-angular-richtexteditor';
|
|
62
|
-
@Component({
|
|
63
|
-
selector: 'app-root',
|
|
64
|
-
template: `<ejs-richtexteditor id='defaultRTE'>
|
|
65
|
-
<ng-template #valueTemplate>
|
|
66
|
-
<p>The Rich Text Editor component is WYSIWYG ("what you see is what you get") editor that provides the best user experience to create and update the content. Users can format their content using standard toolbar commands.</p>
|
|
67
|
-
</ng-template>
|
|
68
|
-
</ejs-richtexteditor>`,
|
|
69
|
-
providers: [ToolbarService, LinkService, ImageService, HtmlEditorService]
|
|
70
|
-
})
|
|
71
|
-
export class AppComponent { }
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## Supported frameworks
|
|
75
|
-
|
|
76
|
-
RichTextEditor component is also offered in the following list of frameworks.
|
|
77
|
-
|
|
78
|
-
| [<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/> [JavaScript](https://www.syncfusion.com/javascript-ui-controls?utm_medium=listing&utm_source=github) | [<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/> [React](https://www.syncfusion.com/react-ui-components?utm_medium=listing&utm_source=github) | [<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/> [Vue](https://www.syncfusion.com/vue-ui-components?utm_medium=listing&utm_source=github) | [<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/> [ASP.NET Core](https://www.syncfusion.com/aspnet-core-ui-controls?utm_medium=listing&utm_source=github) | [<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/> [ASP.NET MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls?utm_medium=listing&utm_source=github) |
|
|
79
|
-
| :-----: | :-----: | :-----: | :-----: | :-----: |
|
|
80
|
-
|
|
81
|
-
## Showcase samples
|
|
82
|
-
|
|
83
|
-
* [Angular HTML editor demo](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/bootstrap5/rich-text-editor/tools)
|
|
84
|
-
* [Blog posting using angular rich text editor demo](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/bootstrap5/rich-text-editor/blog-posting)
|
|
85
|
-
* [Angular Markdown editor demo](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/bootstrap5/rich-text-editor/markdown-editor)
|
|
86
|
-
* [Angular live HTML editor demo](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/bootstrap5/rich-text-editor/online-html-editor)
|
|
87
|
-
|
|
88
|
-
## Key features
|
|
89
|
-
|
|
90
|
-
* [Edit mode](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/bootstrap5/rich-text-editor/iframe) - HTML content is possible to edit in a `div` element or an `iframe` in the rich text editor.
|
|
91
|
-
* [Markdown editor](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/bootstrap5/rich-text-editor/markdown-editor-preview) - The rich text editor allows you to edit Markdown content using the Markdown syntax.
|
|
92
|
-
* [Markdown content preview](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/bootstrap5/rich-text-editor/markdown-editor-preview) - Preview of the modified Markdown content in the editor, you can give users the ability to see what the formatted content will look like before they save it.
|
|
93
|
-
* [HTML code editing](https://ej2.syncfusion.com/angular/documentation/rich-text-editor/miscellaneous/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#code-view) - The rich text editor allows users to edit the HTML code directly in the HTML code view. This can be useful for users who are familiar with HTML and want to have more control over the formatting and layout of their content.
|
|
94
|
-
* [Tools](https://ej2.syncfusion.com/angular/documentation/rich-text-editor/toolbar/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#toolbar-items) - The rich text editor handles a wide range of features, including inserting images, hyperlinks, tables, formatting tools, and more.
|
|
95
|
-
* [Toolbar appearance](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/bootstrap5/rich-text-editor/types) - The rich text editor can provide a fully customizable toolbar that allows users to access the various formatting and editing options that are available.
|
|
96
|
-
* [Undo and redo](https://ej2.syncfusion.com/angular/documentation/rich-text-editor/miscellaneous/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#undoredo-manager) - Users can use undo and redo actions to reverse or repeat actions they took while editing the content.
|
|
97
|
-
* [Module injection](https://ej2.syncfusion.com/angular/documentation/rich-text-editor/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#module-injection) - It is possible to create a editor that utilizes a modular library to load the necessary functionality on demand. This can be useful for optimizing the performance of the editor.
|
|
98
|
-
* [Third-party integration](https://ej2.syncfusion.com/angular/documentation/rich-text-editor/third-party-integration/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm) - It is possible to integrate a third-party library into a rich text editor to add additional functionality or features to the editor like `Code-mirror`, `Embedly` and more.
|
|
99
|
-
|
|
100
|
-
## Support
|
|
101
|
-
|
|
102
|
-
Product support is available through the following mediums.
|
|
103
|
-
|
|
104
|
-
* [Support ticket](https://support.syncfusion.com/support/tickets/create) - Guaranteed Response in 24 hours | Unlimited tickets | Holiday support
|
|
105
|
-
* [Community forum](https://www.syncfusion.com/forums/angular-js2?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm)
|
|
106
|
-
* [GitHub issues](https://github.com/syncfusion/ej2-angular-ui-components/issues/new)
|
|
107
|
-
* [Request feature or report bug](https://www.syncfusion.com/feedback/angular?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm)
|
|
108
|
-
* Live chat
|
|
109
|
-
|
|
110
|
-
## Change log
|
|
111
|
-
|
|
112
|
-
Check the changelog [here](https://github.com/syncfusion/ej2-angular-ui-components/blob/master/components/richtexteditor/CHANGELOG.md?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm). Get minor improvements and bug fixes every week to stay up to date with frequent updates.
|
|
113
|
-
|
|
114
|
-
## License and copyright
|
|
115
|
-
|
|
116
|
-
> 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).
|
|
117
|
-
|
|
118
|
-
> A free community [license](https://github.com/syncfusion/ej2-angular-ui-components/blob/master/license?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm) is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.
|
|
119
19
|
|
|
120
|
-
|
|
20
|
+
## 2. Components included
|
|
21
|
+
|
|
22
|
+
* [GettingStarted](https://ej2.syncfusion.com/angular/documentation/rich-text-editor/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm)
|
|
23
|
+
* [View Online Demos](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/material/rich-text-editor/tools)
|
|
24
|
+
* [Product Page](https://www.syncfusion.com/angular-ui-components/angular-wysiwyg-rich-text-editor?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm)
|
|
25
|
+
|
|
26
|
+
## 3. Supported frameworks
|
|
27
|
+
Rich text editor component also supports the following frameworks:
|
|
28
|
+
1. [TypeScript Rich Text editor](https://www.syncfusion.com/javascript-ui-controls/js-wysiwyg-rich-text-editor?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm)
|
|
29
|
+
2. [React Rich Text Editor](https://www.syncfusion.com/react-ui-components/react-wysiwyg-rich-text-editor?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm)
|
|
30
|
+
3. [Vue Rich Text Editor](https://www.syncfusion.com/vue-ui-components/vue-wysiwyg-rich-text-editor?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm)
|
|
31
|
+
4. [ASP.NET Core Rich Text Editor](https://www.syncfusion.com/aspnet-core-ui-controls/wysiwyg-rich-text-editor?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm)
|
|
32
|
+
5. [ASP.NET MVC Rich Text Editor](https://www.syncfusion.com/aspnet-mvc-ui-controls/wysiwyg-rich-text-editor?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm)
|
|
33
|
+
|
|
34
|
+
## 4. Use-case samples / Showcase samples
|
|
35
|
+
|
|
36
|
+
* [Angular HTML editor Demo](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/material/rich-text-editor/tools)
|
|
37
|
+
* [Blog posting Demo in Angular](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/material/rich-text-editor/blog-posting)
|
|
38
|
+
* [Angular Markdown editor Demo](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/material/rich-text-editor/markdown-editor)
|
|
39
|
+
* [Inline edit Demo in Angular](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/material/rich-text-editor/inline)
|
|
40
|
+
|
|
41
|
+
## 5. Key features
|
|
42
|
+
|
|
43
|
+
* [Mode](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/material/rich-text-editor/iframe): Provides <IFRAME> and <DIV> mode.
|
|
44
|
+
* [Markdown](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/material/rich-text-editor/markdown-editor-preview): Handles markdown editing.
|
|
45
|
+
* [Module](https://ej2.syncfusion.com/angular/documentation/rich-text-editor/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#module-injection): Contains a modular library to load the necessary functionality on demand.
|
|
46
|
+
* [Toolbar](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/material/rich-text-editor/types): Provides a fully customizable toolbar.
|
|
47
|
+
* [Editing](https://ej2.syncfusion.com/angular/documentation/rich-text-editor/miscellaneous/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#code-view): HTML view to edit the source directly for developers.
|
|
48
|
+
* [Third-party Integration](https://ej2.syncfusion.com/angular/documentation/rich-text-editor/third-party-integration/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm): Integrates third-party library.
|
|
49
|
+
* [Preview](https://ej2.syncfusion.com/angular/demos/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#/material/rich-text-editor/markdown-editor-preview): Preview the modified content before saving it.
|
|
50
|
+
* [Tools](https://ej2.syncfusion.com/angular/documentation/rich-text-editor/toolbar/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#toolbar-items): Handles images, hyperlinks, uploads, and more.
|
|
51
|
+
* [Undo and Redo](https://ej2.syncfusion.com/angular/documentation/rich-text-editor/miscellaneous/?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm/#undoredo-manager): Contains undo/redo manager.
|
|
52
|
+
|
|
53
|
+
## 6. Support
|
|
54
|
+
|
|
55
|
+
Product support can be obtained through the following mediums:
|
|
56
|
+
* Creating incident in Syncfusion [Direct-trac](https://www.syncfusion.com/support/directtrac/incidents?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm) support system or [Community forum.](https://www.syncfusion.com/forums/essential-js2?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm)
|
|
57
|
+
* New [GitHub issue](https://github.com/syncfusion/ej2-angular-ui-components/issues/new?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm).
|
|
58
|
+
8 Ask your query in Stack Overflow with tag ‘syncfusion’, ‘ej2’.
|
|
59
|
+
|
|
60
|
+
## 7. License
|
|
61
|
+
Check the license details [here](https://github.com/syncfusion/ej2/blob/master/license?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm)
|
|
62
|
+
|
|
63
|
+
## 8. Change log
|
|
64
|
+
Check the changelog [here](https://github.com/syncfusion/ej2-angular-ui-components/blob/master/components/richtexteditor/CHANGELOG.md?utm_source=npm&utm_medium=listing&utm_campaign=angular-rich-text-editor-npm)
|
|
121
65
|
|
|
122
66
|
© Copyright 2023 Syncfusion, Inc. All Rights Reserved. The Syncfusion Essential Studio license and copyright applies to this distribution.
|
package/esm2020/src/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { RichTextEditorComponent } from './rich-text-editor/richtexteditor.component';
|
|
2
2
|
export { RichTextEditorModule } from './rich-text-editor/richtexteditor.module';
|
|
3
|
-
export { RichTextEditorAllModule, ToolbarService, LinkService, ImageService,
|
|
3
|
+
export { RichTextEditorAllModule, ToolbarService, LinkService, ImageService, CountService, QuickToolbarService, HtmlEditorService, MarkdownEditorService, TableService, PasteCleanupService, ResizeService, FileManagerService } from './rich-text-editor/richtexteditor-all.module';
|
|
4
4
|
export * from '@syncfusion/ej2-richtexteditor';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDclIsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50fSBmcm9tICcuL3JpY2gtdGV4dC1lZGl0b3IvcmljaHRleHRlZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCB7IFJpY2hUZXh0RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9yaWNoLXRleHQtZWRpdG9yL3JpY2h0ZXh0ZWRpdG9yLm1vZHVsZSc7XG5leHBvcnQgeyBSaWNoVGV4dEVkaXRvckFsbE1vZHVsZSwgVG9vbGJhclNlcnZpY2UsIExpbmtTZXJ2aWNlLCBJbWFnZVNlcnZpY2UsIENvdW50U2VydmljZSwgUXVpY2tUb29sYmFyU2VydmljZSwgSHRtbEVkaXRvclNlcnZpY2UsIE1hcmtkb3duRWRpdG9yU2VydmljZSwgVGFibGVTZXJ2aWNlLCBQYXN0ZUNsZWFudXBTZXJ2aWNlLCBSZXNpemVTZXJ2aWNlLCBGaWxlTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3JpY2gtdGV4dC1lZGl0b3IvcmljaHRleHRlZGl0b3ItYWxsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICdAc3luY2Z1c2lvbi9lajItcmljaHRleHRlZGl0b3InOyJdfQ==
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { RichTextEditorModule } from './richtexteditor.module';
|
|
4
|
-
import { Toolbar, Link, Image,
|
|
4
|
+
import { Toolbar, Link, Image, Count, QuickToolbar, HtmlEditor, MarkdownEditor, Table, PasteCleanup, Resize, FileManager } from '@syncfusion/ej2-richtexteditor';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export const ToolbarService = { provide: 'RichTextEditorToolbar', useValue: Toolbar };
|
|
7
7
|
export const LinkService = { provide: 'RichTextEditorLink', useValue: Link };
|
|
8
8
|
export const ImageService = { provide: 'RichTextEditorImage', useValue: Image };
|
|
9
|
-
export const AudioService = { provide: 'RichTextEditorAudio', useValue: Audio };
|
|
10
|
-
export const VideoService = { provide: 'RichTextEditorVideo', useValue: Video };
|
|
11
9
|
export const CountService = { provide: 'RichTextEditorCount', useValue: Count };
|
|
12
10
|
export const QuickToolbarService = { provide: 'RichTextEditorQuickToolbar', useValue: QuickToolbar };
|
|
13
11
|
export const HtmlEditorService = { provide: 'RichTextEditorHtmlEditor', useValue: HtmlEditor };
|
|
@@ -16,7 +14,6 @@ export const TableService = { provide: 'RichTextEditorTable', useValue: Table };
|
|
|
16
14
|
export const PasteCleanupService = { provide: 'RichTextEditorPasteCleanup', useValue: PasteCleanup };
|
|
17
15
|
export const ResizeService = { provide: 'RichTextEditorResize', useValue: Resize };
|
|
18
16
|
export const FileManagerService = { provide: 'RichTextEditorFileManager', useValue: FileManager };
|
|
19
|
-
export const FormatPainterService = { provide: 'RichTextEditorFormatPainter', useValue: FormatPainter };
|
|
20
17
|
/**
|
|
21
18
|
* NgModule definition for the RichTextEditor component with providers.
|
|
22
19
|
*/
|
|
@@ -28,8 +25,6 @@ RichTextEditorAllModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
|
|
|
28
25
|
ToolbarService,
|
|
29
26
|
LinkService,
|
|
30
27
|
ImageService,
|
|
31
|
-
AudioService,
|
|
32
|
-
VideoService,
|
|
33
28
|
CountService,
|
|
34
29
|
QuickToolbarService,
|
|
35
30
|
HtmlEditorService,
|
|
@@ -37,8 +32,7 @@ RichTextEditorAllModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
|
|
|
37
32
|
TableService,
|
|
38
33
|
PasteCleanupService,
|
|
39
34
|
ResizeService,
|
|
40
|
-
FileManagerService
|
|
41
|
-
FormatPainterService
|
|
35
|
+
FileManagerService
|
|
42
36
|
], imports: [[CommonModule, RichTextEditorModule], RichTextEditorModule] });
|
|
43
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: RichTextEditorAllModule, decorators: [{
|
|
44
38
|
type: NgModule,
|
|
@@ -51,8 +45,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
51
45
|
ToolbarService,
|
|
52
46
|
LinkService,
|
|
53
47
|
ImageService,
|
|
54
|
-
AudioService,
|
|
55
|
-
VideoService,
|
|
56
48
|
CountService,
|
|
57
49
|
QuickToolbarService,
|
|
58
50
|
HtmlEditorService,
|
|
@@ -60,9 +52,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
60
52
|
TableService,
|
|
61
53
|
PasteCleanupService,
|
|
62
54
|
ResizeService,
|
|
63
|
-
FileManagerService
|
|
64
|
-
FormatPainterService
|
|
55
|
+
FileManagerService
|
|
65
56
|
]
|
|
66
57
|
}]
|
|
67
58
|
}] });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHRlZGl0b3ItYWxsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yaWNoLXRleHQtZWRpdG9yL3JpY2h0ZXh0ZWRpdG9yLWFsbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0NBQWdDLENBQUE7O0FBRzlKLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBa0IsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBQyxDQUFDO0FBQ3BHLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBa0IsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBa0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDO0FBQzlGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBa0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDO0FBQzlGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFrQixFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFDLENBQUM7QUFDbkgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWtCLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUMsQ0FBQztBQUM3RyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBa0IsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBQyxDQUFDO0FBQ3pILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBa0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDO0FBQzlGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFrQixFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFDLENBQUM7QUFDbkgsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFrQixFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLENBQUM7QUFDakcsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQWtCLEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUMsQ0FBQztBQUVoSDs7R0FFRztBQW9CSCxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUIsWUFsQnRCLFlBQVksRUFBRSxvQkFBb0IsYUFFeEMsb0JBQW9CO3FIQWdCZix1QkFBdUIsYUFkdEI7UUFDTixjQUFjO1FBQ2QsV0FBVztRQUNYLFlBQVk7UUFDWixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixhQUFhO1FBQ2Isa0JBQWtCO0tBQ3JCLFlBaEJRLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLEVBRXpDLG9CQUFvQjsyRkFnQmYsdUJBQXVCO2tCQW5CbkMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUM7b0JBQzdDLE9BQU8sRUFBRTt3QkFDTCxvQkFBb0I7cUJBQ3ZCO29CQUNELFNBQVMsRUFBQzt3QkFDTixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGtCQUFrQjtxQkFDckI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgVmFsdWVQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9yaWNodGV4dGVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmljaFRleHRFZGl0b3JNb2R1bGUgfSBmcm9tICcuL3JpY2h0ZXh0ZWRpdG9yLm1vZHVsZSc7XG5pbXBvcnQge1Rvb2xiYXIsIExpbmssIEltYWdlLCBDb3VudCwgUXVpY2tUb29sYmFyLCBIdG1sRWRpdG9yLCBNYXJrZG93bkVkaXRvciwgVGFibGUsIFBhc3RlQ2xlYW51cCwgUmVzaXplLCBGaWxlTWFuYWdlcn0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLXJpY2h0ZXh0ZWRpdG9yJ1xuXG5cbmV4cG9ydCBjb25zdCBUb29sYmFyU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ1JpY2hUZXh0RWRpdG9yVG9vbGJhcicsIHVzZVZhbHVlOiBUb29sYmFyfTtcbmV4cG9ydCBjb25zdCBMaW5rU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ1JpY2hUZXh0RWRpdG9yTGluaycsIHVzZVZhbHVlOiBMaW5rfTtcbmV4cG9ydCBjb25zdCBJbWFnZVNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdSaWNoVGV4dEVkaXRvckltYWdlJywgdXNlVmFsdWU6IEltYWdlfTtcbmV4cG9ydCBjb25zdCBDb3VudFNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdSaWNoVGV4dEVkaXRvckNvdW50JywgdXNlVmFsdWU6IENvdW50fTtcbmV4cG9ydCBjb25zdCBRdWlja1Rvb2xiYXJTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnUmljaFRleHRFZGl0b3JRdWlja1Rvb2xiYXInLCB1c2VWYWx1ZTogUXVpY2tUb29sYmFyfTtcbmV4cG9ydCBjb25zdCBIdG1sRWRpdG9yU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ1JpY2hUZXh0RWRpdG9ySHRtbEVkaXRvcicsIHVzZVZhbHVlOiBIdG1sRWRpdG9yfTtcbmV4cG9ydCBjb25zdCBNYXJrZG93bkVkaXRvclNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdSaWNoVGV4dEVkaXRvck1hcmtkb3duRWRpdG9yJywgdXNlVmFsdWU6IE1hcmtkb3duRWRpdG9yfTtcbmV4cG9ydCBjb25zdCBUYWJsZVNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdSaWNoVGV4dEVkaXRvclRhYmxlJywgdXNlVmFsdWU6IFRhYmxlfTtcbmV4cG9ydCBjb25zdCBQYXN0ZUNsZWFudXBTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnUmljaFRleHRFZGl0b3JQYXN0ZUNsZWFudXAnLCB1c2VWYWx1ZTogUGFzdGVDbGVhbnVwfTtcbmV4cG9ydCBjb25zdCBSZXNpemVTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnUmljaFRleHRFZGl0b3JSZXNpemUnLCB1c2VWYWx1ZTogUmVzaXplfTtcbmV4cG9ydCBjb25zdCBGaWxlTWFuYWdlclNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdSaWNoVGV4dEVkaXRvckZpbGVNYW5hZ2VyJywgdXNlVmFsdWU6IEZpbGVNYW5hZ2VyfTtcblxuLyoqXG4gKiBOZ01vZHVsZSBkZWZpbml0aW9uIGZvciB0aGUgUmljaFRleHRFZGl0b3IgY29tcG9uZW50IHdpdGggcHJvdmlkZXJzLlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJpY2hUZXh0RWRpdG9yTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFJpY2hUZXh0RWRpdG9yTW9kdWxlXG4gICAgXSxcbiAgICBwcm92aWRlcnM6W1xuICAgICAgICBUb29sYmFyU2VydmljZSxcbiAgICAgICAgTGlua1NlcnZpY2UsXG4gICAgICAgIEltYWdlU2VydmljZSxcbiAgICAgICAgQ291bnRTZXJ2aWNlLFxuICAgICAgICBRdWlja1Rvb2xiYXJTZXJ2aWNlLFxuICAgICAgICBIdG1sRWRpdG9yU2VydmljZSxcbiAgICAgICAgTWFya2Rvd25FZGl0b3JTZXJ2aWNlLFxuICAgICAgICBUYWJsZVNlcnZpY2UsXG4gICAgICAgIFBhc3RlQ2xlYW51cFNlcnZpY2UsXG4gICAgICAgIFJlc2l6ZVNlcnZpY2UsXG4gICAgICAgIEZpbGVNYW5hZ2VyU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUmljaFRleHRFZGl0b3JBbGxNb2R1bGUgeyB9Il19
|
|
@@ -6,8 +6,8 @@ import { ComponentBase, ComponentMixins, FormBase, setValue } from '@syncfusion/
|
|
|
6
6
|
import { RichTextEditor } from '@syncfusion/ej2-richtexteditor';
|
|
7
7
|
import { Template } from '@syncfusion/ej2-angular-base';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
-
export const inputs = ['autoSaveOnIdle', 'backgroundColor', 'bulletFormatList', 'cssClass', 'editorMode', 'enableAutoUrl', 'enableHtmlEncode', 'enableHtmlSanitizer', 'enablePersistence', 'enableResize', 'enableRtl', 'enableTabKey', 'enableXhtml', 'enabled', 'enterKey', 'fileManagerSettings', 'floatingToolbarOffset', 'fontColor', 'fontFamily', 'fontSize', 'format', '
|
|
10
|
-
export const outputs = ['actionBegin', 'actionComplete', 'afterImageDelete', '
|
|
9
|
+
export const inputs = ['autoSaveOnIdle', 'backgroundColor', 'bulletFormatList', 'cssClass', 'editorMode', 'enableAutoUrl', 'enableHtmlEncode', 'enableHtmlSanitizer', 'enablePersistence', 'enableResize', 'enableRtl', 'enableTabKey', 'enableXhtml', 'enabled', 'enterKey', 'fileManagerSettings', 'floatingToolbarOffset', 'fontColor', 'fontFamily', 'fontSize', 'format', 'formatter', 'height', 'htmlAttributes', 'iframeSettings', 'inlineMode', 'insertImageSettings', 'keyConfig', 'locale', 'maxLength', 'numberFormatList', 'pasteCleanupSettings', 'placeholder', 'quickToolbarSettings', 'readonly', 'saveInterval', 'shiftEnterKey', 'showCharCount', 'tableSettings', 'toolbarSettings', 'undoRedoSteps', 'undoRedoTimer', 'value', 'valueTemplate', 'width'];
|
|
10
|
+
export const outputs = ['actionBegin', 'actionComplete', 'afterImageDelete', 'afterPasteCleanup', 'beforeDialogClose', 'beforeDialogOpen', 'beforeImageDrop', 'beforeImageUpload', 'beforePasteCleanup', 'beforeQuickToolbarOpen', 'beforeSanitizeHtml', 'blur', 'change', 'created', 'destroyed', 'dialogClose', 'dialogOpen', 'focus', 'imageRemoving', 'imageSelected', 'imageUploadFailed', 'imageUploadSuccess', 'imageUploading', 'quickToolbarClose', 'quickToolbarOpen', 'resizeStart', 'resizeStop', 'resizing', 'toolbarClick', 'toolbarStatusUpdate', 'updatedToolbarStatus', 'valueChange'];
|
|
11
11
|
export const twoWays = ['value'];
|
|
12
12
|
/**
|
|
13
13
|
* `ejs-richtexteditor` represents the Angular richtexteditor Component.
|
|
@@ -46,20 +46,6 @@ let RichTextEditorComponent = RichTextEditorComponent_1 = class RichTextEditorCo
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
catch { }
|
|
49
|
-
try {
|
|
50
|
-
let mod = this.injector.get('RichTextEditorAudio');
|
|
51
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
52
|
-
this.injectedModules.push(mod);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
catch { }
|
|
56
|
-
try {
|
|
57
|
-
let mod = this.injector.get('RichTextEditorVideo');
|
|
58
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
59
|
-
this.injectedModules.push(mod);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
catch { }
|
|
63
49
|
try {
|
|
64
50
|
let mod = this.injector.get('RichTextEditorCount');
|
|
65
51
|
if (this.injectedModules.indexOf(mod) === -1) {
|
|
@@ -116,13 +102,6 @@ let RichTextEditorComponent = RichTextEditorComponent_1 = class RichTextEditorCo
|
|
|
116
102
|
}
|
|
117
103
|
}
|
|
118
104
|
catch { }
|
|
119
|
-
try {
|
|
120
|
-
let mod = this.injector.get('RichTextEditorFormatPainter');
|
|
121
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
122
|
-
this.injectedModules.push(mod);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
catch { }
|
|
126
105
|
this.registerEvents(outputs);
|
|
127
106
|
this.addTwoWay.call(this, twoWays);
|
|
128
107
|
setValue('currentInstance', this, this.viewContainerRef);
|
|
@@ -151,7 +130,7 @@ let RichTextEditorComponent = RichTextEditorComponent_1 = class RichTextEditorCo
|
|
|
151
130
|
}
|
|
152
131
|
};
|
|
153
132
|
RichTextEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: RichTextEditorComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
154
|
-
RichTextEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: RichTextEditorComponent, selector: "ejs-richtexteditor", inputs: { autoSaveOnIdle: "autoSaveOnIdle", backgroundColor: "backgroundColor", bulletFormatList: "bulletFormatList", cssClass: "cssClass", editorMode: "editorMode", enableAutoUrl: "enableAutoUrl", enableHtmlEncode: "enableHtmlEncode", enableHtmlSanitizer: "enableHtmlSanitizer", enablePersistence: "enablePersistence", enableResize: "enableResize", enableRtl: "enableRtl", enableTabKey: "enableTabKey", enableXhtml: "enableXhtml", enabled: "enabled", enterKey: "enterKey", fileManagerSettings: "fileManagerSettings", floatingToolbarOffset: "floatingToolbarOffset", fontColor: "fontColor", fontFamily: "fontFamily", fontSize: "fontSize", format: "format",
|
|
133
|
+
RichTextEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: RichTextEditorComponent, selector: "ejs-richtexteditor", inputs: { autoSaveOnIdle: "autoSaveOnIdle", backgroundColor: "backgroundColor", bulletFormatList: "bulletFormatList", cssClass: "cssClass", editorMode: "editorMode", enableAutoUrl: "enableAutoUrl", enableHtmlEncode: "enableHtmlEncode", enableHtmlSanitizer: "enableHtmlSanitizer", enablePersistence: "enablePersistence", enableResize: "enableResize", enableRtl: "enableRtl", enableTabKey: "enableTabKey", enableXhtml: "enableXhtml", enabled: "enabled", enterKey: "enterKey", fileManagerSettings: "fileManagerSettings", floatingToolbarOffset: "floatingToolbarOffset", fontColor: "fontColor", fontFamily: "fontFamily", fontSize: "fontSize", format: "format", formatter: "formatter", height: "height", htmlAttributes: "htmlAttributes", iframeSettings: "iframeSettings", inlineMode: "inlineMode", insertImageSettings: "insertImageSettings", keyConfig: "keyConfig", locale: "locale", maxLength: "maxLength", numberFormatList: "numberFormatList", pasteCleanupSettings: "pasteCleanupSettings", placeholder: "placeholder", quickToolbarSettings: "quickToolbarSettings", readonly: "readonly", saveInterval: "saveInterval", shiftEnterKey: "shiftEnterKey", showCharCount: "showCharCount", tableSettings: "tableSettings", toolbarSettings: "toolbarSettings", undoRedoSteps: "undoRedoSteps", undoRedoTimer: "undoRedoTimer", value: "value", valueTemplate: "valueTemplate", width: "width" }, outputs: { actionBegin: "actionBegin", actionComplete: "actionComplete", afterImageDelete: "afterImageDelete", afterPasteCleanup: "afterPasteCleanup", beforeDialogClose: "beforeDialogClose", beforeDialogOpen: "beforeDialogOpen", beforeImageDrop: "beforeImageDrop", beforeImageUpload: "beforeImageUpload", beforePasteCleanup: "beforePasteCleanup", beforeQuickToolbarOpen: "beforeQuickToolbarOpen", beforeSanitizeHtml: "beforeSanitizeHtml", blur: "blur", change: "change", created: "created", destroyed: "destroyed", dialogClose: "dialogClose", dialogOpen: "dialogOpen", focus: "focus", imageRemoving: "imageRemoving", imageSelected: "imageSelected", imageUploadFailed: "imageUploadFailed", imageUploadSuccess: "imageUploadSuccess", imageUploading: "imageUploading", quickToolbarClose: "quickToolbarClose", quickToolbarOpen: "quickToolbarOpen", resizeStart: "resizeStart", resizeStop: "resizeStop", resizing: "resizing", toolbarClick: "toolbarClick", toolbarStatusUpdate: "toolbarStatusUpdate", updatedToolbarStatus: "updatedToolbarStatus", valueChange: "valueChange" }, providers: [
|
|
155
134
|
{
|
|
156
135
|
provide: NG_VALUE_ACCESSOR,
|
|
157
136
|
useExisting: forwardRef(() => RichTextEditorComponent_1),
|
|
@@ -186,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
186
165
|
type: ContentChild,
|
|
187
166
|
args: ['valueTemplate']
|
|
188
167
|
}] } });
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHRlZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3JpY2gtdGV4dC1lZGl0b3IvcmljaHRleHRlZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0UsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUErQixlQUFlLEVBQTBCLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2SixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUd4RCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQWEsQ0FBQyxnQkFBZ0IsRUFBQyxpQkFBaUIsRUFBQyxrQkFBa0IsRUFBQyxVQUFVLEVBQUMsWUFBWSxFQUFDLGVBQWUsRUFBQyxrQkFBa0IsRUFBQyxxQkFBcUIsRUFBQyxtQkFBbUIsRUFBQyxjQUFjLEVBQUMsV0FBVyxFQUFDLGNBQWMsRUFBQyxhQUFhLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxxQkFBcUIsRUFBQyx1QkFBdUIsRUFBQyxXQUFXLEVBQUMsWUFBWSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsdUJBQXVCLEVBQUMsV0FBVyxFQUFDLFFBQVEsRUFBQyxnQkFBZ0IsRUFBQyxnQkFBZ0IsRUFBQyxZQUFZLEVBQUMscUJBQXFCLEVBQUMscUJBQXFCLEVBQUMscUJBQXFCLEVBQUMsV0FBVyxFQUFDLFFBQVEsRUFBQyxXQUFXLEVBQUMsa0JBQWtCLEVBQUMsc0JBQXNCLEVBQUMsYUFBYSxFQUFDLHNCQUFzQixFQUFDLFVBQVUsRUFBQyxjQUFj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LENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKO29CQUNELE9BQU8sRUFBRSxFQUVSO2lCQUNKOytLQTBEVSxhQUFhO3NCQUZuQixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYsIFZhbHVlUHJvdmlkZXIsIFJlbmRlcmVyMiwgSW5qZWN0b3IsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBmb3J3YXJkUmVmLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50QmFzZSwgSUNvbXBvbmVudEJhc2UsIGFwcGx5TWl4aW5zLCBDb21wb25lbnRNaXhpbnMsIFByb3BlcnR5Q29sbGVjdGlvbkluZm8sIEZvcm1CYXNlLCBzZXRWYWx1ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgUmljaFRleHRFZGl0b3IgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItcmljaHRleHRlZGl0b3InO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcblxuXG5leHBvcnQgY29uc3QgaW5wdXRzOiBzdHJpbmdbXSA9IFsnYXV0b1NhdmVPbklkbGUnLCdiYWNrZ3JvdW5kQ29sb3InLCdidWxsZXRGb3JtYXRMaXN0JywnY3NzQ2xhc3MnLCdlZGl0b3JNb2RlJywnZW5hYmxlQXV0b1VybCcsJ2VuYWJsZUh0bWxFbmNvZGUnLCdlbmFibGVIdG1sU2FuaXRpemVyJywnZW5hYmxlUGVyc2lzdGVuY2UnLCdlbmFibGVSZXNpemUnLCdlbmFibGVSdGwnLCdlbmFibGVUYWJLZXknLCdlbmFibGVYaHRtbCcsJ2VuYWJsZWQnLCdlbnRlcktleScsJ2ZpbGVNYW5hZ2VyU2V0dGluZ3MnLCdmbG9hdGluZ1Rvb2xiYXJPZmZzZXQnLCdmb250Q29sb3InLCdmb250RmFtaWx5JywnZm9udFNpemUnLCdmb3JtYXQnLCdmb3JtYXRQYWludGVyU2V0dGluZ3MnLCdmb3JtYXR0ZXInLCdoZWlnaHQnLCdodG1sQXR0cmlidXRlcycsJ2lmcmFtZVNldHRpbmdzJywnaW5saW5lTW9kZScsJ2luc2VydEF1ZGlvU2V0dGluZ3MnLCdpbnNlcnRJbWFnZVNldHRpbmdzJywnaW5zZXJ0VmlkZW9TZXR0aW5ncycsJ2tleUNvbmZpZycsJ2xvY2FsZScsJ21heExlbmd0aCcsJ251bWJlckZvcm1hdExpc3QnLCdwYXN0ZUNsZWFudXBTZXR0aW5ncycsJ3BsYWNlaG9sZGVyJywncXVpY2tUb29sYmFyU2V0dGluZ3MnLCdyZWFkb25seScsJ3NhdmVJbnRlcnZhbCcsJ3NoaWZ0RW50ZXJLZXknLCdzaG93Q2hhckNvdW50Jywnc2hvd1Rvb2x0aXAnLCd0YWJsZVNldHRpbmdzJywndG9vbGJhclNldHRpbmdzJywndW5kb1JlZG9TdGVwcycsJ3VuZG9SZWRvVGltZXInLCd2YWx1ZScsJ3ZhbHVlVGVtcGxhdGUnLCd3aWR0aCddO1xuZXhwb3J0IGNvbnN0IG91dHB1dHM6IHN0cmluZ1tdID0gWydhY3Rpb25CZWdpbicsJ2FjdGlvbkNvbXBsZXRlJywnYWZ0ZXJJbWFnZURlbGV0ZScsJ2FmdGVyTWVkaWFEZWxldGUnLCdhZnRlclBhc3RlQ2xlYW51cCcsJ2JlZm9yZURpYWxvZ0Nsb3NlJywnYmVmb3JlRGlhbG9nT3BlbicsJ2JlZm9yZUZpbGVVcGxvYWQnLCdiZWZvcmVJbWFnZURyb3AnLCdiZWZvcmVJbWFnZVVwbG9hZCcsJ2JlZm9yZVBhc3RlQ2xlYW51cCcsJ2JlZm9yZVF1aWNrVG9vbGJhck9wZW4nLCdiZWZvcmVTYW5pdGl6ZUh0bWwnLCdibHVyJywnY2hhbmdlJywnY3JlYXRlZCcsJ2Rlc3Ryb3llZCcsJ2RpYWxvZ0Nsb3NlJywnZGlhbG9nT3BlbicsJ2ZpbGVSZW1vdmluZycsJ2ZpbGVTZWxlY3RlZCcsJ2ZpbGVVcGxvYWRGYWlsZWQnLCdmaWxlVXBsb2FkU3VjY2VzcycsJ2ZpbGVVcGxvYWRpbmcnLCdmb2N1cycsJ2ltYWdlUmVtb3ZpbmcnLCdpbWFnZVNlbGVjdGVkJywnaW1hZ2VVcGxvYWRGYWlsZWQnLCdpbWFnZVVwbG9hZFN1Y2Nlc3MnLCdpbWFnZVVwbG9hZGluZycsJ3F1aWNrVG9vbGJhckNsb3NlJywncXVpY2tUb29sYmFyT3BlbicsJ3Jlc2l6ZVN0YXJ0JywncmVzaXplU3RvcCcsJ3Jlc2l6aW5nJywndG9vbGJhckNsaWNrJywndG9vbGJhclN0YXR1c1VwZGF0ZScsJ3VwZGF0ZWRUb29sYmFyU3RhdHVzJywndmFsdWVDaGFuZ2UnXTtcbmV4cG9ydCBjb25zdCB0d29XYXlzOiBzdHJpbmdbXSA9IFsndmFsdWUnXTtcblxuLyoqXG4gKiBgZWpzLXJpY2h0ZXh0ZWRpdG9yYCByZXByZXNlbnRzIHRoZSBBbmd1bGFyIHJpY2h0ZXh0ZWRpdG9yIENvbXBvbmVudC5cbiAqIGBgYGh0bWxcbiAqIDxlanMtcmljaHRleHRlZGl0b3I+PC9lanMtcmljaHRleHRlZGl0b3I+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlanMtcmljaHRleHRlZGl0b3InLFxuICAgIGlucHV0czogaW5wdXRzLFxuICAgIG91dHB1dHM6IG91dHB1dHMsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHF1ZXJpZXM6IHtcblxuICAgIH1cbn0pXG5AQ29tcG9uZW50TWl4aW5zKFtDb21wb25lbnRCYXNlLCBGb3JtQmFzZV0pXG5leHBvcnQgY2xhc3MgUmljaFRleHRFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBSaWNoVGV4dEVkaXRvciBpbXBsZW1lbnRzIElDb21wb25lbnRCYXNlIHtcbiAgICBwdWJsaWMgZm9ybUNvbXBDb250ZXh0IDogYW55O1xuICAgIHB1YmxpYyBmb3JtQ29udGV4dCA6IGFueTtcbiAgICBwdWJsaWMgdGFnT2JqZWN0czogYW55O1xuXHRhY3Rpb25CZWdpbjogYW55O1xuXHRhY3Rpb25Db21wbGV0ZTogYW55O1xuXHRhZnRlckltYWdlRGVsZXRlOiBhbnk7XG5cdGFmdGVyTWVkaWFEZWxldGU6IGFueTtcblx0YWZ0ZXJQYXN0ZUNsZWFudXA6IGFueTtcblx0YmVmb3JlRGlhbG9nQ2xvc2U6IGFueTtcblx0YmVmb3JlRGlhbG9nT3BlbjogYW55O1xuXHRiZWZvcmVGaWxlVXBsb2FkOiBhbnk7XG5cdGJlZm9yZUltYWdlRHJvcDogYW55O1xuXHRiZWZvcmVJbWFnZVVwbG9hZDogYW55O1xuXHRiZWZvcmVQYXN0ZUNsZWFudXA6IGFueTtcblx0YmVmb3JlUXVpY2tUb29sYmFyT3BlbjogYW55O1xuXHRiZWZvcmVTYW5pdGl6ZUh0bWw6IGFueTtcblx0Ymx1cjogYW55O1xuXHRjaGFuZ2U6IGFueTtcblx0Y3JlYXRlZDogYW55O1xuXHRkZXN0cm95ZWQ6IGFueTtcblx0ZGlhbG9nQ2xvc2U6IGFueTtcblx0ZGlhbG9nT3BlbjogYW55O1xuXHRmaWxlUmVtb3Zpbmc6IGFueTtcblx0ZmlsZVNlbGVjdGVkOiBhbnk7XG5cdGZpbGVVcGxvYWRGYWlsZWQ6IGFueTtcblx0ZmlsZVVwbG9hZFN1Y2Nlc3M6IGFueTtcblx0ZmlsZVVwbG9hZGluZzogYW55O1xuXHRmb2N1czogYW55O1xuXHRpbWFnZVJlbW92aW5nOiBhbnk7XG5cdGltYWdlU2VsZWN0ZWQ6IGFueTtcblx0aW1hZ2VVcGxvYWRGYWlsZWQ6IGFueTtcblx0aW1hZ2VVcGxvYWRTdWNjZXNzOiBhbnk7XG5cdGltYWdlVXBsb2FkaW5nOiBhbnk7XG5cdHF1aWNrVG9vbGJhckNsb3NlOiBhbnk7XG5cdHF1aWNrVG9vbGJhck9wZW46IGFueTtcblx0cmVzaXplU3RhcnQ6IGFueTtcblx0cmVzaXplU3RvcDogYW55O1xuXHRyZXNpemluZzogYW55O1xuXHR0b29sYmFyQ2xpY2s6IGFueTtcblx0dG9vbGJhclN0YXR1c1VwZGF0ZTogYW55O1xuXHR1cGRhdGVkVG9vbGJhclN0YXR1czogYW55O1xuXHRwdWJsaWMgdmFsdWVDaGFuZ2U6IGFueTtcblxuXG4gICAgLyoqIFxuICAgICAqIEFjY2VwdHMgdGhlIHRlbXBsYXRlIGRlc2lnbiBhbmQgYXNzaWducyBpdCBhcyBSaWNoVGV4dEVkaXRvcuKAmXMgY29udGVudC4gXG4gICAgICogVGhlIGJ1aWx0LWluIHRlbXBsYXRlIGVuZ2luZSB3aGljaCBwcm92aWRlcyBvcHRpb25zIHRvIGNvbXBpbGUgdGVtcGxhdGUgc3RyaW5nIGludG8gYSBleGVjdXRhYmxlIGZ1bmN0aW9uLiBcbiAgICAgKiBGb3IgRVg6IFdlIGhhdmUgZXhwcmVzc2lvbiBldm9sdXRpb24gYXMgbGlrZSBFUzYgZXhwcmVzc2lvbiBzdHJpbmcgbGl0ZXJhbHNcbiAgICAgKiBcbiAgICAgKiB7JSBjb2RlQmxvY2sgc3JjPSdyaWNoLXRleHQtZWRpdG9yL3ZhbHVlLXRlbXBsYXRlL2luZGV4Lm1kJyAlfXslIGVuZGNvZGVCbG9jayAlfVxuICAgICAqICAgICBcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgndmFsdWVUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdmFsdWVUZW1wbGF0ZTogYW55O1xuXG4gICAgcHJpdmF0ZSBza2lwRnJvbUV2ZW50OmJvb2xlYW4gPSB0cnVlO1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdFbGU6IEVsZW1lbnRSZWYsIHByaXZhdGUgc3JlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjpWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSB0aGlzLm5nRWxlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzID0gdGhpcy5pbmplY3RlZE1vZHVsZXMgfHwgW107XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvclRvb2xiYXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yTGluaycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JJbWFnZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JBdWRpbycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JWaWRlbycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JDb3VudCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JRdWlja1Rvb2xiYXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9ySHRtbEVkaXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JNYXJrZG93bkVkaXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JUYWJsZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JQYXN0ZUNsZWFudXAnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yUmVzaXplJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvckZpbGVNYW5hZ2VyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvckZvcm1hdFBhaW50ZXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cclxuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKG91dHB1dHMpO1xuICAgICAgICB0aGlzLmFkZFR3b1dheS5jYWxsKHRoaXMsIHR3b1dheXMpO1xuICAgICAgICBzZXRWYWx1ZSgnY3VycmVudEluc3RhbmNlJywgdGhpcywgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udGV4dCAgPSBuZXcgRm9ybUJhc2UoKTtcbiAgICAgICAgdGhpcy5mb3JtQ29tcENvbnRleHQgID0gbmV3IENvbXBvbmVudEJhc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShyZWdpc3RlckZ1bmN0aW9uOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKHJlZ2lzdGVyRnVuY3Rpb246ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgfVxuICAgIFxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmZvcm1Db21wQ29udGV4dC5uZ09uSW5pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Db250ZXh0Lm5nQWZ0ZXJWaWV3SW5pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUNvbXBDb250ZXh0Lm5nT25EZXN0cm95KHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIFxuICAgICAgICB0aGlzLmZvcm1Db21wQ29udGV4dC5uZ0FmdGVyQ29udGVudENoZWNrZWQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyRXZlbnRzOiAoZXZlbnRMaXN0OiBzdHJpbmdbXSkgPT4gdm9pZDtcbiAgICBwdWJsaWMgYWRkVHdvV2F5OiAocHJvcExpc3Q6IHN0cmluZ1tdKSA9PiB2b2lkO1xufVxuXG4iXX0=
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHRlZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3JpY2gtdGV4dC1lZGl0b3IvcmljaHRleHRlZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0UsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUErQixlQUFlLEVBQTBCLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2SixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUd4RCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQWEsQ0FBQyxnQkFBZ0IsRUFBQyxpQkFBaUIsRUFBQyxrQkFBa0IsRUFBQyxVQUFVLEVBQUMsWUFBWSxFQUFDLGVBQWUsRUFBQyxrQkFBa0IsRUFBQyxxQkFBcUIsRUFBQyxtQkFBbUIsRUFBQyxjQUFjLEVBQUMsV0FBVyxFQUFDLGNBQWMsRUFBQyxhQUFhLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxxQkFBcUIsRUFBQyx1QkFBdUIsRUFBQyxXQUFXLEVBQUMsWUFBWSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsV0FBVyxFQUFDLFFBQVEsRUFBQyxnQkFBZ0IsRUFBQyxnQkFBZ0IsRUFBQyxZQUFZLEVBQUMscUJBQXFCLEVBQUMsV0FBVyxFQUFDLFFBQVEsRUFBQyxXQUFXLEVBQUMsa0JBQWtCLEVBQUMsc0JBQXNCLEVBQUMsYUFBYSxFQUFDLHNCQUFzQixFQUFDLFVBQVUsRUFBQyxjQUFjLEVBQUMsZUFBZSxFQUFDLGVBQWUsRUFBQyxlQUFlLEVBQUMs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QUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7b0JBQ0QsT0FBTyxFQUFFLEVBRVI7aUJBQ0o7K0tBbURVLGFBQWE7c0JBRm5CLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NvbnRhaW5lclJlZiwgVmFsdWVQcm92aWRlciwgUmVuZGVyZXIyLCBJbmplY3RvciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIGZvcndhcmRSZWYsIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21wb25lbnRCYXNlLCBJQ29tcG9uZW50QmFzZSwgYXBwbHlNaXhpbnMsIENvbXBvbmVudE1peGlucywgUHJvcGVydHlDb2xsZWN0aW9uSW5mbywgRm9ybUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5pbXBvcnQgeyBSaWNoVGV4dEVkaXRvciB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1yaWNodGV4dGVkaXRvcic7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuXG5cbmV4cG9ydCBjb25zdCBpbnB1dHM6IHN0cmluZ1tdID0gWydhdXRvU2F2ZU9uSWRsZScsJ2JhY2tncm91bmRDb2xvcicsJ2J1bGxldEZvcm1hdExpc3QnLCdjc3NDbGFzcycsJ2VkaXRvck1vZGUnLCdlbmFibGVBdXRvVXJsJywnZW5hYmxlSHRtbEVuY29kZScsJ2VuYWJsZUh0bWxTYW5pdGl6ZXInLCdlbmFibGVQZXJzaXN0ZW5jZScsJ2VuYWJsZVJlc2l6ZScsJ2VuYWJsZVJ0bCcsJ2VuYWJsZVRhYktleScsJ2VuYWJsZVhodG1sJywnZW5hYmxlZCcsJ2VudGVyS2V5JywnZmlsZU1hbmFnZXJTZXR0aW5ncycsJ2Zsb2F0aW5nVG9vbGJhck9mZnNldCcsJ2ZvbnRDb2xvcicsJ2ZvbnRGYW1pbHknLCdmb250U2l6ZScsJ2Zvcm1hdCcsJ2Zvcm1hdHRlcicsJ2hlaWdodCcsJ2h0bWxBdHRyaWJ1dGVzJywnaWZyYW1lU2V0dGluZ3MnLCdpbmxpbmVNb2RlJywnaW5zZXJ0SW1hZ2VTZXR0aW5ncycsJ2tleUNvbmZpZycsJ2xvY2FsZScsJ21heExlbmd0aCcsJ251bWJlckZvcm1hdExpc3QnLCdwYXN0ZUNsZWFudXBTZXR0aW5ncycsJ3BsYWNlaG9sZGVyJywncXVpY2tUb29sYmFyU2V0dGluZ3MnLCdyZWFkb25seScsJ3NhdmVJbnRlcnZhbCcsJ3NoaWZ0RW50ZXJLZXknLCdzaG93Q2hhckNvdW50JywndGFibGVTZXR0aW5ncycsJ3Rvb2xiYXJTZXR0aW5ncycsJ3VuZG9SZWRvU3RlcHMnLCd1bmRvUmVkb1RpbWVyJywndmFsdWUnLCd2YWx1ZVRlbXBsYXRlJywnd2lkdGgnXTtcbmV4cG9ydCBjb25zdCBvdXRwdXRzOiBzdHJpbmdbXSA9IFsnYWN0aW9uQmVnaW4nLCdhY3Rpb25Db21wbGV0ZScsJ2FmdGVySW1hZ2VEZWxldGUnLCdhZnRlclBhc3RlQ2xlYW51cCcsJ2JlZm9yZURpYWxvZ0Nsb3NlJywnYmVmb3JlRGlhbG9nT3BlbicsJ2JlZm9yZUltYWdlRHJvcCcsJ2JlZm9yZUltYWdlVXBsb2FkJywnYmVmb3JlUGFzdGVDbGVhbnVwJywnYmVmb3JlUXVpY2tUb29sYmFyT3BlbicsJ2JlZm9yZVNhbml0aXplSHRtbCcsJ2JsdXInLCdjaGFuZ2UnLCdjcmVhdGVkJywnZGVzdHJveWVkJywnZGlhbG9nQ2xvc2UnLCdkaWFsb2dPcGVuJywnZm9jdXMnLCdpbWFnZVJlbW92aW5nJywnaW1hZ2VTZWxlY3RlZCcsJ2ltYWdlVXBsb2FkRmFpbGVkJywnaW1hZ2VVcGxvYWRTdWNjZXNzJywnaW1hZ2VVcGxvYWRpbmcnLCdxdWlja1Rvb2xiYXJDbG9zZScsJ3F1aWNrVG9vbGJhck9wZW4nLCdyZXNpemVTdGFydCcsJ3Jlc2l6ZVN0b3AnLCdyZXNpemluZycsJ3Rvb2xiYXJDbGljaycsJ3Rvb2xiYXJTdGF0dXNVcGRhdGUnLCd1cGRhdGVkVG9vbGJhclN0YXR1cycsJ3ZhbHVlQ2hhbmdlJ107XG5leHBvcnQgY29uc3QgdHdvV2F5czogc3RyaW5nW10gPSBbJ3ZhbHVlJ107XG5cbi8qKlxuICogYGVqcy1yaWNodGV4dGVkaXRvcmAgcmVwcmVzZW50cyB0aGUgQW5ndWxhciByaWNodGV4dGVkaXRvciBDb21wb25lbnQuXG4gKiBgYGBodG1sXG4gKiA8ZWpzLXJpY2h0ZXh0ZWRpdG9yPjwvZWpzLXJpY2h0ZXh0ZWRpdG9yPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWpzLXJpY2h0ZXh0ZWRpdG9yJyxcbiAgICBpbnB1dHM6IGlucHV0cyxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSaWNoVGV4dEVkaXRvckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBxdWVyaWVzOiB7XG5cbiAgICB9XG59KVxuQENvbXBvbmVudE1peGlucyhbQ29tcG9uZW50QmFzZSwgRm9ybUJhc2VdKVxuZXhwb3J0IGNsYXNzIFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50IGV4dGVuZHMgUmljaFRleHRFZGl0b3IgaW1wbGVtZW50cyBJQ29tcG9uZW50QmFzZSB7XG4gICAgcHVibGljIGZvcm1Db21wQ29udGV4dCA6IGFueTtcbiAgICBwdWJsaWMgZm9ybUNvbnRleHQgOiBhbnk7XG4gICAgcHVibGljIHRhZ09iamVjdHM6IGFueTtcblx0YWN0aW9uQmVnaW46IGFueTtcblx0YWN0aW9uQ29tcGxldGU6IGFueTtcblx0YWZ0ZXJJbWFnZURlbGV0ZTogYW55O1xuXHRhZnRlclBhc3RlQ2xlYW51cDogYW55O1xuXHRiZWZvcmVEaWFsb2dDbG9zZTogYW55O1xuXHRiZWZvcmVEaWFsb2dPcGVuOiBhbnk7XG5cdGJlZm9yZUltYWdlRHJvcDogYW55O1xuXHRiZWZvcmVJbWFnZVVwbG9hZDogYW55O1xuXHRiZWZvcmVQYXN0ZUNsZWFudXA6IGFueTtcblx0YmVmb3JlUXVpY2tUb29sYmFyT3BlbjogYW55O1xuXHRiZWZvcmVTYW5pdGl6ZUh0bWw6IGFueTtcblx0Ymx1cjogYW55O1xuXHRjaGFuZ2U6IGFueTtcblx0Y3JlYXRlZDogYW55O1xuXHRkZXN0cm95ZWQ6IGFueTtcblx0ZGlhbG9nQ2xvc2U6IGFueTtcblx0ZGlhbG9nT3BlbjogYW55O1xuXHRmb2N1czogYW55O1xuXHRpbWFnZVJlbW92aW5nOiBhbnk7XG5cdGltYWdlU2VsZWN0ZWQ6IGFueTtcblx0aW1hZ2VVcGxvYWRGYWlsZWQ6IGFueTtcblx0aW1hZ2VVcGxvYWRTdWNjZXNzOiBhbnk7XG5cdGltYWdlVXBsb2FkaW5nOiBhbnk7XG5cdHF1aWNrVG9vbGJhckNsb3NlOiBhbnk7XG5cdHF1aWNrVG9vbGJhck9wZW46IGFueTtcblx0cmVzaXplU3RhcnQ6IGFueTtcblx0cmVzaXplU3RvcDogYW55O1xuXHRyZXNpemluZzogYW55O1xuXHR0b29sYmFyQ2xpY2s6IGFueTtcblx0dG9vbGJhclN0YXR1c1VwZGF0ZTogYW55O1xuXHR1cGRhdGVkVG9vbGJhclN0YXR1czogYW55O1xuXHRwdWJsaWMgdmFsdWVDaGFuZ2U6IGFueTtcblxuXG4gICAgLyoqIFxuICAgICAqIEFjY2VwdHMgdGhlIHRlbXBsYXRlIGRlc2lnbiBhbmQgYXNzaWducyBpdCBhcyBSaWNoVGV4dEVkaXRvcuKAmXMgY29udGVudC4gXG4gICAgICogVGhlIGJ1aWx0LWluIHRlbXBsYXRlIGVuZ2luZSB3aGljaCBwcm92aWRlcyBvcHRpb25zIHRvIGNvbXBpbGUgdGVtcGxhdGUgc3RyaW5nIGludG8gYSBleGVjdXRhYmxlIGZ1bmN0aW9uLiBcbiAgICAgKiBGb3IgRVg6IFdlIGhhdmUgZXhwcmVzc2lvbiBldm9sdXRpb24gYXMgbGlrZSBFUzYgZXhwcmVzc2lvbiBzdHJpbmcgbGl0ZXJhbHNcbiAgICAgKiBcbiAgICAgKiB7JSBjb2RlQmxvY2sgc3JjPSdyaWNoLXRleHQtZWRpdG9yL3ZhbHVlLXRlbXBsYXRlL2luZGV4Lm1kJyAlfXslIGVuZGNvZGVCbG9jayAlfVxuICAgICAqICAgICBcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgndmFsdWVUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdmFsdWVUZW1wbGF0ZTogYW55O1xuXG4gICAgcHJpdmF0ZSBza2lwRnJvbUV2ZW50OmJvb2xlYW4gPSB0cnVlO1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdFbGU6IEVsZW1lbnRSZWYsIHByaXZhdGUgc3JlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjpWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSB0aGlzLm5nRWxlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzID0gdGhpcy5pbmplY3RlZE1vZHVsZXMgfHwgW107XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvclRvb2xiYXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yTGluaycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JJbWFnZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JDb3VudCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JRdWlja1Rvb2xiYXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9ySHRtbEVkaXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JNYXJrZG93bkVkaXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JUYWJsZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JQYXN0ZUNsZWFudXAnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yUmVzaXplJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvckZpbGVNYW5hZ2VyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHJcbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50cyhvdXRwdXRzKTtcbiAgICAgICAgdGhpcy5hZGRUd29XYXkuY2FsbCh0aGlzLCB0d29XYXlzKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRleHQgID0gbmV3IEZvcm1CYXNlKCk7XG4gICAgICAgIHRoaXMuZm9ybUNvbXBDb250ZXh0ICA9IG5ldyBDb21wb25lbnRCYXNlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UocmVnaXN0ZXJGdW5jdGlvbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChyZWdpc3RlckZ1bmN0aW9uOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIH1cbiAgICBcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29tcENvbnRleHQubmdPbkluaXQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udGV4dC5uZ0FmdGVyVmlld0luaXQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Db21wQ29udGV4dC5uZ09uRGVzdHJveSh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICBcbiAgICAgICAgdGhpcy5mb3JtQ29tcENvbnRleHQubmdBZnRlckNvbnRlbnRDaGVja2VkKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckV2ZW50czogKGV2ZW50TGlzdDogc3RyaW5nW10pID0+IHZvaWQ7XG4gICAgcHVibGljIGFkZFR3b1dheTogKHByb3BMaXN0OiBzdHJpbmdbXSkgPT4gdm9pZDtcbn1cblxuIl19
|