@flogeez/angular-tiptap-editor 3.3.0 → 3.4.0
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 +14 -0
- package/README.md +17 -19
- package/esm2022/lib/components/bubble-menus/base/ate-base-bubble-menu.mjs +3 -3
- package/esm2022/lib/components/bubble-menus/base/ate-base-sub-bubble-menu.mjs +1 -1
- package/esm2022/lib/components/bubble-menus/color/ate-color-bubble-menu.component.mjs +2 -2
- package/esm2022/lib/components/bubble-menus/link/ate-link-bubble-menu.component.mjs +2 -2
- package/esm2022/lib/components/editor/angular-tiptap-editor.component.mjs +23 -7
- package/esm2022/lib/components/editor/ate-block-controls.component.mjs +4 -4
- package/esm2022/lib/components/slash-commands/ate-slash-commands.component.mjs +2 -2
- package/esm2022/lib/components/table-of-contents/ate-table-of-contents.component.mjs +359 -0
- package/esm2022/lib/extensions/ate-block-controls.extension.mjs +3 -3
- package/esm2022/lib/i18n/ateTranslationsModel.mjs +1 -1
- package/esm2022/lib/i18n/de_ateTranslations.mjs +2 -1
- package/esm2022/lib/i18n/en_ateTranslations.mjs +2 -1
- package/esm2022/lib/i18n/fr_ateTranslations.mjs +2 -1
- package/esm2022/lib/services/ate-image.service.mjs +2 -2
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/flogeez-angular-tiptap-editor.mjs +392 -19
- package/fesm2022/flogeez-angular-tiptap-editor.mjs.map +1 -1
- package/lib/components/bubble-menus/base/ate-base-bubble-menu.d.ts +1 -1
- package/lib/components/bubble-menus/base/ate-base-sub-bubble-menu.d.ts +1 -1
- package/lib/components/table-of-contents/ate-table-of-contents.component.d.ts +48 -0
- package/lib/i18n/ateTranslationsModel.d.ts +1 -0
- package/lib/services/ate-i18n.service.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/lib/styles/ate-variables.global.css +173 -0
- package/src/lib/styles/index.css +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,20 @@ All notable changes to `@flogeez/angular-tiptap-editor` will be documented in th
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), with the exception that the major version is specifically aligned with the major version of [Tiptap](https://tiptap.dev).
|
|
7
7
|
|
|
8
|
+
## [3.4.0] - 2026-07-30
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Table of Contents Component (`AteTableOfContentsComponent`)**: Introduced a Notion-style, responsive Table of Contents component (`ate-table-of-contents`).
|
|
13
|
+
- **Collapsible Notion Mode**: Dynamically collapses heading items into level-proportional SVG dashes (H1–H6) and expands smoothly on hover or keyboard focus.
|
|
14
|
+
- **Directional Hitbox**: Outer container (`.ate-toc-wrapper`) with directional hitbox padding (`16px`/`8px`) ensuring effortless hover activation without visual shift.
|
|
15
|
+
- **Layouts & Variants**: Supports floating (`left`/`right` fixed positioning) and inline modes, alongside `card`, `minimal`, and `transparent` visual variants.
|
|
16
|
+
- **Tiptap & Scroll Integration**: Auto-extracts document headings, scroll-syncs active heading detection, and smoothly navigates to selected sections on click.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **SSR Compatibility**: Added `typeof window !== 'undefined'` safety guard when evaluating window height in `checkActiveHeading()` for seamless Server-Side Rendering support.
|
|
21
|
+
|
|
8
22
|
## [3.3.0] - 2026-07-27
|
|
9
23
|
|
|
10
24
|
### Added
|
package/README.md
CHANGED
|
@@ -15,11 +15,13 @@ Yet, I've worked to keep it fully customizable: you can easily configure the edi
|
|
|
15
15
|
## ✨ Features
|
|
16
16
|
|
|
17
17
|
- ⚡ **Signal-Based**: Native performance with `ChangeDetectionStrategy.OnPush`.
|
|
18
|
+
- 📋 **Table of Contents**: Notion-style floating or inline TOC component with level-adapted dash collapse.
|
|
19
|
+
- 🗂️ **Global Editor Registry**: Centralized `AteEditorRegistry` service to track, control, and switch between multi-editor instances.
|
|
18
20
|
- 🧩 **Angular Nodes**: Embed any Angular component as an interactive editor node.
|
|
19
21
|
- ⌨️ **UX First**: Slash commands (`/`) and context-aware bubble menus (Notion-like).
|
|
20
22
|
- 📊 **Table Power**: Advanced management with cell selection and merging.
|
|
21
23
|
- 🖼️ **Pro Media**: Image resizing, auto-compression, and custom uploaders.
|
|
22
|
-
- 🌍 **Built-in i18n**: Support for English and
|
|
24
|
+
- 🌍 **Built-in i18n**: Support for English, French, and German out of the box.
|
|
23
25
|
- 📎 **Office-Ready**: Clean pasting from Word and Excel.
|
|
24
26
|
- 🎨 **Highly Customizable**: Easily configure toolbars, bubble menus, and slash command items.
|
|
25
27
|
- 🛠️ **Extensible**: Easily add custom Tiptap extensions and reactive state calculators.
|
|
@@ -116,23 +118,6 @@ _See the [API reference](./API.md) for the full list of inputs and configuration
|
|
|
116
118
|
|
|
117
119
|
## 🧩 Advanced Features
|
|
118
120
|
|
|
119
|
-
For deeper integration patterns and complex use cases, check our **[Advanced Usage Guide](./ADVANCED.md)**.
|
|
120
|
-
|
|
121
|
-
### Custom Angular Nodes
|
|
122
|
-
|
|
123
|
-
Embed any Angular component as an editor node (e.g., a dynamic counter, a complex widget, IA block, etc.):
|
|
124
|
-
|
|
125
|
-
```typescript
|
|
126
|
-
angularNodes: [
|
|
127
|
-
{
|
|
128
|
-
component: MyCounterComponent,
|
|
129
|
-
name: "counter",
|
|
130
|
-
attributes: { count: { default: 0 } },
|
|
131
|
-
group: "block",
|
|
132
|
-
},
|
|
133
|
-
];
|
|
134
|
-
```
|
|
135
|
-
|
|
136
121
|
### Image Upload Handler
|
|
137
122
|
|
|
138
123
|
Avoid base64 by providing a custom uploader (S3, Cloudinary, etc.):
|
|
@@ -145,9 +130,22 @@ uploadHandler: AteImageUploadHandler = ctx => {
|
|
|
145
130
|
};
|
|
146
131
|
```
|
|
147
132
|
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### 🚀 More Advanced Capabilities
|
|
136
|
+
|
|
137
|
+
Looking for deeper integration patterns? Explore our **[Advanced Usage Guide](./ADVANCED.md)**:
|
|
138
|
+
|
|
139
|
+
- 🧩 **[Custom Angular Nodes](./ADVANCED.md#-embedding-angular-components-angular-nodes)**: Embed any Angular component as interactive editor nodes.
|
|
140
|
+
- 📋 **[Table of Contents](./ADVANCED.md#-table-of-contents-component-atetableofcontentscomponent)**: Responsive, Notion-style floating or inline TOC.
|
|
141
|
+
- 🗂️ **[Global Editor Registry](./ADVANCED.md#-global-editor-registry-ateeditorregistry)**: Track and control multi-editor instances via DI.
|
|
142
|
+
- ⚡ **[Programmatic Control](./ADVANCED.md#-programmatic-control-with-ateeditorcommandsservice)**: Execute commands remotely via `AteEditorCommandsService`.
|
|
143
|
+
- ⌨️ **[Custom Slash Commands](./ADVANCED.md#️-custom-slash-commands)**: Add custom actions and templates to the `/` menu.
|
|
144
|
+
- 🛠️ **[Tiptap Extensions & State Calculators](./ADVANCED.md#️-custom-tiptap-extensions)**: Extend schema and custom reactive state.
|
|
145
|
+
|
|
148
146
|
## 🌍 i18n & 🎨 Styling
|
|
149
147
|
|
|
150
|
-
- **Languages**: Detects browser language automatically. Extend with `AteI18nService.addTranslations()`.
|
|
148
|
+
- **Languages**: English, French, and German built-in. Detects browser language automatically. Extend with `AteI18nService.addTranslations()`.
|
|
151
149
|
- **Styling**: Customize via CSS variables (e.g., `--ate-primary`, `--ate-border-radius`, and much more).
|
|
152
150
|
- **Dark Mode**: Works natively by adding `.dark` or `[data-theme="dark"]`.
|
|
153
151
|
|
|
@@ -29,7 +29,7 @@ export class AteBaseBubbleMenu {
|
|
|
29
29
|
if (this.updateTimeout) {
|
|
30
30
|
clearTimeout(this.updateTimeout);
|
|
31
31
|
}
|
|
32
|
-
this.updateTimeout =
|
|
32
|
+
this.updateTimeout = setTimeout(() => {
|
|
33
33
|
const ed = this.editor();
|
|
34
34
|
if (!ed) {
|
|
35
35
|
return;
|
|
@@ -168,7 +168,7 @@ export class AteBaseBubbleMenu {
|
|
|
168
168
|
return new DOMRect(-9999, -9999, 0, 0);
|
|
169
169
|
}
|
|
170
170
|
// 1. Try native selection for multi-line accuracy
|
|
171
|
-
const selection = window.getSelection();
|
|
171
|
+
const selection = typeof window !== "undefined" ? window.getSelection() : null;
|
|
172
172
|
if (selection && selection.rangeCount > 0) {
|
|
173
173
|
const range = selection.getRangeAt(0);
|
|
174
174
|
const rect = range.getBoundingClientRect();
|
|
@@ -204,4 +204,4 @@ export class AteBaseBubbleMenu {
|
|
|
204
204
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteBaseBubbleMenu, decorators: [{
|
|
205
205
|
type: Directive
|
|
206
206
|
}], ctorParameters: () => [] });
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWJhc2UtYnViYmxlLW1lbnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2J1YmJsZS1tZW51cy9iYXNlL2F0ZS1iYXNlLWJ1YmJsZS1tZW51LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFHVCxNQUFNLEVBQ04sTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxFQUFFLEVBQTZCLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBRXBFOzs7R0FHRztBQUVILE1BQU0sT0FBZ0IsaUJBQWlCO0lBb0JyQztRQW5CbUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckMsbUJBQWMsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUVyRSxjQUFjO1FBQ2QsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUVsQyw0Q0FBNEM7UUFDNUMsWUFBTyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQTZCLFNBQVMsQ0FBQyxDQUFDO1FBRXBFLGlCQUFpQjtRQUNQLGtCQUFhLEdBQXlCLElBQUksQ0FBQztRQUMzQyxrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFFOUMsdURBQXVEO1FBQ3BDLHlCQUFvQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUM7UUFFbkYscUNBQXFDO1FBQzVCLFVBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQXFGakQ7O1dBRUc7UUFDSCxlQUFVLEdBQUcsR0FB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QUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRHRDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIGlucHV0LFxuICB2aWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxuICBlZmZlY3QsXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgdGlwcHksIHsgSW5zdGFuY2UgYXMgVGlwcHlJbnN0YW5jZSwgc3RpY2t5IH0gZnJvbSBcInRpcHB5LmpzXCI7XG5pbXBvcnQgeyBFZGl0b3IgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXRlLWVkaXRvci1jb21tYW5kcy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVJMThuU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9hdGUtaTE4bi5zZXJ2aWNlXCI7XG5cbi8qKlxuICogQmFzZSBhYnN0cmFjdCBjbGFzcyBmb3IgYWxsIEJ1YmJsZSBNZW51cyAoVGV4dCwgSW1hZ2UsIFRhYmxlLCBDZWxsKS5cbiAqIEhhbmRsZXMgY29tbW9uIGxvZ2ljIGZvciBUaXBweS5qcyBpbml0aWFsaXphdGlvbiwgcG9zaXRpb25pbmcsIGFuZCB2aXNpYmlsaXR5LlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdGVCYXNlQnViYmxlTWVudSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBpMThuU2VydmljZSA9IGluamVjdChBdGVJMThuU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBlZGl0b3JDb21tYW5kcyA9IGluamVjdChBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UpO1xuXG4gIC8vIENvcmUgSW5wdXRzXG4gIGVkaXRvciA9IGlucHV0LnJlcXVpcmVkPEVkaXRvcj4oKTtcblxuICAvLyBSZXF1aXJlZCB2aWV3Q2hpbGQgZm9yIHRoZSBtZW51IGNvbnRhaW5lclxuICBtZW51UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PihcIm1lbnVSZWZcIik7XG5cbiAgLy8gSW50ZXJuYWwgU3RhdGVcbiAgcHJvdGVjdGVkIHRpcHB5SW5zdGFuY2U6IFRpcHB5SW5zdGFuY2UgfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIHVwZGF0ZVRpbWVvdXQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8vIFRvb2xiYXIgaW50ZXJhY3Rpb24gc3RhdGUgKGZyb20gY2VudHJhbGl6ZWQgc2VydmljZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzVG9vbGJhckludGVyYWN0aW5nID0gdGhpcy5lZGl0b3JDb21tYW5kcy5pc1Rvb2xiYXJJbnRlcmFjdGluZztcblxuICAvLyBSZWFjdGl2ZSBzdGF0ZSBhbGlhcyBmb3IgdGVtcGxhdGVzXG4gIHJlYWRvbmx5IHN0YXRlID0gdGhpcy5lZGl0b3JDb21tYW5kcy5lZGl0b3JTdGF0ZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBFZmZlY3QgdG8gcmVhY3RpdmVseSB1cGRhdGUgdGhlIG1lbnUgd2hlbiBlZGl0b3Igc3RhdGVcbiAgICAvLyBvciB0b29sYmFyIGludGVyYWN0aW9uIGNoYW5nZXMuXG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlKCk7XG4gICAgICAgIHRoaXMuaXNUb29sYmFySW50ZXJhY3RpbmcoKTtcbiAgICAgICAgLy8gQWxzbyByZWFjdCB0byBsaW5rL2NvbG9yIGVkaXQgbW9kZXMgdG8gaGlkZSB3aGVuIHN1Yi1tZW51cyBhY3RpdmF0ZVxuICAgICAgICB0aGlzLmVkaXRvckNvbW1hbmRzLmxpbmtFZGl0TW9kZSgpO1xuICAgICAgICB0aGlzLmVkaXRvckNvbW1hbmRzLmNvbG9yRWRpdE1vZGUoKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaW5pdFRpcHB5KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy51cGRhdGVUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy51cGRhdGVUaW1lb3V0KTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGlwcHlJbnN0YW5jZSkge1xuICAgICAgdGhpcy50aXBweUluc3RhbmNlLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMudGlwcHlJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBUaXBweSBpbnN0YW5jZS5cbiAgICogQ2FuIGJlIG92ZXJyaWRkZW4gZm9yIHNwZWNpZmljIFRpcHB5IGNvbmZpZ3VyYXRpb25zLlxuICAgKi9cbiAgcHJvdGVjdGVkIGluaXRUaXBweSgpIHtcbiAgICBjb25zdCBuYXRpdmVFbGVtZW50ID0gdGhpcy5tZW51UmVmKCkubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIW5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlZCA9IHRoaXMuZWRpdG9yKCk7XG4gICAgaWYgKHRoaXMudGlwcHlJbnN0YW5jZSkge1xuICAgICAgdGhpcy50aXBweUluc3RhbmNlLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICB0aGlzLnRpcHB5SW5zdGFuY2UgPSB0aXBweShkb2N1bWVudC5ib2R5LCB7XG4gICAgICBjb250ZW50OiBuYXRpdmVFbGVtZW50LFxuICAgICAgdHJpZ2dlcjogXCJtYW51YWxcIixcbiAgICAgIHBsYWNlbWVudDogXCJ0b3Atc3RhcnRcIixcbiAgICAgIHRoZW1lOiBcImF0ZS1idWJibGUtbWVudVwiLFxuICAgICAgYXBwZW5kVG86ICgpID0+IChlZD8ub3B0aW9ucz8uZWxlbWVudCBhcyBIVE1MRWxlbWVudCkgfHwgZG9jdW1lbnQuYm9keSxcbiAgICAgIGludGVyYWN0aXZlOiB0cnVlLFxuICAgICAgaGlkZU9uQ2xpY2s6IGZhbHNlLFxuICAgICAgYXJyb3c6IGZhbHNlLFxuICAgICAgb2Zmc2V0OiBbMCwgOF0sXG4gICAgICBwbHVnaW5zOiBbc3RpY2t5XSxcbiAgICAgIHN0aWNreTogZmFsc2UsXG4gICAgICBnZXRSZWZlcmVuY2VDbGllbnRSZWN0OiAoKSA9PiB0aGlzLmdldFNlbGVjdGlvblJlY3QoKSxcbiAgICAgIHBvcHBlck9wdGlvbnM6IHtcbiAgICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJwcmV2ZW50T3ZlcmZsb3dcIixcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgYm91bmRhcnk6ICh0aGlzLmVkaXRvcigpLm9wdGlvbnMuZWxlbWVudCBhcyBIVE1MRWxlbWVudCkgfHwgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgICAgICAgcGFkZGluZzogOCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImZsaXBcIixcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgZmFsbGJhY2tQbGFjZW1lbnRzOiBbXCJib3R0b20tc3RhcnRcIiwgXCJ0b3AtZW5kXCIsIFwiYm90dG9tLWVuZFwiXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBvblNob3c6IGluc3RhbmNlID0+IHRoaXMub25UaXBweVNob3coaW5zdGFuY2UpLFxuICAgICAgb25IaWRlOiBpbnN0YW5jZSA9PiB0aGlzLm9uVGlwcHlIaWRlKGluc3RhbmNlKSxcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcmUgbG9naWMgdG8gZGVjaWRlIHdoZXRoZXIgdG8gc2hvdyBvciBoaWRlIHRoZSBtZW51LlxuICAgKi9cbiAgdXBkYXRlTWVudSA9ICgpID0+IHtcbiAgICBpZiAodGhpcy51cGRhdGVUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy51cGRhdGVUaW1lb3V0KTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBlZCA9IHRoaXMuZWRpdG9yKCk7XG4gICAgICBpZiAoIWVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gSGlkZSB3aGVuIGludGVyYWN0aW5nIHdpdGggdGhlIG1haW4gdG9vbGJhclxuICAgICAgaWYgKHRoaXMuaXNUb29sYmFySW50ZXJhY3RpbmcoKSkge1xuICAgICAgICB0aGlzLmhpZGVUaXBweSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnNob3VsZFNob3coKSkge1xuICAgICAgICB0aGlzLnNob3dUaXBweSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oaWRlVGlwcHkoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhlbHBlciB0byBzaG93IHRoZSBUaXBweSBpbnN0YW5jZSB3aXRoIHVwZGF0ZWQgcG9zaXRpb25pbmcuXG4gICAqL1xuICBzaG93VGlwcHkoKSB7XG4gICAgaWYgKCF0aGlzLnRpcHB5SW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgcG9zaXRpb24gYmVmb3JlIHNob3dpbmdcbiAgICB0aGlzLnRpcHB5SW5zdGFuY2Uuc2V0UHJvcHMoe1xuICAgICAgZ2V0UmVmZXJlbmNlQ2xpZW50UmVjdDogKCkgPT4gdGhpcy5nZXRTZWxlY3Rpb25SZWN0KCksXG4gICAgICBzdGlja3k6IFwicmVmZXJlbmNlXCIsXG4gICAgfSk7XG4gICAgdGhpcy50aXBweUluc3RhbmNlLnNob3coKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gaGlkZSB0aGUgVGlwcHkgaW5zdGFuY2UuXG4gICAqL1xuICBoaWRlVGlwcHkoKSB7XG4gICAgaWYgKHRoaXMudGlwcHlJbnN0YW5jZSkge1xuICAgICAgdGhpcy50aXBweUluc3RhbmNlLnNldFByb3BzKHsgc3RpY2t5OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMudGlwcHlJbnN0YW5jZS5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbW1vbiBjb21tYW5kIGhhbmRsZXIgZm9yIGJ1dHRvbnMgaW4gdGhlIG1lbnUuXG4gICAqL1xuICBvbkNvbW1hbmQoY29tbWFuZDogc3RyaW5nLCBldmVudD86IEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICAgIGNvbnN0IGVkID0gdGhpcy5lZGl0b3IoKTtcbiAgICBpZiAoZWQpIHtcbiAgICAgIHRoaXMuZXhlY3V0ZUNvbW1hbmQoZWQsIGNvbW1hbmQpO1xuICAgICAgdGhpcy51cGRhdGVNZW51KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNoYXJlZCBoZWxwZXIgdG8gZ2V0IHRoZSBib3VuZGluZyByZWN0IG9mIHRoZSBjdXJyZW50IHNlbGVjdGlvbi5cbiAgICogVXNlcyBhIGNvbWJpbmF0aW9uIG9mIG5hdGl2ZSBzZWxlY3Rpb24gYW5kIFByb3NlTWlycm9yIGNvb3JkaW5hdGVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFJlY3RGb3JTZWxlY3Rpb24oZWQ6IEVkaXRvcik6IERPTVJlY3Qge1xuICAgIGlmICghZWQpIHtcbiAgICAgIHJldHVybiBuZXcgRE9NUmVjdCgwLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IGZyb20sIHRvLCBlbXB0eSB9ID0gZWQuc3RhdGUuc2VsZWN0aW9uO1xuICAgIGlmIChlbXB0eSkge1xuICAgICAgcmV0dXJuIG5ldyBET01SZWN0KC05OTk5LCAtOTk5OSwgMCwgMCk7XG4gICAgfVxuXG4gICAgLy8gMS4gVHJ5IG5hdGl2ZSBzZWxlY3Rpb24gZm9yIG11bHRpLWxpbmUgYWNjdXJhY3lcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XG4gICAgICBjb25zdCByZWN0ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgIC8vIEVuc3VyZSB0aGUgcmVjdCBpcyB2YWxpZCBhbmQgYmVsb25ncyB0byB0aGUgZWRpdG9yXG4gICAgICBpZiAocmVjdC53aWR0aCA+IDAgJiYgcmVjdC5oZWlnaHQgPiAwKSB7XG4gICAgICAgIHJldHVybiByZWN0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDIuIEZhbGxiYWNrIHRvIFRpcHRhcCBjb29yZGluYXRlcyBmb3IgcHJlY2lzaW9uIChzaW5nbGUgbGluZSAvIGVkZ2UgY2FzZXMpXG4gICAgY29uc3Qgc3RhcnQgPSBlZC52aWV3LmNvb3Jkc0F0UG9zKGZyb20pO1xuICAgIGNvbnN0IGVuZCA9IGVkLnZpZXcuY29vcmRzQXRQb3ModG8pO1xuXG4gICAgY29uc3QgdG9wID0gTWF0aC5taW4oc3RhcnQudG9wLCBlbmQudG9wKTtcbiAgICBjb25zdCBib3R0b20gPSBNYXRoLm1heChzdGFydC5ib3R0b20sIGVuZC5ib3R0b20pO1xuICAgIGNvbnN0IGxlZnQgPSBNYXRoLm1pbihzdGFydC5sZWZ0LCBlbmQubGVmdCk7XG4gICAgY29uc3QgcmlnaHQgPSBNYXRoLm1heChzdGFydC5yaWdodCwgZW5kLnJpZ2h0KTtcblxuICAgIHJldHVybiBuZXcgRE9NUmVjdChsZWZ0LCB0b3AsIHJpZ2h0IC0gbGVmdCwgYm90dG9tIC0gdG9wKTtcbiAgfVxuXG4gIC8vIC0tLSBBYnN0cmFjdCBtZXRob2RzIHRvIGJlIGltcGxlbWVudGVkIGJ5IHN1Yi1jb21wb25lbnRzIC0tLVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBSZWN0IHJlcHJlc2VudGluZyB0aGUgdGFyZ2V0IGZvciBwb3NpdGlvbmluZyB0aGUgbWVudS5cbiAgICovXG4gIGFic3RyYWN0IGdldFNlbGVjdGlvblJlY3QoKTogRE9NUmVjdDtcblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBtZW51IHNob3VsZCBiZSBkaXNwbGF5ZWQgYmFzZWQgb24gY3VycmVudCBzdGF0ZS5cbiAgICovXG4gIGFic3RyYWN0IHNob3VsZFNob3coKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXhlY3V0ZXMgdGhlIGdpdmVuIGNvbW1hbmQgb24gdGhlIGVkaXRvci5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBleGVjdXRlQ29tbWFuZChlZGl0b3I6IEVkaXRvciwgY29tbWFuZDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBob29rIGNhbGxlZCB3aGVuIFRpcHB5IGlzIGFib3V0IHRvIGJlIHNob3duLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uVGlwcHlTaG93KF9pbnN0YW5jZTogVGlwcHlJbnN0YW5jZSkge1xuICAgIC8qIGVtcHR5ICovXG4gIH1cblxuICAvKipcbiAgICogT3B0aW9uYWwgaG9vayBjYWxsZWQgd2hlbiBUaXBweSBpcyBhYm91dCB0byBiZSBoaWRkZW4uXG4gICAqL1xuICBwcm90ZWN0ZWQgb25UaXBweUhpZGUoX2luc3RhbmNlOiBUaXBweUluc3RhbmNlKSB7XG4gICAgLyogZW1wdHkgKi9cbiAgfVxufVxuIl19
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWJhc2UtYnViYmxlLW1lbnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2J1YmJsZS1tZW51cy9iYXNlL2F0ZS1iYXNlLWJ1YmJsZS1tZW51LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFHVCxNQUFNLEVBQ04sTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxFQUFFLEVBQTZCLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBRXBFOzs7R0FHRztBQUVILE1BQU0sT0FBZ0IsaUJBQWlCO0lBb0JyQztRQW5CbUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckMsbUJBQWMsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUVyRSxjQUFjO1FBQ2QsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUVsQyw0Q0FBNEM7UUFDNUMsWUFBTyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQTZCLFNBQVMsQ0FBQyxDQUFDO1FBRXBFLGlCQUFpQjtRQUNQLGtCQUFhLEdBQXlCLElBQUksQ0FBQztRQUMzQyxrQkFBYSxHQUF5QyxJQUFJLENBQUM7UUFFckUsdURBQXVEO1FBQ3BDLHlCQUFvQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUM7UUFFbkYscUNBQXFDO1FBQzVCLFVBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQXFGakQ7O1dBRUc7UUFDSCxlQUFVLEdBQUcsR0FB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LFNBQXdCO1FBQzVDLFdBQVc7SUFDYixDQUFDOytHQS9PbUIsaUJBQWlCO21HQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRHRDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIGlucHV0LFxuICB2aWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxuICBlZmZlY3QsXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgdGlwcHksIHsgSW5zdGFuY2UgYXMgVGlwcHlJbnN0YW5jZSwgc3RpY2t5IH0gZnJvbSBcInRpcHB5LmpzXCI7XG5pbXBvcnQgeyBFZGl0b3IgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXRlLWVkaXRvci1jb21tYW5kcy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVJMThuU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9hdGUtaTE4bi5zZXJ2aWNlXCI7XG5cbi8qKlxuICogQmFzZSBhYnN0cmFjdCBjbGFzcyBmb3IgYWxsIEJ1YmJsZSBNZW51cyAoVGV4dCwgSW1hZ2UsIFRhYmxlLCBDZWxsKS5cbiAqIEhhbmRsZXMgY29tbW9uIGxvZ2ljIGZvciBUaXBweS5qcyBpbml0aWFsaXphdGlvbiwgcG9zaXRpb25pbmcsIGFuZCB2aXNpYmlsaXR5LlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdGVCYXNlQnViYmxlTWVudSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBpMThuU2VydmljZSA9IGluamVjdChBdGVJMThuU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBlZGl0b3JDb21tYW5kcyA9IGluamVjdChBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UpO1xuXG4gIC8vIENvcmUgSW5wdXRzXG4gIGVkaXRvciA9IGlucHV0LnJlcXVpcmVkPEVkaXRvcj4oKTtcblxuICAvLyBSZXF1aXJlZCB2aWV3Q2hpbGQgZm9yIHRoZSBtZW51IGNvbnRhaW5lclxuICBtZW51UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PihcIm1lbnVSZWZcIik7XG5cbiAgLy8gSW50ZXJuYWwgU3RhdGVcbiAgcHJvdGVjdGVkIHRpcHB5SW5zdGFuY2U6IFRpcHB5SW5zdGFuY2UgfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIHVwZGF0ZVRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gVG9vbGJhciBpbnRlcmFjdGlvbiBzdGF0ZSAoZnJvbSBjZW50cmFsaXplZCBzZXJ2aWNlKVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNUb29sYmFySW50ZXJhY3RpbmcgPSB0aGlzLmVkaXRvckNvbW1hbmRzLmlzVG9vbGJhckludGVyYWN0aW5nO1xuXG4gIC8vIFJlYWN0aXZlIHN0YXRlIGFsaWFzIGZvciB0ZW1wbGF0ZXNcbiAgcmVhZG9ubHkgc3RhdGUgPSB0aGlzLmVkaXRvckNvbW1hbmRzLmVkaXRvclN0YXRlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEVmZmVjdCB0byByZWFjdGl2ZWx5IHVwZGF0ZSB0aGUgbWVudSB3aGVuIGVkaXRvciBzdGF0ZVxuICAgIC8vIG9yIHRvb2xiYXIgaW50ZXJhY3Rpb24gY2hhbmdlcy5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdGUoKTtcbiAgICAgICAgdGhpcy5pc1Rvb2xiYXJJbnRlcmFjdGluZygpO1xuICAgICAgICAvLyBBbHNvIHJlYWN0IHRvIGxpbmsvY29sb3IgZWRpdCBtb2RlcyB0byBoaWRlIHdoZW4gc3ViLW1lbnVzIGFjdGl2YXRlXG4gICAgICAgIHRoaXMuZWRpdG9yQ29tbWFuZHMubGlua0VkaXRNb2RlKCk7XG4gICAgICAgIHRoaXMuZWRpdG9yQ29tbWFuZHMuY29sb3JFZGl0TW9kZSgpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0VGlwcHkoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnVwZGF0ZVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnVwZGF0ZVRpbWVvdXQpO1xuICAgIH1cbiAgICBpZiAodGhpcy50aXBweUluc3RhbmNlKSB7XG4gICAgICB0aGlzLnRpcHB5SW5zdGFuY2UuZGVzdHJveSgpO1xuICAgICAgdGhpcy50aXBweUluc3RhbmNlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIFRpcHB5IGluc3RhbmNlLlxuICAgKiBDYW4gYmUgb3ZlcnJpZGRlbiBmb3Igc3BlY2lmaWMgVGlwcHkgY29uZmlndXJhdGlvbnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdFRpcHB5KCkge1xuICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLm1lbnVSZWYoKS5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghbmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVkID0gdGhpcy5lZGl0b3IoKTtcbiAgICBpZiAodGhpcy50aXBweUluc3RhbmNlKSB7XG4gICAgICB0aGlzLnRpcHB5SW5zdGFuY2UuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHRoaXMudGlwcHlJbnN0YW5jZSA9IHRpcHB5KGRvY3VtZW50LmJvZHksIHtcbiAgICAgIGNvbnRlbnQ6IG5hdGl2ZUVsZW1lbnQsXG4gICAgICB0cmlnZ2VyOiBcIm1hbnVhbFwiLFxuICAgICAgcGxhY2VtZW50OiBcInRvcC1zdGFydFwiLFxuICAgICAgdGhlbWU6IFwiYXRlLWJ1YmJsZS1tZW51XCIsXG4gICAgICBhcHBlbmRUbzogKCkgPT4gKGVkPy5vcHRpb25zPy5lbGVtZW50IGFzIEhUTUxFbGVtZW50KSB8fCBkb2N1bWVudC5ib2R5LFxuICAgICAgaW50ZXJhY3RpdmU6IHRydWUsXG4gICAgICBoaWRlT25DbGljazogZmFsc2UsXG4gICAgICBhcnJvdzogZmFsc2UsXG4gICAgICBvZmZzZXQ6IFswLCA4XSxcbiAgICAgIHBsdWdpbnM6IFtzdGlja3ldLFxuICAgICAgc3RpY2t5OiBmYWxzZSxcbiAgICAgIGdldFJlZmVyZW5jZUNsaWVudFJlY3Q6ICgpID0+IHRoaXMuZ2V0U2VsZWN0aW9uUmVjdCgpLFxuICAgICAgcG9wcGVyT3B0aW9uczoge1xuICAgICAgICBtb2RpZmllcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInByZXZlbnRPdmVyZmxvd1wiLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBib3VuZGFyeTogKHRoaXMuZWRpdG9yKCkub3B0aW9ucy5lbGVtZW50IGFzIEhUTUxFbGVtZW50KSB8fCBkb2N1bWVudC5ib2R5LFxuICAgICAgICAgICAgICBwYWRkaW5nOiA4LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZmxpcFwiLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBmYWxsYmFja1BsYWNlbWVudHM6IFtcImJvdHRvbS1zdGFydFwiLCBcInRvcC1lbmRcIiwgXCJib3R0b20tZW5kXCJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIG9uU2hvdzogaW5zdGFuY2UgPT4gdGhpcy5vblRpcHB5U2hvdyhpbnN0YW5jZSksXG4gICAgICBvbkhpZGU6IGluc3RhbmNlID0+IHRoaXMub25UaXBweUhpZGUoaW5zdGFuY2UpLFxuICAgIH0pO1xuXG4gICAgdGhpcy51cGRhdGVNZW51KCk7XG4gIH1cblxuICAvKipcbiAgICogQ29yZSBsb2dpYyB0byBkZWNpZGUgd2hldGhlciB0byBzaG93IG9yIGhpZGUgdGhlIG1lbnUuXG4gICAqL1xuICB1cGRhdGVNZW51ID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLnVwZGF0ZVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnVwZGF0ZVRpbWVvdXQpO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZWQgPSB0aGlzLmVkaXRvcigpO1xuICAgICAgaWYgKCFlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEhpZGUgd2hlbiBpbnRlcmFjdGluZyB3aXRoIHRoZSBtYWluIHRvb2xiYXJcbiAgICAgIGlmICh0aGlzLmlzVG9vbGJhckludGVyYWN0aW5nKCkpIHtcbiAgICAgICAgdGhpcy5oaWRlVGlwcHkoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5zaG91bGRTaG93KCkpIHtcbiAgICAgICAgdGhpcy5zaG93VGlwcHkoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaGlkZVRpcHB5KCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gc2hvdyB0aGUgVGlwcHkgaW5zdGFuY2Ugd2l0aCB1cGRhdGVkIHBvc2l0aW9uaW5nLlxuICAgKi9cbiAgc2hvd1RpcHB5KCkge1xuICAgIGlmICghdGhpcy50aXBweUluc3RhbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIHBvc2l0aW9uIGJlZm9yZSBzaG93aW5nXG4gICAgdGhpcy50aXBweUluc3RhbmNlLnNldFByb3BzKHtcbiAgICAgIGdldFJlZmVyZW5jZUNsaWVudFJlY3Q6ICgpID0+IHRoaXMuZ2V0U2VsZWN0aW9uUmVjdCgpLFxuICAgICAgc3RpY2t5OiBcInJlZmVyZW5jZVwiLFxuICAgIH0pO1xuICAgIHRoaXMudGlwcHlJbnN0YW5jZS5zaG93KCk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIHRvIGhpZGUgdGhlIFRpcHB5IGluc3RhbmNlLlxuICAgKi9cbiAgaGlkZVRpcHB5KCkge1xuICAgIGlmICh0aGlzLnRpcHB5SW5zdGFuY2UpIHtcbiAgICAgIHRoaXMudGlwcHlJbnN0YW5jZS5zZXRQcm9wcyh7IHN0aWNreTogZmFsc2UgfSk7XG4gICAgICB0aGlzLnRpcHB5SW5zdGFuY2UuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb21tb24gY29tbWFuZCBoYW5kbGVyIGZvciBidXR0b25zIGluIHRoZSBtZW51LlxuICAgKi9cbiAgb25Db21tYW5kKGNvbW1hbmQ6IHN0cmluZywgZXZlbnQ/OiBFdmVudCkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICBjb25zdCBlZCA9IHRoaXMuZWRpdG9yKCk7XG4gICAgaWYgKGVkKSB7XG4gICAgICB0aGlzLmV4ZWN1dGVDb21tYW5kKGVkLCBjb21tYW5kKTtcbiAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTaGFyZWQgaGVscGVyIHRvIGdldCB0aGUgYm91bmRpbmcgcmVjdCBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24uXG4gICAqIFVzZXMgYSBjb21iaW5hdGlvbiBvZiBuYXRpdmUgc2VsZWN0aW9uIGFuZCBQcm9zZU1pcnJvciBjb29yZGluYXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCBnZXRSZWN0Rm9yU2VsZWN0aW9uKGVkOiBFZGl0b3IpOiBET01SZWN0IHtcbiAgICBpZiAoIWVkKSB7XG4gICAgICByZXR1cm4gbmV3IERPTVJlY3QoMCwgMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBmcm9tLCB0bywgZW1wdHkgfSA9IGVkLnN0YXRlLnNlbGVjdGlvbjtcbiAgICBpZiAoZW1wdHkpIHtcbiAgICAgIHJldHVybiBuZXcgRE9NUmVjdCgtOTk5OSwgLTk5OTksIDAsIDApO1xuICAgIH1cblxuICAgIC8vIDEuIFRyeSBuYXRpdmUgc2VsZWN0aW9uIGZvciBtdWx0aS1saW5lIGFjY3VyYWN5XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvdy5nZXRTZWxlY3Rpb24oKSA6IG51bGw7XG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XG4gICAgICBjb25zdCByZWN0ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgIC8vIEVuc3VyZSB0aGUgcmVjdCBpcyB2YWxpZCBhbmQgYmVsb25ncyB0byB0aGUgZWRpdG9yXG4gICAgICBpZiAocmVjdC53aWR0aCA+IDAgJiYgcmVjdC5oZWlnaHQgPiAwKSB7XG4gICAgICAgIHJldHVybiByZWN0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDIuIEZhbGxiYWNrIHRvIFRpcHRhcCBjb29yZGluYXRlcyBmb3IgcHJlY2lzaW9uIChzaW5nbGUgbGluZSAvIGVkZ2UgY2FzZXMpXG4gICAgY29uc3Qgc3RhcnQgPSBlZC52aWV3LmNvb3Jkc0F0UG9zKGZyb20pO1xuICAgIGNvbnN0IGVuZCA9IGVkLnZpZXcuY29vcmRzQXRQb3ModG8pO1xuXG4gICAgY29uc3QgdG9wID0gTWF0aC5taW4oc3RhcnQudG9wLCBlbmQudG9wKTtcbiAgICBjb25zdCBib3R0b20gPSBNYXRoLm1heChzdGFydC5ib3R0b20sIGVuZC5ib3R0b20pO1xuICAgIGNvbnN0IGxlZnQgPSBNYXRoLm1pbihzdGFydC5sZWZ0LCBlbmQubGVmdCk7XG4gICAgY29uc3QgcmlnaHQgPSBNYXRoLm1heChzdGFydC5yaWdodCwgZW5kLnJpZ2h0KTtcblxuICAgIHJldHVybiBuZXcgRE9NUmVjdChsZWZ0LCB0b3AsIHJpZ2h0IC0gbGVmdCwgYm90dG9tIC0gdG9wKTtcbiAgfVxuXG4gIC8vIC0tLSBBYnN0cmFjdCBtZXRob2RzIHRvIGJlIGltcGxlbWVudGVkIGJ5IHN1Yi1jb21wb25lbnRzIC0tLVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBSZWN0IHJlcHJlc2VudGluZyB0aGUgdGFyZ2V0IGZvciBwb3NpdGlvbmluZyB0aGUgbWVudS5cbiAgICovXG4gIGFic3RyYWN0IGdldFNlbGVjdGlvblJlY3QoKTogRE9NUmVjdDtcblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBtZW51IHNob3VsZCBiZSBkaXNwbGF5ZWQgYmFzZWQgb24gY3VycmVudCBzdGF0ZS5cbiAgICovXG4gIGFic3RyYWN0IHNob3VsZFNob3coKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXhlY3V0ZXMgdGhlIGdpdmVuIGNvbW1hbmQgb24gdGhlIGVkaXRvci5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBleGVjdXRlQ29tbWFuZChlZGl0b3I6IEVkaXRvciwgY29tbWFuZDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBob29rIGNhbGxlZCB3aGVuIFRpcHB5IGlzIGFib3V0IHRvIGJlIHNob3duLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uVGlwcHlTaG93KF9pbnN0YW5jZTogVGlwcHlJbnN0YW5jZSkge1xuICAgIC8qIGVtcHR5ICovXG4gIH1cblxuICAvKipcbiAgICogT3B0aW9uYWwgaG9vayBjYWxsZWQgd2hlbiBUaXBweSBpcyBhYm91dCB0byBiZSBoaWRkZW4uXG4gICAqL1xuICBwcm90ZWN0ZWQgb25UaXBweUhpZGUoX2luc3RhbmNlOiBUaXBweUluc3RhbmNlKSB7XG4gICAgLyogZW1wdHkgKi9cbiAgfVxufVxuIl19
|
|
@@ -134,4 +134,4 @@ export class AteBaseSubBubbleMenu {
|
|
|
134
134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteBaseSubBubbleMenu, decorators: [{
|
|
135
135
|
type: Directive
|
|
136
136
|
}], ctorParameters: () => [] });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWJhc2Utc3ViLWJ1YmJsZS1tZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9idWJibGUtbWVudXMvYmFzZS9hdGUtYmFzZS1zdWItYnViYmxlLW1lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFDTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEVBQUUsRUFBNkIsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXBFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFFcEU7OztHQUdHO0FBRUgsTUFBTSxPQUFnQixvQkFBb0I7SUFpQnhDO1FBaEJtQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRXJFLGNBQWM7UUFDZCxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBRWxDLDRDQUE0QztRQUM1QyxZQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBNkIsU0FBUyxDQUFDLENBQUM7UUFFcEUsaUJBQWlCO1FBQ1Asa0JBQWEsR0FBeUIsSUFBSSxDQUFDO1FBQzNDLGtCQUFhLEdBQWtCLElBQUksQ0FBQztRQUU5QyxxQ0FBcUM7UUFDNUIsVUFBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBK0VqRDs7V0FFRztRQUNILGVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3ZCLFlBQVks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QUFDO1lBQzlDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO1NBQy9DLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBa0JEOztPQUVHO0lBQ08sU0FBUztRQUNqQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxTQUFTO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQW1CRDs7T0FFRztJQUNPLFdBQVcsQ0FBQyxTQUF3QjtRQUM1QyxXQUFXO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ08sV0FBVyxDQUFDLFNBQXdCO1FBQzVDLFdBQVc7SUFDYixDQUFDOytHQTVKbUIsb0JBQW9CO21HQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRHpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIGlucHV0LFxuICB2aWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxuICBlZmZlY3QsXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgdGlwcHksIHsgSW5zdGFuY2UgYXMgVGlwcHlJbnN0YW5jZSwgc3RpY2t5IH0gZnJvbSBcInRpcHB5LmpzXCI7XG5pbXBvcnQgeyBFZGl0b3IgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXRlLWVkaXRvci1jb21tYW5kcy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVJMThuU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9hdGUtaTE4bi5zZXJ2aWNlXCI7XG5cbi8qKlxuICogQmFzZSBhYnN0cmFjdCBjbGFzcyBmb3IgU3ViLUJ1YmJsZSBNZW51cyAoTGluaywgQ29sb3IpLlxuICogVGhlc2UgbWVudXMgYXJlIFwic3ViLW1lbnVzXCIgb2YgdGhlIG1haW4gYnViYmxlIG1lbnUgb3IgdHJpZ2dlcmVkL2FuY2hvcmVkIGJ5IHNwZWNpZmljIFVJIGVsZW1lbnRzLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdGVCYXNlU3ViQnViYmxlTWVudSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBpMThuU2VydmljZSA9IGluamVjdChBdGVJMThuU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBlZGl0b3JDb21tYW5kcyA9IGluamVjdChBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UpO1xuXG4gIC8vIENvcmUgSW5wdXRzXG4gIGVkaXRvciA9IGlucHV0LnJlcXVpcmVkPEVkaXRvcj4oKTtcblxuICAvLyBSZXF1aXJlZCB2aWV3Q2hpbGQgZm9yIHRoZSBtZW51IGNvbnRhaW5lclxuICBtZW51UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PihcIm1lbnVSZWZcIik7XG5cbiAgLy8gSW50ZXJuYWwgU3RhdGVcbiAgcHJvdGVjdGVkIHRpcHB5SW5zdGFuY2U6IFRpcHB5SW5zdGFuY2UgfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIHVwZGF0ZVRpbWVvdXQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8vIFJlYWN0aXZlIHN0YXRlIGFsaWFzIGZvciB0ZW1wbGF0ZXNcbiAgcmVhZG9ubHkgc3RhdGUgPSB0aGlzLmVkaXRvckNvbW1hbmRzLmVkaXRvclN0YXRlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIFJlYWN0aXZlIGVmZmVjdCBmb3IgbWVudSB1cGRhdGVzIChyZS1wb3NpdGlvbmluZylcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIE1vbml0b3IgZWRpdG9yIHN0YXRlIGFuZCBzcGVjaWZpYyBzdWItbWVudSBzdGF0ZXNcbiAgICAgICAgdGhpcy5zdGF0ZSgpO1xuICAgICAgICB0aGlzLm9uU3RhdGVDaGFuZ2UoKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaW5pdFRpcHB5KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy51cGRhdGVUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy51cGRhdGVUaW1lb3V0KTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGlwcHlJbnN0YW5jZSkge1xuICAgICAgdGhpcy50aXBweUluc3RhbmNlLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMudGlwcHlJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBUaXBweSBpbnN0YW5jZSB3aXRoIHN1Yi1tZW51IGRlZmF1bHRzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGluaXRUaXBweSgpIHtcbiAgICBjb25zdCBuYXRpdmVFbGVtZW50ID0gdGhpcy5tZW51UmVmKCkubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIW5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlZCA9IHRoaXMuZWRpdG9yKCk7XG4gICAgaWYgKHRoaXMudGlwcHlJbnN0YW5jZSkge1xuICAgICAgdGhpcy50aXBweUluc3RhbmNlLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICB0aGlzLnRpcHB5SW5zdGFuY2UgPSB0aXBweShkb2N1bWVudC5ib2R5LCB7XG4gICAgICBjb250ZW50OiBuYXRpdmVFbGVtZW50LFxuICAgICAgdHJpZ2dlcjogXCJtYW51YWxcIixcbiAgICAgIHBsYWNlbWVudDogXCJib3R0b20tc3RhcnRcIixcbiAgICAgIHRoZW1lOiBcImF0ZS1idWJibGUtbWVudVwiLFxuICAgICAgYXBwZW5kVG86ICgpID0+IChlZD8ub3B0aW9ucz8uZWxlbWVudCBhcyBIVE1MRWxlbWVudCkgfHwgZG9jdW1lbnQuYm9keSxcbiAgICAgIGludGVyYWN0aXZlOiB0cnVlLFxuICAgICAgYXJyb3c6IGZhbHNlLFxuICAgICAgb2Zmc2V0OiBbMCwgOF0sXG4gICAgICBoaWRlT25DbGljazogdHJ1ZSxcbiAgICAgIHBsdWdpbnM6IFtzdGlja3ldLFxuICAgICAgc3RpY2t5OiBmYWxzZSxcbiAgICAgIGdldFJlZmVyZW5jZUNsaWVudFJlY3Q6ICgpID0+IHRoaXMuZ2V0U2VsZWN0aW9uUmVjdCgpLFxuICAgICAgcG9wcGVyT3B0aW9uczoge1xuICAgICAgICBtb2RpZmllcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInByZXZlbnRPdmVyZmxvd1wiLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBib3VuZGFyeTogKGVkPy5vcHRpb25zPy5lbGVtZW50IGFzIEhUTUxFbGVtZW50KSB8fCBkb2N1bWVudC5ib2R5LFxuICAgICAgICAgICAgICBwYWRkaW5nOiA4LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZmxpcFwiLFxuICAgICAgICAgICAgb3B0aW9uczogeyBmYWxsYmFja1BsYWNlbWVudHM6IFtcInRvcC1zdGFydFwiLCBcImJvdHRvbS1lbmRcIiwgXCJ0b3AtZW5kXCJdIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBvblNob3c6IGluc3RhbmNlID0+IHRoaXMub25UaXBweVNob3coaW5zdGFuY2UpLFxuICAgICAgb25IaWRlOiBpbnN0YW5jZSA9PiB0aGlzLm9uVGlwcHlIaWRlKGluc3RhbmNlKSxcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcmUgbG9naWMgdG8gZGVjaWRlIHdoZXRoZXIgdG8gc2hvdyBvciBoaWRlIHRoZSBtZW51LlxuICAgKi9cbiAgdXBkYXRlTWVudSA9ICgpID0+IHtcbiAgICBpZiAodGhpcy51cGRhdGVUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy51cGRhdGVUaW1lb3V0KTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zaG91bGRTaG93KCkpIHtcbiAgICAgICAgdGhpcy5zaG93VGlwcHkoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaGlkZVRpcHB5KCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gc2hvdyB0aGUgVGlwcHkgaW5zdGFuY2Ugd2l0aCB1cGRhdGVkIHBvc2l0aW9uaW5nLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3dUaXBweSgpIHtcbiAgICBpZiAodGhpcy50aXBweUluc3RhbmNlKSB7XG4gICAgICB0aGlzLnRpcHB5SW5zdGFuY2Uuc2V0UHJvcHMoeyBnZXRSZWZlcmVuY2VDbGllbnRSZWN0OiAoKSA9PiB0aGlzLmdldFNlbGVjdGlvblJlY3QoKSB9KTtcbiAgICAgIHRoaXMudGlwcHlJbnN0YW5jZS5zaG93KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciB0byBoaWRlIHRoZSBUaXBweSBpbnN0YW5jZS5cbiAgICovXG4gIHByb3RlY3RlZCBoaWRlVGlwcHkoKSB7XG4gICAgdGhpcy50aXBweUluc3RhbmNlPy5oaWRlKCk7XG4gIH1cblxuICAvLyAtLS0gQWJzdHJhY3QgbWV0aG9kcyAmIEhvb2tzIC0tLVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBSZWN0IHJlcHJlc2VudGluZyB0aGUgdGFyZ2V0IGZvciBwb3NpdGlvbmluZyB0aGUgbWVudS5cbiAgICovXG4gIGFic3RyYWN0IGdldFNlbGVjdGlvblJlY3QoKTogRE9NUmVjdDtcblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBtZW51IHNob3VsZCBiZSBkaXNwbGF5ZWQgYmFzZWQgb24gY3VycmVudCBzdGF0ZS5cbiAgICovXG4gIGFic3RyYWN0IHNob3VsZFNob3coKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogSG9vayB0byBhZGQgcmVhY3RpdmUgZGVwZW5kZW5jaWVzIHRvIHRoZSB1cGRhdGUgY3ljbGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb25TdGF0ZUNoYW5nZSgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBob29rIGNhbGxlZCB3aGVuIFRpcHB5IGlzIGFib3V0IHRvIGJlIHNob3duLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uVGlwcHlTaG93KF9pbnN0YW5jZTogVGlwcHlJbnN0YW5jZSkge1xuICAgIC8qIGVtcHR5ICovXG4gIH1cblxuICAvKipcbiAgICogT3B0aW9uYWwgaG9vayBjYWxsZWQgd2hlbiBUaXBweSBpcyBhYm91dCB0byBiZSBoaWRkZW4uXG4gICAqL1xuICBwcm90ZWN0ZWQgb25UaXBweUhpZGUoX2luc3RhbmNlOiBUaXBweUluc3RhbmNlKSB7XG4gICAgLyogZW1wdHkgKi9cbiAgfVxufVxuIl19
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWJhc2Utc3ViLWJ1YmJsZS1tZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9idWJibGUtbWVudXMvYmFzZS9hdGUtYmFzZS1zdWItYnViYmxlLW1lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUdULE1BQU0sRUFDTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEVBQUUsRUFBNkIsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXBFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFFcEU7OztHQUdHO0FBRUgsTUFBTSxPQUFnQixvQkFBb0I7SUFpQnhDO1FBaEJtQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRXJFLGNBQWM7UUFDZCxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBRWxDLDRDQUE0QztRQUM1QyxZQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBNkIsU0FBUyxDQUFDLENBQUM7UUFFcEUsaUJBQWlCO1FBQ1Asa0JBQWEsR0FBeUIsSUFBSSxDQUFDO1FBQzNDLGtCQUFhLEdBQXlDLElBQUksQ0FBQztRQUVyRSxxQ0FBcUM7UUFDNUIsVUFBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBK0VqRDs7V0FFRztRQUNILGVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3ZCLFlBQVks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QUFDO1lBQzlDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO1NBQy9DLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBa0JEOztPQUVHO0lBQ08sU0FBUztRQUNqQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxTQUFTO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQW1CRDs7T0FFRztJQUNPLFdBQVcsQ0FBQyxTQUF3QjtRQUM1QyxXQUFXO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ08sV0FBVyxDQUFDLFNBQXdCO1FBQzVDLFdBQVc7SUFDYixDQUFDOytHQTVKbUIsb0JBQW9CO21HQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRHpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIGlucHV0LFxuICB2aWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxuICBlZmZlY3QsXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgdGlwcHksIHsgSW5zdGFuY2UgYXMgVGlwcHlJbnN0YW5jZSwgc3RpY2t5IH0gZnJvbSBcInRpcHB5LmpzXCI7XG5pbXBvcnQgeyBFZGl0b3IgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXRlLWVkaXRvci1jb21tYW5kcy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVJMThuU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9hdGUtaTE4bi5zZXJ2aWNlXCI7XG5cbi8qKlxuICogQmFzZSBhYnN0cmFjdCBjbGFzcyBmb3IgU3ViLUJ1YmJsZSBNZW51cyAoTGluaywgQ29sb3IpLlxuICogVGhlc2UgbWVudXMgYXJlIFwic3ViLW1lbnVzXCIgb2YgdGhlIG1haW4gYnViYmxlIG1lbnUgb3IgdHJpZ2dlcmVkL2FuY2hvcmVkIGJ5IHNwZWNpZmljIFVJIGVsZW1lbnRzLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdGVCYXNlU3ViQnViYmxlTWVudSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBpMThuU2VydmljZSA9IGluamVjdChBdGVJMThuU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBlZGl0b3JDb21tYW5kcyA9IGluamVjdChBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UpO1xuXG4gIC8vIENvcmUgSW5wdXRzXG4gIGVkaXRvciA9IGlucHV0LnJlcXVpcmVkPEVkaXRvcj4oKTtcblxuICAvLyBSZXF1aXJlZCB2aWV3Q2hpbGQgZm9yIHRoZSBtZW51IGNvbnRhaW5lclxuICBtZW51UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PihcIm1lbnVSZWZcIik7XG5cbiAgLy8gSW50ZXJuYWwgU3RhdGVcbiAgcHJvdGVjdGVkIHRpcHB5SW5zdGFuY2U6IFRpcHB5SW5zdGFuY2UgfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIHVwZGF0ZVRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gUmVhY3RpdmUgc3RhdGUgYWxpYXMgZm9yIHRlbXBsYXRlc1xuICByZWFkb25seSBzdGF0ZSA9IHRoaXMuZWRpdG9yQ29tbWFuZHMuZWRpdG9yU3RhdGU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gUmVhY3RpdmUgZWZmZWN0IGZvciBtZW51IHVwZGF0ZXMgKHJlLXBvc2l0aW9uaW5nKVxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgLy8gTW9uaXRvciBlZGl0b3Igc3RhdGUgYW5kIHNwZWNpZmljIHN1Yi1tZW51IHN0YXRlc1xuICAgICAgICB0aGlzLnN0YXRlKCk7XG4gICAgICAgIHRoaXMub25TdGF0ZUNoYW5nZSgpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0VGlwcHkoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnVwZGF0ZVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnVwZGF0ZVRpbWVvdXQpO1xuICAgIH1cbiAgICBpZiAodGhpcy50aXBweUluc3RhbmNlKSB7XG4gICAgICB0aGlzLnRpcHB5SW5zdGFuY2UuZGVzdHJveSgpO1xuICAgICAgdGhpcy50aXBweUluc3RhbmNlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIFRpcHB5IGluc3RhbmNlIHdpdGggc3ViLW1lbnUgZGVmYXVsdHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdFRpcHB5KCkge1xuICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLm1lbnVSZWYoKS5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghbmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVkID0gdGhpcy5lZGl0b3IoKTtcbiAgICBpZiAodGhpcy50aXBweUluc3RhbmNlKSB7XG4gICAgICB0aGlzLnRpcHB5SW5zdGFuY2UuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHRoaXMudGlwcHlJbnN0YW5jZSA9IHRpcHB5KGRvY3VtZW50LmJvZHksIHtcbiAgICAgIGNvbnRlbnQ6IG5hdGl2ZUVsZW1lbnQsXG4gICAgICB0cmlnZ2VyOiBcIm1hbnVhbFwiLFxuICAgICAgcGxhY2VtZW50OiBcImJvdHRvbS1zdGFydFwiLFxuICAgICAgdGhlbWU6IFwiYXRlLWJ1YmJsZS1tZW51XCIsXG4gICAgICBhcHBlbmRUbzogKCkgPT4gKGVkPy5vcHRpb25zPy5lbGVtZW50IGFzIEhUTUxFbGVtZW50KSB8fCBkb2N1bWVudC5ib2R5LFxuICAgICAgaW50ZXJhY3RpdmU6IHRydWUsXG4gICAgICBhcnJvdzogZmFsc2UsXG4gICAgICBvZmZzZXQ6IFswLCA4XSxcbiAgICAgIGhpZGVPbkNsaWNrOiB0cnVlLFxuICAgICAgcGx1Z2luczogW3N0aWNreV0sXG4gICAgICBzdGlja3k6IGZhbHNlLFxuICAgICAgZ2V0UmVmZXJlbmNlQ2xpZW50UmVjdDogKCkgPT4gdGhpcy5nZXRTZWxlY3Rpb25SZWN0KCksXG4gICAgICBwb3BwZXJPcHRpb25zOiB7XG4gICAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwicHJldmVudE92ZXJmbG93XCIsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIGJvdW5kYXJ5OiAoZWQ/Lm9wdGlvbnM/LmVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpIHx8IGRvY3VtZW50LmJvZHksXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDgsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJmbGlwXCIsXG4gICAgICAgICAgICBvcHRpb25zOiB7IGZhbGxiYWNrUGxhY2VtZW50czogW1widG9wLXN0YXJ0XCIsIFwiYm90dG9tLWVuZFwiLCBcInRvcC1lbmRcIl0gfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIG9uU2hvdzogaW5zdGFuY2UgPT4gdGhpcy5vblRpcHB5U2hvdyhpbnN0YW5jZSksXG4gICAgICBvbkhpZGU6IGluc3RhbmNlID0+IHRoaXMub25UaXBweUhpZGUoaW5zdGFuY2UpLFxuICAgIH0pO1xuXG4gICAgdGhpcy51cGRhdGVNZW51KCk7XG4gIH1cblxuICAvKipcbiAgICogQ29yZSBsb2dpYyB0byBkZWNpZGUgd2hldGhlciB0byBzaG93IG9yIGhpZGUgdGhlIG1lbnUuXG4gICAqL1xuICB1cGRhdGVNZW51ID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLnVwZGF0ZVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnVwZGF0ZVRpbWVvdXQpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnNob3VsZFNob3coKSkge1xuICAgICAgICB0aGlzLnNob3dUaXBweSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oaWRlVGlwcHkoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhlbHBlciB0byBzaG93IHRoZSBUaXBweSBpbnN0YW5jZSB3aXRoIHVwZGF0ZWQgcG9zaXRpb25pbmcuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvd1RpcHB5KCkge1xuICAgIGlmICh0aGlzLnRpcHB5SW5zdGFuY2UpIHtcbiAgICAgIHRoaXMudGlwcHlJbnN0YW5jZS5zZXRQcm9wcyh7IGdldFJlZmVyZW5jZUNsaWVudFJlY3Q6ICgpID0+IHRoaXMuZ2V0U2VsZWN0aW9uUmVjdCgpIH0pO1xuICAgICAgdGhpcy50aXBweUluc3RhbmNlLnNob3coKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIHRvIGhpZGUgdGhlIFRpcHB5IGluc3RhbmNlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGhpZGVUaXBweSgpIHtcbiAgICB0aGlzLnRpcHB5SW5zdGFuY2U/LmhpZGUoKTtcbiAgfVxuXG4gIC8vIC0tLSBBYnN0cmFjdCBtZXRob2RzICYgSG9va3MgLS0tXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIFJlY3QgcmVwcmVzZW50aW5nIHRoZSB0YXJnZXQgZm9yIHBvc2l0aW9uaW5nIHRoZSBtZW51LlxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0U2VsZWN0aW9uUmVjdCgpOiBET01SZWN0O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIG1lbnUgc2hvdWxkIGJlIGRpc3BsYXllZCBiYXNlZCBvbiBjdXJyZW50IHN0YXRlLlxuICAgKi9cbiAgYWJzdHJhY3Qgc2hvdWxkU2hvdygpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb29rIHRvIGFkZCByZWFjdGl2ZSBkZXBlbmRlbmNpZXMgdG8gdGhlIHVwZGF0ZSBjeWNsZS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvblN0YXRlQ2hhbmdlKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGhvb2sgY2FsbGVkIHdoZW4gVGlwcHkgaXMgYWJvdXQgdG8gYmUgc2hvd24uXG4gICAqL1xuICBwcm90ZWN0ZWQgb25UaXBweVNob3coX2luc3RhbmNlOiBUaXBweUluc3RhbmNlKSB7XG4gICAgLyogZW1wdHkgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBob29rIGNhbGxlZCB3aGVuIFRpcHB5IGlzIGFib3V0IHRvIGJlIGhpZGRlbi5cbiAgICovXG4gIHByb3RlY3RlZCBvblRpcHB5SGlkZShfaW5zdGFuY2U6IFRpcHB5SW5zdGFuY2UpIHtcbiAgICAvKiBlbXB0eSAqL1xuICB9XG59XG4iXX0=
|
|
@@ -86,7 +86,7 @@ export class AteColorBubbleMenuComponent extends AteBaseSubBubbleMenu {
|
|
|
86
86
|
/* ignore */
|
|
87
87
|
}
|
|
88
88
|
// Use native selection for multi-line accuracy
|
|
89
|
-
const selection = window.getSelection();
|
|
89
|
+
const selection = typeof window !== "undefined" ? window.getSelection() : null;
|
|
90
90
|
if (selection && selection.rangeCount > 0) {
|
|
91
91
|
const range = selection.getRangeAt(0);
|
|
92
92
|
const rect = range.getBoundingClientRect();
|
|
@@ -362,4 +362,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
362
362
|
</div>
|
|
363
363
|
`, styles: [".color-picker-container{display:flex;flex-direction:column;gap:8px}.dropdown-row{display:flex;align-items:center;width:100%}.dropdown-row.presets{justify-content:center}.dropdown-row.controls{gap:8px;justify-content:space-between;padding-top:4px;border-top:1px solid var(--ate-border, #e2e8f0)}.color-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;width:100%}:host ::ng-deep .color-swatch-btn .ate-button{width:100%;aspect-ratio:1;height:auto;border-radius:4px;border:1px solid rgba(0,0,0,.1);padding:0}:host ::ng-deep .color-swatch-btn .ate-button.is-active{border-color:var(--ate-primary, #3b82f6);box-shadow:0 0 0 2px #3b82f64d}:host ::ng-deep .btn-native-picker-trigger .ate-button{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}.divider-v{width:1px;height:24px;background:var(--ate-border, #e2e8f0)}.hex-input-wrapper{flex:1;display:flex;align-items:center;background:var(--ate-surface-secondary, #f8fafc);border:1px solid var(--ate-border, #e2e8f0);border-radius:8px;padding:0 10px;height:32px;transition:border-color .15s ease}.hex-input-wrapper:focus-within{border-color:var(--ate-primary, #3b82f6);background:var(--ate-menu-bg, #ffffff)}.hex-hash{color:var(--ate-text-muted, #94a3b8);font-family:monospace;font-size:.875rem}.hex-input{background:transparent;border:none;outline:none;color:var(--ate-text, #1e293b);font-family:monospace;font-size:.875rem;width:100%;padding-left:4px}.native-trigger-wrapper{position:relative;width:32px;height:32px}.hidden-native-input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}\n"] }]
|
|
364
364
|
}] });
|
|
365
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWNvbG9yLWJ1YmJsZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvYnViYmxlLW1lbnVzL2NvbG9yL2F0ZS1jb2xvci1idWJibGUtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFFdkIsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRXhFLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztDQUNWLENBQUM7QUFrTUYsTUFBTSxPQUFPLDJCQUE0QixTQUFRLG9CQUFvQjtJQWhNckU7O1FBaU1tQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXZELE1BQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUM3QixXQUFNLEdBQUcsSUFB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LE9BQU87UUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsTUFBTTtRQUNKLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0FqTlUsMkJBQTJCO21HQUEzQiwyQkFBMkIscU9BM0w1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEVULDJtREEvRVMsWUFBWSw4QkFBRSxXQUFXLCtCQUFFLGtCQUFrQiw2TEFBRSxxQkFBcUI7OzRGQTRMbkUsMkJBQTJCO2tCQWhNdkMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsQ0FBQyxZQUNyRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEVUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgRWxlbWVudFJlZixcbiAgc2lnbmFsLFxuICBpbmplY3QsXG4gIGNvbXB1dGVkLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgSW5zdGFuY2UgYXMgVGlwcHlJbnN0YW5jZSB9IGZyb20gXCJ0aXBweS5qc1wiO1xuaW1wb3J0IHsgQXRlQ29sb3JQaWNrZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2F0ZS1jb2xvci1waWNrZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgQXRlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL3VpL2F0ZS1idXR0b24uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBdGVTZXBhcmF0b3JDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vdWkvYXRlLXNlcGFyYXRvci5jb21wb25lbnRcIjtcbmltcG9ydCB7IEF0ZUJhc2VTdWJCdWJibGVNZW51IH0gZnJvbSBcIi4uL2Jhc2UvYXRlLWJhc2Utc3ViLWJ1YmJsZS1tZW51XCI7XG5cbmNvbnN0IFBSRVNFVF9DT0xPUlMgPSBbXG4gIFwiIzAwMDAwMFwiLFxuICBcIiM2NjY2NjZcIixcbiAgXCIjQ0NDQ0NDXCIsXG4gIFwiI0ZGRkZGRlwiLFxuICBcIiNGNDQzMzZcIixcbiAgXCIjRkY5ODAwXCIsXG4gIFwiI0ZGRUIzQlwiLFxuICBcIiM0Q0FGNTBcIixcbiAgXCIjMDBCQ0Q0XCIsXG4gIFwiIzIxOTZGM1wiLFxuICBcIiM5QzI3QjBcIixcbiAgXCIjRTkxRTYzXCIsXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXRlLWNvbG9yLWJ1YmJsZS1tZW51XCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQXRlQnV0dG9uQ29tcG9uZW50LCBBdGVTZXBhcmF0b3JDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgICNtZW51UmVmXG4gICAgICBjbGFzcz1cImJ1YmJsZS1tZW51IGNvbG9yLWJ1YmJsZS1tZW51XCJcbiAgICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJGV2ZW50KVwiXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAoa2V5ZG93bi5lc2NhcGUpPVwib25BcHBseSgkZXZlbnQpXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgcm9sZT1cImRpYWxvZ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLXBpY2tlci1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLXJvdyBwcmVzZXRzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLWdyaWRcIj5cbiAgICAgICAgICAgIEBmb3IgKGNvbG9yIG9mIHByZXNldHM7IHRyYWNrIGNvbG9yKSB7XG4gICAgICAgICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvci1zd2F0Y2gtYnRuXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJpc0NvbG9yQWN0aXZlKGNvbG9yKVwiXG4gICAgICAgICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cImFwcGx5Q29sb3IoY29sb3IsIHRydWUsICRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1yb3cgY29udHJvbHNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGV4LWlucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGV4LWhhc2hcIj4jPC9zcGFuPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICNoZXhJbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiaGV4LWlucHV0XCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImhleFZhbHVlKClcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoKS5jdXN0b21Db2xvclwiXG4gICAgICAgICAgICAgIChpbnB1dCk9XCJvbkhleElucHV0KCRldmVudClcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uSGV4Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkFwcGx5KCRldmVudClcIlxuICAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI2XCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIwMDAwMDBcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdGl2ZS10cmlnZ2VyLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuLW5hdGl2ZS1waWNrZXItdHJpZ2dlclwiXG4gICAgICAgICAgICAgIGljb249XCJjb2xvcml6ZVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJ0KCkuY3VzdG9tQ29sb3JcIlxuICAgICAgICAgICAgICBbYmFja2dyb3VuZENvbG9yXT1cImN1cnJlbnRDb2xvcigpXCJcbiAgICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRyaWdnZXJOYXRpdmVQaWNrZXIoJGV2ZW50KVwiPjwvYXRlLWJ1dHRvbj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAjY29sb3JJbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwiY29sb3JcIlxuICAgICAgICAgICAgICBjbGFzcz1cImhpZGRlbi1uYXRpdmUtaW5wdXRcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiY3VycmVudENvbG9yKClcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoKS5jdXN0b21Db2xvclwiXG4gICAgICAgICAgICAgIChpbnB1dCk9XCJvbk5hdGl2ZUlucHV0KCRldmVudClcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uTmF0aXZlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICAgIGljb249XCJjaGVja1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwiY29tbW9uKCkuYXBwbHlcIlxuICAgICAgICAgICAgY29sb3I9XCJ2YXIoLS1hdGUtcHJpbWFyeSlcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQXBwbHkoJGV2ZW50KVwiPjwvYXRlLWJ1dHRvbj5cblxuICAgICAgICAgIDxhdGUtc2VwYXJhdG9yIC8+XG5cbiAgICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgICAgaWNvbj1cImZvcm1hdF9jb2xvcl9yZXNldFwiXG4gICAgICAgICAgICBbdGl0bGVdPVwidCgpLmNsZWFyXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJkYW5nZXJcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ2xlYXJDb2xvcigkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuY29sb3ItcGlja2VyLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAuZHJvcGRvd24tcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5kcm9wZG93bi1yb3cucHJlc2V0cyB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuZHJvcGRvd24tcm93LmNvbnRyb2xzIHtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWF0ZS1ib3JkZXIsICNlMmU4ZjApO1xuICAgICAgfVxuXG4gICAgICAuY29sb3ItZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIDpob3N0IDo6bmctZGVlcCAuY29sb3Itc3dhdGNoLWJ0biAuYXRlLWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIDpob3N0IDo6bmctZGVlcCAuY29sb3Itc3dhdGNoLWJ0biAuYXRlLWJ1dHRvbi5pcy1hY3RpdmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWF0ZS1wcmltYXJ5LCAjM2I4MmY2KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdCA6Om5nLWRlZXAgLmJ0bi1uYXRpdmUtcGlja2VyLXRyaWdnZXIgLmF0ZS1idXR0b24ge1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgICB9XG5cbiAgICAgIC5kaXZpZGVyLXYge1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS1ib3JkZXIsICNlMmU4ZjApO1xuICAgICAgfVxuXG4gICAgICAuaGV4LWlucHV0LXdyYXBwZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtc3VyZmFjZS1zZWNvbmRhcnksICNmOGZhZmMpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hdGUtYm9yZGVyLCAjZTJlOGYwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDE1MG1zIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5oZXgtaW5wdXQtd3JhcHBlcjpmb2N1cy13aXRoaW4ge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWF0ZS1wcmltYXJ5LCAjM2I4MmY2KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLW1lbnUtYmcsICNmZmZmZmYpO1xuICAgICAgfVxuXG4gICAgICAuaGV4LWhhc2gge1xuICAgICAgICBjb2xvcjogdmFyKC0tYXRlLXRleHQtbXV0ZWQsICM5NGEzYjgpO1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgfVxuXG4gICAgICAuaGV4LWlucHV0IHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS10ZXh0LCAjMWUyOTNiKTtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICAgICAgfVxuXG4gICAgICAubmF0aXZlLXRyaWdnZXItd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIH1cblxuICAgICAgLmhpZGRlbi1uYXRpdmUtaW5wdXQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXRlQ29sb3JCdWJibGVNZW51Q29tcG9uZW50IGV4dGVuZHMgQXRlQmFzZVN1YkJ1YmJsZU1lbnUge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbG9yUGlja2VyU3ZjID0gaW5qZWN0KEF0ZUNvbG9yUGlja2VyU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgdCA9IHRoaXMuaTE4blNlcnZpY2UudG9vbGJhcjtcbiAgcmVhZG9ubHkgY29tbW9uID0gdGhpcy5pMThuU2VydmljZS5jb21tb247XG4gIHJlYWRvbmx5IHByZXNldHMgPSBQUkVTRVRfQ09MT1JTO1xuXG4gIHByaXZhdGUgY29sb3JJbnB1dFJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PihcImNvbG9ySW5wdXRcIik7XG5cbiAgLyoqXG4gICAqIExPQ0FMIE1PREU6IFdlIGxvY2sgdGhlIG1vZGUgd2hlbiB0aGUgbWVudSBpcyBzaG93biB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnNcbiAgICogd2hlcmUgdGhlIHBhcmVudCAoYnViYmxlIG1lbnUpIGNsZWFycyB0aGUgZ2xvYmFsIHNpZ25hbCBiZWZvcmUgd2UgYXBwbHkgdGhlIGNvbG9yLlxuICAgKi9cbiAgYWN0aXZlTW9kZSA9IHNpZ25hbDxcInRleHRcIiB8IFwiaGlnaGxpZ2h0XCI+KFwidGV4dFwiKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLmVkaXRNb2RlKCk7XG4gICAgdGhpcy5jb2xvclBpY2tlclN2Yy5tZW51VHJpZ2dlcigpO1xuICAgIHRoaXMuY29sb3JQaWNrZXJTdmMuaXNJbnRlcmFjdGluZygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2hvdWxkU2hvdygpOiBib29sZWFuIHtcbiAgICBjb25zdCB7IGlzRWRpdGFibGUgfSA9IHRoaXMuc3RhdGUoKTtcbiAgICBpZiAoIWlzRWRpdGFibGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb2xvclBpY2tlclN2Yy5lZGl0TW9kZSgpICE9PSBudWxsIHx8IHRoaXMuY29sb3JQaWNrZXJTdmMuaXNJbnRlcmFjdGluZygpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvdmVycmlkZSBnZXRTZWxlY3Rpb25SZWN0KCk6IERPTVJlY3Qge1xuICAgIGNvbnN0IHRyaWdnZXIgPSB0aGlzLmNvbG9yUGlja2VyU3ZjLm1lbnVUcmlnZ2VyKCk7XG4gICAgY29uc3QgZWQgPSB0aGlzLmVkaXRvcigpO1xuICAgIGlmICghZWQpIHtcbiAgICAgIHJldHVybiBuZXcgRE9NUmVjdCgwLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICAvLyAxLiBJZiB3ZSBoYXZlIGEgc3RhYmxlIHRyaWdnZXIgZnJvbSBzZXJ2aWNlICh0b29sYmFyIG9yIHBhcmVudCBtZW51KSwgYW5jaG9yIHRvIGl0XG4gICAgaWYgKHRyaWdnZXIpIHtcbiAgICAgIGNvbnN0IHJlY3QgPSB0cmlnZ2VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgLy8gT25seSB1c2UgaWYgaXQncyBzdGlsbCB2aXNpYmxlL2luIERPTSAod2lkdGggPiAwKVxuICAgICAgaWYgKHJlY3Qud2lkdGggPiAwKSB7XG4gICAgICAgIHJldHVybiByZWN0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDIuIE90aGVyd2lzZSAoYnViYmxlIG1lbnUgLyByZWxheSksIGFuY2hvciB0byB0ZXh0IHNlbGVjdGlvblxuICAgIGNvbnN0IHsgZnJvbSB9ID0gZWQuc3RhdGUuc2VsZWN0aW9uO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgbm9kZSB9ID0gZWQudmlldy5kb21BdFBvcyhmcm9tKTtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBub2RlIGluc3RhbmNlb2YgRWxlbWVudCA/IG5vZGUgOiBub2RlLnBhcmVudEVsZW1lbnQ7XG4gICAgICBjb25zdCBjb2xvckVsZW1lbnQgPSAoZWxlbWVudCBhcyBFbGVtZW50KT8uY2xvc2VzdChcbiAgICAgICAgJ1tzdHlsZSo9XCJjb2xvclwiXSwgW3N0eWxlKj1cImJhY2tncm91bmRcIl0sIG1hcmsnXG4gICAgICApO1xuICAgICAgaWYgKGNvbG9yRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gY29sb3JFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKF9lKSB7XG4gICAgICAvKiBpZ25vcmUgKi9cbiAgICB9XG5cbiAgICAvLyBVc2UgbmF0aXZlIHNlbGVjdGlvbiBmb3IgbXVsdGktbGluZSBhY2N1cmFjeVxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xuICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgIGNvbnN0IHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGlmIChyZWN0LndpZHRoID4gMCAmJiByZWN0LmhlaWdodCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHJlY3Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmluYWwgZmFsbGJhY2sgdG8gY29vcmRpbmF0ZXMgYXQgY3Vyc29yXG4gICAgY29uc3QgeyB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHQgfSA9IGVkLnZpZXcuY29vcmRzQXRQb3MoZnJvbSk7XG4gICAgcmV0dXJuIG5ldyBET01SZWN0KGxlZnQsIHRvcCwgcmlnaHQgLSBsZWZ0LCBib3R0b20gLSB0b3ApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uVGlwcHlTaG93KF9pbnN0YW5jZTogVGlwcHlJbnN0YW5jZSkge1xuICAgIC8vIDEuIExvY2sgdGhlIG1vZGUgaW1tZWRpYXRlbHkgdG8gYmUgaW1tdW5lIHRvIGV4dGVybmFsIHNpZ25hbCBjaGFuZ2VzXG4gICAgY29uc3QgY3VycmVudE1vZGUgPSB0aGlzLmNvbG9yUGlja2VyU3ZjLmVkaXRNb2RlKCkgfHwgXCJ0ZXh0XCI7XG4gICAgdGhpcy5hY3RpdmVNb2RlLnNldChjdXJyZW50TW9kZSk7XG5cbiAgICAvLyAyLiBDYXB0dXJlIHNlbGVjdGlvbiBmb3IgdGhlIGNvbW1hbmQgZmFsbGJhY2tcbiAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLmNhcHR1cmVTZWxlY3Rpb24odGhpcy5lZGl0b3IoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25UaXBweUhpZGUoX2luc3RhbmNlOiBUaXBweUluc3RhbmNlKSB7XG4gICAgLy8gQ2xlYXIgdHJpZ2dlciBvbmx5IEFGVEVSIHRoZSBtZW51IGlzIGhpZGRlbiB0byBtYWludGFpbiBhbmNob3Igc3RhYmlsaXR5IGR1cmluZyBhbmltYXRpb25cbiAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLmRvbmUoKTtcbiAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLmNsb3NlKCk7XG4gIH1cblxuICByZWFkb25seSBjdXJyZW50Q29sb3IgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbWFya3MgPSB0aGlzLnN0YXRlKCkubWFya3M7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLmFjdGl2ZU1vZGUoKSA9PT0gXCJ0ZXh0XCIgPyBtYXJrcy5jb21wdXRlZENvbG9yIDogbWFya3MuY29tcHV0ZWRCYWNrZ3JvdW5kO1xuICAgIHJldHVybiBjb2xvciB8fCAodGhpcy5hY3RpdmVNb2RlKCkgPT09IFwidGV4dFwiID8gXCIjMDAwMDAwXCIgOiBcIiNmZmZmMDBcIik7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGhleFZhbHVlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5jdXJyZW50Q29sb3IoKTtcbiAgICByZXR1cm4gY29sb3IucmVwbGFjZShcIiNcIiwgXCJcIikudG9VcHBlckNhc2UoKTtcbiAgfSk7XG5cbiAgaXNDb2xvckFjdGl2ZShjb2xvcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY29sb3JQaWNrZXJTdmMubm9ybWFsaXplQ29sb3IodGhpcy5jdXJyZW50Q29sb3IoKSkgPT09XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLm5vcm1hbGl6ZUNvbG9yKGNvbG9yKVxuICAgICk7XG4gIH1cblxuICBhcHBseUNvbG9yKGNvbG9yOiBzdHJpbmcsIGFkZFRvSGlzdG9yeSA9IHRydWUsIGV2ZW50PzogRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcigpO1xuICAgIC8vIFVzZSBvdXIgTE9DS0VEIG1vZGUgaW5zdGVhZCBvZiB0aGUgZ2xvYmFsIHNpZ25hbFxuICAgIC8vIERldGVybWluZSBpZiB3ZSBzaG91bGQgZm9jdXMgYmFjayB0byB0aGUgZWRpdG9yLlxuICAgIGNvbnN0IHNob3VsZEZvY3VzID0gIXRoaXMuY29sb3JQaWNrZXJTdmMuaXNJbnRlcmFjdGluZygpO1xuXG4gICAgaWYgKHRoaXMuYWN0aXZlTW9kZSgpID09PSBcInRleHRcIikge1xuICAgICAgdGhpcy5jb2xvclBpY2tlclN2Yy5hcHBseUNvbG9yKGVkaXRvciwgY29sb3IsIGFkZFRvSGlzdG9yeSwgc2hvdWxkRm9jdXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLmFwcGx5SGlnaGxpZ2h0KGVkaXRvciwgY29sb3IsIGFkZFRvSGlzdG9yeSwgc2hvdWxkRm9jdXMpO1xuICAgIH1cbiAgfVxuXG4gIG9uQXBwbHkoZXZlbnQ/OiBFdmVudCkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLmNsb3NlKCk7XG4gIH1cblxuICBvbkhleElucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgbGV0IHZhbHVlID0gaW5wdXQudmFsdWUudHJpbSgpO1xuICAgIGlmICghdmFsdWUuc3RhcnRzV2l0aChcIiNcIikpIHtcbiAgICAgIHZhbHVlID0gXCIjXCIgKyB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKC9eIz9bMC05QS1GYS1mXXszLDZ9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuYXBwbHlDb2xvcih2YWx1ZSwgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG9uSGV4Q2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgbGV0IHZhbHVlID0gaW5wdXQudmFsdWUudHJpbSgpO1xuICAgIGlmICghdmFsdWUuc3RhcnRzV2l0aChcIiNcIikpIHtcbiAgICAgIHZhbHVlID0gXCIjXCIgKyB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKC9eIz9bMC05QS1GYS1mXXszLDZ9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuYXBwbHlDb2xvcih2YWx1ZSwgdHJ1ZSwgZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHRyaWdnZXJOYXRpdmVQaWNrZXIoZXZlbnQ/OiBFdmVudCkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLmNvbG9ySW5wdXRSZWYoKT8ubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgb25OYXRpdmVJbnB1dChldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmFwcGx5Q29sb3IoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSwgZmFsc2UpO1xuICB9XG5cbiAgb25OYXRpdmVDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5hcHBseUNvbG9yKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUsIHRydWUsIGV2ZW50KTtcbiAgfVxuXG4gIG9uQ2xlYXJDb2xvcihldmVudD86IEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3IoKTtcbiAgICBpZiAodGhpcy5hY3RpdmVNb2RlKCkgPT09IFwidGV4dFwiKSB7XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLnVuc2V0Q29sb3IoZWRpdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2xvclBpY2tlclN2Yy51bnNldEhpZ2hsaWdodChlZGl0b3IpO1xuICAgIH1cbiAgfVxuXG4gIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0YXJnZXQudGFnTmFtZSAhPT0gXCJJTlBVVFwiKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRm9jdXMoKSB7XG4gICAgdGhpcy5jb2xvclBpY2tlclN2Yy5zZXRJbnRlcmFjdGluZyh0cnVlKTtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29sb3JQaWNrZXJTdmMuc2V0SW50ZXJhY3RpbmcoZmFsc2UpO1xuICAgICAgdGhpcy51cGRhdGVNZW51KCk7XG4gICAgfSwgMTUwKTtcbiAgfVxufVxuIl19
|
|
365
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWNvbG9yLWJ1YmJsZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvYnViYmxlLW1lbnVzL2NvbG9yL2F0ZS1jb2xvci1idWJibGUtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFFdkIsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRXhFLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztDQUNWLENBQUM7QUFrTUYsTUFBTSxPQUFPLDJCQUE0QixTQUFRLG9CQUFvQjtJQWhNckU7O1FBaU1tQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXZELE1BQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUM3QixXQUFNLEdBQUcsSUFB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QUMvQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELE1BQU07UUFDSixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7K0dBak5VLDJCQUEyQjttR0FBM0IsMkJBQTJCLHFPQTNMNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThFVCwybURBL0VTLFlBQVksOEJBQUUsV0FBVywrQkFBRSxrQkFBa0IsNkxBQUUscUJBQXFCOzs0RkE0TG5FLDJCQUEyQjtrQkFoTXZDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLENBQUMsWUFDckU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThFVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEVsZW1lbnRSZWYsXG4gIHNpZ25hbCxcbiAgaW5qZWN0LFxuICBjb21wdXRlZCxcbiAgdmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEluc3RhbmNlIGFzIFRpcHB5SW5zdGFuY2UgfSBmcm9tIFwidGlwcHkuanNcIjtcbmltcG9ydCB7IEF0ZUNvbG9yUGlja2VyU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9hdGUtY29sb3ItcGlja2VyLnNlcnZpY2VcIjtcbmltcG9ydCB7IEF0ZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi91aS9hdGUtYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQXRlU2VwYXJhdG9yQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL3VpL2F0ZS1zZXBhcmF0b3IuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBdGVCYXNlU3ViQnViYmxlTWVudSB9IGZyb20gXCIuLi9iYXNlL2F0ZS1iYXNlLXN1Yi1idWJibGUtbWVudVwiO1xuXG5jb25zdCBQUkVTRVRfQ09MT1JTID0gW1xuICBcIiMwMDAwMDBcIixcbiAgXCIjNjY2NjY2XCIsXG4gIFwiI0NDQ0NDQ1wiLFxuICBcIiNGRkZGRkZcIixcbiAgXCIjRjQ0MzM2XCIsXG4gIFwiI0ZGOTgwMFwiLFxuICBcIiNGRkVCM0JcIixcbiAgXCIjNENBRjUwXCIsXG4gIFwiIzAwQkNENFwiLFxuICBcIiMyMTk2RjNcIixcbiAgXCIjOUMyN0IwXCIsXG4gIFwiI0U5MUU2M1wiLFxuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF0ZS1jb2xvci1idWJibGUtbWVudVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIEF0ZUJ1dHRvbkNvbXBvbmVudCwgQXRlU2VwYXJhdG9yQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICAjbWVudVJlZlxuICAgICAgY2xhc3M9XCJidWJibGUtbWVudSBjb2xvci1idWJibGUtbWVudVwiXG4gICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAoa2V5ZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgKGtleWRvd24uZXNjYXBlKT1cIm9uQXBwbHkoJGV2ZW50KVwiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1waWNrZXItY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1yb3cgcHJlc2V0c1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1ncmlkXCI+XG4gICAgICAgICAgICBAZm9yIChjb2xvciBvZiBwcmVzZXRzOyB0cmFjayBjb2xvcikge1xuICAgICAgICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sb3Itc3dhdGNoLWJ0blwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sb3JcIlxuICAgICAgICAgICAgICAgIFthY3RpdmVdPVwiaXNDb2xvckFjdGl2ZShjb2xvcilcIlxuICAgICAgICAgICAgICAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiY29sb3JcIlxuICAgICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJhcHBseUNvbG9yKGNvbG9yLCB0cnVlLCAkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tcm93IGNvbnRyb2xzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhleC1pbnB1dC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhleC1oYXNoXCI+Izwvc3Bhbj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAjaGV4SW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImhleC1pbnB1dFwiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJoZXhWYWx1ZSgpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCkuY3VzdG9tQ29sb3JcIlxuICAgICAgICAgICAgICAoaW5wdXQpPVwib25IZXhJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkhleENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25BcHBseSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNlwiXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMDAwMDAwXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXRpdmUtdHJpZ2dlci13cmFwcGVyXCI+XG4gICAgICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1uYXRpdmUtcGlja2VyLXRyaWdnZXJcIlxuICAgICAgICAgICAgICBpY29uPVwiY29sb3JpemVcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwidCgpLmN1c3RvbUNvbG9yXCJcbiAgICAgICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCJjdXJyZW50Q29sb3IoKVwiXG4gICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJ0cmlnZ2VyTmF0aXZlUGlja2VyKCRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgI2NvbG9ySW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJoaWRkZW4tbmF0aXZlLWlucHV0XCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImN1cnJlbnRDb2xvcigpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCkuY3VzdG9tQ29sb3JcIlxuICAgICAgICAgICAgICAoaW5wdXQpPVwib25OYXRpdmVJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbk5hdGl2ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgICBpY29uPVwiY2hlY2tcIlxuICAgICAgICAgICAgW3RpdGxlXT1cImNvbW1vbigpLmFwcGx5XCJcbiAgICAgICAgICAgIGNvbG9yPVwidmFyKC0tYXRlLXByaW1hcnkpXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkFwcGx5KCRldmVudClcIj48L2F0ZS1idXR0b24+XG5cbiAgICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuXG4gICAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICAgIGljb249XCJmb3JtYXRfY29sb3JfcmVzZXRcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInQoKS5jbGVhclwiXG4gICAgICAgICAgICB2YXJpYW50PVwiZGFuZ2VyXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNsZWFyQ29sb3IoJGV2ZW50KVwiPjwvYXRlLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLmNvbG9yLXBpY2tlci1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLmRyb3Bkb3duLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAuZHJvcGRvd24tcm93LnByZXNldHMge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmRyb3Bkb3duLXJvdy5jb250cm9scyB7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1hdGUtYm9yZGVyLCAjZTJlOGYwKTtcbiAgICAgIH1cblxuICAgICAgLmNvbG9yLWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICA6aG9zdCA6Om5nLWRlZXAgLmNvbG9yLXN3YXRjaC1idG4gLmF0ZS1idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICA6aG9zdCA6Om5nLWRlZXAgLmNvbG9yLXN3YXRjaC1idG4gLmF0ZS1idXR0b24uaXMtYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hdGUtcHJpbWFyeSwgIzNiODJmNik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QgOjpuZy1kZWVwIC5idG4tbmF0aXZlLXBpY2tlci10cmlnZ2VyIC5hdGUtYnV0dG9uIHtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgfVxuXG4gICAgICAuZGl2aWRlci12IHtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtYm9yZGVyLCAjZTJlOGYwKTtcbiAgICAgIH1cblxuICAgICAgLmhleC1pbnB1dC13cmFwcGVyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLXN1cmZhY2Utc2Vjb25kYXJ5LCAjZjhmYWZjKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYXRlLWJvcmRlciwgI2UyZThmMCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxNTBtcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuaGV4LWlucHV0LXdyYXBwZXI6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hdGUtcHJpbWFyeSwgIzNiODJmNik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS1tZW51LWJnLCAjZmZmZmZmKTtcbiAgICAgIH1cblxuICAgICAgLmhleC1oYXNoIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS10ZXh0LW11dGVkLCAjOTRhM2I4KTtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmhleC1pbnB1dCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hdGUtdGV4dCwgIzFlMjkzYik7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICAgIH1cblxuICAgICAgLm5hdGl2ZS10cmlnZ2VyLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICB9XG5cbiAgICAgIC5oaWRkZW4tbmF0aXZlLWlucHV0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEF0ZUNvbG9yQnViYmxlTWVudUNvbXBvbmVudCBleHRlbmRzIEF0ZUJhc2VTdWJCdWJibGVNZW51IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb2xvclBpY2tlclN2YyA9IGluamVjdChBdGVDb2xvclBpY2tlclNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHQgPSB0aGlzLmkxOG5TZXJ2aWNlLnRvb2xiYXI7XG4gIHJlYWRvbmx5IGNvbW1vbiA9IHRoaXMuaTE4blNlcnZpY2UuY29tbW9uO1xuICByZWFkb25seSBwcmVzZXRzID0gUFJFU0VUX0NPTE9SUztcblxuICBwcml2YXRlIGNvbG9ySW5wdXRSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oXCJjb2xvcklucHV0XCIpO1xuXG4gIC8qKlxuICAgKiBMT0NBTCBNT0RFOiBXZSBsb2NrIHRoZSBtb2RlIHdoZW4gdGhlIG1lbnUgaXMgc2hvd24gdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zXG4gICAqIHdoZXJlIHRoZSBwYXJlbnQgKGJ1YmJsZSBtZW51KSBjbGVhcnMgdGhlIGdsb2JhbCBzaWduYWwgYmVmb3JlIHdlIGFwcGx5IHRoZSBjb2xvci5cbiAgICovXG4gIGFjdGl2ZU1vZGUgPSBzaWduYWw8XCJ0ZXh0XCIgfCBcImhpZ2hsaWdodFwiPihcInRleHRcIik7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jb2xvclBpY2tlclN2Yy5lZGl0TW9kZSgpO1xuICAgIHRoaXMuY29sb3JQaWNrZXJTdmMubWVudVRyaWdnZXIoKTtcbiAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLmlzSW50ZXJhY3RpbmcoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHNob3VsZFNob3coKTogYm9vbGVhbiB7XG4gICAgY29uc3QgeyBpc0VkaXRhYmxlIH0gPSB0aGlzLnN0YXRlKCk7XG4gICAgaWYgKCFpc0VkaXRhYmxlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29sb3JQaWNrZXJTdmMuZWRpdE1vZGUoKSAhPT0gbnVsbCB8fCB0aGlzLmNvbG9yUGlja2VyU3ZjLmlzSW50ZXJhY3RpbmcoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0U2VsZWN0aW9uUmVjdCgpOiBET01SZWN0IHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5jb2xvclBpY2tlclN2Yy5tZW51VHJpZ2dlcigpO1xuICAgIGNvbnN0IGVkID0gdGhpcy5lZGl0b3IoKTtcbiAgICBpZiAoIWVkKSB7XG4gICAgICByZXR1cm4gbmV3IERPTVJlY3QoMCwgMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgLy8gMS4gSWYgd2UgaGF2ZSBhIHN0YWJsZSB0cmlnZ2VyIGZyb20gc2VydmljZSAodG9vbGJhciBvciBwYXJlbnQgbWVudSksIGFuY2hvciB0byBpdFxuICAgIGlmICh0cmlnZ2VyKSB7XG4gICAgICBjb25zdCByZWN0ID0gdHJpZ2dlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIC8vIE9ubHkgdXNlIGlmIGl0J3Mgc3RpbGwgdmlzaWJsZS9pbiBET00gKHdpZHRoID4gMClcbiAgICAgIGlmIChyZWN0LndpZHRoID4gMCkge1xuICAgICAgICByZXR1cm4gcmVjdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAyLiBPdGhlcndpc2UgKGJ1YmJsZSBtZW51IC8gcmVsYXkpLCBhbmNob3IgdG8gdGV4dCBzZWxlY3Rpb25cbiAgICBjb25zdCB7IGZyb20gfSA9IGVkLnN0YXRlLnNlbGVjdGlvbjtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IG5vZGUgfSA9IGVkLnZpZXcuZG9tQXRQb3MoZnJvbSk7XG4gICAgICBjb25zdCBlbGVtZW50ID0gbm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQgPyBub2RlIDogbm9kZS5wYXJlbnRFbGVtZW50O1xuICAgICAgY29uc3QgY29sb3JFbGVtZW50ID0gKGVsZW1lbnQgYXMgRWxlbWVudCk/LmNsb3Nlc3QoXG4gICAgICAgICdbc3R5bGUqPVwiY29sb3JcIl0sIFtzdHlsZSo9XCJiYWNrZ3JvdW5kXCJdLCBtYXJrJ1xuICAgICAgKTtcbiAgICAgIGlmIChjb2xvckVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGNvbG9yRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChfZSkge1xuICAgICAgLyogaWdub3JlICovXG4gICAgfVxuXG4gICAgLy8gVXNlIG5hdGl2ZSBzZWxlY3Rpb24gZm9yIG11bHRpLWxpbmUgYWNjdXJhY3lcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93LmdldFNlbGVjdGlvbigpIDogbnVsbDtcbiAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xuICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcbiAgICAgIGNvbnN0IHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGlmIChyZWN0LndpZHRoID4gMCAmJiByZWN0LmhlaWdodCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHJlY3Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmluYWwgZmFsbGJhY2sgdG8gY29vcmRpbmF0ZXMgYXQgY3Vyc29yXG4gICAgY29uc3QgeyB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHQgfSA9IGVkLnZpZXcuY29vcmRzQXRQb3MoZnJvbSk7XG4gICAgcmV0dXJuIG5ldyBET01SZWN0KGxlZnQsIHRvcCwgcmlnaHQgLSBsZWZ0LCBib3R0b20gLSB0b3ApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uVGlwcHlTaG93KF9pbnN0YW5jZTogVGlwcHlJbnN0YW5jZSkge1xuICAgIC8vIDEuIExvY2sgdGhlIG1vZGUgaW1tZWRpYXRlbHkgdG8gYmUgaW1tdW5lIHRvIGV4dGVybmFsIHNpZ25hbCBjaGFuZ2VzXG4gICAgY29uc3QgY3VycmVudE1vZGUgPSB0aGlzLmNvbG9yUGlja2VyU3ZjLmVkaXRNb2RlKCkgfHwgXCJ0ZXh0XCI7XG4gICAgdGhpcy5hY3RpdmVNb2RlLnNldChjdXJyZW50TW9kZSk7XG5cbiAgICAvLyAyLiBDYXB0dXJlIHNlbGVjdGlvbiBmb3IgdGhlIGNvbW1hbmQgZmFsbGJhY2tcbiAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLmNhcHR1cmVTZWxlY3Rpb24odGhpcy5lZGl0b3IoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25UaXBweUhpZGUoX2luc3RhbmNlOiBUaXBweUluc3RhbmNlKSB7XG4gICAgLy8gQ2xlYXIgdHJpZ2dlciBvbmx5IEFGVEVSIHRoZSBtZW51IGlzIGhpZGRlbiB0byBtYWludGFpbiBhbmNob3Igc3RhYmlsaXR5IGR1cmluZyBhbmltYXRpb25cbiAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLmRvbmUoKTtcbiAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLmNsb3NlKCk7XG4gIH1cblxuICByZWFkb25seSBjdXJyZW50Q29sb3IgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbWFya3MgPSB0aGlzLnN0YXRlKCkubWFya3M7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLmFjdGl2ZU1vZGUoKSA9PT0gXCJ0ZXh0XCIgPyBtYXJrcy5jb21wdXRlZENvbG9yIDogbWFya3MuY29tcHV0ZWRCYWNrZ3JvdW5kO1xuICAgIHJldHVybiBjb2xvciB8fCAodGhpcy5hY3RpdmVNb2RlKCkgPT09IFwidGV4dFwiID8gXCIjMDAwMDAwXCIgOiBcIiNmZmZmMDBcIik7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGhleFZhbHVlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5jdXJyZW50Q29sb3IoKTtcbiAgICByZXR1cm4gY29sb3IucmVwbGFjZShcIiNcIiwgXCJcIikudG9VcHBlckNhc2UoKTtcbiAgfSk7XG5cbiAgaXNDb2xvckFjdGl2ZShjb2xvcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY29sb3JQaWNrZXJTdmMubm9ybWFsaXplQ29sb3IodGhpcy5jdXJyZW50Q29sb3IoKSkgPT09XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLm5vcm1hbGl6ZUNvbG9yKGNvbG9yKVxuICAgICk7XG4gIH1cblxuICBhcHBseUNvbG9yKGNvbG9yOiBzdHJpbmcsIGFkZFRvSGlzdG9yeSA9IHRydWUsIGV2ZW50PzogRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcigpO1xuICAgIC8vIFVzZSBvdXIgTE9DS0VEIG1vZGUgaW5zdGVhZCBvZiB0aGUgZ2xvYmFsIHNpZ25hbFxuICAgIC8vIERldGVybWluZSBpZiB3ZSBzaG91bGQgZm9jdXMgYmFjayB0byB0aGUgZWRpdG9yLlxuICAgIGNvbnN0IHNob3VsZEZvY3VzID0gIXRoaXMuY29sb3JQaWNrZXJTdmMuaXNJbnRlcmFjdGluZygpO1xuXG4gICAgaWYgKHRoaXMuYWN0aXZlTW9kZSgpID09PSBcInRleHRcIikge1xuICAgICAgdGhpcy5jb2xvclBpY2tlclN2Yy5hcHBseUNvbG9yKGVkaXRvciwgY29sb3IsIGFkZFRvSGlzdG9yeSwgc2hvdWxkRm9jdXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLmFwcGx5SGlnaGxpZ2h0KGVkaXRvciwgY29sb3IsIGFkZFRvSGlzdG9yeSwgc2hvdWxkRm9jdXMpO1xuICAgIH1cbiAgfVxuXG4gIG9uQXBwbHkoZXZlbnQ/OiBFdmVudCkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLmNsb3NlKCk7XG4gIH1cblxuICBvbkhleElucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgbGV0IHZhbHVlID0gaW5wdXQudmFsdWUudHJpbSgpO1xuICAgIGlmICghdmFsdWUuc3RhcnRzV2l0aChcIiNcIikpIHtcbiAgICAgIHZhbHVlID0gXCIjXCIgKyB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKC9eIz9bMC05QS1GYS1mXXszLDZ9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuYXBwbHlDb2xvcih2YWx1ZSwgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG9uSGV4Q2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgbGV0IHZhbHVlID0gaW5wdXQudmFsdWUudHJpbSgpO1xuICAgIGlmICghdmFsdWUuc3RhcnRzV2l0aChcIiNcIikpIHtcbiAgICAgIHZhbHVlID0gXCIjXCIgKyB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKC9eIz9bMC05QS1GYS1mXXszLDZ9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuYXBwbHlDb2xvcih2YWx1ZSwgdHJ1ZSwgZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHRyaWdnZXJOYXRpdmVQaWNrZXIoZXZlbnQ/OiBFdmVudCkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLmNvbG9ySW5wdXRSZWYoKT8ubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgb25OYXRpdmVJbnB1dChldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmFwcGx5Q29sb3IoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSwgZmFsc2UpO1xuICB9XG5cbiAgb25OYXRpdmVDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5hcHBseUNvbG9yKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUsIHRydWUsIGV2ZW50KTtcbiAgfVxuXG4gIG9uQ2xlYXJDb2xvcihldmVudD86IEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3IoKTtcbiAgICBpZiAodGhpcy5hY3RpdmVNb2RlKCkgPT09IFwidGV4dFwiKSB7XG4gICAgICB0aGlzLmNvbG9yUGlja2VyU3ZjLnVuc2V0Q29sb3IoZWRpdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2xvclBpY2tlclN2Yy51bnNldEhpZ2hsaWdodChlZGl0b3IpO1xuICAgIH1cbiAgfVxuXG4gIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0YXJnZXQudGFnTmFtZSAhPT0gXCJJTlBVVFwiKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRm9jdXMoKSB7XG4gICAgdGhpcy5jb2xvclBpY2tlclN2Yy5zZXRJbnRlcmFjdGluZyh0cnVlKTtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29sb3JQaWNrZXJTdmMuc2V0SW50ZXJhY3RpbmcoZmFsc2UpO1xuICAgICAgdGhpcy51cGRhdGVNZW51KCk7XG4gICAgfSwgMTUwKTtcbiAgfVxufVxuIl19
|
|
@@ -72,7 +72,7 @@ export class AteLinkBubbleMenuComponent extends AteBaseSubBubbleMenu {
|
|
|
72
72
|
/* ignore */
|
|
73
73
|
}
|
|
74
74
|
// Use native selection for multi-line accuracy
|
|
75
|
-
const selection = window.getSelection();
|
|
75
|
+
const selection = typeof window !== "undefined" ? window.getSelection() : null;
|
|
76
76
|
if (selection && selection.rangeCount > 0) {
|
|
77
77
|
const range = selection.getRangeAt(0);
|
|
78
78
|
const rect = range.getBoundingClientRect();
|
|
@@ -244,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
244
244
|
</div>
|
|
245
245
|
`, styles: [".link-input-row{display:flex;align-items:center;gap:6px}.url-input-container{flex:1;display:flex;align-items:center;background:var(--ate-surface-secondary, #f8fafc);border:1px solid var(--ate-border, #e2e8f0);border-radius:8px;padding:0 10px;height:32px;transition:all .15s ease}.url-input-container:focus-within{border-color:var(--ate-primary, #3b82f6);background:var(--ate-surface, #ffffff);box-shadow:0 0 0 2px var(--ate-primary-light, rgba(59, 130, 246, .1))}.icon-link{font-size:16px;color:var(--ate-text-muted, #94a3b8);margin-right:6px}.url-field{background:transparent;border:none;outline:none;color:var(--ate-text, #1e293b);font-size:13px;width:100%;font-family:inherit}.action-buttons{display:flex;align-items:center;gap:2px}\n"] }]
|
|
246
246
|
}], ctorParameters: () => [] });
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWxpbmstYnViYmxlLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9idWJibGUtbWVudXMvbGluay9hdGUtbGluay1idWJibGUtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQTBHeEUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG9CQUFvQjtJQVVsRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBVk8sWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV6QyxNQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDaEMsV0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBRTFDLGNBQVMsR0FBRyxTQUFTLENBQStCLFdBQVcsQ0FBQyxDQUFDO1FBRWpFLFlBQU8sR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFLbkIsK0JBQStCO1FBQy9CLE1BQU0sQ0FDSixHQUFHLEVBQUU7WUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFFbkQsY0FBYztZQUNkLGdEQUFnRDtZQUNoRCxtRUFBbUU7WUFDbkUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRWtCLGFBQWE7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVRLFVBQVU7UUFDakIsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsdUZBQXVGO1FBQ3ZGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDNUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsNERBQTREO1FBQzVELE9BQU8sU0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQztJQUNwRCxDQUFDO0lBRVEsZ0JBQWdCO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0MsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELHFGQUFxRjtRQUNyRixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0Msb0RBQW9EO1lBQ3BELElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUVELCtEQUErRDtRQUMvRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFFcEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sT0FBTyxHQUFHLElBQUksWUFBWSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNwRSxNQUFNLFdBQVcsR0FBSSxPQUFtQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2RCxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixPQUFPLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdDLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNaLFlBQVk7UUFDZCxDQUFDO1FBRUQsK0NBQStDO1FBQy9DLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QyxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDM0MsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBRUQsMENBQTBDO1FBQzFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVrQixXQUFXO1FBQzVCLDRGQUE0RjtRQUM1RixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWlCO1FBQzNCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUMzQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDL0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxNQUFNO1FBQ0osVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVk7UUFDckIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVk7UUFDbkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVk7UUFDbEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVk7UUFDbkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDOytHQWhLVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiwrTkFuRzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRFQsMnlCQWpEUyxrQkFBa0IsNkxBQUUscUJBQXFCLHlEQUFFLFdBQVc7OzRGQW9HckQsMEJBQTBCO2tCQXhHdEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxDQUFDLFlBQ3ZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRFQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICB2aWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIHNpZ25hbCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQXRlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL3VpL2F0ZS1idXR0b24uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBdGVMaW5rU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9hdGUtbGluay5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVTZXBhcmF0b3JDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vdWkvYXRlLXNlcGFyYXRvci5jb21wb25lbnRcIjtcbmltcG9ydCB7IEF0ZUJhc2VTdWJCdWJibGVNZW51IH0gZnJvbSBcIi4uL2Jhc2UvYXRlLWJhc2Utc3ViLWJ1YmJsZS1tZW51XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhdGUtbGluay1idWJibGUtbWVudVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0F0ZUJ1dHRvbkNvbXBvbmVudCwgQXRlU2VwYXJhdG9yQ29tcG9uZW50LCBGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgI21lbnVSZWZcbiAgICAgIGNsYXNzPVwiYnViYmxlLW1lbnVcIlxuICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJvbkNhbmNlbCgkZXZlbnQpXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgcm9sZT1cImRpYWxvZ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpbmstaW5wdXQtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cmwtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGljb24tbGlua1wiPmxpbms8L3NwYW4+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjbGlua0lucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cInVybC1maWVsZFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidCgpLmxpbmtVcmxcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiZWRpdFVybCgpXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImVkaXRVcmwuc2V0KCRldmVudClcIlxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkFwcGx5KCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cIm9uQ2FuY2VsKCRldmVudClcIiAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnNcIj5cbiAgICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgICAgaWNvbj1cImNoZWNrXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJjb21tb24oKS5hcHBseVwiXG4gICAgICAgICAgICBjb2xvcj1cInZhcigtLWF0ZS1wcmltYXJ5KVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRVcmwoKS50cmltKClcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQXBwbHkoJGV2ZW50KVwiPjwvYXRlLWJ1dHRvbj5cbiAgICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgICAgaWNvbj1cIm9wZW5faW5fbmV3XCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJ0KCkub3BlbkxpbmtcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjdXJyZW50VXJsKClcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uT3BlbkxpbmsoJGV2ZW50KVwiPjwvYXRlLWJ1dHRvbj5cbiAgICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgICBpY29uPVwibGlua19vZmZcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInQoKS5yZW1vdmVMaW5rXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJkYW5nZXJcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjdXJyZW50VXJsKClcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uUmVtb3ZlKCRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5saW5rLWlucHV0LXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgfVxuXG4gICAgICAudXJsLWlucHV0LWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS1zdXJmYWNlLXNlY29uZGFyeSwgI2Y4ZmFmYyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWF0ZS1ib3JkZXIsICNlMmU4ZjApO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMTUwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLnVybC1pbnB1dC1jb250YWluZXI6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hdGUtcHJpbWFyeSwgIzNiODJmNik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS1zdXJmYWNlLCAjZmZmZmZmKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWF0ZS1wcmltYXJ5LWxpZ2h0LCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKSk7XG4gICAgICB9XG5cbiAgICAgIC5pY29uLWxpbmsge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hdGUtdGV4dC1tdXRlZCwgIzk0YTNiOCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgfVxuXG4gICAgICAudXJsLWZpZWxkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS10ZXh0LCAjMWUyOTNiKTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpb24tYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEF0ZUxpbmtCdWJibGVNZW51Q29tcG9uZW50IGV4dGVuZHMgQXRlQmFzZVN1YkJ1YmJsZU1lbnUge1xuICBwcml2YXRlIHJlYWRvbmx5IGxpbmtTdmMgPSBpbmplY3QoQXRlTGlua1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHQgPSB0aGlzLmkxOG5TZXJ2aWNlLmJ1YmJsZU1lbnU7XG4gIHJlYWRvbmx5IGNvbW1vbiA9IHRoaXMuaTE4blNlcnZpY2UuY29tbW9uO1xuXG4gIGxpbmtJbnB1dCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PihcImxpbmtJbnB1dFwiKTtcblxuICBlZGl0VXJsID0gc2lnbmFsKFwiXCIpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvLyBSZWFjdGl2ZSBlZmZlY3QgZm9yIFVSTCBzeW5jXG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGUoKTtcbiAgICAgICAgY29uc3QgaXNJbnRlcmFjdGluZyA9IHRoaXMubGlua1N2Yy5pc0ludGVyYWN0aW5nKCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMaW5rSHJlZiA9IHN0YXRlLm1hcmtzLmxpbmtIcmVmIHx8IFwiXCI7XG5cbiAgICAgICAgLy8gU1lOQyBMT0dJQzpcbiAgICAgICAgLy8gSWYgd2UgYXJlIE5PVCBjdXJyZW50bHkgdHlwaW5nIChpbnRlcmFjdGluZyksXG4gICAgICAgIC8vIGFsd2F5cyBrZWVwIHRoZSBpbnB1dCBpbiBzeW5jIHdpdGggdGhlIGN1cnJlbnQgZWRpdG9yIHNlbGVjdGlvbi5cbiAgICAgICAgaWYgKCFpc0ludGVyYWN0aW5nKSB7XG4gICAgICAgICAgdGhpcy5lZGl0VXJsLnNldChjdXJyZW50TGlua0hyZWYpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvblN0YXRlQ2hhbmdlKCkge1xuICAgIHRoaXMubGlua1N2Yy5lZGl0TW9kZSgpO1xuICAgIHRoaXMubGlua1N2Yy5tZW51VHJpZ2dlcigpO1xuICAgIHRoaXMubGlua1N2Yy5pc0ludGVyYWN0aW5nKCk7XG4gIH1cblxuICBvdmVycmlkZSBzaG91bGRTaG93KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgc2VsZWN0aW9uLCBtYXJrcywgaXNFZGl0YWJsZSwgaXNGb2N1c2VkIH0gPSB0aGlzLnN0YXRlKCk7XG4gICAgaWYgKCFpc0VkaXRhYmxlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gU2hvdyBpZiBleHBsaWNpdGx5IGluIGVkaXQgbW9kZSAoZnJvbSB0b29sYmFyL2J1YmJsZSBtZW51KSBvciBpbnRlcmFjdGluZyB3aXRoIGlucHV0XG4gICAgaWYgKHRoaXMubGlua1N2Yy5lZGl0TW9kZSgpIHx8IHRoaXMubGlua1N2Yy5pc0ludGVyYWN0aW5nKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIFNob3cgaWYgY3Vyc29yIGlzIG9uIGFuIGV4aXN0aW5nIGxpbmsgKHJlYWQvcHJldmlldyBtb2RlKVxuICAgIHJldHVybiBpc0ZvY3VzZWQgJiYgbWFya3MubGluayAmJiBzZWxlY3Rpb24uZW1wdHk7XG4gIH1cblxuICBvdmVycmlkZSBnZXRTZWxlY3Rpb25SZWN0KCk6IERPTVJlY3Qge1xuICAgIGNvbnN0IHRyaWdnZXIgPSB0aGlzLmxpbmtTdmMubWVudVRyaWdnZXIoKTtcbiAgICBjb25zdCBlZCA9IHRoaXMuZWRpdG9yKCk7XG4gICAgaWYgKCFlZCkge1xuICAgICAgcmV0dXJuIG5ldyBET01SZWN0KDAsIDAsIDAsIDApO1xuICAgIH1cblxuICAgIC8vIDEuIElmIHdlIGhhdmUgYSBzdGFibGUgdHJpZ2dlciBmcm9tIHNlcnZpY2UgKHRvb2xiYXIgb3IgcGFyZW50IG1lbnUpLCBhbmNob3IgdG8gaXRcbiAgICBpZiAodHJpZ2dlcikge1xuICAgICAgY29uc3QgcmVjdCA9IHRyaWdnZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAvLyBPbmx5IHVzZSBpZiBpdCdzIHN0aWxsIHZpc2libGUvaW4gRE9NICh3aWR0aCA+IDApXG4gICAgICBpZiAocmVjdC53aWR0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHJlY3Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gMi4gT3RoZXJ3aXNlIChidWJibGUgbWVudSAvIHJlbGF5KSwgYW5jaG9yIHRvIHRleHQgc2VsZWN0aW9uXG4gICAgY29uc3QgeyBmcm9tIH0gPSBlZC5zdGF0ZS5zZWxlY3Rpb247XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBub2RlIH0gPSBlZC52aWV3LmRvbUF0UG9zKGZyb20pO1xuICAgICAgY29uc3QgZWxlbWVudCA9IG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50ID8gbm9kZSA6IG5vZGUucGFyZW50RWxlbWVudDtcbiAgICAgIGNvbnN0IGxpbmtFbGVtZW50ID0gKGVsZW1lbnQgYXMgRWxlbWVudCk/LmNsb3Nlc3QoXCJhXCIpO1xuICAgICAgaWYgKGxpbmtFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBsaW5rRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChfZSkge1xuICAgICAgLyogaWdub3JlICovXG4gICAgfVxuXG4gICAgLy8gVXNlIG5hdGl2ZSBzZWxlY3Rpb24gZm9yIG11bHRpLWxpbmUgYWNjdXJhY3lcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XG4gICAgICBjb25zdCByZWN0ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAocmVjdC53aWR0aCA+IDAgJiYgcmVjdC5oZWlnaHQgPiAwKSB7XG4gICAgICAgIHJldHVybiByZWN0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpbmFsIGZhbGxiYWNrIHRvIGNvb3JkaW5hdGVzIGF0IGN1cnNvclxuICAgIGNvbnN0IHsgdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0IH0gPSBlZC52aWV3LmNvb3Jkc0F0UG9zKGZyb20pO1xuICAgIHJldHVybiBuZXcgRE9NUmVjdChsZWZ0LCB0b3AsIHJpZ2h0IC0gbGVmdCwgYm90dG9tIC0gdG9wKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvblRpcHB5SGlkZSgpIHtcbiAgICAvLyBDbGVhciB0cmlnZ2VyIG9ubHkgQUZURVIgdGhlIG1lbnUgaXMgaGlkZGVuIHRvIG1haW50YWluIGFuY2hvciBzdGFiaWxpdHkgZHVyaW5nIGFuaW1hdGlvblxuICAgIHRoaXMubGlua1N2Yy5kb25lKCk7XG4gICAgdGhpcy5saW5rU3ZjLmNsb3NlKCk7XG4gIH1cblxuICBjdXJyZW50VXJsKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlKCkubWFya3MubGlua0hyZWYgfHwgXCJcIjtcbiAgfVxuXG4gIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0YXJnZXQudGFnTmFtZSAhPT0gXCJJTlBVVFwiKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRm9jdXMoKSB7XG4gICAgdGhpcy5saW5rU3ZjLnNldEludGVyYWN0aW5nKHRydWUpO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5saW5rU3ZjLnNldEludGVyYWN0aW5nKGZhbHNlKTtcbiAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICAgIH0sIDE1MCk7XG4gIH1cblxuICBvbk9wZW5MaW5rKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgdXJsID0gdGhpcy5jdXJyZW50VXJsKCk7XG4gICAgaWYgKHVybCkge1xuICAgICAgd2luZG93Lm9wZW4odXJsLCBcIl9ibGFua1wiLCBcIm5vb3BlbmVyLG5vcmVmZXJyZXJcIik7XG4gICAgfVxuICB9XG5cbiAgb25SZW1vdmUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmxpbmtTdmMudW5zZXRMaW5rKHRoaXMuZWRpdG9yKCkpO1xuICB9XG5cbiAgb25BcHBseShldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuZWRpdFVybCgpLnRyaW0oKTtcbiAgICBpZiAodXJsKSB7XG4gICAgICB0aGlzLmxpbmtTdmMuc2V0TGluayh0aGlzLmVkaXRvcigpLCB1cmwpO1xuICAgICAgdGhpcy5lZGl0VXJsLnNldChcIlwiKTtcbiAgICAgIHRoaXMubGlua1N2Yy5zZXRJbnRlcmFjdGluZyhmYWxzZSk7XG4gICAgICB0aGlzLmhpZGVUaXBweSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uUmVtb3ZlKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBvbkNhbmNlbChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMubGlua1N2Yy5jbG9zZSgpO1xuICAgIHRoaXMuaGlkZVRpcHB5KCk7XG4gIH1cbn1cbiJdfQ==
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWxpbmstYnViYmxlLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9idWJibGUtbWVudXMvbGluay9hdGUtbGluay1idWJibGUtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQTBHeEUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG9CQUFvQjtJQVVsRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBVk8sWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV6QyxNQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDaEMsV0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBRTFDLGNBQVMsR0FBRyxTQUFTLENBQStCLFdBQVcsQ0FBQyxDQUFDO1FBRWpFLFlBQU8sR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFLbkIsK0JBQStCO1FBQy9CLE1BQU0sQ0FDSixHQUFHLEVBQUU7WUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxF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RUFBRSxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFZO1FBQ25CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0FoS1UsMEJBQTBCO21HQUExQiwwQkFBMEIsK05BbkczQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0RULDJ5QkFqRFMsa0JBQWtCLDZMQUFFLHFCQUFxQix5REFBRSxXQUFXOzs0RkFvR3JELDBCQUEwQjtrQkF4R3RDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLFdBQVcsQ0FBQyxZQUN2RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0RUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgdmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBzaWduYWwsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEF0ZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi91aS9hdGUtYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQXRlTGlua1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXRlLWxpbmsuc2VydmljZVwiO1xuaW1wb3J0IHsgQXRlU2VwYXJhdG9yQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL3VpL2F0ZS1zZXBhcmF0b3IuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBdGVCYXNlU3ViQnViYmxlTWVudSB9IGZyb20gXCIuLi9iYXNlL2F0ZS1iYXNlLXN1Yi1idWJibGUtbWVudVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXRlLWxpbmstYnViYmxlLW1lbnVcIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBdGVCdXR0b25Db21wb25lbnQsIEF0ZVNlcGFyYXRvckNvbXBvbmVudCwgRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgICNtZW51UmVmXG4gICAgICBjbGFzcz1cImJ1YmJsZS1tZW51XCJcbiAgICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJGV2ZW50KVwiXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAoa2V5ZG93bi5lc2NhcGUpPVwib25DYW5jZWwoJGV2ZW50KVwiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLWlucHV0LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXJsLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBpY29uLWxpbmtcIj5saW5rPC9zcGFuPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2xpbmtJbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ1cmwtZmllbGRcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInQoKS5saW5rVXJsXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImVkaXRVcmwoKVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJlZGl0VXJsLnNldCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25BcHBseSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJvbkNhbmNlbCgkZXZlbnQpXCIgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zXCI+XG4gICAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICAgIGljb249XCJjaGVja1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwiY29tbW9uKCkuYXBwbHlcIlxuICAgICAgICAgICAgY29sb3I9XCJ2YXIoLS1hdGUtcHJpbWFyeSlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0VXJsKCkudHJpbSgpXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkFwcGx5KCRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICAgIGljb249XCJvcGVuX2luX25ld1wiXG4gICAgICAgICAgICBbdGl0bGVdPVwidCgpLm9wZW5MaW5rXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY3VycmVudFVybCgpXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvbk9wZW5MaW5rKCRldmVudClcIj48L2F0ZS1idXR0b24+XG4gICAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgICAgaWNvbj1cImxpbmtfb2ZmXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJ0KCkucmVtb3ZlTGlua1wiXG4gICAgICAgICAgICB2YXJpYW50PVwiZGFuZ2VyXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY3VycmVudFVybCgpXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJvblJlbW92ZSgkZXZlbnQpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAubGluay1pbnB1dC1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgIH1cblxuICAgICAgLnVybC1pbnB1dC1jb250YWluZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtc3VyZmFjZS1zZWNvbmRhcnksICNmOGZhZmMpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hdGUtYm9yZGVyLCAjZTJlOGYwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDE1MG1zIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC51cmwtaW5wdXQtY29udGFpbmVyOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYXRlLXByaW1hcnksICMzYjgyZjYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtc3VyZmFjZSwgI2ZmZmZmZik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1hdGUtcHJpbWFyeS1saWdodCwgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSkpO1xuICAgICAgfVxuXG4gICAgICAuaWNvbi1saW5rIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tYXRlLXRleHQtbXV0ZWQsICM5NGEzYjgpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgIH1cblxuICAgICAgLnVybC1maWVsZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hdGUtdGV4dCwgIzFlMjkzYik7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgICAuYWN0aW9uLWJ1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBdGVMaW5rQnViYmxlTWVudUNvbXBvbmVudCBleHRlbmRzIEF0ZUJhc2VTdWJCdWJibGVNZW51IHtcbiAgcHJpdmF0ZSByZWFkb25seSBsaW5rU3ZjID0gaW5qZWN0KEF0ZUxpbmtTZXJ2aWNlKTtcblxuICByZWFkb25seSB0ID0gdGhpcy5pMThuU2VydmljZS5idWJibGVNZW51O1xuICByZWFkb25seSBjb21tb24gPSB0aGlzLmkxOG5TZXJ2aWNlLmNvbW1vbjtcblxuICBsaW5rSW5wdXQgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oXCJsaW5rSW5wdXRcIik7XG5cbiAgZWRpdFVybCA9IHNpZ25hbChcIlwiKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gUmVhY3RpdmUgZWZmZWN0IGZvciBVUkwgc3luY1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlKCk7XG4gICAgICAgIGNvbnN0IGlzSW50ZXJhY3RpbmcgPSB0aGlzLmxpbmtTdmMuaXNJbnRlcmFjdGluZygpO1xuICAgICAgICBjb25zdCBjdXJyZW50TGlua0hyZWYgPSBzdGF0ZS5tYXJrcy5saW5rSHJlZiB8fCBcIlwiO1xuXG4gICAgICAgIC8vIFNZTkMgTE9HSUM6XG4gICAgICAgIC8vIElmIHdlIGFyZSBOT1QgY3VycmVudGx5IHR5cGluZyAoaW50ZXJhY3RpbmcpLFxuICAgICAgICAvLyBhbHdheXMga2VlcCB0aGUgaW5wdXQgaW4gc3luYyB3aXRoIHRoZSBjdXJyZW50IGVkaXRvciBzZWxlY3Rpb24uXG4gICAgICAgIGlmICghaXNJbnRlcmFjdGluZykge1xuICAgICAgICAgIHRoaXMuZWRpdFVybC5zZXQoY3VycmVudExpbmtIcmVmKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmxpbmtTdmMuZWRpdE1vZGUoKTtcbiAgICB0aGlzLmxpbmtTdmMubWVudVRyaWdnZXIoKTtcbiAgICB0aGlzLmxpbmtTdmMuaXNJbnRlcmFjdGluZygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2hvdWxkU2hvdygpOiBib29sZWFuIHtcbiAgICBjb25zdCB7IHNlbGVjdGlvbiwgbWFya3MsIGlzRWRpdGFibGUsIGlzRm9jdXNlZCB9ID0gdGhpcy5zdGF0ZSgpO1xuICAgIGlmICghaXNFZGl0YWJsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNob3cgaWYgZXhwbGljaXRseSBpbiBlZGl0IG1vZGUgKGZyb20gdG9vbGJhci9idWJibGUgbWVudSkgb3IgaW50ZXJhY3Rpbmcgd2l0aCBpbnB1dFxuICAgIGlmICh0aGlzLmxpbmtTdmMuZWRpdE1vZGUoKSB8fCB0aGlzLmxpbmtTdmMuaXNJbnRlcmFjdGluZygpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBTaG93IGlmIGN1cnNvciBpcyBvbiBhbiBleGlzdGluZyBsaW5rIChyZWFkL3ByZXZpZXcgbW9kZSlcbiAgICByZXR1cm4gaXNGb2N1c2VkICYmIG1hcmtzLmxpbmsgJiYgc2VsZWN0aW9uLmVtcHR5O1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0U2VsZWN0aW9uUmVjdCgpOiBET01SZWN0IHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5saW5rU3ZjLm1lbnVUcmlnZ2VyKCk7XG4gICAgY29uc3QgZWQgPSB0aGlzLmVkaXRvcigpO1xuICAgIGlmICghZWQpIHtcbiAgICAgIHJldHVybiBuZXcgRE9NUmVjdCgwLCAwLCAwLCAwKTtcbiAgICB9XG5cbiAgICAvLyAxLiBJZiB3ZSBoYXZlIGEgc3RhYmxlIHRyaWdnZXIgZnJvbSBzZXJ2aWNlICh0b29sYmFyIG9yIHBhcmVudCBtZW51KSwgYW5jaG9yIHRvIGl0XG4gICAgaWYgKHRyaWdnZXIpIHtcbiAgICAgIGNvbnN0IHJlY3QgPSB0cmlnZ2VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgLy8gT25seSB1c2UgaWYgaXQncyBzdGlsbCB2aXNpYmxlL2luIERPTSAod2lkdGggPiAwKVxuICAgICAgaWYgKHJlY3Qud2lkdGggPiAwKSB7XG4gICAgICAgIHJldHVybiByZWN0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDIuIE90aGVyd2lzZSAoYnViYmxlIG1lbnUgLyByZWxheSksIGFuY2hvciB0byB0ZXh0IHNlbGVjdGlvblxuICAgIGNvbnN0IHsgZnJvbSB9ID0gZWQuc3RhdGUuc2VsZWN0aW9uO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgbm9kZSB9ID0gZWQudmlldy5kb21BdFBvcyhmcm9tKTtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBub2RlIGluc3RhbmNlb2YgRWxlbWVudCA/IG5vZGUgOiBub2RlLnBhcmVudEVsZW1lbnQ7XG4gICAgICBjb25zdCBsaW5rRWxlbWVudCA9IChlbGVtZW50IGFzIEVsZW1lbnQpPy5jbG9zZXN0KFwiYVwiKTtcbiAgICAgIGlmIChsaW5rRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gbGlua0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgIC8qIGlnbm9yZSAqL1xuICAgIH1cblxuICAgIC8vIFVzZSBuYXRpdmUgc2VsZWN0aW9uIGZvciBtdWx0aS1saW5lIGFjY3VyYWN5XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvdy5nZXRTZWxlY3Rpb24oKSA6IG51bGw7XG4gICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCk7XG4gICAgICBjb25zdCByZWN0ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAocmVjdC53aWR0aCA+IDAgJiYgcmVjdC5oZWlnaHQgPiAwKSB7XG4gICAgICAgIHJldHVybiByZWN0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpbmFsIGZhbGxiYWNrIHRvIGNvb3JkaW5hdGVzIGF0IGN1cnNvclxuICAgIGNvbnN0IHsgdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0IH0gPSBlZC52aWV3LmNvb3Jkc0F0UG9zKGZyb20pO1xuICAgIHJldHVybiBuZXcgRE9NUmVjdChsZWZ0LCB0b3AsIHJpZ2h0IC0gbGVmdCwgYm90dG9tIC0gdG9wKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvblRpcHB5SGlkZSgpIHtcbiAgICAvLyBDbGVhciB0cmlnZ2VyIG9ubHkgQUZURVIgdGhlIG1lbnUgaXMgaGlkZGVuIHRvIG1haW50YWluIGFuY2hvciBzdGFiaWxpdHkgZHVyaW5nIGFuaW1hdGlvblxuICAgIHRoaXMubGlua1N2Yy5kb25lKCk7XG4gICAgdGhpcy5saW5rU3ZjLmNsb3NlKCk7XG4gIH1cblxuICBjdXJyZW50VXJsKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlKCkubWFya3MubGlua0hyZWYgfHwgXCJcIjtcbiAgfVxuXG4gIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0YXJnZXQudGFnTmFtZSAhPT0gXCJJTlBVVFwiKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRm9jdXMoKSB7XG4gICAgdGhpcy5saW5rU3ZjLnNldEludGVyYWN0aW5nKHRydWUpO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5saW5rU3ZjLnNldEludGVyYWN0aW5nKGZhbHNlKTtcbiAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICAgIH0sIDE1MCk7XG4gIH1cblxuICBvbk9wZW5MaW5rKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgdXJsID0gdGhpcy5jdXJyZW50VXJsKCk7XG4gICAgaWYgKHVybCkge1xuICAgICAgd2luZG93Lm9wZW4odXJsLCBcIl9ibGFua1wiLCBcIm5vb3BlbmVyLG5vcmVmZXJyZXJcIik7XG4gICAgfVxuICB9XG5cbiAgb25SZW1vdmUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmxpbmtTdmMudW5zZXRMaW5rKHRoaXMuZWRpdG9yKCkpO1xuICB9XG5cbiAgb25BcHBseShldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuZWRpdFVybCgpLnRyaW0oKTtcbiAgICBpZiAodXJsKSB7XG4gICAgICB0aGlzLmxpbmtTdmMuc2V0TGluayh0aGlzLmVkaXRvcigpLCB1cmwpO1xuICAgICAgdGhpcy5lZGl0VXJsLnNldChcIlwiKTtcbiAgICAgIHRoaXMubGlua1N2Yy5zZXRJbnRlcmFjdGluZyhmYWxzZSk7XG4gICAgICB0aGlzLmhpZGVUaXBweSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uUmVtb3ZlKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBvbkNhbmNlbChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMubGlua1N2Yy5jbG9zZSgpO1xuICAgIHRoaXMuaGlkZVRpcHB5KCk7XG4gIH1cbn1cbiJdfQ==
|