valtech-components 2.0.288 → 2.0.289
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -20
- package/esm2022/lib/components/atoms/text/text.component.mjs +3 -3
- package/esm2022/lib/examples/link-processing-example.component.mjs +51 -1
- package/esm2022/lib/services/link-processor.service.mjs +75 -30
- package/fesm2022/valtech-components.mjs +126 -31
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/examples/link-processing-example.component.d.ts +2 -0
- package/lib/services/link-processor.service.d.ts +17 -11
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -184,7 +184,7 @@ export class UserComponent {
|
|
|
184
184
|
The library now includes automatic link detection and processing capabilities. Convert URLs and internal routes in text content into clickable links automatically:
|
|
185
185
|
|
|
186
186
|
```typescript
|
|
187
|
-
// Basic usage
|
|
187
|
+
// Basic usage with direct URLs
|
|
188
188
|
<val-text [props]="{
|
|
189
189
|
content: 'Visit https://angular.io or go to /dashboard',
|
|
190
190
|
processLinks: true,
|
|
@@ -194,18 +194,27 @@ The library now includes automatic link detection and processing capabilities. C
|
|
|
194
194
|
}
|
|
195
195
|
}"></val-text>
|
|
196
196
|
|
|
197
|
-
//
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
197
|
+
// Markdown-style links [text](url)
|
|
198
|
+
<val-text [props]="{
|
|
199
|
+
content: 'Check [the documentation](https://angular.io/docs) for details',
|
|
200
|
+
processLinks: true,
|
|
201
|
+
linkConfig: {
|
|
202
|
+
processMarkdownLinks: true,
|
|
203
|
+
openExternalInNewTab: true
|
|
204
|
+
}
|
|
205
|
+
}"></val-text>
|
|
206
|
+
|
|
207
|
+
// Mixed formats in the same text
|
|
208
|
+
<val-text [props]="{
|
|
209
|
+
content: 'Read [the guide](https://angular.io/guide), check https://github.com/angular, or go to /examples',
|
|
210
|
+
processLinks: true
|
|
211
|
+
}"></val-text>
|
|
204
212
|
```
|
|
205
213
|
|
|
206
214
|
### Features
|
|
207
215
|
|
|
208
|
-
- **Automatic Detection**: Identifies external URLs (http/https)
|
|
216
|
+
- **Automatic Detection**: Identifies external URLs (http/https), internal routes (starting with /), and Markdown-style links `[text](url)`
|
|
217
|
+
- **Improved Regex**: Excludes punctuation marks (`,`, `;`, `.`, `!`, `?`, `()`) from URLs to prevent broken links
|
|
209
218
|
- **Configurable Behavior**: Control whether links open in new tabs
|
|
210
219
|
- **Custom Styling**: Apply custom CSS classes to links
|
|
211
220
|
- **Secure Processing**: Uses Angular's DomSanitizer for safe HTML generation
|
|
@@ -225,13 +234,12 @@ processText(text: string) {
|
|
|
225
234
|
// Check if text contains links
|
|
226
235
|
const hasLinks = this.linkProcessor.hasLinks(text);
|
|
227
236
|
|
|
228
|
-
// Extract all links with their types
|
|
237
|
+
// Extract all links with their types and text
|
|
229
238
|
const links = this.linkProcessor.extractLinks(text);
|
|
239
|
+
// Returns: [{ url: '...', type: 'external|internal', text: '...' }]
|
|
230
240
|
}
|
|
231
241
|
```
|
|
232
242
|
|
|
233
|
-
See the **[Link Processing Guide](./LINK_PROCESSING_GUIDE.md)** for complete documentation and examples.
|
|
234
|
-
|
|
235
243
|
## Project Structure
|
|
236
244
|
|
|
237
245
|
- `src/lib/components/atoms/` – Basic UI elements (e.g., button, icon, text)
|
|
@@ -243,14 +251,6 @@ See the **[Link Processing Guide](./LINK_PROCESSING_GUIDE.md)** for complete doc
|
|
|
243
251
|
- `src/lib/services/` – Utility and helper services (e.g., theme, navigation, i18n)
|
|
244
252
|
- `src/lib/shared/` – Shared constants and utility functions
|
|
245
253
|
|
|
246
|
-
## 📚 Examples
|
|
247
|
-
|
|
248
|
-
The library includes example components that demonstrate best practices:
|
|
249
|
-
|
|
250
|
-
- `ReactiveContentExampleComponent` - Demonstrates the reactive content system with component-specific content
|
|
251
|
-
- `GlobalContentExampleComponent` - Comprehensive demonstration of global and mixed content usage
|
|
252
|
-
- `LinkProcessingExampleComponent` - Shows automatic link detection and processing in different scenarios
|
|
253
|
-
- Check the `_examples/` directory for more implementation examples
|
|
254
254
|
|
|
255
255
|
## License
|
|
256
256
|
|
|
@@ -141,7 +141,7 @@ export class TextComponent {
|
|
|
141
141
|
<p [class]="props.size" [class.bold]="props.bold">{{ displayContent$ | async }}</p>
|
|
142
142
|
}
|
|
143
143
|
</ion-text>
|
|
144
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143,73,248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255,255,255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}:host ::ng-deep .processed-link{color:var(--ion-color-primary, #3880ff);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .3s ease}:host ::ng-deep .processed-link:hover{color:var(--ion-color-primary-shade, #3171e0);text-decoration-thickness:2px}:host ::ng-deep .processed-link:active{color:var(--ion-color-primary-tint, #4c8dff)}:host ::ng-deep .external-link:after{content:\" \\2197\";font-size:.8em;opacity:.7}:host ::ng-deep .internal-link{color:var(--ion-color-
|
|
144
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143,73,248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255,255,255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}:host ::ng-deep .processed-link{color:var(--ion-color-primary, #3880ff);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .3s ease}:host ::ng-deep .processed-link:hover{color:var(--ion-color-primary-shade, #3171e0);text-decoration-thickness:2px}:host ::ng-deep .processed-link:active{color:var(--ion-color-primary-tint, #4c8dff)}:host ::ng-deep .external-link:after{content:\" \\2197\";font-size:.8em;opacity:.7}:host ::ng-deep .internal-link{color:var(--ion-color-primary, #0cd1e8)}:host ::ng-deep .internal-link:hover{color:var(--ion-color-primary-shade, #0bb8cc)}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ProcessLinksPipe, name: "processLinks" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
145
145
|
}
|
|
146
146
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextComponent, decorators: [{
|
|
147
147
|
type: Component,
|
|
@@ -157,7 +157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
157
157
|
<p [class]="props.size" [class.bold]="props.bold">{{ displayContent$ | async }}</p>
|
|
158
158
|
}
|
|
159
159
|
</ion-text>
|
|
160
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@charset \"UTF-8\";:root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143,73,248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255,255,255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}:host ::ng-deep .processed-link{color:var(--ion-color-primary, #3880ff);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .3s ease}:host ::ng-deep .processed-link:hover{color:var(--ion-color-primary-shade, #3171e0);text-decoration-thickness:2px}:host ::ng-deep .processed-link:active{color:var(--ion-color-primary-tint, #4c8dff)}:host ::ng-deep .external-link:after{content:\" \\2197\";font-size:.8em;opacity:.7}:host ::ng-deep .internal-link{color:var(--ion-color-
|
|
160
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@charset \"UTF-8\";:root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143,73,248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255,255,255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}:host ::ng-deep .processed-link{color:var(--ion-color-primary, #3880ff);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .3s ease}:host ::ng-deep .processed-link:hover{color:var(--ion-color-primary-shade, #3171e0);text-decoration-thickness:2px}:host ::ng-deep .processed-link:active{color:var(--ion-color-primary-tint, #4c8dff)}:host ::ng-deep .external-link:after{content:\" \\2197\";font-size:.8em;opacity:.7}:host ::ng-deep .internal-link{color:var(--ion-color-primary, #0cd1e8)}:host ::ng-deep .internal-link:hover{color:var(--ion-color-primary-shade, #0bb8cc)}\n"] }]
|
|
161
161
|
}], ctorParameters: () => [{ type: i1.ContentService }, { type: i2.LinkProcessorService }], propDecorators: { props: [{
|
|
162
162
|
type: Input
|
|
163
163
|
}] } });
|
|
@@ -195,4 +195,4 @@ export function createTextProps(contentConfig, styleConfig = {}) {
|
|
|
195
195
|
bold: styleConfig.bold || false,
|
|
196
196
|
};
|
|
197
197
|
}
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7QUF1QjVFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBZ0N4QixZQUNVLGNBQThCLEVBQzlCLGFBQW1DO1FBRG5DLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFKckMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBS3ZDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLGtDQUFrQztZQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUQseUNBQXlDO1lBQ3pDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUNwQyxxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDdEUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtvQkFDbEMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtvQkFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTtvQkFDcEMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CO2lCQUMvQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sMEJBQTBCO2dCQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO29CQUNyRCxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO29CQUNsQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO29CQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlO2lCQUNyQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTiw2REFBNkQ7WUFDN0QsT0FBTyxDQUFDLElBQUksQ0FDVixnSkFBZ0osQ0FDakosQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDOytHQTlFVSxhQUFhO21HQUFiLGFBQWEsZ0dBM0ZkOzs7Ozs7Ozs7Ozs7R0FZVCxzOEhBYlMsT0FBTywyRUFBRSxTQUFTLHlDQUFFLGdCQUFnQjs7NEZBNEZuQyxhQUFhO2tCQS9GekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNyQzs7Ozs7Ozs7Ozs7O0dBWVQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07c0hBbUcvQyxLQUFLO3NCQURKLEtBQUs7O0FBNERSOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsYUFBZ0MsRUFDaEMsY0FBc0UsRUFBRTtJQUV4RSxPQUFPO1FBQ0wsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVO1FBQ3BDLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWTtRQUN4QyxlQUFlLEVBQUUsYUFBYSxDQUFDLGVBQWU7UUFDOUMsb0JBQW9CLEVBQUUsYUFBYSxDQUFDLG9CQUFvQjtRQUN4RCxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssSUFBSSxNQUFNO1FBQ2xDLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxJQUFJLFFBQVE7UUFDbEMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLElBQUksS0FBSztLQUNoQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IExpbmtQcm9jZXNzb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGluay1wcm9jZXNzb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9jZXNzTGlua3NQaXBlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3BpcGVzL3Byb2Nlc3MtbGlua3MucGlwZSc7XG5pbXBvcnQgeyBUZXh0Q29udGVudENvbmZpZywgVGV4dE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10ZXh0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvblRleHQsIEFzeW5jUGlwZSwgUHJvY2Vzc0xpbmtzUGlwZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi10ZXh0IFtjb2xvcl09XCJwcm9wcy5jb2xvclwiPlxuICAgICAgQGlmIChwcm9wcy5wcm9jZXNzTGlua3MpIHtcbiAgICAgICAgPHBcbiAgICAgICAgICBbY2xhc3NdPVwicHJvcHMuc2l6ZVwiXG4gICAgICAgICAgW2NsYXNzLmJvbGRdPVwicHJvcHMuYm9sZFwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCJkaXNwbGF5Q29udGVudCQgfCBhc3luYyB8IHByb2Nlc3NMaW5rczogcHJvcHMubGlua0NvbmZpZ1wiXG4gICAgICAgID48L3A+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHAgW2NsYXNzXT1cInByb3BzLnNpemVcIiBbY2xhc3MuYm9sZF09XCJwcm9wcy5ib2xkXCI+e3sgZGlzcGxheUNvbnRlbnQkIHwgYXN5bmMgfX08L3A+XG4gICAgICB9XG4gICAgPC9pb24tdGV4dD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG4vKipcbiAqIHZhbC10ZXh0XG4gKlxuICogRW5oYW5jZWQgdGV4dCBjb21wb25lbnQgdGhhdCBzdXBwb3J0cyBib3RoIHN0YXRpYyBjb250ZW50IGFuZCByZWFjdGl2ZSBjb250ZW50IGZyb20gdGhlIGxhbmd1YWdlIHNlcnZpY2UuXG4gKiBUaGUgY29tcG9uZW50IGF1dG9tYXRpY2FsbHkgdXBkYXRlcyB3aGVuIHRoZSBsYW5ndWFnZSBjaGFuZ2VzIGlmIHVzaW5nIHJlYWN0aXZlIGNvbnRlbnQuXG4gKlxuICogQGV4YW1wbGUgU3RhdGljIGNvbnRlbnQ6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHQgW3Byb3BzXT1cIntcbiAqICAgY29udGVudDogJ1N0YXRpYyB0ZXh0JyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ21lZGl1bScsXG4gKiAgIGJvbGQ6IGZhbHNlXG4gKiB9XCI+PC92YWwtdGV4dD5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFJlYWN0aXZlIGNvbnRlbnQ6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHQgW3Byb3BzXT1cIntcbiAqICAgY29udGVudEtleTogJ3dlbGNvbWVNZXNzYWdlJyxcbiAqICAgY29udGVudENsYXNzOiAnSG9tZUNvbXBvbmVudCcsXG4gKiAgIGNvbnRlbnRGYWxsYmFjazogJ1dlbGNvbWUhJyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgYm9sZDogdHJ1ZVxuICogfVwiPjwvdmFsLXRleHQ+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBSZWFjdGl2ZSBjb250ZW50IHdpdGggaW50ZXJwb2xhdGlvbjpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtdGV4dCBbcHJvcHNdPVwie1xuICogICBjb250ZW50S2V5OiAnZ3JlZXRpbmcnLFxuICogICBjb250ZW50Q2xhc3M6ICdVc2VyQ29tcG9uZW50JyxcbiAqICAgY29udGVudEludGVycG9sYXRpb246IHsgbmFtZTogJ0pvaG4nLCBjb3VudDogNSB9LFxuICogICBjb2xvcjogJ3NlY29uZGFyeScsXG4gKiAgIHNpemU6ICdtZWRpdW0nLFxuICogICBib2xkOiBmYWxzZVxuICogfVwiPjwvdmFsLXRleHQ+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGF1dG9tYXRpYyBsaW5rIHByb2Nlc3Npbmc6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHQgW3Byb3BzXT1cIntcbiAqICAgY29udGVudDogJ1Zpc2l0IGh0dHBzOi8vZXhhbXBsZS5jb20gb3IgZ28gdG8gL3Byb2ZpbGUgZm9yIG1vcmUgaW5mbycsXG4gKiAgIHByb2Nlc3NMaW5rczogdHJ1ZSxcbiAqICAgbGlua0NvbmZpZzoge1xuICogICAgIG9wZW5FeHRlcm5hbEluTmV3VGFiOiB0cnVlLFxuICogICAgIG9wZW5JbnRlcm5hbEluTmV3VGFiOiBmYWxzZSxcbiAqICAgICBsaW5rQ2xhc3M6ICdjdXN0b20tbGluaycsXG4gKiAgICAgZXh0ZXJuYWxMaW5rQ2xhc3M6ICdleHRlcm5hbCcsXG4gKiAgICAgaW50ZXJuYWxMaW5rQ2xhc3M6ICdpbnRlcm5hbCdcbiAqICAgfSxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ21lZGl1bSdcbiAqIH1cIj48L3ZhbC10ZXh0PlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgVXNpbmcgQ29udGVudFNlcnZpY2UgaGVscGVyOlxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gSW4gY29tcG9uZW50XG4gKiBjb250ZW50ID0gaW5qZWN0KENvbnRlbnRTZXJ2aWNlKTtcbiAqIGNvbXBvbmVudENvbnRlbnQgPSB0aGlzLmNvbnRlbnQuZm9yQ29tcG9uZW50KCdNeUNvbXBvbmVudCcpO1xuICpcbiAqIHRleHRQcm9wcyA9IHtcbiAqICAgY29udGVudDogdGhpcy5jb21wb25lbnRDb250ZW50LmdldFRleHQoJ3RpdGxlJyksIC8vIHN5bmNcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgYm9sZDogdHJ1ZVxuICogfTtcbiAqIC8vIE9yIHdpdGggcmVhY3RpdmUgYmluZGluZzpcbiAqIHRpdGxlJCA9IHRoaXMuY29tcG9uZW50Q29udGVudC5nZXQoJ3RpdGxlJyk7XG4gKiBgYGBcbiAqXG4gKiBAaW5wdXQgcHJvcHM6IFRleHRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB0ZXh0IChjb250ZW50LCBzdHlsaW5nLCBhbmQgcmVhY3RpdmUgY29udGVudCBvcHRpb25zKVxuICovXG5leHBvcnQgY2xhc3MgVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRleHQgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEB0eXBlIHtUZXh0TWV0YWRhdGF9XG4gICAqXG4gICAqIEZvciBzdGF0aWMgY29udGVudDpcbiAgICogQHByb3BlcnR5IGNvbnRlbnQgLSBUaGUgdGV4dCB0byBkaXNwbGF5ICh0YWtlcyBwcmVjZWRlbmNlIG92ZXIgcmVhY3RpdmUgY29udGVudClcbiAgICpcbiAgICogRm9yIHJlYWN0aXZlIGNvbnRlbnQ6XG4gICAqIEBwcm9wZXJ0eSBjb250ZW50S2V5IC0gVGhlIGNvbnRlbnQga2V5IHRvIHJldHJpZXZlIGZyb20gbGFuZ3VhZ2Ugc2VydmljZVxuICAgKiBAcHJvcGVydHkgY29udGVudENsYXNzIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lIGZvciBjb250ZW50IGxvb2t1cFxuICAgKiBAcHJvcGVydHkgY29udGVudEZhbGxiYWNrIC0gT3B0aW9uYWwgZmFsbGJhY2sgdGV4dCBpZiBjb250ZW50IGlzIG5vdCBmb3VuZFxuICAgKiBAcHJvcGVydHkgY29udGVudEludGVycG9sYXRpb24gLSBPcHRpb25hbCB2YWx1ZXMgdG8gaW50ZXJwb2xhdGUgaW50byBjb250ZW50XG4gICAqXG4gICAqIEZvciBzdHlsaW5nOlxuICAgKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgdGV4dCBjb2xvciAoSW9uaWMgY29sb3Igc3RyaW5nKVxuICAgKiBAcHJvcGVydHkgc2l6ZSAtIFRoZSB0ZXh0IHNpemUgKCdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneGxhcmdlJylcbiAgICogQHByb3BlcnR5IGJvbGQgLSBXaGV0aGVyIHRoZSB0ZXh0IGlzIGJvbGRcbiAgICogQHByb3BlcnR5IHByb2Nlc3NMaW5rcyAtIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGFuZCBjb252ZXJ0IGxpbmtzIGluIHRleHQgKGRlZmF1bHQ6IGZhbHNlKVxuICAgKiBAcHJvcGVydHkgbGlua0NvbmZpZyAtIENvbmZpZ3VyYXRpb24gZm9yIGxpbmsgcHJvY2Vzc2luZyAoY29sb3JzLCB0YXJnZXQgYmVoYXZpb3IsIGV0Yy4pXG4gICAqL1xuICBASW5wdXQoKVxuICBwcm9wczogVGV4dE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHRoYXQgcHJvdmlkZXMgdGhlIGNvbnRlbnQgdG8gZGlzcGxheS5cbiAgICogVGhpcyB3aWxsIGJlIGVpdGhlciBzdGF0aWMgY29udGVudCBvciByZWFjdGl2ZSBjb250ZW50IGZyb20gdGhlIGxhbmd1YWdlIHNlcnZpY2UuXG4gICAqL1xuICBkaXNwbGF5Q29udGVudCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGxpbmtQcm9jZXNzb3I6IExpbmtQcm9jZXNzb3JTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHVwRGlzcGxheUNvbnRlbnQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHVwIHRoZSBjb250ZW50IG9ic2VydmFibGUgYmFzZWQgb24gdGhlIHByb3BzIGNvbmZpZ3VyYXRpb24uXG4gICAqIFByaW9yaXR5OiBzdGF0aWMgY29udGVudCA+IHJlYWN0aXZlIGNvbnRlbnQgd2l0aCBpbnRlcnBvbGF0aW9uID4gcmVhY3RpdmUgY29udGVudFxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cERpc3BsYXlDb250ZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmNvbnRlbnQpIHtcbiAgICAgIC8vIFN0YXRpYyBjb250ZW50IHRha2VzIHByZWNlZGVuY2VcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRlbnQkID0gb2YodGhpcy5wcm9wcy5jb250ZW50KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMuY29udGVudEtleSAmJiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcykge1xuICAgICAgLy8gUmVhY3RpdmUgY29udGVudCBmcm9tIGxhbmd1YWdlIHNlcnZpY2VcbiAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRlbnRJbnRlcnBvbGF0aW9uKSB7XG4gICAgICAgIC8vIFdpdGggaW50ZXJwb2xhdGlvblxuICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnRXaXRoSW50ZXJwb2xhdGlvbih7XG4gICAgICAgICAgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcyxcbiAgICAgICAgICBrZXk6IHRoaXMucHJvcHMuY29udGVudEtleSxcbiAgICAgICAgICBmYWxsYmFjazogdGhpcy5wcm9wcy5jb250ZW50RmFsbGJhY2ssXG4gICAgICAgICAgaW50ZXJwb2xhdGlvbjogdGhpcy5wcm9wcy5jb250ZW50SW50ZXJwb2xhdGlvbixcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaW1wbGUgcmVhY3RpdmUgY29udGVudFxuICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgICAgIGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgICAga2V5OiB0aGlzLnByb3BzLmNvbnRlbnRLZXksXG4gICAgICAgICAgZmFsbGJhY2s6IHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRmFsbGJhY2sgdG8gZW1wdHkgc3RyaW5nIGlmIG5vIHZhbGlkIGNvbnRlbnQgY29uZmlndXJhdGlvblxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAndmFsLXRleHQ6IE5vIHZhbGlkIGNvbnRlbnQgY29uZmlndXJhdGlvbiBwcm92aWRlZC4gVXNlIGVpdGhlciBcImNvbnRlbnRcIiBmb3Igc3RhdGljIHRleHQgb3IgXCJjb250ZW50S2V5XCIgKyBcImNvbnRlbnRDbGFzc1wiIGZvciByZWFjdGl2ZSBjb250ZW50LidcbiAgICAgICk7XG4gICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IG9mKHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrIHx8ICcnKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIHJlYWN0aXZlIHRleHQgcHJvcHMgZnJvbSBjb250ZW50IGNvbmZpZ3VyYXRpb24uXG4gKiBUaGlzIHByb3ZpZGVzIGEgY29udmVuaWVudCB3YXkgdG8gY3JlYXRlIHZhbC10ZXh0IHByb3BzIHdpdGggcmVhY3RpdmUgY29udGVudC5cbiAqXG4gKiBAcGFyYW0gY29udGVudENvbmZpZyAtIENvbnRlbnQgY29uZmlndXJhdGlvblxuICogQHBhcmFtIHN0eWxlQ29uZmlnIC0gT3B0aW9uYWwgc3R5bGUgY29uZmlndXJhdGlvblxuICogQHJldHVybnMgUGFydGlhbCBUZXh0TWV0YWRhdGEgd2l0aCBjb250ZW50IHByb3BlcnRpZXMgc2V0XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluIGNvbXBvbmVudFxuICogdGl0bGVQcm9wczogVGV4dE1ldGFkYXRhID0ge1xuICogICAuLi5jcmVhdGVUZXh0UHJvcHMoe1xuICogICAgIGNvbnRlbnRLZXk6ICd0aXRsZScsXG4gKiAgICAgY29udGVudENsYXNzOiAnSGVhZGVyQ29tcG9uZW50J1xuICogICB9LCB7XG4gKiAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgICBzaXplOiAnbGFyZ2UnLFxuICogICAgIGJvbGQ6IHRydWVcbiAqICAgfSlcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRleHRQcm9wcyhcbiAgY29udGVudENvbmZpZzogVGV4dENvbnRlbnRDb25maWcsXG4gIHN0eWxlQ29uZmlnOiBQYXJ0aWFsPFBpY2s8VGV4dE1ldGFkYXRhLCAnY29sb3InIHwgJ3NpemUnIHwgJ2JvbGQnPj4gPSB7fVxuKTogUGFydGlhbDxUZXh0TWV0YWRhdGE+IHtcbiAgcmV0dXJuIHtcbiAgICBjb250ZW50S2V5OiBjb250ZW50Q29uZmlnLmNvbnRlbnRLZXksXG4gICAgY29udGVudENsYXNzOiBjb250ZW50Q29uZmlnLmNvbnRlbnRDbGFzcyxcbiAgICBjb250ZW50RmFsbGJhY2s6IGNvbnRlbnRDb25maWcuY29udGVudEZhbGxiYWNrLFxuICAgIGNvbnRlbnRJbnRlcnBvbGF0aW9uOiBjb250ZW50Q29uZmlnLmNvbnRlbnRJbnRlcnBvbGF0aW9uLFxuICAgIGNvbG9yOiBzdHlsZUNvbmZpZy5jb2xvciB8fCAnZGFyaycsXG4gICAgc2l6ZTogc3R5bGVDb25maWcuc2l6ZSB8fCAnbWVkaXVtJyxcbiAgICBib2xkOiBzdHlsZUNvbmZpZy5ib2xkIHx8IGZhbHNlLFxuICB9O1xufVxuIl19
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7QUF1QjVFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBZ0N4QixZQUNVLGNBQThCLEVBQzlCLGFBQW1DO1FBRG5DLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFKckMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBS3ZDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLGtDQUFrQztZQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUQseUNBQXlDO1lBQ3pDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUNwQyxxQkFBcUI7Z0JBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDdEUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtvQkFDbEMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtvQkFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTtvQkFDcEMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CO2lCQUMvQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sMEJBQTBCO2dCQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO29CQUNyRCxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO29CQUNsQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO29CQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlO2lCQUNyQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTiw2REFBNkQ7WUFDN0QsT0FBTyxDQUFDLElBQUksQ0FDVixnSkFBZ0osQ0FDakosQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDOytHQTlFVSxhQUFhO21HQUFiLGFBQWEsZ0dBM0ZkOzs7Ozs7Ozs7Ozs7R0FZVCxrOEhBYlMsT0FBTywyRUFBRSxTQUFTLHlDQUFFLGdCQUFnQjs7NEZBNEZuQyxhQUFhO2tCQS9GekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNyQzs7Ozs7Ozs7Ozs7O0dBWVQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07c0hBbUcvQyxLQUFLO3NCQURKLEtBQUs7O0FBNERSOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsYUFBZ0MsRUFDaEMsY0FBc0UsRUFBRTtJQUV4RSxPQUFPO1FBQ0wsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVO1FBQ3BDLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWTtRQUN4QyxlQUFlLEVBQUUsYUFBYSxDQUFDLGVBQWU7UUFDOUMsb0JBQW9CLEVBQUUsYUFBYSxDQUFDLG9CQUFvQjtRQUN4RCxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssSUFBSSxNQUFNO1FBQ2xDLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxJQUFJLFFBQVE7UUFDbEMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLElBQUksS0FBSztLQUNoQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IExpbmtQcm9jZXNzb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGluay1wcm9jZXNzb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9jZXNzTGlua3NQaXBlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3BpcGVzL3Byb2Nlc3MtbGlua3MucGlwZSc7XG5pbXBvcnQgeyBUZXh0Q29udGVudENvbmZpZywgVGV4dE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10ZXh0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvblRleHQsIEFzeW5jUGlwZSwgUHJvY2Vzc0xpbmtzUGlwZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi10ZXh0IFtjb2xvcl09XCJwcm9wcy5jb2xvclwiPlxuICAgICAgQGlmIChwcm9wcy5wcm9jZXNzTGlua3MpIHtcbiAgICAgICAgPHBcbiAgICAgICAgICBbY2xhc3NdPVwicHJvcHMuc2l6ZVwiXG4gICAgICAgICAgW2NsYXNzLmJvbGRdPVwicHJvcHMuYm9sZFwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCJkaXNwbGF5Q29udGVudCQgfCBhc3luYyB8IHByb2Nlc3NMaW5rczogcHJvcHMubGlua0NvbmZpZ1wiXG4gICAgICAgID48L3A+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHAgW2NsYXNzXT1cInByb3BzLnNpemVcIiBbY2xhc3MuYm9sZF09XCJwcm9wcy5ib2xkXCI+e3sgZGlzcGxheUNvbnRlbnQkIHwgYXN5bmMgfX08L3A+XG4gICAgICB9XG4gICAgPC9pb24tdGV4dD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG4vKipcbiAqIHZhbC10ZXh0XG4gKlxuICogRW5oYW5jZWQgdGV4dCBjb21wb25lbnQgdGhhdCBzdXBwb3J0cyBib3RoIHN0YXRpYyBjb250ZW50IGFuZCByZWFjdGl2ZSBjb250ZW50IGZyb20gdGhlIGxhbmd1YWdlIHNlcnZpY2UuXG4gKiBUaGUgY29tcG9uZW50IGF1dG9tYXRpY2FsbHkgdXBkYXRlcyB3aGVuIHRoZSBsYW5ndWFnZSBjaGFuZ2VzIGlmIHVzaW5nIHJlYWN0aXZlIGNvbnRlbnQuXG4gKlxuICogQGV4YW1wbGUgU3RhdGljIGNvbnRlbnQ6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHQgW3Byb3BzXT1cIntcbiAqICAgY29udGVudDogJ1N0YXRpYyB0ZXh0JyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ21lZGl1bScsXG4gKiAgIGJvbGQ6IGZhbHNlXG4gKiB9XCI+PC92YWwtdGV4dD5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFJlYWN0aXZlIGNvbnRlbnQ6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHQgW3Byb3BzXT1cIntcbiAqICAgY29udGVudEtleTogJ3dlbGNvbWVNZXNzYWdlJyxcbiAqICAgY29udGVudENsYXNzOiAnSG9tZUNvbXBvbmVudCcsXG4gKiAgIGNvbnRlbnRGYWxsYmFjazogJ1dlbGNvbWUhJyxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgYm9sZDogdHJ1ZVxuICogfVwiPjwvdmFsLXRleHQ+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBSZWFjdGl2ZSBjb250ZW50IHdpdGggaW50ZXJwb2xhdGlvbjpcbiAqIGBgYGh0bWxcbiAqIDx2YWwtdGV4dCBbcHJvcHNdPVwie1xuICogICBjb250ZW50S2V5OiAnZ3JlZXRpbmcnLFxuICogICBjb250ZW50Q2xhc3M6ICdVc2VyQ29tcG9uZW50JyxcbiAqICAgY29udGVudEludGVycG9sYXRpb246IHsgbmFtZTogJ0pvaG4nLCBjb3VudDogNSB9LFxuICogICBjb2xvcjogJ3NlY29uZGFyeScsXG4gKiAgIHNpemU6ICdtZWRpdW0nLFxuICogICBib2xkOiBmYWxzZVxuICogfVwiPjwvdmFsLXRleHQ+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGF1dG9tYXRpYyBsaW5rIHByb2Nlc3Npbmc6XG4gKiBgYGBodG1sXG4gKiA8dmFsLXRleHQgW3Byb3BzXT1cIntcbiAqICAgY29udGVudDogJ1Zpc2l0IGh0dHBzOi8vZXhhbXBsZS5jb20gb3IgZ28gdG8gL3Byb2ZpbGUgZm9yIG1vcmUgaW5mbycsXG4gKiAgIHByb2Nlc3NMaW5rczogdHJ1ZSxcbiAqICAgbGlua0NvbmZpZzoge1xuICogICAgIG9wZW5FeHRlcm5hbEluTmV3VGFiOiB0cnVlLFxuICogICAgIG9wZW5JbnRlcm5hbEluTmV3VGFiOiBmYWxzZSxcbiAqICAgICBsaW5rQ2xhc3M6ICdjdXN0b20tbGluaycsXG4gKiAgICAgZXh0ZXJuYWxMaW5rQ2xhc3M6ICdleHRlcm5hbCcsXG4gKiAgICAgaW50ZXJuYWxMaW5rQ2xhc3M6ICdpbnRlcm5hbCdcbiAqICAgfSxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ21lZGl1bSdcbiAqIH1cIj48L3ZhbC10ZXh0PlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgVXNpbmcgQ29udGVudFNlcnZpY2UgaGVscGVyOlxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gSW4gY29tcG9uZW50XG4gKiBjb250ZW50ID0gaW5qZWN0KENvbnRlbnRTZXJ2aWNlKTtcbiAqIGNvbXBvbmVudENvbnRlbnQgPSB0aGlzLmNvbnRlbnQuZm9yQ29tcG9uZW50KCdNeUNvbXBvbmVudCcpO1xuICpcbiAqIHRleHRQcm9wcyA9IHtcbiAqICAgY29udGVudDogdGhpcy5jb21wb25lbnRDb250ZW50LmdldFRleHQoJ3RpdGxlJyksIC8vIHN5bmNcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgYm9sZDogdHJ1ZVxuICogfTtcbiAqIC8vIE9yIHdpdGggcmVhY3RpdmUgYmluZGluZzpcbiAqIHRpdGxlJCA9IHRoaXMuY29tcG9uZW50Q29udGVudC5nZXQoJ3RpdGxlJyk7XG4gKiBgYGBcbiAqXG4gKiBAaW5wdXQgcHJvcHM6IFRleHRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB0ZXh0IChjb250ZW50LCBzdHlsaW5nLCBhbmQgcmVhY3RpdmUgY29udGVudCBvcHRpb25zKVxuICovXG5leHBvcnQgY2xhc3MgVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRleHQgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEB0eXBlIHtUZXh0TWV0YWRhdGF9XG4gICAqXG4gICAqIEZvciBzdGF0aWMgY29udGVudDpcbiAgICogQHByb3BlcnR5IGNvbnRlbnQgLSBUaGUgdGV4dCB0byBkaXNwbGF5ICh0YWtlcyBwcmVjZWRlbmNlIG92ZXIgcmVhY3RpdmUgY29udGVudClcbiAgICpcbiAgICogRm9yIHJlYWN0aXZlIGNvbnRlbnQ6XG4gICAqIEBwcm9wZXJ0eSBjb250ZW50S2V5IC0gVGhlIGNvbnRlbnQga2V5IHRvIHJldHJpZXZlIGZyb20gbGFuZ3VhZ2Ugc2VydmljZVxuICAgKiBAcHJvcGVydHkgY29udGVudENsYXNzIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lIGZvciBjb250ZW50IGxvb2t1cFxuICAgKiBAcHJvcGVydHkgY29udGVudEZhbGxiYWNrIC0gT3B0aW9uYWwgZmFsbGJhY2sgdGV4dCBpZiBjb250ZW50IGlzIG5vdCBmb3VuZFxuICAgKiBAcHJvcGVydHkgY29udGVudEludGVycG9sYXRpb24gLSBPcHRpb25hbCB2YWx1ZXMgdG8gaW50ZXJwb2xhdGUgaW50byBjb250ZW50XG4gICAqXG4gICAqIEZvciBzdHlsaW5nOlxuICAgKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgdGV4dCBjb2xvciAoSW9uaWMgY29sb3Igc3RyaW5nKVxuICAgKiBAcHJvcGVydHkgc2l6ZSAtIFRoZSB0ZXh0IHNpemUgKCdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneGxhcmdlJylcbiAgICogQHByb3BlcnR5IGJvbGQgLSBXaGV0aGVyIHRoZSB0ZXh0IGlzIGJvbGRcbiAgICogQHByb3BlcnR5IHByb2Nlc3NMaW5rcyAtIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBwcm9jZXNzIGFuZCBjb252ZXJ0IGxpbmtzIGluIHRleHQgKGRlZmF1bHQ6IGZhbHNlKVxuICAgKiBAcHJvcGVydHkgbGlua0NvbmZpZyAtIENvbmZpZ3VyYXRpb24gZm9yIGxpbmsgcHJvY2Vzc2luZyAoY29sb3JzLCB0YXJnZXQgYmVoYXZpb3IsIGV0Yy4pXG4gICAqL1xuICBASW5wdXQoKVxuICBwcm9wczogVGV4dE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHRoYXQgcHJvdmlkZXMgdGhlIGNvbnRlbnQgdG8gZGlzcGxheS5cbiAgICogVGhpcyB3aWxsIGJlIGVpdGhlciBzdGF0aWMgY29udGVudCBvciByZWFjdGl2ZSBjb250ZW50IGZyb20gdGhlIGxhbmd1YWdlIHNlcnZpY2UuXG4gICAqL1xuICBkaXNwbGF5Q29udGVudCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGxpbmtQcm9jZXNzb3I6IExpbmtQcm9jZXNzb3JTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHVwRGlzcGxheUNvbnRlbnQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHVwIHRoZSBjb250ZW50IG9ic2VydmFibGUgYmFzZWQgb24gdGhlIHByb3BzIGNvbmZpZ3VyYXRpb24uXG4gICAqIFByaW9yaXR5OiBzdGF0aWMgY29udGVudCA+IHJlYWN0aXZlIGNvbnRlbnQgd2l0aCBpbnRlcnBvbGF0aW9uID4gcmVhY3RpdmUgY29udGVudFxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cERpc3BsYXlDb250ZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmNvbnRlbnQpIHtcbiAgICAgIC8vIFN0YXRpYyBjb250ZW50IHRha2VzIHByZWNlZGVuY2VcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRlbnQkID0gb2YodGhpcy5wcm9wcy5jb250ZW50KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMuY29udGVudEtleSAmJiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcykge1xuICAgICAgLy8gUmVhY3RpdmUgY29udGVudCBmcm9tIGxhbmd1YWdlIHNlcnZpY2VcbiAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRlbnRJbnRlcnBvbGF0aW9uKSB7XG4gICAgICAgIC8vIFdpdGggaW50ZXJwb2xhdGlvblxuICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnRXaXRoSW50ZXJwb2xhdGlvbih7XG4gICAgICAgICAgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcyxcbiAgICAgICAgICBrZXk6IHRoaXMucHJvcHMuY29udGVudEtleSxcbiAgICAgICAgICBmYWxsYmFjazogdGhpcy5wcm9wcy5jb250ZW50RmFsbGJhY2ssXG4gICAgICAgICAgaW50ZXJwb2xhdGlvbjogdGhpcy5wcm9wcy5jb250ZW50SW50ZXJwb2xhdGlvbixcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaW1wbGUgcmVhY3RpdmUgY29udGVudFxuICAgICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IHRoaXMuY29udGVudFNlcnZpY2UuZnJvbUNvbnRlbnQoe1xuICAgICAgICAgIGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgICAga2V5OiB0aGlzLnByb3BzLmNvbnRlbnRLZXksXG4gICAgICAgICAgZmFsbGJhY2s6IHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRmFsbGJhY2sgdG8gZW1wdHkgc3RyaW5nIGlmIG5vIHZhbGlkIGNvbnRlbnQgY29uZmlndXJhdGlvblxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAndmFsLXRleHQ6IE5vIHZhbGlkIGNvbnRlbnQgY29uZmlndXJhdGlvbiBwcm92aWRlZC4gVXNlIGVpdGhlciBcImNvbnRlbnRcIiBmb3Igc3RhdGljIHRleHQgb3IgXCJjb250ZW50S2V5XCIgKyBcImNvbnRlbnRDbGFzc1wiIGZvciByZWFjdGl2ZSBjb250ZW50LidcbiAgICAgICk7XG4gICAgICB0aGlzLmRpc3BsYXlDb250ZW50JCA9IG9mKHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrIHx8ICcnKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIHJlYWN0aXZlIHRleHQgcHJvcHMgZnJvbSBjb250ZW50IGNvbmZpZ3VyYXRpb24uXG4gKiBUaGlzIHByb3ZpZGVzIGEgY29udmVuaWVudCB3YXkgdG8gY3JlYXRlIHZhbC10ZXh0IHByb3BzIHdpdGggcmVhY3RpdmUgY29udGVudC5cbiAqXG4gKiBAcGFyYW0gY29udGVudENvbmZpZyAtIENvbnRlbnQgY29uZmlndXJhdGlvblxuICogQHBhcmFtIHN0eWxlQ29uZmlnIC0gT3B0aW9uYWwgc3R5bGUgY29uZmlndXJhdGlvblxuICogQHJldHVybnMgUGFydGlhbCBUZXh0TWV0YWRhdGEgd2l0aCBjb250ZW50IHByb3BlcnRpZXMgc2V0XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluIGNvbXBvbmVudFxuICogdGl0bGVQcm9wczogVGV4dE1ldGFkYXRhID0ge1xuICogICAuLi5jcmVhdGVUZXh0UHJvcHMoe1xuICogICAgIGNvbnRlbnRLZXk6ICd0aXRsZScsXG4gKiAgICAgY29udGVudENsYXNzOiAnSGVhZGVyQ29tcG9uZW50J1xuICogICB9LCB7XG4gKiAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgICBzaXplOiAnbGFyZ2UnLFxuICogICAgIGJvbGQ6IHRydWVcbiAqICAgfSlcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRleHRQcm9wcyhcbiAgY29udGVudENvbmZpZzogVGV4dENvbnRlbnRDb25maWcsXG4gIHN0eWxlQ29uZmlnOiBQYXJ0aWFsPFBpY2s8VGV4dE1ldGFkYXRhLCAnY29sb3InIHwgJ3NpemUnIHwgJ2JvbGQnPj4gPSB7fVxuKTogUGFydGlhbDxUZXh0TWV0YWRhdGE+IHtcbiAgcmV0dXJuIHtcbiAgICBjb250ZW50S2V5OiBjb250ZW50Q29uZmlnLmNvbnRlbnRLZXksXG4gICAgY29udGVudENsYXNzOiBjb250ZW50Q29uZmlnLmNvbnRlbnRDbGFzcyxcbiAgICBjb250ZW50RmFsbGJhY2s6IGNvbnRlbnRDb25maWcuY29udGVudEZhbGxiYWNrLFxuICAgIGNvbnRlbnRJbnRlcnBvbGF0aW9uOiBjb250ZW50Q29uZmlnLmNvbnRlbnRJbnRlcnBvbGF0aW9uLFxuICAgIGNvbG9yOiBzdHlsZUNvbmZpZy5jb2xvciB8fCAnZGFyaycsXG4gICAgc2l6ZTogc3R5bGVDb25maWcuc2l6ZSB8fCAnbWVkaXVtJyxcbiAgICBib2xkOiBzdHlsZUNvbmZpZy5ib2xkIHx8IGZhbHNlLFxuICB9O1xufVxuIl19
|
|
@@ -70,6 +70,36 @@ export class LinkProcessingExampleComponent {
|
|
|
70
70
|
internalLinkClass: 'internal-same-tab',
|
|
71
71
|
},
|
|
72
72
|
};
|
|
73
|
+
this.markdownLinksProps = {
|
|
74
|
+
content: 'Consulta [la documentación de Angular](https://angular.io/docs) y ve a [configuración del perfil](/profile/settings) para más opciones.',
|
|
75
|
+
size: 'medium',
|
|
76
|
+
color: 'dark',
|
|
77
|
+
bold: false,
|
|
78
|
+
processLinks: true,
|
|
79
|
+
linkConfig: {
|
|
80
|
+
openExternalInNewTab: true,
|
|
81
|
+
openInternalInNewTab: false,
|
|
82
|
+
processMarkdownLinks: true,
|
|
83
|
+
linkClass: 'markdown-link',
|
|
84
|
+
externalLinkClass: 'markdown-external',
|
|
85
|
+
internalLinkClass: 'markdown-internal',
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
this.mixedFormatsProps = {
|
|
89
|
+
content: 'Aquí hay [documentación oficial](https://angular.io/docs), un enlace directo https://github.com/angular/angular, y una ruta interna /dashboard/analytics. ¡Todos funcionan!',
|
|
90
|
+
size: 'medium',
|
|
91
|
+
color: 'dark',
|
|
92
|
+
bold: false,
|
|
93
|
+
processLinks: true,
|
|
94
|
+
linkConfig: {
|
|
95
|
+
openExternalInNewTab: true,
|
|
96
|
+
openInternalInNewTab: false,
|
|
97
|
+
processMarkdownLinks: true,
|
|
98
|
+
linkClass: 'mixed-link',
|
|
99
|
+
externalLinkClass: 'mixed-external',
|
|
100
|
+
internalLinkClass: 'mixed-internal',
|
|
101
|
+
},
|
|
102
|
+
};
|
|
73
103
|
}
|
|
74
104
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LinkProcessingExampleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
105
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LinkProcessingExampleComponent, isStandalone: true, selector: "val-link-processing-example", ngImport: i0, template: `
|
|
@@ -100,6 +130,16 @@ export class LinkProcessingExampleComponent {
|
|
|
100
130
|
<h3>Enlaces sin abrir en nueva pestaña:</h3>
|
|
101
131
|
<val-text [props]="sameTabLinksProps"></val-text>
|
|
102
132
|
</div>
|
|
133
|
+
|
|
134
|
+
<div class="example-section">
|
|
135
|
+
<h3>Enlaces estilo Markdown [texto](url):</h3>
|
|
136
|
+
<val-text [props]="markdownLinksProps"></val-text>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
<div class="example-section">
|
|
140
|
+
<h3>Mezcla de enlaces directos y Markdown:</h3>
|
|
141
|
+
<val-text [props]="mixedFormatsProps"></val-text>
|
|
142
|
+
</div>
|
|
103
143
|
</div>
|
|
104
144
|
`, isInline: true, styles: [".link-examples{padding:20px;max-width:800px}.example-section{margin-bottom:24px;padding:16px;border:1px solid var(--ion-color-light, #f4f5f8);border-radius:8px;background:var(--ion-color-light-tint, #f5f6f9)}h2{color:var(--ion-color-primary, #3880ff);margin-bottom:20px}h3{color:var(--ion-color-dark, #222428);margin-bottom:10px;font-size:16px}\n"], dependencies: [{ kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
|
|
105
145
|
}
|
|
@@ -133,7 +173,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
133
173
|
<h3>Enlaces sin abrir en nueva pestaña:</h3>
|
|
134
174
|
<val-text [props]="sameTabLinksProps"></val-text>
|
|
135
175
|
</div>
|
|
176
|
+
|
|
177
|
+
<div class="example-section">
|
|
178
|
+
<h3>Enlaces estilo Markdown [texto](url):</h3>
|
|
179
|
+
<val-text [props]="markdownLinksProps"></val-text>
|
|
180
|
+
</div>
|
|
181
|
+
|
|
182
|
+
<div class="example-section">
|
|
183
|
+
<h3>Mezcla de enlaces directos y Markdown:</h3>
|
|
184
|
+
<val-text [props]="mixedFormatsProps"></val-text>
|
|
185
|
+
</div>
|
|
136
186
|
</div>
|
|
137
187
|
`, styles: [".link-examples{padding:20px;max-width:800px}.example-section{margin-bottom:24px;padding:16px;border:1px solid var(--ion-color-light, #f4f5f8);border-radius:8px;background:var(--ion-color-light-tint, #f5f6f9)}h2{color:var(--ion-color-primary, #3880ff);margin-bottom:20px}h3{color:var(--ion-color-dark, #222428);margin-bottom:10px;font-size:16px}\n"] }]
|
|
138
188
|
}] });
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1wcm9jZXNzaW5nLWV4YW1wbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvZXhhbXBsZXMvbGluay1wcm9jZXNzaW5nLWV4YW1wbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQUV4RTs7Ozs7Ozs7OztHQVVHO0FBK0RILE1BQU0sT0FBTyw4QkFBOEI7SUE5RDNDO1FBK0RFLG1CQUFjLEdBQWlCO1lBQzdCLE9BQU8sRUFBRSx1RkFBdUY7WUFDaEcsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRSxLQUFLO1lBQ1gsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQztRQUVGLG9CQUFlLEdBQWlCO1lBQzlCLE9BQU8sRUFBRSx5RkFBeUY7WUFDbEcsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRSxLQUFLO1lBQ1gsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQztRQUVGLHFCQUFnQixHQUFpQjtZQUMvQixPQUFPLEVBQUUsZ0ZBQWdGO1lBQ3pGLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsS0FBSztZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFVBQVUsRUFBRTtnQkFDVixvQkFBb0IsRUFBRSxJQUFJO2dCQUMxQixvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixTQUFTLEVBQUUsbUJBQW1CO2dCQUM5QixpQkFBaUIsRUFBRSxpQkFBaUI7Z0JBQ3BDLGlCQUFpQixFQUFFLGlCQUFpQjthQUNyQztTQUNGLENBQUM7UUFFRixvQkFBZSxHQUFpQjtZQUM5QixPQUFPLEVBQ0wseUxBQXlMO1lBQzNMLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsS0FBSztZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFVBQVUsRUFBRTtnQkFDVixvQkFBb0IsRUFBRSxJQUFJO2dCQUMxQixvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixTQUFTLEVBQUUsZ0JBQWdCO2dCQUMzQixpQkFBaUIsRUFBRSxlQUFlO2dCQUNsQyxpQkFBaUIsRUFBRSxlQUFlO2FBQ25DO1NBQ0YsQ0FBQztRQUVGLHNCQUFpQixHQUFpQjtZQUNoQyxPQUFPLEVBQUUsc0VBQXNFO1lBQy9FLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsS0FBSztZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFVBQVUsRUFBRTtnQkFDVixvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixTQUFTLEVBQUUsZUFBZTtnQkFDMUIsaUJBQWlCLEVBQUUsbUJBQW1CO2dCQUN0QyxpQkFBaUIsRUFBRSxtQkFBbUI7YUFDdkM7U0FDRixDQUFDO0tBQ0g7K0dBOURZLDhCQUE4QjttR0FBOUIsOEJBQThCLHVGQTFEL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJULG9hQTlCUyxhQUFhOzs0RkEyRFosOEJBQThCO2tCQTlEMUMsU0FBUzsrQkFDRSw2QkFBNkIsY0FDM0IsSUFBSSxXQUNQLENBQUMsYUFBYSxDQUFDLFlBQ2Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRNZXRhZGF0YSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvdGV4dC90eXBlcyc7XG4vKipcbiAqIExpbmtQcm9jZXNzaW5nRXhhbXBsZUNvbXBvbmVudCAtIENvbXBvbmVudGUgZGUgZWplbXBsbyBxdWUgZGVtdWVzdHJhIGVsIHByb2Nlc2FtaWVudG8gYXV0b23DoXRpY28gZGUgZW5sYWNlcy5cbiAqXG4gKiBFc3RlIGNvbXBvbmVudGUgbXVlc3RyYSBkaWZlcmVudGVzIGNhc29zIGRlIHVzbyBwYXJhIGVsIHByb2Nlc2FtaWVudG8gYXV0b23DoXRpY28gZGUgZW5sYWNlc1xuICogZW4gZWwgY29tcG9uZW50ZSB2YWwtdGV4dCwgaW5jbHV5ZW5kbyBlbmxhY2VzIGV4dGVybm9zLCBydXRhcyBpbnRlcm5hcyB5IGNvbmZpZ3VyYWNpb25lcyBwZXJzb25hbGl6YWRhcy5cbiAqXG4gKiBAZXhhbXBsZSBVc28gZW4gdGVtcGxhdGU6XG4gKiBgYGBodG1sXG4gKiA8dmFsLWxpbmstcHJvY2Vzc2luZy1leGFtcGxlPjwvdmFsLWxpbmstcHJvY2Vzc2luZy1leGFtcGxlPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1saW5rLXByb2Nlc3NpbmctZXhhbXBsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtUZXh0Q29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwibGluay1leGFtcGxlc1wiPlxuICAgICAgPGgyPkVqZW1wbG9zIGRlIFByb2Nlc2FtaWVudG8gZGUgRW5sYWNlczwvaDI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJleGFtcGxlLXNlY3Rpb25cIj5cbiAgICAgICAgPGgzPlRleHRvIHNpbiBwcm9jZXNhbWllbnRvIGRlIGVubGFjZXM6PC9oMz5cbiAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJiYXNpY1RleHRQcm9wc1wiPjwvdmFsLXRleHQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtc2VjdGlvblwiPlxuICAgICAgICA8aDM+VGV4dG8gY29uIHByb2Nlc2FtaWVudG8gYsOhc2ljbyBkZSBlbmxhY2VzOjwvaDM+XG4gICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwiYmFzaWNMaW5rc1Byb3BzXCI+PC92YWwtdGV4dD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1zZWN0aW9uXCI+XG4gICAgICAgIDxoMz5FbmxhY2VzIGNvbiBjb25maWd1cmFjacOzbiBwZXJzb25hbGl6YWRhOjwvaDM+XG4gICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwiY3VzdG9tTGlua3NQcm9wc1wiPjwvdmFsLXRleHQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtc2VjdGlvblwiPlxuICAgICAgICA8aDM+RW5sYWNlcyBpbnRlcm5vcyB5IGV4dGVybm9zIG1lemNsYWRvczo8L2gzPlxuICAgICAgICA8dmFsLXRleHQgW3Byb3BzXT1cIm1peGVkTGlua3NQcm9wc1wiPjwvdmFsLXRleHQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtc2VjdGlvblwiPlxuICAgICAgICA8aDM+RW5sYWNlcyBzaW4gYWJyaXIgZW4gbnVldmEgcGVzdGHDsWE6PC9oMz5cbiAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJzYW1lVGFiTGlua3NQcm9wc1wiPjwvdmFsLXRleHQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLmxpbmstZXhhbXBsZXMge1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgICAgfVxuXG4gICAgICAuZXhhbXBsZS1zZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQtdGludCwgI2Y1ZjZmOSk7XG4gICAgICB9XG5cbiAgICAgIGgyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjMzg4MGZmKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICMyMjI0MjgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlua1Byb2Nlc3NpbmdFeGFtcGxlQ29tcG9uZW50IHtcbiAgYmFzaWNUZXh0UHJvcHM6IFRleHRNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnRXN0ZSB0ZXh0byBjb250aWVuZSBodHRwczovL2FuZ3VsYXIuaW8geSAvZGFzaGJvYXJkIHBlcm8gbm8gc2UgcHJvY2VzYW4gY29tbyBlbmxhY2VzLicsXG4gICAgc2l6ZTogJ21lZGl1bScsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBib2xkOiBmYWxzZSxcbiAgICBwcm9jZXNzTGlua3M6IGZhbHNlLFxuICB9O1xuXG4gIGJhc2ljTGlua3NQcm9wczogVGV4dE1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnQ6ICdWaXNpdGEgaHR0cHM6Ly9hbmd1bGFyLmlvIHBhcmEgZG9jdW1lbnRhY2nDs24gbyB2ZSBhIC9kYXNoYm9hcmQgcGFyYSBlbCBwYW5lbCBwcmluY2lwYWwuJyxcbiAgICBzaXplOiAnbWVkaXVtJyxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGJvbGQ6IGZhbHNlLFxuICAgIHByb2Nlc3NMaW5rczogdHJ1ZSxcbiAgfTtcblxuICBjdXN0b21MaW5rc1Byb3BzOiBUZXh0TWV0YWRhdGEgPSB7XG4gICAgY29udGVudDogJ0VubGFjZXMgcGVyc29uYWxpemFkb3M6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIgeSAvcHJvZmlsZS9zZXR0aW5ncycsXG4gICAgc2l6ZTogJ21lZGl1bScsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBib2xkOiBmYWxzZSxcbiAgICBwcm9jZXNzTGlua3M6IHRydWUsXG4gICAgbGlua0NvbmZpZzoge1xuICAgICAgb3BlbkV4dGVybmFsSW5OZXdUYWI6IHRydWUsXG4gICAgICBvcGVuSW50ZXJuYWxJbk5ld1RhYjogZmFsc2UsXG4gICAgICBsaW5rQ2xhc3M6ICdjdXN0b20tbGluay1zdHlsZScsXG4gICAgICBleHRlcm5hbExpbmtDbGFzczogJ2V4dGVybmFsLWN1c3RvbScsXG4gICAgICBpbnRlcm5hbExpbmtDbGFzczogJ2ludGVybmFsLWN1c3RvbScsXG4gICAgfSxcbiAgfTtcblxuICBtaXhlZExpbmtzUHJvcHM6IFRleHRNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OlxuICAgICAgJ0NvbnN1bHRhIGxhIGRvY3VtZW50YWNpw7NuIGVuIGh0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tL2RvY3MsIHJldmlzYSBlbCBjw7NkaWdvIGVuIGh0dHBzOi8vZ2l0aHViLmNvbS9pb25pYy10ZWFtL2lvbmljLWZyYW1ld29yaywgbyBuYXZlZ2EgYSAvY29tcG9uZW50cy9idXR0b25zIHBhcmEgZWplbXBsb3MgaW50ZXJub3MuJyxcbiAgICBzaXplOiAnbWVkaXVtJyxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGJvbGQ6IGZhbHNlLFxuICAgIHByb2Nlc3NMaW5rczogdHJ1ZSxcbiAgICBsaW5rQ29uZmlnOiB7XG4gICAgICBvcGVuRXh0ZXJuYWxJbk5ld1RhYjogdHJ1ZSxcbiAgICAgIG9wZW5JbnRlcm5hbEluTmV3VGFiOiBmYWxzZSxcbiAgICAgIGxpbmtDbGFzczogJ3Byb2Nlc3NlZC1saW5rJyxcbiAgICAgIGV4dGVybmFsTGlua0NsYXNzOiAnZXh0ZXJuYWwtbGluaycsXG4gICAgICBpbnRlcm5hbExpbmtDbGFzczogJ2ludGVybmFsLWxpbmsnLFxuICAgIH0sXG4gIH07XG5cbiAgc2FtZVRhYkxpbmtzUHJvcHM6IFRleHRNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnRXN0b3MgZW5sYWNlcyBubyBhYnJlbiBlbiBudWV2YSBwZXN0YcOxYTogaHR0cHM6Ly9leGFtcGxlLmNvbSB5IC9ob21lJyxcbiAgICBzaXplOiAnbWVkaXVtJyxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGJvbGQ6IGZhbHNlLFxuICAgIHByb2Nlc3NMaW5rczogdHJ1ZSxcbiAgICBsaW5rQ29uZmlnOiB7XG4gICAgICBvcGVuRXh0ZXJuYWxJbk5ld1RhYjogZmFsc2UsXG4gICAgICBvcGVuSW50ZXJuYWxJbk5ld1RhYjogZmFsc2UsXG4gICAgICBsaW5rQ2xhc3M6ICdzYW1lLXRhYi1saW5rJyxcbiAgICAgIGV4dGVybmFsTGlua0NsYXNzOiAnZXh0ZXJuYWwtc2FtZS10YWInLFxuICAgICAgaW50ZXJuYWxMaW5rQ2xhc3M6ICdpbnRlcm5hbC1zYW1lLXRhYicsXG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1wcm9jZXNzaW5nLWV4YW1wbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvZXhhbXBsZXMvbGluay1wcm9jZXNzaW5nLWV4YW1wbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQUV4RTs7Ozs7Ozs7OztHQVVHO0FBeUVILE1BQU0sT0FBTyw4QkFBOEI7SUF4RTNDO1FBeUVFLG1CQUFjLEdBQWlCO1lBQzdCLE9BQU8sRUFBRSx1RkFBdUY7WUFDaEcsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRSxLQUFLO1lBQ1gsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQztRQUVGLG9CQUFlLEdBQWlCO1lBQzlCLE9BQU8sRUFBRSx5RkFBeUY7WUFDbEcsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRSxLQUFLO1lBQ1gsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQztRQUVGLHFCQUFnQixHQUFpQjtZQUMvQixPQUFPLEVBQUUsZ0ZBQWdGO1lBQ3pGLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsS0FBSztZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFVBQVUsRUFBRTtnQkFDVixvQkFBb0IsRUFBRSxJQUFJO2dCQUMxQixvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixTQUFTLEVBQUUsbUJBQW1CO2dCQUM5QixpQkFBaUIsRUFBRSxpQkFBaUI7Z0JBQ3BDLGlCQUFpQixFQUFFLGlCQUFpQjthQUNyQztTQUNGLENBQUM7UUFFRixvQkFBZSxHQUFpQjtZQUM5QixPQUFPLEVBQ0wseUxBQXlMO1lBQzNMLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsS0FBSztZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFVBQVUsRUFBRTtnQkFDVixvQkFBb0IsRUFBRSxJQUFJO2dCQUMxQixvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixTQUFTLEVBQUUsZ0JBQWdCO2dCQUMzQixpQkFBaUIsRUFBRSxlQUFlO2dCQUNsQyxpQkFBaUIsRUFBRSxlQUFlO2FBQ25DO1NBQ0YsQ0FBQztRQUVGLHNCQUFpQixHQUFpQjtZQUNoQyxPQUFPLEVBQUUsc0VBQXNFO1lBQy9FLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsS0FBSztZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFVBQVUsRUFBRTtnQkFDVixvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixTQUFTLEVBQUUsZUFBZTtnQkFDMUIsaUJBQWlCLEVBQUUsbUJBQW1CO2dCQUN0QyxpQkFBaUIsRUFBRSxtQkFBbUI7YUFDdkM7U0FDRixDQUFDO1FBRUYsdUJBQWtCLEdBQWlCO1lBQ2pDLE9BQU8sRUFDTCx5SUFBeUk7WUFDM0ksSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRSxLQUFLO1lBQ1gsWUFBWSxFQUFFLElBQUk7WUFDbEIsVUFBVSxFQUFFO2dCQUNWLG9CQUFvQixFQUFFLElBQUk7Z0JBQzFCLG9CQUFvQixFQUFFLEtBQUs7Z0JBQzNCLG9CQUFvQixFQUFFLElBQUk7Z0JBQzFCLFNBQVMsRUFBRSxlQUFlO2dCQUMxQixpQkFBaUIsRUFBRSxtQkFBbUI7Z0JBQ3RDLGlCQUFpQixFQUFFLG1CQUFtQjthQUN2QztTQUNGLENBQUM7UUFFRixzQkFBaUIsR0FBaUI7WUFDaEMsT0FBTyxFQUNMLDZLQUE2SztZQUMvSyxJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxNQUFNO1lBQ2IsSUFBSSxFQUFFLEtBQUs7WUFDWCxZQUFZLEVBQUUsSUFBSTtZQUNsQixVQUFVLEVBQUU7Z0JBQ1Ysb0JBQW9CLEVBQUUsSUFBSTtnQkFDMUIsb0JBQW9CLEVBQUUsS0FBSztnQkFDM0Isb0JBQW9CLEVBQUUsSUFBSTtnQkFDMUIsU0FBUyxFQUFFLFlBQVk7Z0JBQ3ZCLGlCQUFpQixFQUFFLGdCQUFnQjtnQkFDbkMsaUJBQWlCLEVBQUUsZ0JBQWdCO2FBQ3BDO1NBQ0YsQ0FBQztLQUNIOytHQWhHWSw4QkFBOEI7bUdBQTlCLDhCQUE4Qix1RkFwRS9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Q1Qsb2FBeENTLGFBQWE7OzRGQXFFWiw4QkFBOEI7a0JBeEUxQyxTQUFTOytCQUNFLDZCQUE2QixjQUMzQixJQUFJLFdBQ1AsQ0FBQyxhQUFhLENBQUMsWUFDZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUNUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRNZXRhZGF0YSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXRvbXMvdGV4dC90eXBlcyc7XG4vKipcbiAqIExpbmtQcm9jZXNzaW5nRXhhbXBsZUNvbXBvbmVudCAtIENvbXBvbmVudGUgZGUgZWplbXBsbyBxdWUgZGVtdWVzdHJhIGVsIHByb2Nlc2FtaWVudG8gYXV0b23DoXRpY28gZGUgZW5sYWNlcy5cbiAqXG4gKiBFc3RlIGNvbXBvbmVudGUgbXVlc3RyYSBkaWZlcmVudGVzIGNhc29zIGRlIHVzbyBwYXJhIGVsIHByb2Nlc2FtaWVudG8gYXV0b23DoXRpY28gZGUgZW5sYWNlc1xuICogZW4gZWwgY29tcG9uZW50ZSB2YWwtdGV4dCwgaW5jbHV5ZW5kbyBlbmxhY2VzIGV4dGVybm9zLCBydXRhcyBpbnRlcm5hcyB5IGNvbmZpZ3VyYWNpb25lcyBwZXJzb25hbGl6YWRhcy5cbiAqXG4gKiBAZXhhbXBsZSBVc28gZW4gdGVtcGxhdGU6XG4gKiBgYGBodG1sXG4gKiA8dmFsLWxpbmstcHJvY2Vzc2luZy1leGFtcGxlPjwvdmFsLWxpbmstcHJvY2Vzc2luZy1leGFtcGxlPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1saW5rLXByb2Nlc3NpbmctZXhhbXBsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtUZXh0Q29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwibGluay1leGFtcGxlc1wiPlxuICAgICAgPGgyPkVqZW1wbG9zIGRlIFByb2Nlc2FtaWVudG8gZGUgRW5sYWNlczwvaDI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJleGFtcGxlLXNlY3Rpb25cIj5cbiAgICAgICAgPGgzPlRleHRvIHNpbiBwcm9jZXNhbWllbnRvIGRlIGVubGFjZXM6PC9oMz5cbiAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJiYXNpY1RleHRQcm9wc1wiPjwvdmFsLXRleHQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtc2VjdGlvblwiPlxuICAgICAgICA8aDM+VGV4dG8gY29uIHByb2Nlc2FtaWVudG8gYsOhc2ljbyBkZSBlbmxhY2VzOjwvaDM+XG4gICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwiYmFzaWNMaW5rc1Byb3BzXCI+PC92YWwtdGV4dD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1zZWN0aW9uXCI+XG4gICAgICAgIDxoMz5FbmxhY2VzIGNvbiBjb25maWd1cmFjacOzbiBwZXJzb25hbGl6YWRhOjwvaDM+XG4gICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwiY3VzdG9tTGlua3NQcm9wc1wiPjwvdmFsLXRleHQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtc2VjdGlvblwiPlxuICAgICAgICA8aDM+RW5sYWNlcyBpbnRlcm5vcyB5IGV4dGVybm9zIG1lemNsYWRvczo8L2gzPlxuICAgICAgICA8dmFsLXRleHQgW3Byb3BzXT1cIm1peGVkTGlua3NQcm9wc1wiPjwvdmFsLXRleHQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtc2VjdGlvblwiPlxuICAgICAgICA8aDM+RW5sYWNlcyBzaW4gYWJyaXIgZW4gbnVldmEgcGVzdGHDsWE6PC9oMz5cbiAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJzYW1lVGFiTGlua3NQcm9wc1wiPjwvdmFsLXRleHQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtc2VjdGlvblwiPlxuICAgICAgICA8aDM+RW5sYWNlcyBlc3RpbG8gTWFya2Rvd24gW3RleHRvXSh1cmwpOjwvaDM+XG4gICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwibWFya2Rvd25MaW5rc1Byb3BzXCI+PC92YWwtdGV4dD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1zZWN0aW9uXCI+XG4gICAgICAgIDxoMz5NZXpjbGEgZGUgZW5sYWNlcyBkaXJlY3RvcyB5IE1hcmtkb3duOjwvaDM+XG4gICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwibWl4ZWRGb3JtYXRzUHJvcHNcIj48L3ZhbC10ZXh0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5saW5rLWV4YW1wbGVzIHtcbiAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICAgIH1cblxuICAgICAgLmV4YW1wbGUtc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LXRpbnQsICNmNWY2ZjkpO1xuICAgICAgfVxuXG4gICAgICBoMiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSwgIzM4ODBmZik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjMjIyNDI4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIExpbmtQcm9jZXNzaW5nRXhhbXBsZUNvbXBvbmVudCB7XG4gIGJhc2ljVGV4dFByb3BzOiBUZXh0TWV0YWRhdGEgPSB7XG4gICAgY29udGVudDogJ0VzdGUgdGV4dG8gY29udGllbmUgaHR0cHM6Ly9hbmd1bGFyLmlvIHkgL2Rhc2hib2FyZCBwZXJvIG5vIHNlIHByb2Nlc2FuIGNvbW8gZW5sYWNlcy4nLFxuICAgIHNpemU6ICdtZWRpdW0nLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgYm9sZDogZmFsc2UsXG4gICAgcHJvY2Vzc0xpbmtzOiBmYWxzZSxcbiAgfTtcblxuICBiYXNpY0xpbmtzUHJvcHM6IFRleHRNZXRhZGF0YSA9IHtcbiAgICBjb250ZW50OiAnVmlzaXRhIGh0dHBzOi8vYW5ndWxhci5pbyBwYXJhIGRvY3VtZW50YWNpw7NuIG8gdmUgYSAvZGFzaGJvYXJkIHBhcmEgZWwgcGFuZWwgcHJpbmNpcGFsLicsXG4gICAgc2l6ZTogJ21lZGl1bScsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBib2xkOiBmYWxzZSxcbiAgICBwcm9jZXNzTGlua3M6IHRydWUsXG4gIH07XG5cbiAgY3VzdG9tTGlua3NQcm9wczogVGV4dE1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnQ6ICdFbmxhY2VzIHBlcnNvbmFsaXphZG9zOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyIHkgL3Byb2ZpbGUvc2V0dGluZ3MnLFxuICAgIHNpemU6ICdtZWRpdW0nLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgYm9sZDogZmFsc2UsXG4gICAgcHJvY2Vzc0xpbmtzOiB0cnVlLFxuICAgIGxpbmtDb25maWc6IHtcbiAgICAgIG9wZW5FeHRlcm5hbEluTmV3VGFiOiB0cnVlLFxuICAgICAgb3BlbkludGVybmFsSW5OZXdUYWI6IGZhbHNlLFxuICAgICAgbGlua0NsYXNzOiAnY3VzdG9tLWxpbmstc3R5bGUnLFxuICAgICAgZXh0ZXJuYWxMaW5rQ2xhc3M6ICdleHRlcm5hbC1jdXN0b20nLFxuICAgICAgaW50ZXJuYWxMaW5rQ2xhc3M6ICdpbnRlcm5hbC1jdXN0b20nLFxuICAgIH0sXG4gIH07XG5cbiAgbWl4ZWRMaW5rc1Byb3BzOiBUZXh0TWV0YWRhdGEgPSB7XG4gICAgY29udGVudDpcbiAgICAgICdDb25zdWx0YSBsYSBkb2N1bWVudGFjacOzbiBlbiBodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzLCByZXZpc2EgZWwgY8OzZGlnbyBlbiBodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1mcmFtZXdvcmssIG8gbmF2ZWdhIGEgL2NvbXBvbmVudHMvYnV0dG9ucyBwYXJhIGVqZW1wbG9zIGludGVybm9zLicsXG4gICAgc2l6ZTogJ21lZGl1bScsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBib2xkOiBmYWxzZSxcbiAgICBwcm9jZXNzTGlua3M6IHRydWUsXG4gICAgbGlua0NvbmZpZzoge1xuICAgICAgb3BlbkV4dGVybmFsSW5OZXdUYWI6IHRydWUsXG4gICAgICBvcGVuSW50ZXJuYWxJbk5ld1RhYjogZmFsc2UsXG4gICAgICBsaW5rQ2xhc3M6ICdwcm9jZXNzZWQtbGluaycsXG4gICAgICBleHRlcm5hbExpbmtDbGFzczogJ2V4dGVybmFsLWxpbmsnLFxuICAgICAgaW50ZXJuYWxMaW5rQ2xhc3M6ICdpbnRlcm5hbC1saW5rJyxcbiAgICB9LFxuICB9O1xuXG4gIHNhbWVUYWJMaW5rc1Byb3BzOiBUZXh0TWV0YWRhdGEgPSB7XG4gICAgY29udGVudDogJ0VzdG9zIGVubGFjZXMgbm8gYWJyZW4gZW4gbnVldmEgcGVzdGHDsWE6IGh0dHBzOi8vZXhhbXBsZS5jb20geSAvaG9tZScsXG4gICAgc2l6ZTogJ21lZGl1bScsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBib2xkOiBmYWxzZSxcbiAgICBwcm9jZXNzTGlua3M6IHRydWUsXG4gICAgbGlua0NvbmZpZzoge1xuICAgICAgb3BlbkV4dGVybmFsSW5OZXdUYWI6IGZhbHNlLFxuICAgICAgb3BlbkludGVybmFsSW5OZXdUYWI6IGZhbHNlLFxuICAgICAgbGlua0NsYXNzOiAnc2FtZS10YWItbGluaycsXG4gICAgICBleHRlcm5hbExpbmtDbGFzczogJ2V4dGVybmFsLXNhbWUtdGFiJyxcbiAgICAgIGludGVybmFsTGlua0NsYXNzOiAnaW50ZXJuYWwtc2FtZS10YWInLFxuICAgIH0sXG4gIH07XG5cbiAgbWFya2Rvd25MaW5rc1Byb3BzOiBUZXh0TWV0YWRhdGEgPSB7XG4gICAgY29udGVudDpcbiAgICAgICdDb25zdWx0YSBbbGEgZG9jdW1lbnRhY2nDs24gZGUgQW5ndWxhcl0oaHR0cHM6Ly9hbmd1bGFyLmlvL2RvY3MpIHkgdmUgYSBbY29uZmlndXJhY2nDs24gZGVsIHBlcmZpbF0oL3Byb2ZpbGUvc2V0dGluZ3MpIHBhcmEgbcOhcyBvcGNpb25lcy4nLFxuICAgIHNpemU6ICdtZWRpdW0nLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgYm9sZDogZmFsc2UsXG4gICAgcHJvY2Vzc0xpbmtzOiB0cnVlLFxuICAgIGxpbmtDb25maWc6IHtcbiAgICAgIG9wZW5FeHRlcm5hbEluTmV3VGFiOiB0cnVlLFxuICAgICAgb3BlbkludGVybmFsSW5OZXdUYWI6IGZhbHNlLFxuICAgICAgcHJvY2Vzc01hcmtkb3duTGlua3M6IHRydWUsXG4gICAgICBsaW5rQ2xhc3M6ICdtYXJrZG93bi1saW5rJyxcbiAgICAgIGV4dGVybmFsTGlua0NsYXNzOiAnbWFya2Rvd24tZXh0ZXJuYWwnLFxuICAgICAgaW50ZXJuYWxMaW5rQ2xhc3M6ICdtYXJrZG93bi1pbnRlcm5hbCcsXG4gICAgfSxcbiAgfTtcblxuICBtaXhlZEZvcm1hdHNQcm9wczogVGV4dE1ldGFkYXRhID0ge1xuICAgIGNvbnRlbnQ6XG4gICAgICAnQXF1w60gaGF5IFtkb2N1bWVudGFjacOzbiBvZmljaWFsXShodHRwczovL2FuZ3VsYXIuaW8vZG9jcyksIHVuIGVubGFjZSBkaXJlY3RvIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIsIHkgdW5hIHJ1dGEgaW50ZXJuYSAvZGFzaGJvYXJkL2FuYWx5dGljcy4gwqFUb2RvcyBmdW5jaW9uYW4hJyxcbiAgICBzaXplOiAnbWVkaXVtJyxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGJvbGQ6IGZhbHNlLFxuICAgIHByb2Nlc3NMaW5rczogdHJ1ZSxcbiAgICBsaW5rQ29uZmlnOiB7XG4gICAgICBvcGVuRXh0ZXJuYWxJbk5ld1RhYjogdHJ1ZSxcbiAgICAgIG9wZW5JbnRlcm5hbEluTmV3VGFiOiBmYWxzZSxcbiAgICAgIHByb2Nlc3NNYXJrZG93bkxpbmtzOiB0cnVlLFxuICAgICAgbGlua0NsYXNzOiAnbWl4ZWQtbGluaycsXG4gICAgICBleHRlcm5hbExpbmtDbGFzczogJ21peGVkLWV4dGVybmFsJyxcbiAgICAgIGludGVybmFsTGlua0NsYXNzOiAnbWl4ZWQtaW50ZXJuYWwnLFxuICAgIH0sXG4gIH07XG59XG4iXX0=
|
|
@@ -4,15 +4,15 @@ import * as i1 from "@angular/platform-browser";
|
|
|
4
4
|
/**
|
|
5
5
|
* LinkProcessorService - Service for processing text content to convert URLs and internal routes into clickable links.
|
|
6
6
|
*
|
|
7
|
-
* This service automatically detects external URLs (http/https)
|
|
8
|
-
* and converts them into HTML anchor elements with appropriate attributes.
|
|
7
|
+
* This service automatically detects external URLs (http/https), internal routes (starting with /),
|
|
8
|
+
* and Markdown-style links [text](url) and converts them into HTML anchor elements with appropriate attributes.
|
|
9
9
|
*
|
|
10
10
|
* @example Basic usage:
|
|
11
11
|
* ```typescript
|
|
12
12
|
* constructor(private linkProcessor: LinkProcessorService) {}
|
|
13
13
|
*
|
|
14
14
|
* processText() {
|
|
15
|
-
* const text = 'Visit https://example.com
|
|
15
|
+
* const text = 'Visit https://example.com, go to /profile, or [check docs](https://docs.example.com)';
|
|
16
16
|
* const processed = this.linkProcessor.processLinks(text);
|
|
17
17
|
* // Returns SafeHtml with clickable links
|
|
18
18
|
* }
|
|
@@ -21,14 +21,16 @@ import * as i1 from "@angular/platform-browser";
|
|
|
21
21
|
export class LinkProcessorService {
|
|
22
22
|
constructor(sanitizer) {
|
|
23
23
|
this.sanitizer = sanitizer;
|
|
24
|
-
// Regex para detectar URLs completas (http/https)
|
|
25
|
-
this.urlRegex = /(https?:\/\/[^\s]+)/g;
|
|
26
|
-
// Regex para detectar rutas internas (empiezan con / pero no son URLs completas)
|
|
27
|
-
this.internalRouteRegex = /(\s|^)(\/[^\s]*)/g;
|
|
24
|
+
// Regex para detectar URLs completas (http/https) - excluye caracteres de puntuación al final
|
|
25
|
+
this.urlRegex = /(https?:\/\/[^\s,;.!?()]+)/g;
|
|
26
|
+
// Regex para detectar rutas internas (empiezan con / pero no son URLs completas) - excluye puntuación
|
|
27
|
+
this.internalRouteRegex = /(\s|^)(\/[^\s,;.!?()]*)/g;
|
|
28
|
+
// Regex para detectar enlaces estilo Markdown [texto](url)
|
|
29
|
+
this.markdownLinkRegex = /\[([^\]]+)\]\(([^)]+)\)/g;
|
|
28
30
|
}
|
|
29
31
|
/**
|
|
30
32
|
* Procesa texto para convertir enlaces en elementos <a> clickeables.
|
|
31
|
-
* Detecta automáticamente URLs externas
|
|
33
|
+
* Detecta automáticamente URLs externas, rutas internas y enlaces estilo Markdown.
|
|
32
34
|
*
|
|
33
35
|
* @param text - Texto a procesar
|
|
34
36
|
* @param config - Configuración del procesamiento
|
|
@@ -37,10 +39,11 @@ export class LinkProcessorService {
|
|
|
37
39
|
* @example
|
|
38
40
|
* ```typescript
|
|
39
41
|
* const result = this.linkProcessor.processLinks(
|
|
40
|
-
* 'Visit https://example.com
|
|
42
|
+
* 'Visit https://example.com, go to /profile, or [check docs](https://docs.example.com)',
|
|
41
43
|
* {
|
|
42
44
|
* openExternalInNewTab: true,
|
|
43
45
|
* openInternalInNewTab: false,
|
|
46
|
+
* processMarkdownLinks: true,
|
|
44
47
|
* linkClass: 'custom-link'
|
|
45
48
|
* }
|
|
46
49
|
* );
|
|
@@ -49,31 +52,53 @@ export class LinkProcessorService {
|
|
|
49
52
|
processLinks(text, config = {}) {
|
|
50
53
|
if (!text)
|
|
51
54
|
return '';
|
|
52
|
-
const { openExternalInNewTab = true, openInternalInNewTab = false, linkClass = 'processed-link', externalLinkClass = 'external-link', internalLinkClass = 'internal-link', } = config;
|
|
55
|
+
const { openExternalInNewTab = true, openInternalInNewTab = false, linkClass = 'processed-link', externalLinkClass = 'external-link', internalLinkClass = 'internal-link', processMarkdownLinks = true, } = config;
|
|
53
56
|
let hasLinks = false;
|
|
54
57
|
let processedText = text;
|
|
55
|
-
// Procesar
|
|
56
|
-
if (this.
|
|
58
|
+
// 1. Procesar enlaces estilo Markdown [texto](url) primero
|
|
59
|
+
if (processMarkdownLinks && this.markdownLinkRegex.test(text)) {
|
|
60
|
+
hasLinks = true;
|
|
61
|
+
this.markdownLinkRegex.lastIndex = 0; // Reset regex
|
|
62
|
+
processedText = processedText.replace(this.markdownLinkRegex, (match, linkText, url) => {
|
|
63
|
+
const isExternal = /^https?:\/\//.test(url);
|
|
64
|
+
const target = (isExternal ? openExternalInNewTab : openInternalInNewTab)
|
|
65
|
+
? isExternal
|
|
66
|
+
? ' target="_blank" rel="noopener noreferrer"'
|
|
67
|
+
: ' target="_blank"'
|
|
68
|
+
: '';
|
|
69
|
+
const typeClass = isExternal ? externalLinkClass : internalLinkClass;
|
|
70
|
+
const classes = `${linkClass} ${typeClass}`.trim();
|
|
71
|
+
return `<a href="${url}"${target} class="${classes}">${linkText}</a>`;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// 2. Procesar URLs externas directas
|
|
75
|
+
if (this.urlRegex.test(processedText)) {
|
|
57
76
|
hasLinks = true;
|
|
58
77
|
this.urlRegex.lastIndex = 0; // Reset regex
|
|
59
78
|
processedText = processedText.replace(this.urlRegex, url => {
|
|
79
|
+
// Verificar que no esté ya dentro de un enlace procesado
|
|
80
|
+
const beforeMatch = processedText.substring(0, processedText.indexOf(url));
|
|
81
|
+
if (beforeMatch.includes('<a href="' + url + '"')) {
|
|
82
|
+
return url; // Ya está procesado como Markdown link
|
|
83
|
+
}
|
|
60
84
|
const target = openExternalInNewTab ? ' target="_blank" rel="noopener noreferrer"' : '';
|
|
61
85
|
const classes = `${linkClass} ${externalLinkClass}`.trim();
|
|
62
86
|
return `<a href="${url}"${target} class="${classes}">${url}</a>`;
|
|
63
87
|
});
|
|
64
88
|
}
|
|
65
|
-
// Procesar rutas internas después
|
|
89
|
+
// 3. Procesar rutas internas después
|
|
66
90
|
if (this.internalRouteRegex.test(processedText)) {
|
|
67
91
|
hasLinks = true;
|
|
68
92
|
this.internalRouteRegex.lastIndex = 0; // Reset regex
|
|
69
93
|
processedText = processedText.replace(this.internalRouteRegex, (match, prefix, route) => {
|
|
70
94
|
// Solo procesar si no está ya dentro de un enlace
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return `${prefix}<a href="${route}"${target} class="${classes}">${route}</a>`;
|
|
95
|
+
const beforeMatch = processedText.substring(0, processedText.indexOf(match));
|
|
96
|
+
if (beforeMatch.includes(`href="${route}"`)) {
|
|
97
|
+
return match; // Ya está procesado
|
|
75
98
|
}
|
|
76
|
-
|
|
99
|
+
const target = openInternalInNewTab ? ' target="_blank"' : '';
|
|
100
|
+
const classes = `${linkClass} ${internalLinkClass}`.trim();
|
|
101
|
+
return `${prefix}<a href="${route}"${target} class="${classes}">${route}</a>`;
|
|
77
102
|
});
|
|
78
103
|
}
|
|
79
104
|
// Si hay enlaces, sanitizar el HTML
|
|
@@ -83,14 +108,14 @@ export class LinkProcessorService {
|
|
|
83
108
|
return text;
|
|
84
109
|
}
|
|
85
110
|
/**
|
|
86
|
-
* Detecta si un texto contiene enlaces (URLs o
|
|
111
|
+
* Detecta si un texto contiene enlaces (URLs, rutas internas o enlaces Markdown).
|
|
87
112
|
*
|
|
88
113
|
* @param text - Texto a analizar
|
|
89
114
|
* @returns true si contiene enlaces
|
|
90
115
|
*
|
|
91
116
|
* @example
|
|
92
117
|
* ```typescript
|
|
93
|
-
* const hasLinks = this.linkProcessor.hasLinks('Visit https://example.com');
|
|
118
|
+
* const hasLinks = this.linkProcessor.hasLinks('Visit https://example.com or [docs](https://docs.com)');
|
|
94
119
|
* // Returns: true
|
|
95
120
|
* ```
|
|
96
121
|
*/
|
|
@@ -100,20 +125,24 @@ export class LinkProcessorService {
|
|
|
100
125
|
// Reset regex indices
|
|
101
126
|
this.urlRegex.lastIndex = 0;
|
|
102
127
|
this.internalRouteRegex.lastIndex = 0;
|
|
103
|
-
|
|
128
|
+
this.markdownLinkRegex.lastIndex = 0;
|
|
129
|
+
return (this.urlRegex.test(text) ||
|
|
130
|
+
this.internalRouteRegex.test(text) ||
|
|
131
|
+
this.markdownLinkRegex.test(text));
|
|
104
132
|
}
|
|
105
133
|
/**
|
|
106
134
|
* Extrae todos los enlaces de un texto.
|
|
107
135
|
*
|
|
108
136
|
* @param text - Texto a analizar
|
|
109
|
-
* @returns Array de enlaces encontrados con su tipo
|
|
137
|
+
* @returns Array de enlaces encontrados con su tipo y texto (si es Markdown)
|
|
110
138
|
*
|
|
111
139
|
* @example
|
|
112
140
|
* ```typescript
|
|
113
|
-
* const links = this.linkProcessor.extractLinks('Visit https://example.com or
|
|
141
|
+
* const links = this.linkProcessor.extractLinks('Visit https://example.com, /profile, or [docs](https://docs.com)');
|
|
114
142
|
* // Returns: [
|
|
115
|
-
* // { url: 'https://example.com', type: 'external' },
|
|
116
|
-
* // { url: '/profile', type: 'internal' }
|
|
143
|
+
* // { url: 'https://example.com', type: 'external', text: 'https://example.com' },
|
|
144
|
+
* // { url: '/profile', type: 'internal', text: '/profile' },
|
|
145
|
+
* // { url: 'https://docs.com', type: 'external', text: 'docs' }
|
|
117
146
|
* // ]
|
|
118
147
|
* ```
|
|
119
148
|
*/
|
|
@@ -124,14 +153,30 @@ export class LinkProcessorService {
|
|
|
124
153
|
// Reset regex indices
|
|
125
154
|
this.urlRegex.lastIndex = 0;
|
|
126
155
|
this.internalRouteRegex.lastIndex = 0;
|
|
127
|
-
|
|
156
|
+
this.markdownLinkRegex.lastIndex = 0;
|
|
157
|
+
// Extraer enlaces Markdown primero
|
|
128
158
|
let match;
|
|
159
|
+
while ((match = this.markdownLinkRegex.exec(text)) !== null) {
|
|
160
|
+
const url = match[2];
|
|
161
|
+
const linkText = match[1];
|
|
162
|
+
const type = /^https?:\/\//.test(url) ? 'external' : 'internal';
|
|
163
|
+
links.push({ url, type, text: linkText });
|
|
164
|
+
}
|
|
165
|
+
// Extraer URLs externas directas
|
|
129
166
|
while ((match = this.urlRegex.exec(text)) !== null) {
|
|
130
|
-
|
|
167
|
+
const url = match[1];
|
|
168
|
+
// Verificar que no esté ya capturado como Markdown link
|
|
169
|
+
if (!links.some(link => link.url === url)) {
|
|
170
|
+
links.push({ url, type: 'external', text: url });
|
|
171
|
+
}
|
|
131
172
|
}
|
|
132
|
-
// Extraer rutas internas
|
|
173
|
+
// Extraer rutas internas directas
|
|
133
174
|
while ((match = this.internalRouteRegex.exec(text)) !== null) {
|
|
134
|
-
|
|
175
|
+
const url = match[2];
|
|
176
|
+
// Verificar que no esté ya capturado como Markdown link
|
|
177
|
+
if (!links.some(link => link.url === url)) {
|
|
178
|
+
links.push({ url, type: 'internal', text: url });
|
|
179
|
+
}
|
|
135
180
|
}
|
|
136
181
|
return links;
|
|
137
182
|
}
|
|
@@ -144,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
144
189
|
providedIn: 'root',
|
|
145
190
|
}]
|
|
146
191
|
}], ctorParameters: () => [{ type: i1.DomSanitizer }] });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1wcm9jZXNzb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2xpbmstcHJvY2Vzc29yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBZ0IzQzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFPL0IsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQU4zQyxrREFBa0Q7UUFDakMsYUFBUSxHQUFHLHNCQUFzQixDQUFDO1FBRW5ELGlGQUFpRjtRQUNoRSx1QkFBa0IsR0FBRyxtQkFBbUIsQ0FBQztJQUVaLENBQUM7SUFFL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FtQkc7SUFDSCxZQUFZLENBQUMsSUFBWSxFQUFFLFNBQThCLEVBQUU7UUFDekQsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUVyQixNQUFNLEVBQ0osb0JBQW9CLEdBQUcsSUFBSSxFQUMzQixvQkFBb0IsR0FBRyxLQUFLLEVBQzVCLFNBQVMsR0FBRyxnQkFBZ0IsRUFDNUIsaUJBQWlCLEdBQUcsZUFBZSxFQUNuQyxpQkFBaUIsR0FBRyxlQUFlLEdBQ3BDLEdBQUcsTUFBTSxDQUFDO1FBRVgsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQztRQUV6QixpQ0FBaUM7UUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdCLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYztZQUUzQyxhQUFhLEdB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Q0FBQztRQUNsRCxDQUFDO1FBRUQseUJBQXlCO1FBQ3pCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzdELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBeklVLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlua1Byb2Nlc3NvckNvbmZpZyB7XG4gIC8qKiBXaGV0aGVyIHRvIG9wZW4gZXh0ZXJuYWwgbGlua3MgaW4gbmV3IHRhYiAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgb3BlbkV4dGVybmFsSW5OZXdUYWI/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0byBvcGVuIGludGVybmFsIGxpbmtzIGluIG5ldyB0YWIgKGRlZmF1bHQ6IGZhbHNlKSAqL1xuICBvcGVuSW50ZXJuYWxJbk5ld1RhYj86IGJvb2xlYW47XG4gIC8qKiBDdXN0b20gQ1NTIGNsYXNzZXMgZm9yIGxpbmtzICovXG4gIGxpbmtDbGFzcz86IHN0cmluZztcbiAgLyoqIEN1c3RvbSBDU1MgY2xhc3NlcyBmb3IgZXh0ZXJuYWwgbGlua3MgKi9cbiAgZXh0ZXJuYWxMaW5rQ2xhc3M/OiBzdHJpbmc7XG4gIC8qKiBDdXN0b20gQ1NTIGNsYXNzZXMgZm9yIGludGVybmFsIGxpbmtzICovXG4gIGludGVybmFsTGlua0NsYXNzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIExpbmtQcm9jZXNzb3JTZXJ2aWNlIC0gU2VydmljZSBmb3IgcHJvY2Vzc2luZyB0ZXh0IGNvbnRlbnQgdG8gY29udmVydCBVUkxzIGFuZCBpbnRlcm5hbCByb3V0ZXMgaW50byBjbGlja2FibGUgbGlua3MuXG4gKlxuICogVGhpcyBzZXJ2aWNlIGF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBleHRlcm5hbCBVUkxzIChodHRwL2h0dHBzKSBhbmQgaW50ZXJuYWwgcm91dGVzIChzdGFydGluZyB3aXRoIC8pXG4gKiBhbmQgY29udmVydHMgdGhlbSBpbnRvIEhUTUwgYW5jaG9yIGVsZW1lbnRzIHdpdGggYXBwcm9wcmlhdGUgYXR0cmlidXRlcy5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgbGlua1Byb2Nlc3NvcjogTGlua1Byb2Nlc3NvclNlcnZpY2UpIHt9XG4gKlxuICogcHJvY2Vzc1RleHQoKSB7XG4gKiAgIGNvbnN0IHRleHQgPSAnVmlzaXQgaHR0cHM6Ly9leGFtcGxlLmNvbSBvciBnbyB0byAvcHJvZmlsZSc7XG4gKiAgIGNvbnN0IHByb2Nlc3NlZCA9IHRoaXMubGlua1Byb2Nlc3Nvci5wcm9jZXNzTGlua3ModGV4dCk7XG4gKiAgIC8vIFJldHVybnMgU2FmZUh0bWwgd2l0aCBjbGlja2FibGUgbGlua3NcbiAqIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTGlua1Byb2Nlc3NvclNlcnZpY2Uge1xuICAvLyBSZWdleCBwYXJhIGRldGVjdGFyIFVSTHMgY29tcGxldGFzIChodHRwL2h0dHBzKVxuICBwcml2YXRlIHJlYWRvbmx5IHVybFJlZ2V4ID0gLyhodHRwcz86XFwvXFwvW15cXHNdKykvZztcblxuICAvLyBSZWdleCBwYXJhIGRldGVjdGFyIHJ1dGFzIGludGVybmFzIChlbXBpZXphbiBjb24gLyBwZXJvIG5vIHNvbiBVUkxzIGNvbXBsZXRhcylcbiAgcHJpdmF0ZSByZWFkb25seSBpbnRlcm5hbFJvdXRlUmVnZXggPSAvKFxcc3xeKShcXC9bXlxcc10qKS9nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgLyoqXG4gICAqIFByb2Nlc2EgdGV4dG8gcGFyYSBjb252ZXJ0aXIgZW5sYWNlcyBlbiBlbGVtZW50b3MgPGE+IGNsaWNrZWFibGVzLlxuICAgKiBEZXRlY3RhIGF1dG9tw6F0aWNhbWVudGUgVVJMcyBleHRlcm5hcyBlIGludGVybmFzIHkgbGFzIGNvbnZpZXJ0ZSBlbiBlbmxhY2VzLlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dCAtIFRleHRvIGEgcHJvY2VzYXJcbiAgICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYWNpw7NuIGRlbCBwcm9jZXNhbWllbnRvXG4gICAqIEByZXR1cm5zIFNhZmVIdG1sIGNvbiBlbmxhY2VzIHByb2Nlc2Fkb3MgbyBzdHJpbmcgb3JpZ2luYWxcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXN1bHQgPSB0aGlzLmxpbmtQcm9jZXNzb3IucHJvY2Vzc0xpbmtzKFxuICAgKiAgICdWaXNpdCBodHRwczovL2V4YW1wbGUuY29tIG9yIC9wcm9maWxlJyxcbiAgICogICB7XG4gICAqICAgICBvcGVuRXh0ZXJuYWxJbk5ld1RhYjogdHJ1ZSxcbiAgICogICAgIG9wZW5JbnRlcm5hbEluTmV3VGFiOiBmYWxzZSxcbiAgICogICAgIGxpbmtDbGFzczogJ2N1c3RvbS1saW5rJ1xuICAgKiAgIH1cbiAgICogKTtcbiAgICogYGBgXG4gICAqL1xuICBwcm9jZXNzTGlua3ModGV4dDogc3RyaW5nLCBjb25maWc6IExpbmtQcm9jZXNzb3JDb25maWcgPSB7fSk6IFNhZmVIdG1sIHwgc3RyaW5nIHtcbiAgICBpZiAoIXRleHQpIHJldHVybiAnJztcblxuICAgIGNvbnN0IHtcbiAgICAgIG9wZW5FeHRlcm5hbEluTmV3VGFiID0gdHJ1ZSxcbiAgICAgIG9wZW5JbnRlcm5hbEluTmV3VGFiID0gZmFsc2UsXG4gICAgICBsaW5rQ2xhc3MgPSAncHJvY2Vzc2VkLWxpbmsnLFxuICAgICAgZXh0ZXJuYWxMaW5rQ2xhc3MgPSAnZXh0ZXJuYWwtbGluaycsXG4gICAgICBpbnRlcm5hbExpbmtDbGFzcyA9ICdpbnRlcm5hbC1saW5rJyxcbiAgICB9ID0gY29uZmlnO1xuXG4gICAgbGV0IGhhc0xpbmtzID0gZmFsc2U7XG4gICAgbGV0IHByb2Nlc3NlZFRleHQgPSB0ZXh0O1xuXG4gICAgLy8gUHJvY2VzYXIgVVJMcyBleHRlcm5hcyBwcmltZXJvXG4gICAgaWYgKHRoaXMudXJsUmVnZXgudGVzdCh0ZXh0KSkge1xuICAgICAgaGFzTGlua3MgPSB0cnVlO1xuICAgICAgdGhpcy51cmxSZWdleC5sYXN0SW5kZXggPSAwOyAvLyBSZXNldCByZWdleFxuXG4gICAgICBwcm9jZXNzZWRUZXh0ID0gcHJvY2Vzc2VkVGV4dC5yZXBsYWNlKHRoaXMudXJsUmVnZXgsIHVybCA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IG9wZW5FeHRlcm5hbEluTmV3VGFiID8gJyB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCInIDogJyc7XG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSBgJHtsaW5rQ2xhc3N9ICR7ZXh0ZXJuYWxMaW5rQ2xhc3N9YC50cmltKCk7XG4gICAgICAgIHJldHVybiBgPGEgaHJlZj1cIiR7dXJsfVwiJHt0YXJnZXR9IGNsYXNzPVwiJHtjbGFzc2VzfVwiPiR7dXJsfTwvYT5gO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzYXIgcnV0YXMgaW50ZXJuYXMgZGVzcHXDqXNcbiAgICBpZiAodGhpcy5pbnRlcm5hbFJvdXRlUmVnZXgudGVzdChwcm9jZXNzZWRUZXh0KSkge1xuICAgICAgaGFzTGlua3MgPSB0cnVlO1xuICAgICAgdGhpcy5pbnRlcm5hbFJvdXRlUmVnZXgubGFzdEluZGV4ID0gMDsgLy8gUmVzZXQgcmVnZXhcblxuICAgICAgcHJvY2Vzc2VkVGV4dCA9IHByb2Nlc3NlZFRleHQucmVwbGFjZSh0aGlzLmludGVybmFsUm91dGVSZWdleCwgKG1hdGNoLCBwcmVmaXgsIHJvdXRlKSA9PiB7XG4gICAgICAgIC8vIFNvbG8gcHJvY2VzYXIgc2kgbm8gZXN0w6EgeWEgZGVudHJvIGRlIHVuIGVubGFjZVxuICAgICAgICBpZiAocHJvY2Vzc2VkVGV4dC5pbmRleE9mKGBocmVmPVwiJHtyb3V0ZX1cImApID09PSAtMSkge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IG9wZW5JbnRlcm5hbEluTmV3VGFiID8gJyB0YXJnZXQ9XCJfYmxhbmtcIicgOiAnJztcbiAgICAgICAgICBjb25zdCBjbGFzc2VzID0gYCR7bGlua0NsYXNzfSAke2ludGVybmFsTGlua0NsYXNzfWAudHJpbSgpO1xuICAgICAgICAgIHJldHVybiBgJHtwcmVmaXh9PGEgaHJlZj1cIiR7cm91dGV9XCIke3RhcmdldH0gY2xhc3M9XCIke2NsYXNzZXN9XCI+JHtyb3V0ZX08L2E+YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBTaSBoYXkgZW5sYWNlcywgc2FuaXRpemFyIGVsIEhUTUxcbiAgICBpZiAoaGFzTGlua3MpIHtcbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChwcm9jZXNzZWRUZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlY3RhIHNpIHVuIHRleHRvIGNvbnRpZW5lIGVubGFjZXMgKFVSTHMgbyBydXRhcyBpbnRlcm5hcykuXG4gICAqXG4gICAqIEBwYXJhbSB0ZXh0IC0gVGV4dG8gYSBhbmFsaXphclxuICAgKiBAcmV0dXJucyB0cnVlIHNpIGNvbnRpZW5lIGVubGFjZXNcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBoYXNMaW5rcyA9IHRoaXMubGlua1Byb2Nlc3Nvci5oYXNMaW5rcygnVmlzaXQgaHR0cHM6Ly9leGFtcGxlLmNvbScpO1xuICAgKiAvLyBSZXR1cm5zOiB0cnVlXG4gICAqIGBgYFxuICAgKi9cbiAgaGFzTGlua3ModGV4dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0ZXh0KSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBSZXNldCByZWdleCBpbmRpY2VzXG4gICAgdGhpcy51cmxSZWdleC5sYXN0SW5kZXggPSAwO1xuICAgIHRoaXMuaW50ZXJuYWxSb3V0ZVJlZ2V4Lmxhc3RJbmRleCA9IDA7XG5cbiAgICByZXR1cm4gdGhpcy51cmxSZWdleC50ZXN0KHRleHQpIHx8IHRoaXMuaW50ZXJuYWxSb3V0ZVJlZ2V4LnRlc3QodGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFlIHRvZG9zIGxvcyBlbmxhY2VzIGRlIHVuIHRleHRvLlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dCAtIFRleHRvIGEgYW5hbGl6YXJcbiAgICogQHJldHVybnMgQXJyYXkgZGUgZW5sYWNlcyBlbmNvbnRyYWRvcyBjb24gc3UgdGlwb1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGxpbmtzID0gdGhpcy5saW5rUHJvY2Vzc29yLmV4dHJhY3RMaW5rcygnVmlzaXQgaHR0cHM6Ly9leGFtcGxlLmNvbSBvciAvcHJvZmlsZScpO1xuICAgKiAvLyBSZXR1cm5zOiBbXG4gICAqIC8vICAgeyB1cmw6ICdodHRwczovL2V4YW1wbGUuY29tJywgdHlwZTogJ2V4dGVybmFsJyB9LFxuICAgKiAvLyAgIHsgdXJsOiAnL3Byb2ZpbGUnLCB0eXBlOiAnaW50ZXJuYWwnIH1cbiAgICogLy8gXVxuICAgKiBgYGBcbiAgICovXG4gIGV4dHJhY3RMaW5rcyh0ZXh0OiBzdHJpbmcpOiBBcnJheTx7IHVybDogc3RyaW5nOyB0eXBlOiAnZXh0ZXJuYWwnIHwgJ2ludGVybmFsJyB9PiB7XG4gICAgaWYgKCF0ZXh0KSByZXR1cm4gW107XG5cbiAgICBjb25zdCBsaW5rczogQXJyYXk8eyB1cmw6IHN0cmluZzsgdHlwZTogJ2V4dGVybmFsJyB8ICdpbnRlcm5hbCcgfT4gPSBbXTtcblxuICAgIC8vIFJlc2V0IHJlZ2V4IGluZGljZXNcbiAgICB0aGlzLnVybFJlZ2V4Lmxhc3RJbmRleCA9IDA7XG4gICAgdGhpcy5pbnRlcm5hbFJvdXRlUmVnZXgubGFzdEluZGV4ID0gMDtcblxuICAgIC8vIEV4dHJhZXIgVVJMcyBleHRlcm5hc1xuICAgIGxldCBtYXRjaDtcbiAgICB3aGlsZSAoKG1hdGNoID0gdGhpcy51cmxSZWdleC5leGVjKHRleHQpKSAhPT0gbnVsbCkge1xuICAgICAgbGlua3MucHVzaCh7IHVybDogbWF0Y2hbMV0sIHR5cGU6ICdleHRlcm5hbCcgfSk7XG4gICAgfVxuXG4gICAgLy8gRXh0cmFlciBydXRhcyBpbnRlcm5hc1xuICAgIHdoaWxlICgobWF0Y2ggPSB0aGlzLmludGVybmFsUm91dGVSZWdleC5leGVjKHRleHQpKSAhPT0gbnVsbCkge1xuICAgICAgbGlua3MucHVzaCh7IHVybDogbWF0Y2hbMl0sIHR5cGU6ICdpbnRlcm5hbCcgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpbmtzO1xuICB9XG59XG4iXX0=
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1wcm9jZXNzb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2xpbmstcHJvY2Vzc29yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBa0IzQzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFVL0IsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQVQzQyw4RkFBOEY7UUFDN0UsYUFBUSxHQUFHLDZCQUE2QixDQUFDO1FBRTFELHNHQUFzRztRQUNyRix1QkFBa0IsR0FBRywwQkFBMEIsQ0FBQztRQUVqRSwyREFBMkQ7UUFDMUMsc0JBQWlCLEdBQUcsMEJBQTBCLENBQUM7SUFFbEIsQ0FBQztJQUUvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FvQkc7SUFDSCxZQUFZLENBQUMsSUFBWSxFQUFFLFNBQThCLEVBQUU7UUFDekQsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUVyQixNQUFNLEVBQ0osb0JBQW9CLEdBQUcsSUFBSSxFQUMzQixvQkFBb0IsR0FBRyxLQUFLLEVBQzVCLFNBQVMsR0FBRyxnQkFBZ0IsRUFDNUIsaUJBQWlCLEdBQUcsZUFBZSxFQUNuQyxpQkFBaUIsR0FBRyxlQUFlLEVBQ25DLG9CQUFvQixHQUFHLElBQUksR0FDNUIsR0FBRyxNQUFNLENBQUM7UUFFWCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBRXpCLDJEQUEyRDtRQUMzRCxJQUFJLG9CQUFvQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM5RCxRQUFRLEdB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LEVBQUUsQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDO1FBRUQsa0NBQWtDO1FBQ2xDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzdELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQix3REFBd0Q7WUFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzsrR0EvTFUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBMaW5rUHJvY2Vzc29yQ29uZmlnIHtcbiAgLyoqIFdoZXRoZXIgdG8gb3BlbiBleHRlcm5hbCBsaW5rcyBpbiBuZXcgdGFiIChkZWZhdWx0OiB0cnVlKSAqL1xuICBvcGVuRXh0ZXJuYWxJbk5ld1RhYj86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRvIG9wZW4gaW50ZXJuYWwgbGlua3MgaW4gbmV3IHRhYiAoZGVmYXVsdDogZmFsc2UpICovXG4gIG9wZW5JbnRlcm5hbEluTmV3VGFiPzogYm9vbGVhbjtcbiAgLyoqIEN1c3RvbSBDU1MgY2xhc3NlcyBmb3IgbGlua3MgKi9cbiAgbGlua0NsYXNzPzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIENTUyBjbGFzc2VzIGZvciBleHRlcm5hbCBsaW5rcyAqL1xuICBleHRlcm5hbExpbmtDbGFzcz86IHN0cmluZztcbiAgLyoqIEN1c3RvbSBDU1MgY2xhc3NlcyBmb3IgaW50ZXJuYWwgbGlua3MgKi9cbiAgaW50ZXJuYWxMaW5rQ2xhc3M/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRvIHByb2Nlc3MgTWFya2Rvd24tc3R5bGUgbGlua3MgW3RleHRdKHVybCkgKGRlZmF1bHQ6IHRydWUpICovXG4gIHByb2Nlc3NNYXJrZG93bkxpbmtzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBMaW5rUHJvY2Vzc29yU2VydmljZSAtIFNlcnZpY2UgZm9yIHByb2Nlc3NpbmcgdGV4dCBjb250ZW50IHRvIGNvbnZlcnQgVVJMcyBhbmQgaW50ZXJuYWwgcm91dGVzIGludG8gY2xpY2thYmxlIGxpbmtzLlxuICpcbiAqIFRoaXMgc2VydmljZSBhdXRvbWF0aWNhbGx5IGRldGVjdHMgZXh0ZXJuYWwgVVJMcyAoaHR0cC9odHRwcyksIGludGVybmFsIHJvdXRlcyAoc3RhcnRpbmcgd2l0aCAvKSxcbiAqIGFuZCBNYXJrZG93bi1zdHlsZSBsaW5rcyBbdGV4dF0odXJsKSBhbmQgY29udmVydHMgdGhlbSBpbnRvIEhUTUwgYW5jaG9yIGVsZW1lbnRzIHdpdGggYXBwcm9wcmlhdGUgYXR0cmlidXRlcy5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgbGlua1Byb2Nlc3NvcjogTGlua1Byb2Nlc3NvclNlcnZpY2UpIHt9XG4gKlxuICogcHJvY2Vzc1RleHQoKSB7XG4gKiAgIGNvbnN0IHRleHQgPSAnVmlzaXQgaHR0cHM6Ly9leGFtcGxlLmNvbSwgZ28gdG8gL3Byb2ZpbGUsIG9yIFtjaGVjayBkb2NzXShodHRwczovL2RvY3MuZXhhbXBsZS5jb20pJztcbiAqICAgY29uc3QgcHJvY2Vzc2VkID0gdGhpcy5saW5rUHJvY2Vzc29yLnByb2Nlc3NMaW5rcyh0ZXh0KTtcbiAqICAgLy8gUmV0dXJucyBTYWZlSHRtbCB3aXRoIGNsaWNrYWJsZSBsaW5rc1xuICogfVxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMaW5rUHJvY2Vzc29yU2VydmljZSB7XG4gIC8vIFJlZ2V4IHBhcmEgZGV0ZWN0YXIgVVJMcyBjb21wbGV0YXMgKGh0dHAvaHR0cHMpIC0gZXhjbHV5ZSBjYXJhY3RlcmVzIGRlIHB1bnR1YWNpw7NuIGFsIGZpbmFsXG4gIHByaXZhdGUgcmVhZG9ubHkgdXJsUmVnZXggPSAvKGh0dHBzPzpcXC9cXC9bXlxccyw7LiE/KCldKykvZztcblxuICAvLyBSZWdleCBwYXJhIGRldGVjdGFyIHJ1dGFzIGludGVybmFzIChlbXBpZXphbiBjb24gLyBwZXJvIG5vIHNvbiBVUkxzIGNvbXBsZXRhcykgLSBleGNsdXllIHB1bnR1YWNpw7NuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW50ZXJuYWxSb3V0ZVJlZ2V4ID0gLyhcXHN8XikoXFwvW15cXHMsOy4hPygpXSopL2c7XG5cbiAgLy8gUmVnZXggcGFyYSBkZXRlY3RhciBlbmxhY2VzIGVzdGlsbyBNYXJrZG93biBbdGV4dG9dKHVybClcbiAgcHJpdmF0ZSByZWFkb25seSBtYXJrZG93bkxpbmtSZWdleCA9IC9cXFsoW15cXF1dKylcXF1cXCgoW14pXSspXFwpL2c7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICAvKipcbiAgICogUHJvY2VzYSB0ZXh0byBwYXJhIGNvbnZlcnRpciBlbmxhY2VzIGVuIGVsZW1lbnRvcyA8YT4gY2xpY2tlYWJsZXMuXG4gICAqIERldGVjdGEgYXV0b23DoXRpY2FtZW50ZSBVUkxzIGV4dGVybmFzLCBydXRhcyBpbnRlcm5hcyB5IGVubGFjZXMgZXN0aWxvIE1hcmtkb3duLlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dCAtIFRleHRvIGEgcHJvY2VzYXJcbiAgICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYWNpw7NuIGRlbCBwcm9jZXNhbWllbnRvXG4gICAqIEByZXR1cm5zIFNhZmVIdG1sIGNvbiBlbmxhY2VzIHByb2Nlc2Fkb3MgbyBzdHJpbmcgb3JpZ2luYWxcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXN1bHQgPSB0aGlzLmxpbmtQcm9jZXNzb3IucHJvY2Vzc0xpbmtzKFxuICAgKiAgICdWaXNpdCBodHRwczovL2V4YW1wbGUuY29tLCBnbyB0byAvcHJvZmlsZSwgb3IgW2NoZWNrIGRvY3NdKGh0dHBzOi8vZG9jcy5leGFtcGxlLmNvbSknLFxuICAgKiAgIHtcbiAgICogICAgIG9wZW5FeHRlcm5hbEluTmV3VGFiOiB0cnVlLFxuICAgKiAgICAgb3BlbkludGVybmFsSW5OZXdUYWI6IGZhbHNlLFxuICAgKiAgICAgcHJvY2Vzc01hcmtkb3duTGlua3M6IHRydWUsXG4gICAqICAgICBsaW5rQ2xhc3M6ICdjdXN0b20tbGluaydcbiAgICogICB9XG4gICAqICk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHJvY2Vzc0xpbmtzKHRleHQ6IHN0cmluZywgY29uZmlnOiBMaW5rUHJvY2Vzc29yQ29uZmlnID0ge30pOiBTYWZlSHRtbCB8IHN0cmluZyB7XG4gICAgaWYgKCF0ZXh0KSByZXR1cm4gJyc7XG5cbiAgICBjb25zdCB7XG4gICAgICBvcGVuRXh0ZXJuYWxJbk5ld1RhYiA9IHRydWUsXG4gICAgICBvcGVuSW50ZXJuYWxJbk5ld1RhYiA9IGZhbHNlLFxuICAgICAgbGlua0NsYXNzID0gJ3Byb2Nlc3NlZC1saW5rJyxcbiAgICAgIGV4dGVybmFsTGlua0NsYXNzID0gJ2V4dGVybmFsLWxpbmsnLFxuICAgICAgaW50ZXJuYWxMaW5rQ2xhc3MgPSAnaW50ZXJuYWwtbGluaycsXG4gICAgICBwcm9jZXNzTWFya2Rvd25MaW5rcyA9IHRydWUsXG4gICAgfSA9IGNvbmZpZztcblxuICAgIGxldCBoYXNMaW5rcyA9IGZhbHNlO1xuICAgIGxldCBwcm9jZXNzZWRUZXh0ID0gdGV4dDtcblxuICAgIC8vIDEuIFByb2Nlc2FyIGVubGFjZXMgZXN0aWxvIE1hcmtkb3duIFt0ZXh0b10odXJsKSBwcmltZXJvXG4gICAgaWYgKHByb2Nlc3NNYXJrZG93bkxpbmtzICYmIHRoaXMubWFya2Rvd25MaW5rUmVnZXgudGVzdCh0ZXh0KSkge1xuICAgICAgaGFzTGlua3MgPSB0cnVlO1xuICAgICAgdGhpcy5tYXJrZG93bkxpbmtSZWdleC5sYXN0SW5kZXggPSAwOyAvLyBSZXNldCByZWdleFxuXG4gICAgICBwcm9jZXNzZWRUZXh0ID0gcHJvY2Vzc2VkVGV4dC5yZXBsYWNlKHRoaXMubWFya2Rvd25MaW5rUmVnZXgsIChtYXRjaCwgbGlua1RleHQsIHVybCkgPT4ge1xuICAgICAgICBjb25zdCBpc0V4dGVybmFsID0gL15odHRwcz86XFwvXFwvLy50ZXN0KHVybCk7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IChpc0V4dGVybmFsID8gb3BlbkV4dGVybmFsSW5OZXdUYWIgOiBvcGVuSW50ZXJuYWxJbk5ld1RhYilcbiAgICAgICAgICA/IGlzRXh0ZXJuYWxcbiAgICAgICAgICAgID8gJyB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCInXG4gICAgICAgICAgICA6ICcgdGFyZ2V0PVwiX2JsYW5rXCInXG4gICAgICAgICAgOiAnJztcbiAgICAgICAgY29uc3QgdHlwZUNsYXNzID0gaXNFeHRlcm5hbCA/IGV4dGVybmFsTGlua0NsYXNzIDogaW50ZXJuYWxMaW5rQ2xhc3M7XG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSBgJHtsaW5rQ2xhc3N9ICR7dHlwZUNsYXNzfWAudHJpbSgpO1xuICAgICAgICByZXR1cm4gYDxhIGhyZWY9XCIke3VybH1cIiR7dGFyZ2V0fSBjbGFzcz1cIiR7Y2xhc3Nlc31cIj4ke2xpbmtUZXh0fTwvYT5gO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gMi4gUHJvY2VzYXIgVVJMcyBleHRlcm5hcyBkaXJlY3Rhc1xuICAgIGlmICh0aGlzLnVybFJlZ2V4LnRlc3QocHJvY2Vzc2VkVGV4dCkpIHtcbiAgICAgIGhhc0xpbmtzID0gdHJ1ZTtcbiAgICAgIHRoaXMudXJsUmVnZXgubGFzdEluZGV4ID0gMDsgLy8gUmVzZXQgcmVnZXhcblxuICAgICAgcHJvY2Vzc2VkVGV4dCA9IHByb2Nlc3NlZFRleHQucmVwbGFjZSh0aGlzLnVybFJlZ2V4LCB1cmwgPT4ge1xuICAgICAgICAvLyBWZXJpZmljYXIgcXVlIG5vIGVzdMOpIHlhIGRlbnRybyBkZSB1biBlbmxhY2UgcHJvY2VzYWRvXG4gICAgICAgIGNvbnN0IGJlZm9yZU1hdGNoID0gcHJvY2Vzc2VkVGV4dC5zdWJzdHJpbmcoMCwgcHJvY2Vzc2VkVGV4dC5pbmRleE9mKHVybCkpO1xuICAgICAgICBpZiAoYmVmb3JlTWF0Y2guaW5jbHVkZXMoJzxhIGhyZWY9XCInICsgdXJsICsgJ1wiJykpIHtcbiAgICAgICAgICByZXR1cm4gdXJsOyAvLyBZYSBlc3TDoSBwcm9jZXNhZG8gY29tbyBNYXJrZG93biBsaW5rXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YXJnZXQgPSBvcGVuRXh0ZXJuYWxJbk5ld1RhYiA/ICcgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiJyA6ICcnO1xuICAgICAgICBjb25zdCBjbGFzc2VzID0gYCR7bGlua0NsYXNzfSAke2V4dGVybmFsTGlua0NsYXNzfWAudHJpbSgpO1xuICAgICAgICByZXR1cm4gYDxhIGhyZWY9XCIke3VybH1cIiR7dGFyZ2V0fSBjbGFzcz1cIiR7Y2xhc3Nlc31cIj4ke3VybH08L2E+YDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIDMuIFByb2Nlc2FyIHJ1dGFzIGludGVybmFzIGRlc3B1w6lzXG4gICAgaWYgKHRoaXMuaW50ZXJuYWxSb3V0ZVJlZ2V4LnRlc3QocHJvY2Vzc2VkVGV4dCkpIHtcbiAgICAgIGhhc0xpbmtzID0gdHJ1ZTtcbiAgICAgIHRoaXMuaW50ZXJuYWxSb3V0ZVJlZ2V4Lmxhc3RJbmRleCA9IDA7IC8vIFJlc2V0IHJlZ2V4XG5cbiAgICAgIHByb2Nlc3NlZFRleHQgPSBwcm9jZXNzZWRUZXh0LnJlcGxhY2UodGhpcy5pbnRlcm5hbFJvdXRlUmVnZXgsIChtYXRjaCwgcHJlZml4LCByb3V0ZSkgPT4ge1xuICAgICAgICAvLyBTb2xvIHByb2Nlc2FyIHNpIG5vIGVzdMOhIHlhIGRlbnRybyBkZSB1biBlbmxhY2VcbiAgICAgICAgY29uc3QgYmVmb3JlTWF0Y2ggPSBwcm9jZXNzZWRUZXh0LnN1YnN0cmluZygwLCBwcm9jZXNzZWRUZXh0LmluZGV4T2YobWF0Y2gpKTtcbiAgICAgICAgaWYgKGJlZm9yZU1hdGNoLmluY2x1ZGVzKGBocmVmPVwiJHtyb3V0ZX1cImApKSB7XG4gICAgICAgICAgcmV0dXJuIG1hdGNoOyAvLyBZYSBlc3TDoSBwcm9jZXNhZG9cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IG9wZW5JbnRlcm5hbEluTmV3VGFiID8gJyB0YXJnZXQ9XCJfYmxhbmtcIicgOiAnJztcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGAke2xpbmtDbGFzc30gJHtpbnRlcm5hbExpbmtDbGFzc31gLnRyaW0oKTtcbiAgICAgICAgcmV0dXJuIGAke3ByZWZpeH08YSBocmVmPVwiJHtyb3V0ZX1cIiR7dGFyZ2V0fSBjbGFzcz1cIiR7Y2xhc3Nlc31cIj4ke3JvdXRlfTwvYT5gO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gU2kgaGF5IGVubGFjZXMsIHNhbml0aXphciBlbCBIVE1MXG4gICAgaWYgKGhhc0xpbmtzKSB7XG4gICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocHJvY2Vzc2VkVGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZWN0YSBzaSB1biB0ZXh0byBjb250aWVuZSBlbmxhY2VzIChVUkxzLCBydXRhcyBpbnRlcm5hcyBvIGVubGFjZXMgTWFya2Rvd24pLlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dCAtIFRleHRvIGEgYW5hbGl6YXJcbiAgICogQHJldHVybnMgdHJ1ZSBzaSBjb250aWVuZSBlbmxhY2VzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgaGFzTGlua3MgPSB0aGlzLmxpbmtQcm9jZXNzb3IuaGFzTGlua3MoJ1Zpc2l0IGh0dHBzOi8vZXhhbXBsZS5jb20gb3IgW2RvY3NdKGh0dHBzOi8vZG9jcy5jb20pJyk7XG4gICAqIC8vIFJldHVybnM6IHRydWVcbiAgICogYGBgXG4gICAqL1xuICBoYXNMaW5rcyh0ZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRleHQpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIFJlc2V0IHJlZ2V4IGluZGljZXNcbiAgICB0aGlzLnVybFJlZ2V4Lmxhc3RJbmRleCA9IDA7XG4gICAgdGhpcy5pbnRlcm5hbFJvdXRlUmVnZXgubGFzdEluZGV4ID0gMDtcbiAgICB0aGlzLm1hcmtkb3duTGlua1JlZ2V4Lmxhc3RJbmRleCA9IDA7XG5cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy51cmxSZWdleC50ZXN0KHRleHQpIHx8XG4gICAgICB0aGlzLmludGVybmFsUm91dGVSZWdleC50ZXN0KHRleHQpIHx8XG4gICAgICB0aGlzLm1hcmtkb3duTGlua1JlZ2V4LnRlc3QodGV4dClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhZSB0b2RvcyBsb3MgZW5sYWNlcyBkZSB1biB0ZXh0by5cbiAgICpcbiAgICogQHBhcmFtIHRleHQgLSBUZXh0byBhIGFuYWxpemFyXG4gICAqIEByZXR1cm5zIEFycmF5IGRlIGVubGFjZXMgZW5jb250cmFkb3MgY29uIHN1IHRpcG8geSB0ZXh0byAoc2kgZXMgTWFya2Rvd24pXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgbGlua3MgPSB0aGlzLmxpbmtQcm9jZXNzb3IuZXh0cmFjdExpbmtzKCdWaXNpdCBodHRwczovL2V4YW1wbGUuY29tLCAvcHJvZmlsZSwgb3IgW2RvY3NdKGh0dHBzOi8vZG9jcy5jb20pJyk7XG4gICAqIC8vIFJldHVybnM6IFtcbiAgICogLy8gICB7IHVybDogJ2h0dHBzOi8vZXhhbXBsZS5jb20nLCB0eXBlOiAnZXh0ZXJuYWwnLCB0ZXh0OiAnaHR0cHM6Ly9leGFtcGxlLmNvbScgfSxcbiAgICogLy8gICB7IHVybDogJy9wcm9maWxlJywgdHlwZTogJ2ludGVybmFsJywgdGV4dDogJy9wcm9maWxlJyB9LFxuICAgKiAvLyAgIHsgdXJsOiAnaHR0cHM6Ly9kb2NzLmNvbScsIHR5cGU6ICdleHRlcm5hbCcsIHRleHQ6ICdkb2NzJyB9XG4gICAqIC8vIF1cbiAgICogYGBgXG4gICAqL1xuICBleHRyYWN0TGlua3ModGV4dDogc3RyaW5nKTogQXJyYXk8eyB1cmw6IHN0cmluZzsgdHlwZTogJ2V4dGVybmFsJyB8ICdpbnRlcm5hbCc7IHRleHQ6IHN0cmluZyB9PiB7XG4gICAgaWYgKCF0ZXh0KSByZXR1cm4gW107XG5cbiAgICBjb25zdCBsaW5rczogQXJyYXk8eyB1cmw6IHN0cmluZzsgdHlwZTogJ2V4dGVybmFsJyB8ICdpbnRlcm5hbCc7IHRleHQ6IHN0cmluZyB9PiA9IFtdO1xuXG4gICAgLy8gUmVzZXQgcmVnZXggaW5kaWNlc1xuICAgIHRoaXMudXJsUmVnZXgubGFzdEluZGV4ID0gMDtcbiAgICB0aGlzLmludGVybmFsUm91dGVSZWdleC5sYXN0SW5kZXggPSAwO1xuICAgIHRoaXMubWFya2Rvd25MaW5rUmVnZXgubGFzdEluZGV4ID0gMDtcblxuICAgIC8vIEV4dHJhZXIgZW5sYWNlcyBNYXJrZG93biBwcmltZXJvXG4gICAgbGV0IG1hdGNoO1xuICAgIHdoaWxlICgobWF0Y2ggPSB0aGlzLm1hcmtkb3duTGlua1JlZ2V4LmV4ZWModGV4dCkpICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB1cmwgPSBtYXRjaFsyXTtcbiAgICAgIGNvbnN0IGxpbmtUZXh0ID0gbWF0Y2hbMV07XG4gICAgICBjb25zdCB0eXBlID0gL15odHRwcz86XFwvXFwvLy50ZXN0KHVybCkgPyAnZXh0ZXJuYWwnIDogJ2ludGVybmFsJztcbiAgICAgIGxpbmtzLnB1c2goeyB1cmwsIHR5cGUsIHRleHQ6IGxpbmtUZXh0IH0pO1xuICAgIH1cblxuICAgIC8vIEV4dHJhZXIgVVJMcyBleHRlcm5hcyBkaXJlY3Rhc1xuICAgIHdoaWxlICgobWF0Y2ggPSB0aGlzLnVybFJlZ2V4LmV4ZWModGV4dCkpICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB1cmwgPSBtYXRjaFsxXTtcbiAgICAgIC8vIFZlcmlmaWNhciBxdWUgbm8gZXN0w6kgeWEgY2FwdHVyYWRvIGNvbW8gTWFya2Rvd24gbGlua1xuICAgICAgaWYgKCFsaW5rcy5zb21lKGxpbmsgPT4gbGluay51cmwgPT09IHVybCkpIHtcbiAgICAgICAgbGlua3MucHVzaCh7IHVybCwgdHlwZTogJ2V4dGVybmFsJywgdGV4dDogdXJsIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4dHJhZXIgcnV0YXMgaW50ZXJuYXMgZGlyZWN0YXNcbiAgICB3aGlsZSAoKG1hdGNoID0gdGhpcy5pbnRlcm5hbFJvdXRlUmVnZXguZXhlYyh0ZXh0KSkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHVybCA9IG1hdGNoWzJdO1xuICAgICAgLy8gVmVyaWZpY2FyIHF1ZSBubyBlc3TDqSB5YSBjYXB0dXJhZG8gY29tbyBNYXJrZG93biBsaW5rXG4gICAgICBpZiAoIWxpbmtzLnNvbWUobGluayA9PiBsaW5rLnVybCA9PT0gdXJsKSkge1xuICAgICAgICBsaW5rcy5wdXNoKHsgdXJsLCB0eXBlOiAnaW50ZXJuYWwnLCB0ZXh0OiB1cmwgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpbmtzO1xuICB9XG59XG4iXX0=
|