@syncfusion/ej2-angular-richtexteditor 31.2.18 → 32.1.19
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/CHANGELOG.md +13 -133
- package/esm2020/src/index.mjs +2 -2
- package/esm2020/src/rich-text-editor/richtexteditor-all.module.mjs +13 -4
- package/esm2020/src/rich-text-editor/richtexteditor.component.mjs +32 -5
- package/fesm2015/syncfusion-ej2-angular-richtexteditor.mjs +44 -8
- package/fesm2015/syncfusion-ej2-angular-richtexteditor.mjs.map +1 -1
- package/fesm2020/syncfusion-ej2-angular-richtexteditor.mjs +44 -8
- package/fesm2020/syncfusion-ej2-angular-richtexteditor.mjs.map +1 -1
- package/package.json +4 -4
- package/schematics/utils/lib-details.d.ts +2 -2
- package/schematics/utils/lib-details.js +2 -2
- package/schematics/utils/lib-details.ts +4 -4
- package/src/index.d.ts +1 -1
- package/src/rich-text-editor/richtexteditor-all.module.d.ts +3 -0
- package/src/rich-text-editor/richtexteditor.component.d.ts +10 -1
- package/styles/bds-lite.scss +1 -1
- package/styles/bds.scss +1 -1
- package/styles/bootstrap-dark-lite.scss +1 -1
- package/styles/bootstrap-dark.scss +1 -1
- package/styles/bootstrap-lite.scss +1 -1
- package/styles/bootstrap.scss +1 -1
- package/styles/bootstrap4-lite.scss +1 -1
- package/styles/bootstrap4.scss +1 -1
- package/styles/bootstrap5-dark-lite.scss +1 -1
- package/styles/bootstrap5-dark.scss +1 -1
- package/styles/bootstrap5-lite.scss +1 -1
- package/styles/bootstrap5.3-lite.scss +1 -1
- package/styles/bootstrap5.3.scss +1 -1
- package/styles/bootstrap5.scss +1 -1
- package/styles/fabric-dark-lite.scss +1 -1
- package/styles/fabric-dark.scss +1 -1
- package/styles/fabric-lite.scss +1 -1
- package/styles/fabric.scss +1 -1
- package/styles/fluent-dark-lite.scss +1 -1
- package/styles/fluent-dark.scss +1 -1
- package/styles/fluent-lite.scss +1 -1
- package/styles/fluent.scss +1 -1
- package/styles/fluent2-lite.scss +1 -1
- package/styles/fluent2.scss +1 -1
- package/styles/highcontrast-light-lite.scss +1 -1
- package/styles/highcontrast-light.scss +1 -1
- package/styles/highcontrast-lite.scss +1 -1
- package/styles/highcontrast.scss +1 -1
- package/styles/material-dark-lite.scss +1 -1
- package/styles/material-dark.scss +1 -1
- package/styles/material-lite.scss +1 -1
- package/styles/material.scss +1 -1
- package/styles/material3-dark-lite.scss +1 -1
- package/styles/material3-dark.scss +1 -2
- package/styles/material3-lite.scss +1 -1
- package/styles/material3.scss +1 -2
- package/styles/rich-text-editor/bds.scss +1 -1
- package/styles/rich-text-editor/bootstrap-dark.scss +1 -1
- package/styles/rich-text-editor/bootstrap.scss +1 -1
- package/styles/rich-text-editor/bootstrap4.scss +1 -1
- package/styles/rich-text-editor/bootstrap5-dark.scss +1 -1
- package/styles/rich-text-editor/bootstrap5.3.scss +1 -1
- package/styles/rich-text-editor/bootstrap5.scss +1 -1
- package/styles/rich-text-editor/fabric-dark.scss +1 -1
- package/styles/rich-text-editor/fabric.scss +1 -1
- package/styles/rich-text-editor/fluent-dark.scss +1 -1
- package/styles/rich-text-editor/fluent.scss +1 -1
- package/styles/rich-text-editor/fluent2.scss +1 -1
- package/styles/rich-text-editor/highcontrast-light.scss +1 -1
- package/styles/rich-text-editor/highcontrast.scss +1 -1
- package/styles/rich-text-editor/material-dark.scss +1 -1
- package/styles/rich-text-editor/material.scss +1 -1
- package/styles/rich-text-editor/material3-dark.scss +1 -2
- package/styles/rich-text-editor/material3.scss +1 -2
- package/styles/rich-text-editor/tailwind-dark.scss +1 -1
- package/styles/rich-text-editor/tailwind.scss +1 -1
- package/styles/rich-text-editor/tailwind3.scss +1 -1
- package/styles/tailwind-dark-lite.scss +1 -1
- package/styles/tailwind-dark.scss +1 -1
- package/styles/tailwind-lite.scss +1 -1
- package/styles/tailwind.scss +1 -1
- package/styles/tailwind3-lite.scss +1 -1
- package/styles/tailwind3.scss +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,153 +4,33 @@
|
|
|
4
4
|
|
|
5
5
|
### RichTextEditor
|
|
6
6
|
|
|
7
|
-
####
|
|
8
|
-
|
|
9
|
-
- `#I787017` - Now, inserting tables works properly when the Rich Text Editor is placed inside a list.
|
|
10
|
-
|
|
11
|
-
- `#I783703` - Now, the inline toolbar in the Rich Text Editor is positioned properly without truncation at the edges.
|
|
12
|
-
|
|
13
|
-
- `#I786061` - Now, localization works properly for the table cell dropdown items in the Rich Text Editor.
|
|
14
|
-
|
|
15
|
-
- `#I773939` - Now, the emoji picker accessed through the `showEmojiPicker` public method works properly when inline mode is enabled in the Rich Text Editor.
|
|
16
|
-
|
|
17
|
-
## 31.2.12 (2025-11-18)
|
|
18
|
-
|
|
19
|
-
### RichTextEditor
|
|
20
|
-
|
|
21
|
-
#### Bug Fixes
|
|
22
|
-
|
|
23
|
-
- `#I783876` - Now, the `Apply` and `Cancel` buttons are available in the `Picker` mode of the Rich Text Editor's color picker.
|
|
24
|
-
|
|
25
|
-
- `#I785329` - Now, the Enter key behaves correctly when the cursor is placed at the end of a text node that is preceded by a `<br>` tag in the Rich Text Editor.
|
|
26
|
-
|
|
27
|
-
- `#I763871` - Now, when the `BR` is configured for the Enter key in the Rich Text Editor, the backspace action works as expected when the cursor is placed after an anchor tag.
|
|
28
|
-
|
|
29
|
-
## 31.2.10 (2025-11-13)
|
|
30
|
-
|
|
31
|
-
### RichTextEditor
|
|
32
|
-
|
|
33
|
-
#### Bug Fixes
|
|
34
|
-
|
|
35
|
-
- `#I762661` - Now, the Rich Text Editor works properly when pressing the `Backspace` key above the list element, without throwing script errors.
|
|
36
|
-
|
|
37
|
-
## 31.2.5 (2025-11-04)
|
|
38
|
-
|
|
39
|
-
### RichTextEditor
|
|
40
|
-
|
|
41
|
-
#### Bug Fixes
|
|
42
|
-
|
|
43
|
-
- `#F197675` - Now, the Rich Text Editor works properly by showing tooltips when dynamically setting the `enabled` property to `true`.
|
|
44
|
-
|
|
45
|
-
- `#I780766` - Now, the Rich Text Editor works properly when the `value` is bound as `undefined`, without throwing script errors.
|
|
46
|
-
|
|
47
|
-
- `#I776059` - Now, pasting nested lists from `OneNote` into the Rich Text Editor works correctly, with styles applying and reverting as expected.
|
|
48
|
-
|
|
49
|
-
- `#I778189` - Now, pasting lists from `Copilot` into the Rich Text Editor works correctly, with no misalignment issues.
|
|
50
|
-
|
|
51
|
-
- `#I779872` - Now, the Rich Text Editor works properly when hovering over the dialog header to show the tooltip.
|
|
52
|
-
|
|
53
|
-
- `#I770551` - Now, reverting the indented list items in Rich Text Editor works properly.
|
|
54
|
-
|
|
55
|
-
## 31.2.4 (2025-10-28)
|
|
56
|
-
|
|
57
|
-
### RichTextEditor
|
|
58
|
-
|
|
59
|
-
#### Bug Fixes
|
|
60
|
-
|
|
61
|
-
- `#I776604` - Now, unnecessary toolbar items are properly disabled when a custom toolbar item is added while focusing inside a code block.
|
|
62
|
-
|
|
63
|
-
## 31.2.3 (2025-10-22)
|
|
64
|
-
|
|
65
|
-
### RichTextEditor
|
|
66
|
-
|
|
67
|
-
#### Bug Fixes
|
|
68
|
-
|
|
69
|
-
- `#I762935` - Now, list elements seamlessly adopt the appropriate styling properties when a list is applied.
|
|
70
|
-
|
|
71
|
-
- `#I762396` - Now, when using backspace on a list pasted from Outlook into the Rich Text Editor, the entire list is correctly removed as expected.
|
|
72
|
-
|
|
73
|
-
- `#I775016` - Now, text dragged into the Rich Text Editor is correctly tracked in the undo and redo history.
|
|
74
|
-
|
|
75
|
-
## 31.2.2 (2025-10-15)
|
|
76
|
-
|
|
77
|
-
### RichTextEditor
|
|
78
|
-
|
|
79
|
-
#### Bug Fixes
|
|
80
|
-
|
|
81
|
-
- `#I764281` - Now, the inline toolbar displays correctly when text content is positioned alongside an image within the same block-level element.
|
|
82
|
-
|
|
83
|
-
- `#I771571` - Now, the Rich Text Editor properly handles pasting when content is pasted from Microsoft Teams.
|
|
84
|
-
|
|
85
|
-
- `#I773939` - Now, emoji insertion via the colon `:` functions properly when inline mode is enabled.
|
|
86
|
-
|
|
87
|
-
## 31.1.23 (2025-10-07)
|
|
88
|
-
|
|
89
|
-
### RichTextEditor
|
|
90
|
-
|
|
91
|
-
#### Bug Fixes
|
|
92
|
-
|
|
93
|
-
- `#I768886` - Now, pasting content copied from a `span` wrapped Rich Text Editor works properly.
|
|
94
|
-
|
|
95
|
-
- `#I764281` - Now, the Rich Text Editor inline toolbar position works properly when the editor content is empty.
|
|
96
|
-
|
|
97
|
-
## 31.1.22 (2025-10-01)
|
|
98
|
-
|
|
99
|
-
### RichTextEditor
|
|
100
|
-
|
|
101
|
-
#### Bug Fixes
|
|
102
|
-
|
|
103
|
-
- `#I771758` - Now, the `aria-multiline` attribute has been successfully added with the value true to the `contenteditable` element of the Rich Text Editor.
|
|
104
|
-
|
|
105
|
-
- `#I771370` - Now, the `getSelectedHtml` method accurately returns the HTML content corresponding to the selection made within the editor.
|
|
106
|
-
|
|
107
|
-
- `#I770551` - Now, when plain text containing multiple paragraphs is pasted into the editor, each paragraph is correctly preserved and rendered as separate blocks, maintaining the original structure.
|
|
108
|
-
|
|
109
|
-
- `#I769104` - Now, consecutive image drag-and-drop operations work properly in the Rich Text Editor.
|
|
110
|
-
|
|
111
|
-
- `#I769396` - Now, pasting content from Notepad into the Rich Text Editor inserts it exactly at the cursor position.
|
|
112
|
-
|
|
113
|
-
- `#I762396` - Now, pasting multiple lines of content into bullet lists copied from Outlook works properly in the Rich Text Editor when the `enterKey` property is set to `DIV`.
|
|
114
|
-
|
|
115
|
-
## 31.1.21 (2025-09-23)
|
|
116
|
-
|
|
117
|
-
### RichTextEditor
|
|
118
|
-
|
|
119
|
-
#### Bug Fixes
|
|
120
|
-
|
|
121
|
-
- `#I764281` - Now, the inline toolbar will display correctly when triggered by the focus event, even if the Rich Text Editor contains no value.
|
|
7
|
+
#### Features
|
|
122
8
|
|
|
123
|
-
-
|
|
9
|
+
- **AI Assistant**: The Rich Text Editor now features an AI Assistant with predefined prompts for enhancing content, accessible via keyboard shortcuts and a toolbar. Users can interact with the Assistant to improve, summarize, or simplify their text seamlessly. Please find the demo Link [here](https://ej2.syncfusion.com/demos/#/tailwind3/rich-text-editor/ai-assistant.html).
|
|
124
10
|
|
|
125
|
-
|
|
11
|
+
- **Markdown auto-formatting**: The Rich Text Editor now supports real-time Markdown auto-formatting, where inline formats such as bold, italic, strikethrough, inline code are converted immediately after the closing marker is typed, and block format such as headings, lists, blockquotes, code blocks are converted only after a space is entered following the marker. This feature is enabled by default through [`enableMarkdownAutoFormat`](https://ej2.syncfusion.com/documentation/api/rich-text-editor/#enablemarkdownautoformat).
|
|
126
12
|
|
|
127
|
-
|
|
13
|
+
- **Line Height**: The Rich Text Editor now supports line-height formatting through a dedicated dropdown in the toolbar. Add the `LineHeight` option to the toolbar items to display it in the toolbar. You can customize available line-height values using the [`lineHeight`](https://ej2.syncfusion.com/documentation/api/rich-text-editor/#lineHeight) property. Please find the demo link [here](https://ej2.syncfusion.com/demos/#/tailwind3/rich-text-editor/tools.html).
|
|
128
14
|
|
|
129
|
-
|
|
15
|
+
- **Authorization header support**: The Rich Text Editor now enables secure Word import and Word/PDF export operations by adding custom authorization headers to requests, ideal for authenticated or token-based workflows. Headers can be configured dynamically using the [`wordImporting`](https://ej2.syncfusion.com/documentation/api/rich-text-editor/#wordImporting) and [`documentExporting`](https://ej2.syncfusion.com/documentation/api/rich-text-editor/#documentExporting) events.
|
|
130
16
|
|
|
131
|
-
-
|
|
17
|
+
- **Clipboard cleanup**: The Rich Text Editor now intercepts copy (`Ctrl + C`) and cut (`Ctrl + X`) actions to automatically remove unwanted inline styles from the clipboard content. It preserves structural elements such as tables, lists, and images while removing unwanted inline styles. This feature is enabled by default through [`enableClipboardCleanup`](https://ej2.syncfusion.com/documentation/api/rich-text-editor/#enableClipboardCleanup) and customize output via the [`beforeClipboardWrite`](https://ej2.syncfusion.com/documentation/api/rich-text-editor/#beforeClipboardWrite) event. Please find the demo link [here](https://ej2.syncfusion.com/demos/#/tailwind3/rich-text-editor/tools.html).
|
|
132
18
|
|
|
133
|
-
-
|
|
19
|
+
- **AI Assistant**: The Rich Text Editor now features an AI Assistant with predefined prompts for enhancing content, accessible via keyboard shortcuts and a toolbar. Users can interact with the Assistant to improve, summarize, or simplify their text seamlessly. Please find the demo Link [here](https://ej2.syncfusion.com/angular/demos/#/tailwind3/rich-text-editor/ai-assistant.html).
|
|
134
20
|
|
|
135
|
-
-
|
|
21
|
+
- **Markdown auto-formatting**: The Rich Text Editor now supports real-time Markdown auto-formatting, where inline formats such as bold, italic, strikethrough, inline code are converted immediately after the closing marker is typed, and block format such as headings, lists, blockquotes, code blocks are converted only after a space is entered following the marker. This feature is enabled by default through [`enableMarkdownAutoFormat`](https://ej2.syncfusion.com/angular/documentation/api/rich-text-editor/#enablemarkdownautoformat).
|
|
136
22
|
|
|
137
|
-
-
|
|
23
|
+
- **Line Height**: The Rich Text Editor now supports line-height formatting through a dedicated dropdown in the toolbar. Add the `LineHeight` option to the toolbar items to display it in the toolbar. You can customize available line-height values using the [`lineHeight`](https://ej2.syncfusion.com/angular/documentation/api/rich-text-editor/#lineHeight) property. Please find the demo link [here](https://ej2.syncfusion.com/angular/demos/#/tailwind3/rich-text-editor/tools.html).
|
|
138
24
|
|
|
139
|
-
|
|
25
|
+
- **Authorization header support**: The Rich Text Editor now enables secure Word import and Word/PDF export operations by adding custom authorization headers to requests, ideal for authenticated or token-based workflows. Headers can be configured dynamically using the [`wordImporting`](https://ej2.syncfusion.com/angular/documentation/api/rich-text-editor/#wordImporting) and [`documentExporting`](https://ej2.syncfusion.com/angular/documentation/api/rich-text-editor/#documentExporting) events.
|
|
140
26
|
|
|
141
|
-
|
|
27
|
+
- **Clipboard cleanup**: The Rich Text Editor now intercepts copy (`Ctrl + C`) and cut (`Ctrl + X`) actions to automatically remove unwanted inline styles from the clipboard content. It preserves structural elements such as tables, lists, and images while removing unwanted inline styles. This feature is enabled by default through [`enableClipboardCleanup`](https://ej2.syncfusion.com/angular/documentation/api/rich-text-editor/#enableClipboardCleanup) and customize output via the [`beforeClipboardWrite`](https://ej2.syncfusion.com/angular/documentation/api/rich-text-editor/#beforeClipboardWrite) event. Please find the demo link [here](https://ej2.syncfusion.com/angular/demos/#/tailwind3/rich-text-editor/tools.html).
|
|
142
28
|
|
|
143
29
|
#### Bug Fixes
|
|
144
30
|
|
|
145
|
-
- `#
|
|
146
|
-
|
|
147
|
-
- `#I759593` - Now, the Rich Text Editor works properly without throwing an accessibility error from the color picker toolbar.
|
|
148
|
-
|
|
149
|
-
- `#I762072, #I760826` - Now, the Rich Text Editor works properly when copying and pasting content with bold formatting and font color from Excel.
|
|
150
|
-
|
|
151
|
-
- `#I762077` - Now, the Rich Text Editor works properly when pressing backspace before an image in a list item, and the image no longer disappears.
|
|
31
|
+
- `#I770551` - Now, the Rich Text Editor fully reverts list items across all nested levels when using the corresponding toolbar option. Previously, reverting a nested list only removed one level of nesting; with this update, all levels of the list are completely reverted for accurate and consistent formatting.
|
|
152
32
|
|
|
153
|
-
- `#
|
|
33
|
+
- `#I792435` - Now, `clearFormat` works properly in the Rich Text Editor when the selected content begins with an empty line.
|
|
154
34
|
|
|
155
35
|
## 31.1.17 (2025-09-05)
|
|
156
36
|
|
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, ImportExportService, AudioService, VideoService, CountService, QuickToolbarService, HtmlEditorService, MarkdownEditorService, TableService, PasteCleanupService, ResizeService, FileManagerService, FormatPainterService, EmojiPickerService, SlashMenuService, CodeBlockService } from './rich-text-editor/richtexteditor-all.module';
|
|
3
|
+
export { RichTextEditorAllModule, ToolbarService, LinkService, ImageService, ImportExportService, AudioService, VideoService, CountService, QuickToolbarService, HtmlEditorService, MarkdownEditorService, TableService, PasteCleanupService, ResizeService, FileManagerService, FormatPainterService, EmojiPickerService, SlashMenuService, CodeBlockService, ClipBoardCleanupService, AutoFormatService, AIAssistantService } 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwZCxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgUmljaFRleHRFZGl0b3JDb21wb25lbnR9IGZyb20gJy4vcmljaC10ZXh0LWVkaXRvci9yaWNodGV4dGVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0IHsgUmljaFRleHRFZGl0b3JNb2R1bGUgfSBmcm9tICcuL3JpY2gtdGV4dC1lZGl0b3IvcmljaHRleHRlZGl0b3IubW9kdWxlJztcbmV4cG9ydCB7IFJpY2hUZXh0RWRpdG9yQWxsTW9kdWxlLCBUb29sYmFyU2VydmljZSwgTGlua1NlcnZpY2UsIEltYWdlU2VydmljZSwgSW1wb3J0RXhwb3J0U2VydmljZSwgQXVkaW9TZXJ2aWNlLCBWaWRlb1NlcnZpY2UsIENvdW50U2VydmljZSwgUXVpY2tUb29sYmFyU2VydmljZSwgSHRtbEVkaXRvclNlcnZpY2UsIE1hcmtkb3duRWRpdG9yU2VydmljZSwgVGFibGVTZXJ2aWNlLCBQYXN0ZUNsZWFudXBTZXJ2aWNlLCBSZXNpemVTZXJ2aWNlLCBGaWxlTWFuYWdlclNlcnZpY2UsIEZvcm1hdFBhaW50ZXJTZXJ2aWNlLCBFbW9qaVBpY2tlclNlcnZpY2UsIFNsYXNoTWVudVNlcnZpY2UsIENvZGVCbG9ja1NlcnZpY2UsIENsaXBCb2FyZENsZWFudXBTZXJ2aWNlLCBBdXRvRm9ybWF0U2VydmljZSwgQUlBc3Npc3RhbnRTZXJ2aWNlIH0gZnJvbSAnLi9yaWNoLXRleHQtZWRpdG9yL3JpY2h0ZXh0ZWRpdG9yLWFsbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnQHN5bmNmdXNpb24vZWoyLXJpY2h0ZXh0ZWRpdG9yJzsiXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
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, ImportExport, Audio, Video, Count, QuickToolbar, HtmlEditor, MarkdownEditor, Table, PasteCleanup, Resize, FileManager, FormatPainter, EmojiPicker, SlashMenu, CodeBlock } from '@syncfusion/ej2-richtexteditor';
|
|
4
|
+
import { Toolbar, Link, Image, ImportExport, Audio, Video, Count, QuickToolbar, HtmlEditor, MarkdownEditor, Table, PasteCleanup, Resize, FileManager, FormatPainter, EmojiPicker, SlashMenu, CodeBlock, ClipBoardCleanup, AutoFormat, AIAssistant } 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 };
|
|
@@ -21,6 +21,9 @@ export const FormatPainterService = { provide: 'RichTextEditorFormatPainter', us
|
|
|
21
21
|
export const EmojiPickerService = { provide: 'RichTextEditorEmojiPicker', useValue: EmojiPicker };
|
|
22
22
|
export const SlashMenuService = { provide: 'RichTextEditorSlashMenu', useValue: SlashMenu };
|
|
23
23
|
export const CodeBlockService = { provide: 'RichTextEditorCodeBlock', useValue: CodeBlock };
|
|
24
|
+
export const ClipBoardCleanupService = { provide: 'RichTextEditorClipBoardCleanup', useValue: ClipBoardCleanup };
|
|
25
|
+
export const AutoFormatService = { provide: 'RichTextEditorAutoFormat', useValue: AutoFormat };
|
|
26
|
+
export const AIAssistantService = { provide: 'RichTextEditorAIAssistant', useValue: AIAssistant };
|
|
24
27
|
/**
|
|
25
28
|
* NgModule definition for the RichTextEditor component with providers.
|
|
26
29
|
*/
|
|
@@ -46,7 +49,10 @@ RichTextEditorAllModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
|
|
|
46
49
|
FormatPainterService,
|
|
47
50
|
EmojiPickerService,
|
|
48
51
|
SlashMenuService,
|
|
49
|
-
CodeBlockService
|
|
52
|
+
CodeBlockService,
|
|
53
|
+
ClipBoardCleanupService,
|
|
54
|
+
AutoFormatService,
|
|
55
|
+
AIAssistantService
|
|
50
56
|
], imports: [[CommonModule, RichTextEditorModule], RichTextEditorModule] });
|
|
51
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: RichTextEditorAllModule, decorators: [{
|
|
52
58
|
type: NgModule,
|
|
@@ -73,8 +79,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
73
79
|
FormatPainterService,
|
|
74
80
|
EmojiPickerService,
|
|
75
81
|
SlashMenuService,
|
|
76
|
-
CodeBlockService
|
|
82
|
+
CodeBlockService,
|
|
83
|
+
ClipBoardCleanupService,
|
|
84
|
+
AutoFormatService,
|
|
85
|
+
AIAssistantService
|
|
77
86
|
]
|
|
78
87
|
}]
|
|
79
88
|
}] });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHRlZGl0b3ItYWxsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yaWNoLXRleHQtZWRpdG9yL3JpY2h0ZXh0ZWRpdG9yLWFsbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0NBQWdDLENBQUE7O0FBR3ZSLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBa0IsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBQyxDQUFDO0FBQ3BHLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBa0IsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBa0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDO0FBQzlGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFrQixFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFDLENBQUM7QUFDbkgsTUFBTSxDQUFDLE1BQU0s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a0I7S0FDckIsWUExQlEsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUMsRUFFekMsb0JBQW9COzJGQTBCZix1QkFBdUI7a0JBN0JuQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxvQkFBb0IsQ0FBQztvQkFDN0MsT0FBTyxFQUFFO3dCQUNMLG9CQUFvQjtxQkFDdkI7b0JBQ0QsU0FBUyxFQUFDO3dCQUNOLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQixrQkFBa0I7cUJBQ3JCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIFZhbHVlUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSaWNoVGV4dEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vcmljaHRleHRlZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFJpY2hUZXh0RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9yaWNodGV4dGVkaXRvci5tb2R1bGUnO1xuaW1wb3J0IHtUb29sYmFyLCBMaW5rLCBJbWFnZSwgSW1wb3J0RXhwb3J0LCBBdWRpbywgVmlkZW8sIENvdW50LCBRdWlja1Rvb2xiYXIsIEh0bWxFZGl0b3IsIE1hcmtkb3duRWRpdG9yLCBUYWJsZSwgUGFzdGVDbGVhbnVwLCBSZXNpemUsIEZpbGVNYW5hZ2VyLCBGb3JtYXRQYWludGVyLCBFbW9qaVBpY2tlciwgU2xhc2hNZW51LCBDb2RlQmxvY2ssIENsaXBCb2FyZENsZWFudXAsIEF1dG9Gb3JtYXQsIEFJQXNzaXN0YW50fSBmcm9tICdAc3luY2Z1c2lvbi9lajItcmljaHRleHRlZGl0b3InXG5cblxuZXhwb3J0IGNvbnN0IFRvb2xiYXJTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnUmljaFRleHRFZGl0b3JUb29sYmFyJywgdXNlVmFsdWU6IFRvb2xiYXJ9O1xuZXhwb3J0IGNvbnN0IExpbmtTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnUmljaFRleHRFZGl0b3JMaW5rJywgdXNlVmFsdWU6IExpbmt9O1xuZXhwb3J0IGNvbnN0IEltYWdlU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ1JpY2hUZXh0RWRpdG9ySW1hZ2UnLCB1c2VWYWx1ZTogSW1hZ2V9O1xuZXhwb3J0IGNvbnN0IEltcG9ydEV4cG9ydFNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdSaWNoVGV4dEVkaXRvckltcG9ydEV4cG9ydCcsIHVzZVZhbHVlOiBJbXBvcnRFeHBvcnR9O1xuZXhwb3J0IGNvbnN0IEF1ZGlvU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ1JpY2hUZXh0RWRpdG9yQXVkaW8nLCB1c2VWYWx1ZTogQXVkaW99O1xuZXhwb3J0IGNvbnN0IFZpZGVvU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ1JpY2hUZXh0RWRpdG9yVmlkZW8nLCB1c2VWYWx1ZTogVmlkZW99O1xuZXhwb3J0IGNvbnN0IENvdW50U2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ1JpY2hUZXh0RWRpdG9yQ291bnQnLCB1c2VWYWx1ZTogQ291bnR9O1xuZXhwb3J0IGNvbnN0IFF1aWNrVG9vbGJhclNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdSaWNoVGV4dEVkaXRvclF1aWNrVG9vbGJhcicsIHVzZVZhbHVlOiBRdWlja1Rvb2xiYXJ9O1xuZXhwb3J0IGNvbnN0IEh0bWxFZGl0b3JTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnUmljaFRleHRFZGl0b3JIdG1sRWRpdG9yJywgdXNlVmFsdWU6IEh0bWxFZGl0b3J9O1xuZXhwb3J0IGNvbnN0IE1hcmtkb3duRWRpdG9yU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ1JpY2hUZXh0RWRpdG9yTWFya2Rvd25FZGl0b3InLCB1c2VWYWx1ZTogTWFya2Rvd25FZGl0b3J9O1xuZXhwb3J0IGNvbnN0IFRhYmxlU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ1JpY2hUZXh0RWRpdG9yVGFibGUnLCB1c2VWYWx1ZTogVGFibGV9O1xuZXhwb3J0IGNvbnN0IFBhc3RlQ2xlYW51cFNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdSaWNoVGV4dEVkaXRvclBhc3RlQ2xlYW51cCcsIHVzZVZhbHVlOiBQYXN0ZUNsZWFudXB9O1xuZXhwb3J0IGNvbnN0IFJlc2l6ZVNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdSaWNoVGV4dEVkaXRvclJlc2l6ZScsIHVzZVZhbHVlOiBSZXNpemV9O1xuZXhwb3J0IGNvbnN0IEZpbGVNYW5hZ2VyU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ1JpY2hUZXh0RWRpdG9yRmlsZU1hbmFnZXInLCB1c2VWYWx1ZTogRmlsZU1hbmFnZXJ9O1xuZXhwb3J0IGNvbnN0IEZvcm1hdFBhaW50ZXJTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnUmljaFRleHRFZGl0b3JGb3JtYXRQYWludGVyJywgdXNlVmFsdWU6IEZvcm1hdFBhaW50ZXJ9O1xuZXhwb3J0IGNvbnN0IEVtb2ppUGlja2VyU2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ1JpY2hUZXh0RWRpdG9yRW1vamlQaWNrZXInLCB1c2VWYWx1ZTogRW1vamlQaWNrZXJ9O1xuZXhwb3J0IGNvbnN0IFNsYXNoTWVudVNlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdSaWNoVGV4dEVkaXRvclNsYXNoTWVudScsIHVzZVZhbHVlOiBTbGFzaE1lbnV9O1xuZXhwb3J0IGNvbnN0IENvZGVCbG9ja1NlcnZpY2U6IFZhbHVlUHJvdmlkZXIgPSB7IHByb3ZpZGU6ICdSaWNoVGV4dEVkaXRvckNvZGVCbG9jaycsIHVzZVZhbHVlOiBDb2RlQmxvY2t9O1xuZXhwb3J0IGNvbnN0IENsaXBCb2FyZENsZWFudXBTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnUmljaFRleHRFZGl0b3JDbGlwQm9hcmRDbGVhbnVwJywgdXNlVmFsdWU6IENsaXBCb2FyZENsZWFudXB9O1xuZXhwb3J0IGNvbnN0IEF1dG9Gb3JtYXRTZXJ2aWNlOiBWYWx1ZVByb3ZpZGVyID0geyBwcm92aWRlOiAnUmljaFRleHRFZGl0b3JBdXRvRm9ybWF0JywgdXNlVmFsdWU6IEF1dG9Gb3JtYXR9O1xuZXhwb3J0IGNvbnN0IEFJQXNzaXN0YW50U2VydmljZTogVmFsdWVQcm92aWRlciA9IHsgcHJvdmlkZTogJ1JpY2hUZXh0RWRpdG9yQUlBc3Npc3RhbnQnLCB1c2VWYWx1ZTogQUlBc3Npc3RhbnR9O1xuXG4vKipcbiAqIE5nTW9kdWxlIGRlZmluaXRpb24gZm9yIHRoZSBSaWNoVGV4dEVkaXRvciBjb21wb25lbnQgd2l0aCBwcm92aWRlcnMuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmljaFRleHRFZGl0b3JNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgUmljaFRleHRFZGl0b3JNb2R1bGVcbiAgICBdLFxuICAgIHByb3ZpZGVyczpbXG4gICAgICAgIFRvb2xiYXJTZXJ2aWNlLFxuICAgICAgICBMaW5rU2VydmljZSxcbiAgICAgICAgSW1hZ2VTZXJ2aWNlLFxuICAgICAgICBJbXBvcnRFeHBvcnRTZXJ2aWNlLFxuICAgICAgICBBdWRpb1NlcnZpY2UsXG4gICAgICAgIFZpZGVvU2VydmljZSxcbiAgICAgICAgQ291bnRTZXJ2aWNlLFxuICAgICAgICBRdWlja1Rvb2xiYXJTZXJ2aWNlLFxuICAgICAgICBIdG1sRWRpdG9yU2VydmljZSxcbiAgICAgICAgTWFya2Rvd25FZGl0b3JTZXJ2aWNlLFxuICAgICAgICBUYWJsZVNlcnZpY2UsXG4gICAgICAgIFBhc3RlQ2xlYW51cFNlcnZpY2UsXG4gICAgICAgIFJlc2l6ZVNlcnZpY2UsXG4gICAgICAgIEZpbGVNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgRm9ybWF0UGFpbnRlclNlcnZpY2UsXG4gICAgICAgIEVtb2ppUGlja2VyU2VydmljZSxcbiAgICAgICAgU2xhc2hNZW51U2VydmljZSxcbiAgICAgICAgQ29kZUJsb2NrU2VydmljZSxcbiAgICAgICAgQ2xpcEJvYXJkQ2xlYW51cFNlcnZpY2UsXG4gICAgICAgIEF1dG9Gb3JtYXRTZXJ2aWNlLFxuICAgICAgICBBSUFzc2lzdGFudFNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFJpY2hUZXh0RWRpdG9yQWxsTW9kdWxlIHsgfSJdfQ==
|
|
@@ -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', 'codeBlockSettings', 'cssClass', 'editorMode', 'emojiPickerSettings', 'enableAutoUrl', 'enableHtmlEncode', 'enableHtmlSanitizer', 'enablePersistence', 'enableResize', 'enableRtl', 'enableTabKey', 'enableXhtml', 'enabled', 'enterKey', 'exportPdf', 'exportWord', 'fileManagerSettings', 'floatingToolbarOffset', 'fontColor', 'fontFamily', 'fontSize', 'format', 'formatPainterSettings', 'formatter', 'height', 'htmlAttributes', 'iframeSettings', 'importWord', 'inlineMode', 'insertAudioSettings', 'insertImageSettings', 'insertVideoSettings', 'keyConfig', 'locale', 'maxLength', 'numberFormatList', 'pasteCleanupSettings', 'placeholder', 'quickToolbarSettings', 'readonly', 'saveInterval', 'shiftEnterKey', 'showCharCount', 'showTooltip', 'slashMenuSettings', 'tableSettings', 'toolbarSettings', 'undoRedoSteps', 'undoRedoTimer', 'value', 'valueTemplate', 'width'];
|
|
10
|
-
export const outputs = ['actionBegin', 'actionComplete', 'afterImageDelete', 'afterMediaDelete', 'afterPasteCleanup', 'beforeDialogClose', 'beforeDialogOpen', 'beforeFileUpload', 'beforeImageDrop', 'beforeImageUpload', 'beforeMediaDrop', 'beforePasteCleanup', 'beforeQuickToolbarOpen', 'beforeSanitizeHtml', 'blur', 'change', 'created', 'destroyed', 'dialogClose', 'dialogOpen', 'fileRemoving', 'fileSelected', 'fileUploadFailed', 'fileUploadSuccess', 'fileUploading', 'focus', 'imageRemoving', 'imageSelected', 'imageUploadFailed', 'imageUploadSuccess', 'imageUploading', 'quickToolbarClose', 'quickToolbarOpen', 'resizeStart', 'resizeStop', 'resizing', 'selectionChanged', 'slashMenuItemSelect', 'toolbarClick', 'toolbarStatusUpdate', 'updatedToolbarStatus', 'valueChange'];
|
|
9
|
+
export const inputs = ['aiAssistantSettings', 'autoSaveOnIdle', 'backgroundColor', 'bulletFormatList', 'codeBlockSettings', 'cssClass', 'editorMode', 'emojiPickerSettings', 'enableAutoUrl', 'enableClipboardCleanup', 'enableHtmlEncode', 'enableHtmlSanitizer', 'enableMarkdownAutoFormat', 'enablePersistence', 'enableResize', 'enableRtl', 'enableTabKey', 'enableXhtml', 'enabled', 'enterKey', 'exportPdf', 'exportWord', 'fileManagerSettings', 'floatingToolbarOffset', 'fontColor', 'fontFamily', 'fontSize', 'format', 'formatPainterSettings', 'formatter', 'height', 'htmlAttributes', 'iframeSettings', 'importWord', 'inlineMode', 'insertAudioSettings', 'insertImageSettings', 'insertVideoSettings', 'keyConfig', 'lineHeight', 'locale', 'maxLength', 'numberFormatList', 'pasteCleanupSettings', 'placeholder', 'quickToolbarSettings', 'readonly', 'saveInterval', 'shiftEnterKey', 'showCharCount', 'showTooltip', 'slashMenuSettings', 'tableSettings', 'toolbarSettings', 'undoRedoSteps', 'undoRedoTimer', 'value', 'valueTemplate', 'width'];
|
|
10
|
+
export const outputs = ['actionBegin', 'actionComplete', 'afterImageDelete', 'afterMediaDelete', 'afterPasteCleanup', 'aiAssistantPromptRequest', 'aiAssistantStopRespondingClick', 'aiAssistantToolbarClick', 'beforeClipboardWrite', 'beforeDialogClose', 'beforeDialogOpen', 'beforeFileUpload', 'beforeImageDrop', 'beforeImageUpload', 'beforeMediaDrop', 'beforePasteCleanup', 'beforePopupClose', 'beforePopupOpen', 'beforeQuickToolbarOpen', 'beforeSanitizeHtml', 'blur', 'change', 'created', 'destroyed', 'dialogClose', 'dialogOpen', 'documentExporting', 'fileRemoving', 'fileSelected', 'fileUploadFailed', 'fileUploadSuccess', 'fileUploading', 'focus', 'imageRemoving', 'imageSelected', 'imageUploadFailed', 'imageUploadSuccess', 'imageUploading', 'quickToolbarClose', 'quickToolbarOpen', 'resizeStart', 'resizeStop', 'resizing', 'selectionChanged', 'slashMenuItemSelect', 'toolbarClick', 'toolbarStatusUpdate', 'updatedToolbarStatus', 'wordImporting', 'valueChange'];
|
|
11
11
|
export const twoWays = ['value'];
|
|
12
12
|
/**
|
|
13
13
|
* `ejs-richtexteditor` represents the Angular richtexteditor Component.
|
|
@@ -152,6 +152,27 @@ let RichTextEditorComponent = RichTextEditorComponent_1 = class RichTextEditorCo
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
catch { }
|
|
155
|
+
try {
|
|
156
|
+
let mod = this.injector.get('RichTextEditorClipBoardCleanup');
|
|
157
|
+
if (this.injectedModules.indexOf(mod) === -1) {
|
|
158
|
+
this.injectedModules.push(mod);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
catch { }
|
|
162
|
+
try {
|
|
163
|
+
let mod = this.injector.get('RichTextEditorAutoFormat');
|
|
164
|
+
if (this.injectedModules.indexOf(mod) === -1) {
|
|
165
|
+
this.injectedModules.push(mod);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch { }
|
|
169
|
+
try {
|
|
170
|
+
let mod = this.injector.get('RichTextEditorAIAssistant');
|
|
171
|
+
if (this.injectedModules.indexOf(mod) === -1) {
|
|
172
|
+
this.injectedModules.push(mod);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
catch { }
|
|
155
176
|
this.registerEvents(outputs);
|
|
156
177
|
this.addTwoWay.call(this, twoWays);
|
|
157
178
|
setValue('currentInstance', this, this.viewContainerRef);
|
|
@@ -180,16 +201,19 @@ let RichTextEditorComponent = RichTextEditorComponent_1 = class RichTextEditorCo
|
|
|
180
201
|
}
|
|
181
202
|
};
|
|
182
203
|
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 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
183
|
-
RichTextEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: RichTextEditorComponent, selector: "ejs-richtexteditor", inputs: { autoSaveOnIdle: "autoSaveOnIdle", backgroundColor: "backgroundColor", bulletFormatList: "bulletFormatList", codeBlockSettings: "codeBlockSettings", cssClass: "cssClass", editorMode: "editorMode", emojiPickerSettings: "emojiPickerSettings", enableAutoUrl: "enableAutoUrl", enableHtmlEncode: "enableHtmlEncode", enableHtmlSanitizer: "enableHtmlSanitizer", enablePersistence: "enablePersistence", enableResize: "enableResize", enableRtl: "enableRtl", enableTabKey: "enableTabKey", enableXhtml: "enableXhtml", enabled: "enabled", enterKey: "enterKey", exportPdf: "exportPdf", exportWord: "exportWord", fileManagerSettings: "fileManagerSettings", floatingToolbarOffset: "floatingToolbarOffset", fontColor: "fontColor", fontFamily: "fontFamily", fontSize: "fontSize", format: "format", formatPainterSettings: "formatPainterSettings", formatter: "formatter", height: "height", htmlAttributes: "htmlAttributes", iframeSettings: "iframeSettings", importWord: "importWord", inlineMode: "inlineMode", insertAudioSettings: "insertAudioSettings", insertImageSettings: "insertImageSettings", insertVideoSettings: "insertVideoSettings", keyConfig: "keyConfig", locale: "locale", maxLength: "maxLength", numberFormatList: "numberFormatList", pasteCleanupSettings: "pasteCleanupSettings", placeholder: "placeholder", quickToolbarSettings: "quickToolbarSettings", readonly: "readonly", saveInterval: "saveInterval", shiftEnterKey: "shiftEnterKey", showCharCount: "showCharCount", showTooltip: "showTooltip", slashMenuSettings: "slashMenuSettings", tableSettings: "tableSettings", toolbarSettings: "toolbarSettings", undoRedoSteps: "undoRedoSteps", undoRedoTimer: "undoRedoTimer", value: "value", valueTemplate: "valueTemplate", width: "width" }, outputs: { actionBegin: "actionBegin", actionComplete: "actionComplete", afterImageDelete: "afterImageDelete", afterMediaDelete: "afterMediaDelete", afterPasteCleanup: "afterPasteCleanup", beforeDialogClose: "beforeDialogClose", beforeDialogOpen: "beforeDialogOpen", beforeFileUpload: "beforeFileUpload", beforeImageDrop: "beforeImageDrop", beforeImageUpload: "beforeImageUpload", beforeMediaDrop: "beforeMediaDrop", beforePasteCleanup: "beforePasteCleanup", beforeQuickToolbarOpen: "beforeQuickToolbarOpen", beforeSanitizeHtml: "beforeSanitizeHtml", blur: "blur", change: "change", created: "created", destroyed: "destroyed", dialogClose: "dialogClose", dialogOpen: "dialogOpen", fileRemoving: "fileRemoving", fileSelected: "fileSelected", fileUploadFailed: "fileUploadFailed", fileUploadSuccess: "fileUploadSuccess", fileUploading: "fileUploading", focus: "focus", imageRemoving: "imageRemoving", imageSelected: "imageSelected", imageUploadFailed: "imageUploadFailed", imageUploadSuccess: "imageUploadSuccess", imageUploading: "imageUploading", quickToolbarClose: "quickToolbarClose", quickToolbarOpen: "quickToolbarOpen", resizeStart: "resizeStart", resizeStop: "resizeStop", resizing: "resizing", selectionChanged: "selectionChanged", slashMenuItemSelect: "slashMenuItemSelect", toolbarClick: "toolbarClick", toolbarStatusUpdate: "toolbarStatusUpdate", updatedToolbarStatus: "updatedToolbarStatus", valueChange: "valueChange" }, providers: [
|
|
204
|
+
RichTextEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: RichTextEditorComponent, selector: "ejs-richtexteditor", inputs: { aiAssistantSettings: "aiAssistantSettings", autoSaveOnIdle: "autoSaveOnIdle", backgroundColor: "backgroundColor", bulletFormatList: "bulletFormatList", codeBlockSettings: "codeBlockSettings", cssClass: "cssClass", editorMode: "editorMode", emojiPickerSettings: "emojiPickerSettings", enableAutoUrl: "enableAutoUrl", enableClipboardCleanup: "enableClipboardCleanup", enableHtmlEncode: "enableHtmlEncode", enableHtmlSanitizer: "enableHtmlSanitizer", enableMarkdownAutoFormat: "enableMarkdownAutoFormat", enablePersistence: "enablePersistence", enableResize: "enableResize", enableRtl: "enableRtl", enableTabKey: "enableTabKey", enableXhtml: "enableXhtml", enabled: "enabled", enterKey: "enterKey", exportPdf: "exportPdf", exportWord: "exportWord", fileManagerSettings: "fileManagerSettings", floatingToolbarOffset: "floatingToolbarOffset", fontColor: "fontColor", fontFamily: "fontFamily", fontSize: "fontSize", format: "format", formatPainterSettings: "formatPainterSettings", formatter: "formatter", height: "height", htmlAttributes: "htmlAttributes", iframeSettings: "iframeSettings", importWord: "importWord", inlineMode: "inlineMode", insertAudioSettings: "insertAudioSettings", insertImageSettings: "insertImageSettings", insertVideoSettings: "insertVideoSettings", keyConfig: "keyConfig", lineHeight: "lineHeight", locale: "locale", maxLength: "maxLength", numberFormatList: "numberFormatList", pasteCleanupSettings: "pasteCleanupSettings", placeholder: "placeholder", quickToolbarSettings: "quickToolbarSettings", readonly: "readonly", saveInterval: "saveInterval", shiftEnterKey: "shiftEnterKey", showCharCount: "showCharCount", showTooltip: "showTooltip", slashMenuSettings: "slashMenuSettings", tableSettings: "tableSettings", toolbarSettings: "toolbarSettings", undoRedoSteps: "undoRedoSteps", undoRedoTimer: "undoRedoTimer", value: "value", valueTemplate: "valueTemplate", width: "width" }, outputs: { actionBegin: "actionBegin", actionComplete: "actionComplete", afterImageDelete: "afterImageDelete", afterMediaDelete: "afterMediaDelete", afterPasteCleanup: "afterPasteCleanup", aiAssistantPromptRequest: "aiAssistantPromptRequest", aiAssistantStopRespondingClick: "aiAssistantStopRespondingClick", aiAssistantToolbarClick: "aiAssistantToolbarClick", beforeClipboardWrite: "beforeClipboardWrite", beforeDialogClose: "beforeDialogClose", beforeDialogOpen: "beforeDialogOpen", beforeFileUpload: "beforeFileUpload", beforeImageDrop: "beforeImageDrop", beforeImageUpload: "beforeImageUpload", beforeMediaDrop: "beforeMediaDrop", beforePasteCleanup: "beforePasteCleanup", beforePopupClose: "beforePopupClose", beforePopupOpen: "beforePopupOpen", beforeQuickToolbarOpen: "beforeQuickToolbarOpen", beforeSanitizeHtml: "beforeSanitizeHtml", blur: "blur", change: "change", created: "created", destroyed: "destroyed", dialogClose: "dialogClose", dialogOpen: "dialogOpen", documentExporting: "documentExporting", fileRemoving: "fileRemoving", fileSelected: "fileSelected", fileUploadFailed: "fileUploadFailed", fileUploadSuccess: "fileUploadSuccess", fileUploading: "fileUploading", focus: "focus", imageRemoving: "imageRemoving", imageSelected: "imageSelected", imageUploadFailed: "imageUploadFailed", imageUploadSuccess: "imageUploadSuccess", imageUploading: "imageUploading", quickToolbarClose: "quickToolbarClose", quickToolbarOpen: "quickToolbarOpen", resizeStart: "resizeStart", resizeStop: "resizeStop", resizing: "resizing", selectionChanged: "selectionChanged", slashMenuItemSelect: "slashMenuItemSelect", toolbarClick: "toolbarClick", toolbarStatusUpdate: "toolbarStatusUpdate", updatedToolbarStatus: "updatedToolbarStatus", wordImporting: "wordImporting", valueChange: "valueChange" }, providers: [
|
|
184
205
|
{
|
|
185
206
|
provide: NG_VALUE_ACCESSOR,
|
|
186
207
|
useExisting: forwardRef(() => RichTextEditorComponent_1),
|
|
187
208
|
multi: true
|
|
188
209
|
}
|
|
189
|
-
], queries: [{ propertyName: "valueTemplate", first: true, predicate: ["valueTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
210
|
+
], queries: [{ propertyName: "valueTemplate", first: true, predicate: ["valueTemplate"], descendants: true }, { propertyName: "aiAssistantSettings_bannerTemplate", first: true, predicate: ["aiAssistantSettingsBannerTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
190
211
|
__decorate([
|
|
191
212
|
Template()
|
|
192
213
|
], RichTextEditorComponent.prototype, "valueTemplate", void 0);
|
|
214
|
+
__decorate([
|
|
215
|
+
Template()
|
|
216
|
+
], RichTextEditorComponent.prototype, "aiAssistantSettings_bannerTemplate", void 0);
|
|
193
217
|
RichTextEditorComponent = RichTextEditorComponent_1 = __decorate([
|
|
194
218
|
ComponentMixins([ComponentBase, FormBase])
|
|
195
219
|
], RichTextEditorComponent);
|
|
@@ -214,5 +238,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
214
238
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { valueTemplate: [{
|
|
215
239
|
type: ContentChild,
|
|
216
240
|
args: ['valueTemplate']
|
|
241
|
+
}], aiAssistantSettings_bannerTemplate: [{
|
|
242
|
+
type: ContentChild,
|
|
243
|
+
args: ['aiAssistantSettingsBannerTemplate']
|
|
217
244
|
}] } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHRlZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3JpY2gtdGV4dC1lZGl0b3IvcmljaHRleHRlZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0UsdUJBQXVCLEVBQXFCLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEwsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBK0IsZUFBZSxFQUEwQixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkosT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFHeEQsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFhLENBQUMsZ0JBQWdCLEVBQUMsaUJBQWlCLEVBQUMsa0JBQWtCLEVBQUMsbUJBQW1CLEVBQUMsVUFBVSxFQUFDLFlBQVksRUFBQyxxQkFBcUIsRUFBQyxlQUFlLEVBQUMsa0JBQWtCLEVBQUMscUJBQXFCLEVBQUMsbUJBQW1CLEVBQUMsY0FBYyxFQUFDLFdBQVcsRUFBQyxjQUFjLEVBQUMsYUFBYSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsV0FBVyxFQUFDLFlBQVksRUFBQyxxQkFBcUIsRUFBQyx1QkFBdUIsRUFBQyxXQUFXLEVBQUMsWUFBWSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsdUJBQXVCLEVBQUMsV0FBVyxFQUFDLFFBQVEsRUFBQyxnQkFBZ0IsRUFBQyxnQkFBZ0IsRUFBQyxZQUFZLEVBQUMsWUFBWSxFQUFDLHFCQUFxQixFQUFDLHFCQUFxQixFQUFDLHFCQUFxQixFQUFDLFdBQVcsRUFBQyxRQUFRLEVBQUMsV0FBVyxFQUFDLGtCQUFr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b0JBQ2hCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKO29CQUNELE9BQU8sRUFBRSxFQUVSO2lCQUNKOytNQThEVSxhQUFhO3NCQUZuQixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYsIFZhbHVlUHJvdmlkZXIsIFJlbmRlcmVyMiwgSW5qZWN0b3IsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgZm9yd2FyZFJlZiwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBvbmVudEJhc2UsIElDb21wb25lbnRCYXNlLCBhcHBseU1peGlucywgQ29tcG9uZW50TWl4aW5zLCBQcm9wZXJ0eUNvbGxlY3Rpb25JbmZvLCBGb3JtQmFzZSwgc2V0VmFsdWUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IFJpY2hUZXh0RWRpdG9yIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLXJpY2h0ZXh0ZWRpdG9yJztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cblxuZXhwb3J0IGNvbnN0IGlucHV0czogc3RyaW5nW10gPSBbJ2F1dG9TYXZlT25JZGxlJywnYmFja2dyb3VuZENvbG9yJywnYnVsbGV0Rm9ybWF0TGlzdCcsJ2NvZGVCbG9ja1NldHRpbmdzJywnY3NzQ2xhc3MnLCdlZGl0b3JNb2RlJywnZW1vamlQaWNrZXJTZXR0aW5ncycsJ2VuYWJsZUF1dG9VcmwnLCdlbmFibGVIdG1sRW5jb2RlJywnZW5hYmxlSHRtbFNhbml0aXplcicsJ2VuYWJsZVBlcnNpc3RlbmNlJywnZW5hYmxlUmVzaXplJywnZW5hYmxlUnRsJywnZW5hYmxlVGFiS2V5JywnZW5hYmxlWGh0bWwnLCdlbmFibGVkJywnZW50ZXJLZXknLCdleHBvcnRQZGYnLCdleHBvcnRXb3JkJywnZmlsZU1hbmFnZXJTZXR0aW5ncycsJ2Zsb2F0aW5nVG9vbGJhck9mZnNldCcsJ2ZvbnRDb2xvcicsJ2ZvbnRGYW1pbHknLCdmb250U2l6ZScsJ2Zvcm1hdCcsJ2Zvcm1hdFBhaW50ZXJTZXR0aW5ncycsJ2Zvcm1hdHRlcicsJ2hlaWdodCcsJ2h0bWxBdHRyaWJ1dGVzJywnaWZyYW1lU2V0dGluZ3MnLCdpbXBvcnRXb3JkJywnaW5saW5lTW9kZScsJ2luc2VydEF1ZGlvU2V0dGluZ3MnLCdpbnNlcnRJbWFnZVNldHRpbmdzJywnaW5zZXJ0VmlkZW9TZXR0aW5ncycsJ2tleUNvbmZpZycsJ2xvY2FsZScsJ21heExlbmd0aCcsJ251bWJlckZvcm1hdExpc3QnLCdwYXN0ZUNsZWFudXBTZXR0aW5ncycsJ3BsYWNlaG9sZGVyJywncXVpY2tUb29sYmFyU2V0dGluZ3MnLCdyZWFkb25seScsJ3NhdmVJbnRlcnZhbCcsJ3NoaWZ0RW50ZXJLZXknLCdzaG93Q2hhckNvdW50Jywnc2hvd1Rvb2x0aXAnLCdzbGFzaE1lbnVTZXR0aW5ncycsJ3RhYmxlU2V0dGluZ3MnLCd0b29sYmFyU2V0dGluZ3MnLCd1bmRvUmVkb1N0ZXBzJywndW5kb1JlZG9UaW1lcicsJ3ZhbHVlJywndmFsdWVUZW1wbGF0ZScsJ3dpZHRoJ107XG5leHBvcnQgY29uc3Qgb3V0cHV0czogc3RyaW5nW10gPSBbJ2FjdGlvbkJlZ2luJywnYWN0aW9uQ29tcGxldGUnLCdhZnRlckltYWdlRGVsZXRlJywnYWZ0ZXJNZWRpYURlbGV0ZScsJ2FmdGVyUGFzdGVDbGVhbnVwJywnYmVmb3JlRGlhbG9nQ2xvc2UnLCdiZWZvcmVEaWFsb2dPcGVuJywnYmVmb3JlRmlsZVVwbG9hZCcsJ2JlZm9yZUltYWdlRHJvcCcsJ2JlZm9yZUltYWdlVXBsb2FkJywnYmVmb3JlTWVkaWFEcm9wJywnYmVmb3JlUGFzdGVDbGVhbnVwJywnYmVmb3JlUXVpY2tUb29sYmFyT3BlbicsJ2JlZm9yZVNhbml0aXplSHRtbCcsJ2JsdXInLCdjaGFuZ2UnLCdjcmVhdGVkJywnZGVzdHJveWVkJywnZGlhbG9nQ2xvc2UnLCdkaWFsb2dPcGVuJywnZmlsZVJlbW92aW5nJywnZmlsZVNlbGVjdGVkJywnZmlsZVVwbG9hZEZhaWxlZCcsJ2ZpbGVVcGxvYWRTdWNjZXNzJywnZmlsZVVwbG9hZGluZycsJ2ZvY3VzJywnaW1hZ2VSZW1vdmluZycsJ2ltYWdlU2VsZWN0ZWQnLCdpbWFnZVVwbG9hZEZhaWxlZCcsJ2ltYWdlVXBsb2FkU3VjY2VzcycsJ2ltYWdlVXBsb2FkaW5nJywncXVpY2tUb29sYmFyQ2xvc2UnLCdxdWlja1Rvb2xiYXJPcGVuJywncmVzaXplU3RhcnQnLCdyZXNpemVTdG9wJywncmVzaXppbmcnLCdzZWxlY3Rpb25DaGFuZ2VkJywnc2xhc2hNZW51SXRlbVNlbGVjdCcsJ3Rvb2xiYXJDbGljaycsJ3Rvb2xiYXJTdGF0dXNVcGRhdGUnLCd1cGRhdGVkVG9vbGJhclN0YXR1cycsJ3ZhbHVlQ2hhbmdlJ107XG5leHBvcnQgY29uc3QgdHdvV2F5czogc3RyaW5nW10gPSBbJ3ZhbHVlJ107XG5cbi8qKlxuICogYGVqcy1yaWNodGV4dGVkaXRvcmAgcmVwcmVzZW50cyB0aGUgQW5ndWxhciByaWNodGV4dGVkaXRvciBDb21wb25lbnQuXG4gKiBgYGBodG1sXG4gKiA8ZWpzLXJpY2h0ZXh0ZWRpdG9yPjwvZWpzLXJpY2h0ZXh0ZWRpdG9yPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWpzLXJpY2h0ZXh0ZWRpdG9yJyxcbiAgICBpbnB1dHM6IGlucHV0cyxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSaWNoVGV4dEVkaXRvckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBxdWVyaWVzOiB7XG5cbiAgICB9XG59KVxuQENvbXBvbmVudE1peGlucyhbQ29tcG9uZW50QmFzZSwgRm9ybUJhc2VdKVxuZXhwb3J0IGNsYXNzIFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50IGV4dGVuZHMgUmljaFRleHRFZGl0b3IgaW1wbGVtZW50cyBJQ29tcG9uZW50QmFzZSB7XG4gICAgcHVibGljIGZvcm1Db21wQ29udGV4dCA6IGFueTtcbiAgICBwdWJsaWMgZm9ybUNvbnRleHQgOiBhbnk7XG4gICAgcHVibGljIHRhZ09iamVjdHM6IGFueTtcblx0YWN0aW9uQmVnaW46IGFueTtcblx0YWN0aW9uQ29tcGxldGU6IGFueTtcblx0YWZ0ZXJJbWFnZURlbGV0ZTogYW55O1xuXHRhZnRlck1lZGlhRGVsZXRlOiBhbnk7XG5cdGFmdGVyUGFzdGVDbGVhbnVwOiBhbnk7XG5cdGJlZm9yZURpYWxvZ0Nsb3NlOiBhbnk7XG5cdGJlZm9yZURpYWxvZ09wZW46IGFueTtcblx0YmVmb3JlRmlsZVVwbG9hZDogYW55O1xuXHRiZWZvcmVJbWFnZURyb3A6IGFueTtcblx0YmVmb3JlSW1hZ2VVcGxvYWQ6IGFueTtcblx0YmVmb3JlTWVkaWFEcm9wOiBhbnk7XG5cdGJlZm9yZVBhc3RlQ2xlYW51cDogYW55O1xuXHRiZWZvcmVRdWlja1Rvb2xiYXJPcGVuOiBhbnk7XG5cdGJlZm9yZVNhbml0aXplSHRtbDogYW55O1xuXHRibHVyOiBhbnk7XG5cdGNoYW5nZTogYW55O1xuXHRjcmVhdGVkOiBhbnk7XG5cdGRlc3Ryb3llZDogYW55O1xuXHRkaWFsb2dDbG9zZTogYW55O1xuXHRkaWFsb2dPcGVuOiBhbnk7XG5cdGZpbGVSZW1vdmluZzogYW55O1xuXHRmaWxlU2VsZWN0ZWQ6IGFueTtcblx0ZmlsZVVwbG9hZEZhaWxlZDogYW55O1xuXHRmaWxlVXBsb2FkU3VjY2VzczogYW55O1xuXHRmaWxlVXBsb2FkaW5nOiBhbnk7XG5cdGZvY3VzOiBhbnk7XG5cdGltYWdlUmVtb3Zpbmc6IGFueTtcblx0aW1hZ2VTZWxlY3RlZDogYW55O1xuXHRpbWFnZVVwbG9hZEZhaWxlZDogYW55O1xuXHRpbWFnZVVwbG9hZFN1Y2Nlc3M6IGFueTtcblx0aW1hZ2VVcGxvYWRpbmc6IGFueTtcblx0cXVpY2tUb29sYmFyQ2xvc2U6IGFueTtcblx0cXVpY2tUb29sYmFyT3BlbjogYW55O1xuXHRyZXNpemVTdGFydDogYW55O1xuXHRyZXNpemVTdG9wOiBhbnk7XG5cdHJlc2l6aW5nOiBhbnk7XG5cdHNlbGVjdGlvbkNoYW5nZWQ6IGFueTtcblx0c2xhc2hNZW51SXRlbVNlbGVjdDogYW55O1xuXHR0b29sYmFyQ2xpY2s6IGFueTtcblx0dG9vbGJhclN0YXR1c1VwZGF0ZTogYW55O1xuXHR1cGRhdGVkVG9vbGJhclN0YXR1czogYW55O1xuXHRwdWJsaWMgdmFsdWVDaGFuZ2U6IGFueTtcblxuXG4gICAgLyoqIFxuICAgICAqIEFjY2VwdHMgYSB0ZW1wbGF0ZSBkZXNpZ24gYW5kIGFzc2lnbnMgaXQgYXMgdGhlIGNvbnRlbnQgb2YgdGhlIFJpY2ggVGV4dCBFZGl0b3IuIFxuICAgICAqIFRoZSBidWlsdC1pbiB0ZW1wbGF0ZSBlbmdpbmUgcHJvdmlkZXMgb3B0aW9ucyB0byBjb21waWxlIGEgdGVtcGxhdGUgc3RyaW5nIGludG8gYW4gZXhlY3V0YWJsZSBmdW5jdGlvbi4gXG4gICAgICogRm9yIGV4YW1wbGUsIGl0IHN1cHBvcnRzIGV4cHJlc3Npb24gZXZhbHVhdGlvbiBzaW1pbGFyIHRvIEVTNiB0ZW1wbGF0ZSBzdHJpbmcgbGl0ZXJhbHMuXG4gICAgICogXG4gICAgICogeyUgY29kZUJsb2NrIHNyYz0ncmljaC10ZXh0LWVkaXRvci92YWx1ZS10ZW1wbGF0ZS9pbmRleC5tZCcgJX17JSBlbmRjb2RlQmxvY2sgJX1cbiAgICAgKiAgICAgXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3ZhbHVlVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHZhbHVlVGVtcGxhdGU6IGFueTtcblxuICAgIHByaXZhdGUgc2tpcEZyb21FdmVudDpib29sZWFuID0gdHJ1ZTtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nRWxlOiBFbGVtZW50UmVmLCBwcml2YXRlIHNyZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6Vmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSB0aGlzLm5nRWxlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzID0gdGhpcy5pbmplY3RlZE1vZHVsZXMgfHwgW107XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvclRvb2xiYXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yTGluaycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JJbWFnZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JJbXBvcnRFeHBvcnQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yQXVkaW8nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yVmlkZW8nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yQ291bnQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yUXVpY2tUb29sYmFyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvckh0bWxFZGl0b3InKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yTWFya2Rvd25FZGl0b3InKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yVGFibGUnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yUGFzdGVDbGVhbnVwJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvclJlc2l6ZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JGaWxlTWFuYWdlcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JGb3JtYXRQYWludGVyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvckVtb2ppUGlja2VyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvclNsYXNoTWVudScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JDb2RlQmxvY2snKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cclxuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKG91dHB1dHMpO1xuICAgICAgICB0aGlzLmFkZFR3b1dheS5jYWxsKHRoaXMsIHR3b1dheXMpO1xuICAgICAgICBzZXRWYWx1ZSgnY3VycmVudEluc3RhbmNlJywgdGhpcywgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5mb3JtQ29udGV4dCAgPSBuZXcgRm9ybUJhc2UoKTtcbiAgICAgICAgdGhpcy5mb3JtQ29tcENvbnRleHQgID0gbmV3IENvbXBvbmVudEJhc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShyZWdpc3RlckZ1bmN0aW9uOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKHJlZ2lzdGVyRnVuY3Rpb246ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgfVxuICAgIFxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmZvcm1Db21wQ29udGV4dC5uZ09uSW5pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Db250ZXh0Lm5nQWZ0ZXJWaWV3SW5pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUNvbXBDb250ZXh0Lm5nT25EZXN0cm95KHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIFxuICAgICAgICB0aGlzLmZvcm1Db21wQ29udGV4dC5uZ0FmdGVyQ29udGVudENoZWNrZWQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyRXZlbnRzOiAoZXZlbnRMaXN0OiBzdHJpbmdbXSkgPT4gdm9pZDtcbiAgICBwdWJsaWMgYWRkVHdvV2F5OiAocHJvcExpc3Q6IHN0cmluZ1tdKSA9PiB2b2lkO1xufVxuXG4iXX0=
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaHRleHRlZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3JpY2gtdGV4dC1lZGl0b3IvcmljaHRleHRlZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0UsdUJBQXVCLEVBQXFCLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEwsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBK0IsZUFBZSxFQUEwQixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkosT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFHeEQsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFhLENBQUMscUJBQXFCLEVBQUMsZ0JBQWdCLEVBQUMsaUJBQWlCLEVBQUMsa0JBQWtCLEVBQUMsbUJBQW1CLEVBQUMsVUFBVSxFQUFDLFlBQVksRUFBQyxxQkFBcUIsRUFBQyxlQUFlLEVBQUMsd0JBQXdCLEVBQUMsa0JBQWtCLEVBQUMscUJBQXFCLEVBQUMsMEJBQTBCLEVBQUMsbUJBQW1CLEVBQUMsY0FBYyxFQUFDLFdBQVcsRUFBQyxjQUFjLEVBQUMsYUFBYSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsV0FBVyxFQUFDLFlBQVksRUFBQyxxQkFBcUIsRUFBQyx1QkFBdUIsRUFBQyxXQUFXLEVBQUMsWUFBWSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsdUJBQXVCLEVBQUMsV0FBVyxFQUFDLFFBQVEsRUFBQyxnQkFBZ0IsRUFBQyxnQkFBZ0IsRUFBQyxZQUFZLEVBQUMsWUFBWSxFQUFDLHFCQUFxQixFQUFDLHFCQUFxQixFQUFDLHFCQUFxQixFQUFD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O29CQUMvQyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKO29CQUNELE9BQU8sRUFBRSxFQUVSO2lCQUNKOytNQXNFVSxhQUFhO3NCQUZuQixZQUFZO3VCQUFDLGVBQWU7Z0JBS3RCLGtDQUFrQztzQkFGeEMsWUFBWTt1QkFBQyxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYsIFZhbHVlUHJvdmlkZXIsIFJlbmRlcmVyMiwgSW5qZWN0b3IsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgZm9yd2FyZFJlZiwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbXBvbmVudEJhc2UsIElDb21wb25lbnRCYXNlLCBhcHBseU1peGlucywgQ29tcG9uZW50TWl4aW5zLCBQcm9wZXJ0eUNvbGxlY3Rpb25JbmZvLCBGb3JtQmFzZSwgc2V0VmFsdWUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IFJpY2hUZXh0RWRpdG9yIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLXJpY2h0ZXh0ZWRpdG9yJztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cblxuZXhwb3J0IGNvbnN0IGlucHV0czogc3RyaW5nW10gPSBbJ2FpQXNzaXN0YW50U2V0dGluZ3MnLCdhdXRvU2F2ZU9uSWRsZScsJ2JhY2tncm91bmRDb2xvcicsJ2J1bGxldEZvcm1hdExpc3QnLCdjb2RlQmxvY2tTZXR0aW5ncycsJ2Nzc0NsYXNzJywnZWRpdG9yTW9kZScsJ2Vtb2ppUGlja2VyU2V0dGluZ3MnLCdlbmFibGVBdXRvVXJsJywnZW5hYmxlQ2xpcGJvYXJkQ2xlYW51cCcsJ2VuYWJsZUh0bWxFbmNvZGUnLCdlbmFibGVIdG1sU2FuaXRpemVyJywnZW5hYmxlTWFya2Rvd25BdXRvRm9ybWF0JywnZW5hYmxlUGVyc2lzdGVuY2UnLCdlbmFibGVSZXNpemUnLCdlbmFibGVSdGwnLCdlbmFibGVUYWJLZXknLCdlbmFibGVYaHRtbCcsJ2VuYWJsZWQnLCdlbnRlcktleScsJ2V4cG9ydFBkZicsJ2V4cG9ydFdvcmQnLCdmaWxlTWFuYWdlclNldHRpbmdzJywnZmxvYXRpbmdUb29sYmFyT2Zmc2V0JywnZm9udENvbG9yJywnZm9udEZhbWlseScsJ2ZvbnRTaXplJywnZm9ybWF0JywnZm9ybWF0UGFpbnRlclNldHRpbmdzJywnZm9ybWF0dGVyJywnaGVpZ2h0JywnaHRtbEF0dHJpYnV0ZXMnLCdpZnJhbWVTZXR0aW5ncycsJ2ltcG9ydFdvcmQnLCdpbmxpbmVNb2RlJywnaW5zZXJ0QXVkaW9TZXR0aW5ncycsJ2luc2VydEltYWdlU2V0dGluZ3MnLCdpbnNlcnRWaWRlb1NldHRpbmdzJywna2V5Q29uZmlnJywnbGluZUhlaWdodCcsJ2xvY2FsZScsJ21heExlbmd0aCcsJ251bWJlckZvcm1hdExpc3QnLCdwYXN0ZUNsZWFudXBTZXR0aW5ncycsJ3BsYWNlaG9sZGVyJywncXVpY2tUb29sYmFyU2V0dGluZ3MnLCdyZWFkb25seScsJ3NhdmVJbnRlcnZhbCcsJ3NoaWZ0RW50ZXJLZXknLCdzaG93Q2hhckNvdW50Jywnc2hvd1Rvb2x0aXAnLCdzbGFzaE1lbnVTZXR0aW5ncycsJ3RhYmxlU2V0dGluZ3MnLCd0b29sYmFyU2V0dGluZ3MnLCd1bmRvUmVkb1N0ZXBzJywndW5kb1JlZG9UaW1lcicsJ3ZhbHVlJywndmFsdWVUZW1wbGF0ZScsJ3dpZHRoJ107XG5leHBvcnQgY29uc3Qgb3V0cHV0czogc3RyaW5nW10gPSBbJ2FjdGlvbkJlZ2luJywnYWN0aW9uQ29tcGxldGUnLCdhZnRlckltYWdlRGVsZXRlJywnYWZ0ZXJNZWRpYURlbGV0ZScsJ2FmdGVyUGFzdGVDbGVhbnVwJywnYWlBc3Npc3RhbnRQcm9tcHRSZXF1ZXN0JywnYWlBc3Npc3RhbnRTdG9wUmVzcG9uZGluZ0NsaWNrJywnYWlBc3Npc3RhbnRUb29sYmFyQ2xpY2snLCdiZWZvcmVDbGlwYm9hcmRXcml0ZScsJ2JlZm9yZURpYWxvZ0Nsb3NlJywnYmVmb3JlRGlhbG9nT3BlbicsJ2JlZm9yZUZpbGVVcGxvYWQnLCdiZWZvcmVJbWFnZURyb3AnLCdiZWZvcmVJbWFnZVVwbG9hZCcsJ2JlZm9yZU1lZGlhRHJvcCcsJ2JlZm9yZVBhc3RlQ2xlYW51cCcsJ2JlZm9yZVBvcHVwQ2xvc2UnLCdiZWZvcmVQb3B1cE9wZW4nLCdiZWZvcmVRdWlja1Rvb2xiYXJPcGVuJywnYmVmb3JlU2FuaXRpemVIdG1sJywnYmx1cicsJ2NoYW5nZScsJ2NyZWF0ZWQnLCdkZXN0cm95ZWQnLCdkaWFsb2dDbG9zZScsJ2RpYWxvZ09wZW4nLCdkb2N1bWVudEV4cG9ydGluZycsJ2ZpbGVSZW1vdmluZycsJ2ZpbGVTZWxlY3RlZCcsJ2ZpbGVVcGxvYWRGYWlsZWQnLCdmaWxlVXBsb2FkU3VjY2VzcycsJ2ZpbGVVcGxvYWRpbmcnLCdmb2N1cycsJ2ltYWdlUmVtb3ZpbmcnLCdpbWFnZVNlbGVjdGVkJywnaW1hZ2VVcGxvYWRGYWlsZWQnLCdpbWFnZVVwbG9hZFN1Y2Nlc3MnLCdpbWFnZVVwbG9hZGluZycsJ3F1aWNrVG9vbGJhckNsb3NlJywncXVpY2tUb29sYmFyT3BlbicsJ3Jlc2l6ZVN0YXJ0JywncmVzaXplU3RvcCcsJ3Jlc2l6aW5nJywnc2VsZWN0aW9uQ2hhbmdlZCcsJ3NsYXNoTWVudUl0ZW1TZWxlY3QnLCd0b29sYmFyQ2xpY2snLCd0b29sYmFyU3RhdHVzVXBkYXRlJywndXBkYXRlZFRvb2xiYXJTdGF0dXMnLCd3b3JkSW1wb3J0aW5nJywndmFsdWVDaGFuZ2UnXTtcbmV4cG9ydCBjb25zdCB0d29XYXlzOiBzdHJpbmdbXSA9IFsndmFsdWUnXTtcblxuLyoqXG4gKiBgZWpzLXJpY2h0ZXh0ZWRpdG9yYCByZXByZXNlbnRzIHRoZSBBbmd1bGFyIHJpY2h0ZXh0ZWRpdG9yIENvbXBvbmVudC5cbiAqIGBgYGh0bWxcbiAqIDxlanMtcmljaHRleHRlZGl0b3I+PC9lanMtcmljaHRleHRlZGl0b3I+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlanMtcmljaHRleHRlZGl0b3InLFxuICAgIGlucHV0czogaW5wdXRzLFxuICAgIG91dHB1dHM6IG91dHB1dHMsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHF1ZXJpZXM6IHtcblxuICAgIH1cbn0pXG5AQ29tcG9uZW50TWl4aW5zKFtDb21wb25lbnRCYXNlLCBGb3JtQmFzZV0pXG5leHBvcnQgY2xhc3MgUmljaFRleHRFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBSaWNoVGV4dEVkaXRvciBpbXBsZW1lbnRzIElDb21wb25lbnRCYXNlIHtcbiAgICBwdWJsaWMgZm9ybUNvbXBDb250ZXh0IDogYW55O1xuICAgIHB1YmxpYyBmb3JtQ29udGV4dCA6IGFueTtcbiAgICBwdWJsaWMgdGFnT2JqZWN0czogYW55O1xuXHRhY3Rpb25CZWdpbjogYW55O1xuXHRhY3Rpb25Db21wbGV0ZTogYW55O1xuXHRhZnRlckltYWdlRGVsZXRlOiBhbnk7XG5cdGFmdGVyTWVkaWFEZWxldGU6IGFueTtcblx0YWZ0ZXJQYXN0ZUNsZWFudXA6IGFueTtcblx0YWlBc3Npc3RhbnRQcm9tcHRSZXF1ZXN0OiBhbnk7XG5cdGFpQXNzaXN0YW50U3RvcFJlc3BvbmRpbmdDbGljazogYW55O1xuXHRhaUFzc2lzdGFudFRvb2xiYXJDbGljazogYW55O1xuXHRiZWZvcmVDbGlwYm9hcmRXcml0ZTogYW55O1xuXHRiZWZvcmVEaWFsb2dDbG9zZTogYW55O1xuXHRiZWZvcmVEaWFsb2dPcGVuOiBhbnk7XG5cdGJlZm9yZUZpbGVVcGxvYWQ6IGFueTtcblx0YmVmb3JlSW1hZ2VEcm9wOiBhbnk7XG5cdGJlZm9yZUltYWdlVXBsb2FkOiBhbnk7XG5cdGJlZm9yZU1lZGlhRHJvcDogYW55O1xuXHRiZWZvcmVQYXN0ZUNsZWFudXA6IGFueTtcblx0YmVmb3JlUG9wdXBDbG9zZTogYW55O1xuXHRiZWZvcmVQb3B1cE9wZW46IGFueTtcblx0YmVmb3JlUXVpY2tUb29sYmFyT3BlbjogYW55O1xuXHRiZWZvcmVTYW5pdGl6ZUh0bWw6IGFueTtcblx0Ymx1cjogYW55O1xuXHRjaGFuZ2U6IGFueTtcblx0Y3JlYXRlZDogYW55O1xuXHRkZXN0cm95ZWQ6IGFueTtcblx0ZGlhbG9nQ2xvc2U6IGFueTtcblx0ZGlhbG9nT3BlbjogYW55O1xuXHRkb2N1bWVudEV4cG9ydGluZzogYW55O1xuXHRmaWxlUmVtb3Zpbmc6IGFueTtcblx0ZmlsZVNlbGVjdGVkOiBhbnk7XG5cdGZpbGVVcGxvYWRGYWlsZWQ6IGFueTtcblx0ZmlsZVVwbG9hZFN1Y2Nlc3M6IGFueTtcblx0ZmlsZVVwbG9hZGluZzogYW55O1xuXHRmb2N1czogYW55O1xuXHRpbWFnZVJlbW92aW5nOiBhbnk7XG5cdGltYWdlU2VsZWN0ZWQ6IGFueTtcblx0aW1hZ2VVcGxvYWRGYWlsZWQ6IGFueTtcblx0aW1hZ2VVcGxvYWRTdWNjZXNzOiBhbnk7XG5cdGltYWdlVXBsb2FkaW5nOiBhbnk7XG5cdHF1aWNrVG9vbGJhckNsb3NlOiBhbnk7XG5cdHF1aWNrVG9vbGJhck9wZW46IGFueTtcblx0cmVzaXplU3RhcnQ6IGFueTtcblx0cmVzaXplU3RvcDogYW55O1xuXHRyZXNpemluZzogYW55O1xuXHRzZWxlY3Rpb25DaGFuZ2VkOiBhbnk7XG5cdHNsYXNoTWVudUl0ZW1TZWxlY3Q6IGFueTtcblx0dG9vbGJhckNsaWNrOiBhbnk7XG5cdHRvb2xiYXJTdGF0dXNVcGRhdGU6IGFueTtcblx0dXBkYXRlZFRvb2xiYXJTdGF0dXM6IGFueTtcblx0d29yZEltcG9ydGluZzogYW55O1xuXHRwdWJsaWMgdmFsdWVDaGFuZ2U6IGFueTtcblxuXG4gICAgLyoqIFxuICAgICAqIEFjY2VwdHMgYSB0ZW1wbGF0ZSBkZXNpZ24gYW5kIGFzc2lnbnMgaXQgYXMgdGhlIGNvbnRlbnQgb2YgdGhlIFJpY2ggVGV4dCBFZGl0b3IuIFxuICAgICAqIFRoZSBidWlsdC1pbiB0ZW1wbGF0ZSBlbmdpbmUgcHJvdmlkZXMgb3B0aW9ucyB0byBjb21waWxlIGEgdGVtcGxhdGUgc3RyaW5nIGludG8gYW4gZXhlY3V0YWJsZSBmdW5jdGlvbi4gXG4gICAgICogRm9yIGV4YW1wbGUsIGl0IHN1cHBvcnRzIGV4cHJlc3Npb24gZXZhbHVhdGlvbiBzaW1pbGFyIHRvIEVTNiB0ZW1wbGF0ZSBzdHJpbmcgbGl0ZXJhbHMuXG4gICAgICogXG4gICAgICogeyUgY29kZUJsb2NrIHNyYz0ncmljaC10ZXh0LWVkaXRvci92YWx1ZS10ZW1wbGF0ZS9pbmRleC5tZCcgJX17JSBlbmRjb2RlQmxvY2sgJX1cbiAgICAgKiAgICAgXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3ZhbHVlVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHZhbHVlVGVtcGxhdGU6IGFueTtcbiAgICBAQ29udGVudENoaWxkKCdhaUFzc2lzdGFudFNldHRpbmdzQmFubmVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGFpQXNzaXN0YW50U2V0dGluZ3NfYmFubmVyVGVtcGxhdGU6IGFueTtcblxuICAgIHByaXZhdGUgc2tpcEZyb21FdmVudDpib29sZWFuID0gdHJ1ZTtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nRWxlOiBFbGVtZW50UmVmLCBwcml2YXRlIHNyZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6Vmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSB0aGlzLm5nRWxlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzID0gdGhpcy5pbmplY3RlZE1vZHVsZXMgfHwgW107XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvclRvb2xiYXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yTGluaycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JJbWFnZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JJbXBvcnRFeHBvcnQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yQXVkaW8nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yVmlkZW8nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yQ291bnQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yUXVpY2tUb29sYmFyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvckh0bWxFZGl0b3InKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yTWFya2Rvd25FZGl0b3InKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yVGFibGUnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yUGFzdGVDbGVhbnVwJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvclJlc2l6ZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JGaWxlTWFuYWdlcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JGb3JtYXRQYWludGVyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvckVtb2ppUGlja2VyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvclNsYXNoTWVudScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JDb2RlQmxvY2snKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ1JpY2hUZXh0RWRpdG9yQ2xpcEJvYXJkQ2xlYW51cCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnUmljaFRleHRFZGl0b3JBdXRvRm9ybWF0Jyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdSaWNoVGV4dEVkaXRvckFJQXNzaXN0YW50Jyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHJcbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50cyhvdXRwdXRzKTtcbiAgICAgICAgdGhpcy5hZGRUd29XYXkuY2FsbCh0aGlzLCB0d29XYXlzKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRleHQgID0gbmV3IEZvcm1CYXNlKCk7XG4gICAgICAgIHRoaXMuZm9ybUNvbXBDb250ZXh0ICA9IG5ldyBDb21wb25lbnRCYXNlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UocmVnaXN0ZXJGdW5jdGlvbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChyZWdpc3RlckZ1bmN0aW9uOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIH1cbiAgICBcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29tcENvbnRleHQubmdPbkluaXQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udGV4dC5uZ0FmdGVyVmlld0luaXQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Db21wQ29udGV4dC5uZ09uRGVzdHJveSh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICBcbiAgICAgICAgdGhpcy5mb3JtQ29tcENvbnRleHQubmdBZnRlckNvbnRlbnRDaGVja2VkKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckV2ZW50czogKGV2ZW50TGlzdDogc3RyaW5nW10pID0+IHZvaWQ7XG4gICAgcHVibGljIGFkZFR3b1dheTogKHByb3BMaXN0OiBzdHJpbmdbXSkgPT4gdm9pZDtcbn1cblxuIl19
|