@testgorilla/tgo-ui 3.10.13 → 3.10.14
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 +103 -103
- package/components/confirm-dialog/confirm-dialog.component.d.ts +5 -3
- package/components/confirm-dialog/confirm-dialog.model.d.ts +30 -2
- package/components/dialog/dialog.component.d.ts +3 -2
- package/components/dialog/dialog.model.d.ts +2 -2
- package/components/dialog/dialog.service.d.ts +5 -2
- package/esm2022/components/ai-feedback/ai-feedback.component.mjs +3 -3
- package/esm2022/components/ai-feedback/ai-feedback.model.mjs +1 -1
- package/esm2022/components/ai-feedback/ai-feedback.module.mjs +1 -1
- package/esm2022/components/alert-banner/alert-banner.component.mjs +1 -1
- package/esm2022/components/card/card.component.mjs +3 -3
- package/esm2022/components/checklist/checklist.component.mjs +3 -3
- package/esm2022/components/checklist/checklist.model.mjs +1 -1
- package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +10 -3
- package/esm2022/components/confirm-dialog/confirm-dialog.model.mjs +1 -1
- package/esm2022/components/datepicker/datepicker.component.mjs +3 -3
- package/esm2022/components/dialog/dialog.component.mjs +5 -4
- package/esm2022/components/dialog/dialog.model.mjs +1 -1
- package/esm2022/components/dialog/dialog.service.mjs +1 -1
- package/esm2022/components/empty-state/empty-state.model.mjs +1 -1
- package/esm2022/components/field/field.component.mjs +1 -1
- package/esm2022/components/file-upload/file-upload.component.mjs +3 -3
- package/esm2022/components/gaussian-chart/gaussian-chart.component.mjs +3 -3
- package/esm2022/components/icon/icon.config.mjs +1 -1
- package/esm2022/components/icon-label/icon-label.component.mjs +1 -1
- package/esm2022/components/multi-input/multi-input.component.mjs +1 -1
- package/esm2022/components/progress-bar/progress-bar.component.mjs +1 -1
- package/esm2022/components/selectable-card/selectable-card.component.mjs +3 -3
- package/esm2022/components/selectable-card/selectable-card.component.module.mjs +1 -1
- package/esm2022/components/side-panel/side-panel.animations.mjs +1 -1
- package/esm2022/components/side-panel/side-panel.component.mjs +3 -3
- package/esm2022/components/side-panel/side-panel.model.mjs +1 -1
- package/esm2022/components/side-panel/side-panel.service.mjs +1 -1
- package/esm2022/pipes/ui-translate.pipe.mjs +1 -1
- package/esm2022/public-api.mjs +4 -4
- package/fesm2022/testgorilla-tgo-ui.mjs +28 -20
- package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/projects/tgo-canopy-ui/assets/i18n/en.json +821 -821
- package/projects/tgo-canopy-ui/assets/icons/Switch-tab.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Credit-card-filled.svg +10 -10
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Credit-card-in-line.svg +10 -10
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Credit-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Credit-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Invoice-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Invoice-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Messages-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Open-in-new-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Open-in-new-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Open-lock-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Open-lock-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Switch-tab-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Switch-tab-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Thumb-down-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Thumb-down-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Thumb-up-filled.svg +3 -3
- package/projects/tgo-canopy-ui/assets/icons/rebrand/Thumb-up-in-line.svg +3 -3
- package/projects/tgo-canopy-ui/theme/_input.scss +575 -575
- package/public-api.d.ts +3 -3
package/README.md
CHANGED
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
# TestGorilla UI Library
|
|
2
|
-
|
|
3
|
-
# Test app
|
|
4
|
-
|
|
5
|
-
To see the updates of the library in the client app, use commands below from package.json
|
|
6
|
-
|
|
7
|
-
- build the updated version of canopy-ui with `build:tgo-ui (ng build tgo-ui)`
|
|
8
|
-
- restart the client app with `start:client (ng serve)`
|
|
9
|
-
|
|
10
|
-
# Foundations
|
|
11
|
-
|
|
12
|
-
- Typography
|
|
13
|
-
- Colors
|
|
14
|
-
|
|
15
|
-
# Components
|
|
16
|
-
|
|
17
|
-
- Alert Bars
|
|
18
|
-
- Alert Banner
|
|
19
|
-
- Banner Actions
|
|
20
|
-
- Snackbar
|
|
21
|
-
- Button
|
|
22
|
-
- Elevation Shadow
|
|
23
|
-
- Dialog
|
|
24
|
-
- Confirm Dialog
|
|
25
|
-
- Custom Dialog
|
|
26
|
-
- File Upload
|
|
27
|
-
- Forms
|
|
28
|
-
- Checkbox
|
|
29
|
-
- Datepicker
|
|
30
|
-
- Dropdown
|
|
31
|
-
- Input Field
|
|
32
|
-
- Radio
|
|
33
|
-
- Icon
|
|
34
|
-
- Icon + Label
|
|
35
|
-
- Logo
|
|
36
|
-
- Overflow Menu
|
|
37
|
-
- Progress Bar
|
|
38
|
-
- Tag
|
|
39
|
-
- Tooltip
|
|
40
|
-
|
|
41
|
-
# Deprecated
|
|
42
|
-
|
|
43
|
-
- Card
|
|
44
|
-
- Create Account
|
|
45
|
-
- Create Password
|
|
46
|
-
- Forgot Password
|
|
47
|
-
- Label
|
|
48
|
-
- Login
|
|
49
|
-
- NavBar
|
|
50
|
-
- Navigation
|
|
51
|
-
- Paginator
|
|
52
|
-
- Table
|
|
53
|
-
|
|
54
|
-
## Visual Regression Testing
|
|
55
|
-
|
|
56
|
-
The project uses **Playwright** for visual regression testing to ensure UI components maintain their visual appearance across changes. Visual tests automatically capture screenshots of all Storybook stories and compare them against stored snapshots.
|
|
57
|
-
|
|
58
|
-
### Commands
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
# Run visual tests
|
|
62
|
-
npm run visual-test
|
|
63
|
-
|
|
64
|
-
# Update snapshots when visual changes are intentional
|
|
65
|
-
npm run visual-test:update-snapshots
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### How It Works
|
|
69
|
-
|
|
70
|
-
1. **Build Phase**: Storybook is built (`npm run build-storybook`) creating static files
|
|
71
|
-
2. **Docker Execution**: Tests run in a Linux container using `mcr.microsoft.com/playwright:v1.46.1` for consistency
|
|
72
|
-
3. **Server Setup**: HTTP server serves Storybook static files on port 4200
|
|
73
|
-
4. **Test Execution**: Automatically discovers and tests all stories from Storybook's `index.json`
|
|
74
|
-
5. **Screenshot Comparison**: Compares current screenshots against stored snapshots
|
|
75
|
-
|
|
76
|
-
### Docker Configuration
|
|
77
|
-
|
|
78
|
-
The system uses Docker Compose with two services:
|
|
79
|
-
|
|
80
|
-
- **visual-tests**: Runs tests and compares with existing snapshots
|
|
81
|
-
- **update-snapshots**: Updates snapshots when visual changes are expected
|
|
82
|
-
|
|
83
|
-
Both services:
|
|
84
|
-
- Use official Microsoft Playwright image (`mcr.microsoft.com/playwright:v1.46.1`)
|
|
85
|
-
- Mount project directory and install dependencies
|
|
86
|
-
- Start HTTP server and wait for Storybook availability
|
|
87
|
-
- Execute tests with Desktop Chrome viewport (1920x1200, 2x device scale)
|
|
88
|
-
|
|
89
|
-
### Cross-Platform Consistency
|
|
90
|
-
|
|
91
|
-
Visual tests run in Docker to ensure:
|
|
92
|
-
- Consistent font rendering across operating systems
|
|
93
|
-
- Identical browser behavior regardless of host OS
|
|
94
|
-
- Reproducible results in CI/CD environments
|
|
95
|
-
- Linux-based snapshots that match production environments
|
|
96
|
-
|
|
97
|
-
### Troubleshooting
|
|
98
|
-
|
|
99
|
-
- **Tests failing locally**: Run `npm run visual-test:update-snapshots` if changes are intentional
|
|
100
|
-
- **Font rendering differences**: Always use Docker commands for consistency
|
|
101
|
-
- **Timeout issues**: Server waits up to 60 seconds for Storybook to be ready
|
|
102
|
-
- **Memory issues**: Docker services configured with 4GB heap size
|
|
103
|
-
|
|
1
|
+
# TestGorilla UI Library
|
|
2
|
+
|
|
3
|
+
# Test app
|
|
4
|
+
|
|
5
|
+
To see the updates of the library in the client app, use commands below from package.json
|
|
6
|
+
|
|
7
|
+
- build the updated version of canopy-ui with `build:tgo-ui (ng build tgo-ui)`
|
|
8
|
+
- restart the client app with `start:client (ng serve)`
|
|
9
|
+
|
|
10
|
+
# Foundations
|
|
11
|
+
|
|
12
|
+
- Typography
|
|
13
|
+
- Colors
|
|
14
|
+
|
|
15
|
+
# Components
|
|
16
|
+
|
|
17
|
+
- Alert Bars
|
|
18
|
+
- Alert Banner
|
|
19
|
+
- Banner Actions
|
|
20
|
+
- Snackbar
|
|
21
|
+
- Button
|
|
22
|
+
- Elevation Shadow
|
|
23
|
+
- Dialog
|
|
24
|
+
- Confirm Dialog
|
|
25
|
+
- Custom Dialog
|
|
26
|
+
- File Upload
|
|
27
|
+
- Forms
|
|
28
|
+
- Checkbox
|
|
29
|
+
- Datepicker
|
|
30
|
+
- Dropdown
|
|
31
|
+
- Input Field
|
|
32
|
+
- Radio
|
|
33
|
+
- Icon
|
|
34
|
+
- Icon + Label
|
|
35
|
+
- Logo
|
|
36
|
+
- Overflow Menu
|
|
37
|
+
- Progress Bar
|
|
38
|
+
- Tag
|
|
39
|
+
- Tooltip
|
|
40
|
+
|
|
41
|
+
# Deprecated
|
|
42
|
+
|
|
43
|
+
- Card
|
|
44
|
+
- Create Account
|
|
45
|
+
- Create Password
|
|
46
|
+
- Forgot Password
|
|
47
|
+
- Label
|
|
48
|
+
- Login
|
|
49
|
+
- NavBar
|
|
50
|
+
- Navigation
|
|
51
|
+
- Paginator
|
|
52
|
+
- Table
|
|
53
|
+
|
|
54
|
+
## Visual Regression Testing
|
|
55
|
+
|
|
56
|
+
The project uses **Playwright** for visual regression testing to ensure UI components maintain their visual appearance across changes. Visual tests automatically capture screenshots of all Storybook stories and compare them against stored snapshots.
|
|
57
|
+
|
|
58
|
+
### Commands
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Run visual tests
|
|
62
|
+
npm run visual-test
|
|
63
|
+
|
|
64
|
+
# Update snapshots when visual changes are intentional
|
|
65
|
+
npm run visual-test:update-snapshots
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### How It Works
|
|
69
|
+
|
|
70
|
+
1. **Build Phase**: Storybook is built (`npm run build-storybook`) creating static files
|
|
71
|
+
2. **Docker Execution**: Tests run in a Linux container using `mcr.microsoft.com/playwright:v1.46.1` for consistency
|
|
72
|
+
3. **Server Setup**: HTTP server serves Storybook static files on port 4200
|
|
73
|
+
4. **Test Execution**: Automatically discovers and tests all stories from Storybook's `index.json`
|
|
74
|
+
5. **Screenshot Comparison**: Compares current screenshots against stored snapshots
|
|
75
|
+
|
|
76
|
+
### Docker Configuration
|
|
77
|
+
|
|
78
|
+
The system uses Docker Compose with two services:
|
|
79
|
+
|
|
80
|
+
- **visual-tests**: Runs tests and compares with existing snapshots
|
|
81
|
+
- **update-snapshots**: Updates snapshots when visual changes are expected
|
|
82
|
+
|
|
83
|
+
Both services:
|
|
84
|
+
- Use official Microsoft Playwright image (`mcr.microsoft.com/playwright:v1.46.1`)
|
|
85
|
+
- Mount project directory and install dependencies
|
|
86
|
+
- Start HTTP server and wait for Storybook availability
|
|
87
|
+
- Execute tests with Desktop Chrome viewport (1920x1200, 2x device scale)
|
|
88
|
+
|
|
89
|
+
### Cross-Platform Consistency
|
|
90
|
+
|
|
91
|
+
Visual tests run in Docker to ensure:
|
|
92
|
+
- Consistent font rendering across operating systems
|
|
93
|
+
- Identical browser behavior regardless of host OS
|
|
94
|
+
- Reproducible results in CI/CD environments
|
|
95
|
+
- Linux-based snapshots that match production environments
|
|
96
|
+
|
|
97
|
+
### Troubleshooting
|
|
98
|
+
|
|
99
|
+
- **Tests failing locally**: Run `npm run visual-test:update-snapshots` if changes are intentional
|
|
100
|
+
- **Font rendering differences**: Always use Docker commands for consistency
|
|
101
|
+
- **Timeout issues**: Server waits up to 60 seconds for Storybook to be ready
|
|
102
|
+
- **Memory issues**: Docker services configured with 4GB heap size
|
|
103
|
+
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { MatDialogRef } from '@angular/material/dialog';
|
|
2
2
|
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
3
3
|
import { ApplicationTheme } from '../../models/application-theme.model';
|
|
4
|
-
import {
|
|
5
|
-
import { ButtonColor } from '../button/button.model';
|
|
4
|
+
import { ButtonColor, ButtonIconPosition } from '../button/button.model';
|
|
6
5
|
import { IconName } from '../icon/icon.model';
|
|
6
|
+
import { ConfirmDialogData } from './confirm-dialog.model';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class ConfirmDialogComponent {
|
|
9
9
|
private readonly defaultAppTheme;
|
|
10
10
|
dialogRef: MatDialogRef<ConfirmDialogComponent>;
|
|
11
11
|
private data;
|
|
12
12
|
protected domSanitizer: DomSanitizer;
|
|
13
|
-
confirmMessage: string;
|
|
13
|
+
confirmMessage: string | undefined;
|
|
14
14
|
confirmButtonText: string | undefined;
|
|
15
15
|
cancelButtonText: string | undefined;
|
|
16
16
|
title: string | undefined;
|
|
@@ -24,6 +24,7 @@ export declare class ConfirmDialogComponent {
|
|
|
24
24
|
primaryButtonIconName: IconName | undefined;
|
|
25
25
|
primaryButtonDataTestId: string;
|
|
26
26
|
secondaryButtonDataTestId: string;
|
|
27
|
+
primaryButtonIconPosition: ButtonIconPosition;
|
|
27
28
|
/**
|
|
28
29
|
*
|
|
29
30
|
* Defines the application theme
|
|
@@ -33,6 +34,7 @@ export declare class ConfirmDialogComponent {
|
|
|
33
34
|
*/
|
|
34
35
|
applicationTheme: ApplicationTheme;
|
|
35
36
|
constructor(defaultAppTheme: ApplicationTheme, dialogRef: MatDialogRef<ConfirmDialogComponent>, data: ConfirmDialogData, domSanitizer: DomSanitizer);
|
|
37
|
+
onConfirm(): void;
|
|
36
38
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDialogComponent, [{ optional: true; }, null, null, null]>;
|
|
37
39
|
static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmDialogComponent, "ui-confirm-dialog", never, { "applicationTheme": { "alias": "applicationTheme"; "required": false; }; }, {}, never, never, false, never>;
|
|
38
40
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Language } from '../../utils/localization/language.model';
|
|
2
|
-
import { ButtonColor } from '../button/button.model';
|
|
2
|
+
import { ButtonColor, ButtonIconPosition } from '../button/button.model';
|
|
3
3
|
import { IconName } from '../icon/icon.model';
|
|
4
4
|
export interface ConfirmDialogData {
|
|
5
|
-
message
|
|
5
|
+
message?: string;
|
|
6
6
|
confirmButtonText?: string;
|
|
7
7
|
cancelButtonText?: string;
|
|
8
8
|
title?: string;
|
|
@@ -12,8 +12,36 @@ export interface ConfirmDialogData {
|
|
|
12
12
|
showCloseButton?: boolean;
|
|
13
13
|
showSecondaryButton?: boolean;
|
|
14
14
|
primaryButtonType?: ButtonColor;
|
|
15
|
+
primaryButtonIconPosition?: ButtonIconPosition;
|
|
15
16
|
secondaryButtonType?: ButtonColor;
|
|
16
17
|
primaryButtonIconName?: IconName;
|
|
17
18
|
primaryButtonDataTestId?: string;
|
|
18
19
|
secondaryButtonDataTestId?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Callback function executed when the primary/confirm button is clicked.
|
|
22
|
+
*
|
|
23
|
+
* This callback is executed immediately before the dialog closes, within the same
|
|
24
|
+
* user gesture context. This is crucial for operations that may trigger popup blockers
|
|
25
|
+
* in restrictive browsers, such as:
|
|
26
|
+
* - Opening new tabs/windows (window.open)
|
|
27
|
+
* - Triggering file downloads
|
|
28
|
+
* - Navigating to external URLs
|
|
29
|
+
* - Accessing clipboard operations
|
|
30
|
+
*
|
|
31
|
+
* **Important**: Use this instead of subscribing to `afterClosed()` for popup-sensitive
|
|
32
|
+
* operations, as `afterClosed()` executes outside the user gesture context and will
|
|
33
|
+
* be blocked by popup blockers in most modern browsers.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* // ✅ Good - executes within user gesture, won't be blocked
|
|
38
|
+
* onConfirm: () => window.open('https://example.com', '_blank')
|
|
39
|
+
*
|
|
40
|
+
* // ❌ Bad - executes outside user gesture, could be blocked
|
|
41
|
+
* dialogRef.afterClosed().subscribe(result => {
|
|
42
|
+
* if (result) window.open('https://example.com', '_blank');
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
onConfirm?: () => void;
|
|
19
47
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AfterViewInit, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { MatDialogRef } from '@angular/material/dialog';
|
|
3
|
-
import { ButtonColor } from '../button/button.model';
|
|
4
3
|
import { ApplicationTheme } from '../../models/application-theme.model';
|
|
5
4
|
import { ButtonComponent } from '../button/button.component';
|
|
5
|
+
import { ButtonColor, ButtonIconPosition } from '../button/button.model';
|
|
6
6
|
import { IconName } from '../icon/icon.model';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class DialogComponent implements OnInit, OnChanges, AfterViewInit {
|
|
@@ -136,6 +136,7 @@ export declare class DialogComponent implements OnInit, OnChanges, AfterViewInit
|
|
|
136
136
|
* @memberof DialogComponent
|
|
137
137
|
*/
|
|
138
138
|
keyboardOpen: boolean;
|
|
139
|
+
primaryButtonIconPosition: import("@angular/core").InputSignal<ButtonIconPosition>;
|
|
139
140
|
closeEvent: EventEmitter<Event>;
|
|
140
141
|
secondaryButtonClickEvent: EventEmitter<Event>;
|
|
141
142
|
primaryButtonClickEvent: EventEmitter<Event>;
|
|
@@ -158,5 +159,5 @@ export declare class DialogComponent implements OnInit, OnChanges, AfterViewInit
|
|
|
158
159
|
onSecondaryButtonClick(event: Event): void;
|
|
159
160
|
onPrimaryButtonClick(event: Event): void;
|
|
160
161
|
static ɵfac: i0.ɵɵFactoryDeclaration<DialogComponent, [{ optional: true; }, null, null]>;
|
|
161
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DialogComponent, "ui-dialog", never, { "title": { "alias": "title"; "required": false; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; }; "canCloseFn": { "alias": "canCloseFn"; "required": false; }; "secondaryButtonLabel": { "alias": "secondaryButtonLabel"; "required": false; }; "footerMessage": { "alias": "footerMessage"; "required": false; }; "primaryButtonLabel": { "alias": "primaryButtonLabel"; "required": false; }; "primaryButtonIconName": { "alias": "primaryButtonIconName"; "required": false; }; "secondaryButtonType": { "alias": "secondaryButtonType"; "required": false; }; "primaryButtonType": { "alias": "primaryButtonType"; "required": false; }; "primaryButtonDataTestId": { "alias": "primaryButtonDataTestId"; "required": false; }; "secondaryButtonDataTestId": { "alias": "secondaryButtonDataTestId"; "required": false; }; "companyColor": { "alias": "companyColor"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "disablePrimaryButton": { "alias": "disablePrimaryButton"; "required": false; }; "disableClose": { "alias": "disableClose"; "required": false; }; "shouldDisableButtons": { "alias": "shouldDisableButtons"; "required": false; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; "keyboardOpen": { "alias": "keyboardOpen"; "required": false; }; }, { "closeEvent": "closeEvent"; "secondaryButtonClickEvent": "secondaryButtonClickEvent"; "primaryButtonClickEvent": "primaryButtonClickEvent"; }, ["customHeader"], ["[dialogHeader]", "*"], false, never>;
|
|
162
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DialogComponent, "ui-dialog", never, { "title": { "alias": "title"; "required": false; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; }; "canCloseFn": { "alias": "canCloseFn"; "required": false; }; "secondaryButtonLabel": { "alias": "secondaryButtonLabel"; "required": false; }; "footerMessage": { "alias": "footerMessage"; "required": false; }; "primaryButtonLabel": { "alias": "primaryButtonLabel"; "required": false; }; "primaryButtonIconName": { "alias": "primaryButtonIconName"; "required": false; }; "secondaryButtonType": { "alias": "secondaryButtonType"; "required": false; }; "primaryButtonType": { "alias": "primaryButtonType"; "required": false; }; "primaryButtonDataTestId": { "alias": "primaryButtonDataTestId"; "required": false; }; "secondaryButtonDataTestId": { "alias": "secondaryButtonDataTestId"; "required": false; }; "companyColor": { "alias": "companyColor"; "required": false; }; "applicationTheme": { "alias": "applicationTheme"; "required": false; }; "disablePrimaryButton": { "alias": "disablePrimaryButton"; "required": false; }; "disableClose": { "alias": "disableClose"; "required": false; }; "shouldDisableButtons": { "alias": "shouldDisableButtons"; "required": false; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; "keyboardOpen": { "alias": "keyboardOpen"; "required": false; }; "primaryButtonIconPosition": { "alias": "primaryButtonIconPosition"; "required": false; "isSignal": true; }; }, { "closeEvent": "closeEvent"; "secondaryButtonClickEvent": "secondaryButtonClickEvent"; "primaryButtonClickEvent": "primaryButtonClickEvent"; }, ["customHeader"], ["[dialogHeader]", "*"], false, never>;
|
|
162
163
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { DialogSize } from "./dialog.service";
|
|
2
2
|
import { MatDialogConfig } from "@angular/material/dialog";
|
|
3
3
|
import { ApplicationTheme } from '../../models/application-theme.model';
|
|
4
|
-
export interface DialogConfig {
|
|
4
|
+
export interface DialogConfig<T = any> {
|
|
5
5
|
applicationTheme?: ApplicationTheme;
|
|
6
6
|
size?: DialogSize;
|
|
7
7
|
panelClass?: string;
|
|
8
|
-
extraData?:
|
|
8
|
+
extraData?: T;
|
|
9
9
|
backdropClass?: string;
|
|
10
10
|
keyboardOpen?: boolean;
|
|
11
11
|
config?: MatDialogConfig;
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { ComponentType } from '@angular/cdk/portal';
|
|
2
2
|
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
|
3
3
|
import { ApplicationTheme } from '../../models/application-theme.model';
|
|
4
|
-
import {
|
|
4
|
+
import type { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';
|
|
5
|
+
import type { ConfirmDialogData } from '../confirm-dialog/confirm-dialog.model';
|
|
6
|
+
import { DialogConfig } from './dialog.model';
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
8
|
export type DialogSize = 'small' | 'large' | 'x-large';
|
|
7
9
|
export declare class DialogService {
|
|
8
10
|
private matDialog;
|
|
9
11
|
private readonly defaultAppTheme;
|
|
10
12
|
constructor(matDialog: MatDialog, defaultAppTheme: ApplicationTheme);
|
|
11
|
-
open(dialogComponent: ComponentType<
|
|
13
|
+
open(dialogComponent: ComponentType<ConfirmDialogComponent>, dialogConfig?: DialogConfig<ConfirmDialogData>): MatDialogRef<ConfirmDialogComponent>;
|
|
14
|
+
open<K, T>(dialogComponent: Exclude<ComponentType<T>, ComponentType<ConfirmDialogComponent>>, dialogConfig?: DialogConfig<K>): MatDialogRef<T>;
|
|
12
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, [null, { optional: true; }]>;
|
|
13
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
|
|
14
17
|
}
|
|
@@ -20,11 +20,11 @@ export class AiFeedbackComponent {
|
|
|
20
20
|
this.selectedValue.emit(this.selected());
|
|
21
21
|
}
|
|
22
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AiFeedbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AiFeedbackComponent, selector: "ui-ai-feedback", inputs: { selection: "selection", tooltipPosition: "tooltipPosition" }, outputs: { selectedValue: "selectedValue" }, ngImport: i0, template: "<div class=\"ai-feedback\" [attr.aria-label]=\"'AI_FEEDBACK.TITLE' | uiTranslate\">\n <span>{{ 'AI_FEEDBACK.TITLE' | uiTranslate | async}}</span>\n <div class=\"ai-feedback-buttons\">\n @if(selected() !== optionNo) {\n <ui-button\n [justIcon]=\"true\"\n [iconName]=\"'Thumb-up-in-line'\"\n [size]=\"'small'\"\n [tooltipPosition]=\"tooltipPosition\"\n [tooltip]=\"('COMMON.YES' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.YES' | uiTranslate | async)!\"\n [iconFilled]=\"selected() === optionYes\"\n (buttonClickEvent)=\"onSelectionChange(optionYes)\"\n variant=\"icon-button\"\n role=\"button\"\n ></ui-button>\n }\n\n @if(selected() !== optionYes) {\n <ui-button\n [justIcon]=\"true\"\n [iconName]=\"'Thumb-down-in-line'\"\n [iconFilled]=\"selected() === optionNo\"\n [tooltip]=\"('COMMON.NO' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.NO' | uiTranslate | async)!\"\n [size]=\"'small'\"\n (buttonClickEvent)=\"onSelectionChange(optionNo)\"\n variant=\"icon-button\"\n role=\"button\"\n ></ui-button>\n }\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.ai-feedback,.ai-feedback-buttons{display:flex;flex-flow:row nowrap;align-items:center}.ai-feedback>span{color:#666;margin-right:16px}.ai-feedback-buttons{justify-content:center}.ai-feedback-buttons>ui-button:first-child{margin-right:8px}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "hasBackground", "tooltipPosition", "role", "iconFilled"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "pipe", type: i2.UiTranslatePipe, name: "uiTranslate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AiFeedbackComponent, selector: "ui-ai-feedback", inputs: { selection: "selection", tooltipPosition: "tooltipPosition" }, outputs: { selectedValue: "selectedValue" }, ngImport: i0, template: "<div class=\"ai-feedback\" [attr.aria-label]=\"'AI_FEEDBACK.TITLE' | uiTranslate\">\r\n <span>{{ 'AI_FEEDBACK.TITLE' | uiTranslate | async}}</span>\r\n <div class=\"ai-feedback-buttons\">\r\n @if(selected() !== optionNo) {\r\n <ui-button\r\n [justIcon]=\"true\"\r\n [iconName]=\"'Thumb-up-in-line'\"\r\n [size]=\"'small'\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [tooltip]=\"('COMMON.YES' | uiTranslate | async)!\"\r\n [ariaLabel]=\"('COMMON.YES' | uiTranslate | async)!\"\r\n [iconFilled]=\"selected() === optionYes\"\r\n (buttonClickEvent)=\"onSelectionChange(optionYes)\"\r\n variant=\"icon-button\"\r\n role=\"button\"\r\n ></ui-button>\r\n }\r\n\r\n @if(selected() !== optionYes) {\r\n <ui-button\r\n [justIcon]=\"true\"\r\n [iconName]=\"'Thumb-down-in-line'\"\r\n [iconFilled]=\"selected() === optionNo\"\r\n [tooltip]=\"('COMMON.NO' | uiTranslate | async)!\"\r\n [ariaLabel]=\"('COMMON.NO' | uiTranslate | async)!\"\r\n [size]=\"'small'\"\r\n (buttonClickEvent)=\"onSelectionChange(optionNo)\"\r\n variant=\"icon-button\"\r\n role=\"button\"\r\n ></ui-button>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.ai-feedback,.ai-feedback-buttons{display:flex;flex-flow:row nowrap;align-items:center}.ai-feedback>span{color:#666;margin-right:16px}.ai-feedback-buttons{justify-content:center}.ai-feedback-buttons>ui-button:first-child{margin-right:8px}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "hasBackground", "tooltipPosition", "role", "iconFilled"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "pipe", type: i2.UiTranslatePipe, name: "uiTranslate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
24
|
}
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AiFeedbackComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
|
-
args: [{ selector: 'ui-ai-feedback', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ai-feedback\" [attr.aria-label]=\"'AI_FEEDBACK.TITLE' | uiTranslate\">\n <span>{{ 'AI_FEEDBACK.TITLE' | uiTranslate | async}}</span>\n <div class=\"ai-feedback-buttons\">\n @if(selected() !== optionNo) {\n <ui-button\n [justIcon]=\"true\"\n [iconName]=\"'Thumb-up-in-line'\"\n [size]=\"'small'\"\n [tooltipPosition]=\"tooltipPosition\"\n [tooltip]=\"('COMMON.YES' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.YES' | uiTranslate | async)!\"\n [iconFilled]=\"selected() === optionYes\"\n (buttonClickEvent)=\"onSelectionChange(optionYes)\"\n variant=\"icon-button\"\n role=\"button\"\n ></ui-button>\n }\n\n @if(selected() !== optionYes) {\n <ui-button\n [justIcon]=\"true\"\n [iconName]=\"'Thumb-down-in-line'\"\n [iconFilled]=\"selected() === optionNo\"\n [tooltip]=\"('COMMON.NO' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.NO' | uiTranslate | async)!\"\n [size]=\"'small'\"\n (buttonClickEvent)=\"onSelectionChange(optionNo)\"\n variant=\"icon-button\"\n role=\"button\"\n ></ui-button>\n }\n </div>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.ai-feedback,.ai-feedback-buttons{display:flex;flex-flow:row nowrap;align-items:center}.ai-feedback>span{color:#666;margin-right:16px}.ai-feedback-buttons{justify-content:center}.ai-feedback-buttons>ui-button:first-child{margin-right:8px}\n"] }]
|
|
27
|
+
args: [{ selector: 'ui-ai-feedback', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ai-feedback\" [attr.aria-label]=\"'AI_FEEDBACK.TITLE' | uiTranslate\">\r\n <span>{{ 'AI_FEEDBACK.TITLE' | uiTranslate | async}}</span>\r\n <div class=\"ai-feedback-buttons\">\r\n @if(selected() !== optionNo) {\r\n <ui-button\r\n [justIcon]=\"true\"\r\n [iconName]=\"'Thumb-up-in-line'\"\r\n [size]=\"'small'\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [tooltip]=\"('COMMON.YES' | uiTranslate | async)!\"\r\n [ariaLabel]=\"('COMMON.YES' | uiTranslate | async)!\"\r\n [iconFilled]=\"selected() === optionYes\"\r\n (buttonClickEvent)=\"onSelectionChange(optionYes)\"\r\n variant=\"icon-button\"\r\n role=\"button\"\r\n ></ui-button>\r\n }\r\n\r\n @if(selected() !== optionYes) {\r\n <ui-button\r\n [justIcon]=\"true\"\r\n [iconName]=\"'Thumb-down-in-line'\"\r\n [iconFilled]=\"selected() === optionNo\"\r\n [tooltip]=\"('COMMON.NO' | uiTranslate | async)!\"\r\n [ariaLabel]=\"('COMMON.NO' | uiTranslate | async)!\"\r\n [size]=\"'small'\"\r\n (buttonClickEvent)=\"onSelectionChange(optionNo)\"\r\n variant=\"icon-button\"\r\n role=\"button\"\r\n ></ui-button>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.ai-feedback,.ai-feedback-buttons{display:flex;flex-flow:row nowrap;align-items:center}.ai-feedback>span{color:#666;margin-right:16px}.ai-feedback-buttons{justify-content:center}.ai-feedback-buttons>ui-button:first-child{margin-right:8px}\n"] }]
|
|
28
28
|
}], propDecorators: { selection: [{
|
|
29
29
|
type: Input
|
|
30
30
|
}], tooltipPosition: [{
|
|
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
32
32
|
}], selectedValue: [{
|
|
33
33
|
type: Output
|
|
34
34
|
}] } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktZmVlZGJhY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGdvLWNhbm9weS11aS9jb21wb25lbnRzL2FpLWZlZWRiYWNrL2FpLWZlZWRiYWNrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9haS1mZWVkYmFjay9haS1mZWVkYmFjay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFVeEcsTUFBTSxPQUFPLG1CQUFtQjtJQU5oQztRQVdXLG9CQUFlLEdBQW9CLE9BQU8sQ0FBQztRQUUxQyxrQkFBYSxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUVyRyxhQUFRLEdBQUcsTUFBTSxDQUFzQixJQUFJLENBQUMsQ0FBQztRQUNwQyxjQUFTLEdBQXdCLEtBQUssQ0FBQztRQUN2QyxhQUFRLEdBQXdCLElBQUksQ0FBQztLQVEvQztJQWxCQyxJQUFhLFNBQVMsQ0FBQyxTQUE4QjtRQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQVVELGlCQUFpQixDQUFDLFNBQThCO1FBQzlDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBbEJVLG1CQUFtQjttR0FBbkIsbUJBQW1CLDJLQ1ZoQywwdkNBaUNBOzs0RkR2QmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUdsQyxTQUFTO3NCQUFyQixLQUFLO2dCQUlHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFpRmVlZGJhY2tTZWxlY3Rpb24gfSBmcm9tICcuL2FpLWZlZWRiYWNrLm1vZGVsJztcclxuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VpLWFpLWZlZWRiYWNrJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWktZmVlZGJhY2suY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9haS1mZWVkYmFjay5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBaUZlZWRiYWNrQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbjogQWlGZWVkYmFja1NlbGVjdGlvbikge1xyXG4gICAgdGhpcy5zZWxlY3RlZC5zZXQoc2VsZWN0aW9uIHx8IG51bGwpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgdG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAnYWJvdmUnO1xyXG5cclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRWYWx1ZTogRXZlbnRFbWl0dGVyPEFpRmVlZGJhY2tTZWxlY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxBaUZlZWRiYWNrU2VsZWN0aW9uPigpO1xyXG5cclxuICBzZWxlY3RlZCA9IHNpZ25hbDxBaUZlZWRiYWNrU2VsZWN0aW9uPihudWxsKTtcclxuICByZWFkb25seSBvcHRpb25ZZXM6IEFpRmVlZGJhY2tTZWxlY3Rpb24gPSAneWVzJztcclxuICByZWFkb25seSBvcHRpb25ObzogQWlGZWVkYmFja1NlbGVjdGlvbiA9ICdubyc7XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGlvbjogQWlGZWVkYmFja1NlbGVjdGlvbik6IHZvaWQge1xyXG4gICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnNlbGVjdGVkKCkgPT09IHNlbGVjdGlvbiA/IG51bGwgOiBzZWxlY3Rpb247XHJcbiAgICB0aGlzLnNlbGVjdGVkLnNldChuZXdWYWx1ZSk7XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlLmVtaXQodGhpcy5zZWxlY3RlZCgpKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFpLWZlZWRiYWNrXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInQUlfRkVFREJBQ0suVElUTEUnIHwgdWlUcmFuc2xhdGVcIj5cclxuICA8c3Bhbj57eyAnQUlfRkVFREJBQ0suVElUTEUnIHwgdWlUcmFuc2xhdGUgfCBhc3luY319PC9zcGFuPlxyXG4gIDxkaXYgY2xhc3M9XCJhaS1mZWVkYmFjay1idXR0b25zXCI+XHJcbiAgICBAaWYoc2VsZWN0ZWQoKSAhPT0gb3B0aW9uTm8pIHtcclxuICAgICAgPHVpLWJ1dHRvblxyXG4gICAgICAgIFtqdXN0SWNvbl09XCJ0cnVlXCJcclxuICAgICAgICBbaWNvbk5hbWVdPVwiJ1RodW1iLXVwLWluLWxpbmUnXCJcclxuICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcclxuICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXHJcbiAgICAgICAgW3Rvb2x0aXBdPVwiKCdDT01NT04uWUVTJyB8IHVpVHJhbnNsYXRlIHwgYXN5bmMpIVwiXHJcbiAgICAgICAgW2FyaWFMYWJlbF09XCIoJ0NPTU1PTi5ZRVMnIHwgdWlUcmFuc2xhdGUgfCBhc3luYykhXCJcclxuICAgICAgICBbaWNvbkZpbGxlZF09XCJzZWxlY3RlZCgpID09PSBvcHRpb25ZZXNcIlxyXG4gICAgICAgIChidXR0b25DbGlja0V2ZW50KT1cIm9uU2VsZWN0aW9uQ2hhbmdlKG9wdGlvblllcylcIlxyXG4gICAgICAgIHZhcmlhbnQ9XCJpY29uLWJ1dHRvblwiXHJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgID48L3VpLWJ1dHRvbj5cclxuICAgIH1cclxuXHJcbiAgICBAaWYoc2VsZWN0ZWQoKSAhPT0gb3B0aW9uWWVzKSB7XHJcbiAgICAgIDx1aS1idXR0b25cclxuICAgICAgICBbanVzdEljb25dPVwidHJ1ZVwiXHJcbiAgICAgICAgW2ljb25OYW1lXT1cIidUaHVtYi1kb3duLWluLWxpbmUnXCJcclxuICAgICAgICBbaWNvbkZpbGxlZF09XCJzZWxlY3RlZCgpID09PSBvcHRpb25Ob1wiXHJcbiAgICAgICAgW3Rvb2x0aXBdPVwiKCdDT01NT04uTk8nIHwgdWlUcmFuc2xhdGUgfCBhc3luYykhXCJcclxuICAgICAgICBbYXJpYUxhYmVsXT1cIignQ09NTU9OLk5PJyB8IHVpVHJhbnNsYXRlIHwgYXN5bmMpIVwiXHJcbiAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXHJcbiAgICAgICAgKGJ1dHRvbkNsaWNrRXZlbnQpPVwib25TZWxlY3Rpb25DaGFuZ2Uob3B0aW9uTm8pXCJcclxuICAgICAgICB2YXJpYW50PVwiaWNvbi1idXR0b25cIlxyXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICA+PC91aS1idXR0b24+XHJcbiAgICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktZmVlZGJhY2subW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvYWktZmVlZGJhY2svYWktZmVlZGJhY2subW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFpRmVlZGJhY2tTZWxlY3Rpb24gPSAneWVzJyB8ICdubycgfCBudWxsO1xyXG4iXX0=
|
|
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
17
17
|
exports: [AiFeedbackComponent],
|
|
18
18
|
}]
|
|
19
19
|
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktZmVlZGJhY2subW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGdvLWNhbm9weS11aS9jb21wb25lbnRzL2FpLWZlZWRiYWNrL2FpLWZlZWRiYWNrLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBTzVDLE1BQU0sT0FBTyxnQkFBZ0I7K0dBQWhCLGdCQUFnQjtnSEFBaEIsZ0JBQWdCLGlCQUpaLG1CQUFtQixhQUN4QixxQkFBcUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxhQUNqRCxtQkFBbUI7Z0hBRWxCLGdCQUFnQixZQUhqQixxQkFBcUI7OzRGQUdwQixnQkFBZ0I7a0JBTDVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUM7b0JBQzVELE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFpRmVlZGJhY2tDb21wb25lbnQgfSBmcm9tICcuL2FpLWZlZWRiYWNrLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3VpLXRyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQubW9kdWxlJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbQWlGZWVkYmFja0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudE1vZHVsZSwgVWlUcmFuc2xhdGVQaXBlLCBBc3luY1BpcGVdLFxyXG4gIGV4cG9ydHM6IFtBaUZlZWRiYWNrQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFpRmVlZGJhY2tNb2R1bGUge31cclxuIl19
|
|
@@ -195,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
195
195
|
type: HostBinding,
|
|
196
196
|
args: ['class.display-none']
|
|
197
197
|
}] } });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9hbGVydC1iYW5uZXIvYWxlcnQtYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9hbGVydC1iYW5uZXIvYWxlcnQtYmFubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7O0FBZTdELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDNkUsZUFBaUMsRUFDcEcsWUFBMEI7UUFEeUMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ3BHLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBT3BDOzs7Ozs7V0FNRztRQUNNLGNBQVMsR0FBaUIsU0FBUyxDQUFDO1FBRTdDOzs7Ozs7V0FNRztRQUNNLGlCQUFZLEdBQWlCLFFBQVEsQ0FBQztRQVcvQzs7Ozs7V0FLRztRQUNNLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUVyQzs7Ozs7V0FLRztRQUNNLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFeEI7Ozs7O1dBS0c7UUFDTSxhQUFRLEdBQUksRUFBRSxDQUFDO1FBU3hCOzs7Ozs7V0FNRztRQUNNLGVBQVUsR0FBb0IsUUFBUSxDQUFDO1FBRWhEOzs7Ozs7O1dBT0c7UUFDTSxxQkFBZ0IsR0FBcUIsT0FBTyxDQUFDO1FBVXREOzs7Ozs7V0FNRztRQUNNLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUVqQzs7Ozs7O1dBTUc7UUFDTSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXhCOzs7Ozs7V0FNRztRQUNNLFVBQUssR0FBRyxLQUFLLENBQUM7UUFFdkI7Ozs7O1dBS0c7UUFDTSxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQVc5QixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBSWYsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUN4QixxQkFBZ0IsR0FBZSxFQUFFLENBQUM7UUFDbEMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBNUl6QixJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFvQkQ7Ozs7T0FJRztJQUNILElBQWEsT0FBTyxDQUFDLEdBQVc7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUErRkQsSUFBYSxlQUFlLENBQUMsTUFBZ0I7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELElBQXVDLFdBQVc7UUFDaEQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQVdELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyx3Q0FBd0M7UUFDeEMsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxRQUFRLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQsOENBQThDO0lBQzlDLFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUNqQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQTNLVSxvQkFBb0Isa0JBRVQsb0NBQW9DO21HQUYvQyxvQkFBb0Isa2tCQy9CakMscWdFQWtEQSx1L09EM0JjO1lBQ1YsT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDbkIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2RSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkUsQ0FBQztTQUNIOzs0RkFHVSxvQkFBb0I7a0JBWmhDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBR2Y7d0JBQ1YsT0FBTyxDQUFDLFdBQVcsRUFBRTs0QkFDbkIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUN2RSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3ZFLENBQUM7cUJBQ0gsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OzBCQUk1QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG9DQUFvQztvRUFlakQsU0FBUztzQkFBakIsS0FBSztnQkFTRyxZQUFZO3NCQUFwQixLQUFLO2dCQU9PLE9BQU87c0JBQW5CLEtBQUs7Z0JBVUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQVFHLE1BQU07c0JBQWQsS0FBSztnQkFRRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLE9BQU87c0JBQWYsS0FBSztnQkFTRyxVQUFVO3NCQUFsQixLQUFLO2dCQVVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFRRyxXQUFXO3NCQUFuQixLQUFLO2dCQVNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFTRyxPQUFPO3NCQUFmLEtBQUs7Z0JBU0csS0FBSztzQkFBYixLQUFLO2dCQVFHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRU8sZUFBZTtzQkFBM0IsS0FBSztnQkFJaUMsV0FBVztzQkFBakQsV0FBVzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJY29uTmFtZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaWNvbi9pY29uLm1vZGVsJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVGhlbWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBwbGljYXRpb24tdGhlbWUubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRCYXJUeXBlLCBBbGVydFZhcmlhbnQgfSBmcm9tICcuLi8uLi91dGlscy9hbGVydC1iYXIubW9kZWwnO1xuaW1wb3J0IHsgYWxlcnRCYXJzVXRpbCB9IGZyb20gJy4uLy4uL3V0aWxzL2FsZXJ0LWJhcnMudXRpbHMnO1xuaW1wb3J0IHsgTGlua1RhcmdldFR5cGUgfSBmcm9tICcuL2FsZXJ0LWJhbm5lci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWFsZXJ0LWJhbm5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGVydC1iYW5uZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hbGVydC1iYW5uZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ29wZW5DbG9zZScsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFthbmltYXRlKCcwLjJzIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKV0pLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW2FuaW1hdGUoJzAuMnMgZWFzZS1pbicsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSldKSxcbiAgICBdKSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0QmFubmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplclxuICApIHtcbiAgICBpZiAoZGVmYXVsdEFwcFRoZW1lKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uVGhlbWUgPSBkZWZhdWx0QXBwVGhlbWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFsZXJ0IEJhbm5lciB0eXBlXG4gICAqXG4gICAqIEB0eXBlIHtBbGVydEJhclR5cGV9XG4gICAqIEBkZWZhdWx0ICdzdWNjZXNzJ1xuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFsZXJ0VHlwZTogQWxlcnRCYXJUeXBlID0gJ3N1Y2Nlc3MnO1xuXG4gIC8qKlxuICAgKiBBbGVydCBCYW5uZXIgdmFyaWFudFxuICAgKlxuICAgKiBAdHlwZSB7QWxlcnRWYXJpYW50fVxuICAgKiBAZGVmYXVsdCAnYmFubmVyJ1xuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFsZXJ0VmFyaWFudDogQWxlcnRWYXJpYW50ID0gJ2Jhbm5lcic7XG5cbiAgLyoqXG4gICAqIEFsZXJ0IGJhbm5lciBtZXNzYWdlXG4gICAqXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgc2V0IG1lc3NhZ2UobXNnOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9tZXNzYWdlID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobXNnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIGRpc21taXNzIGJ1dHRvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgaW5jbHVkZURpc21pc3NCdXR0b24gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHNoYWRvdyBvciBub3RcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzaGFkb3cgPSBmYWxzZTtcblxuICAvKipcbiAgICogTGluayB0ZXh0IHRoYXQgd2lsbCBhcHBlbmRlZCBhdCB0aGUgZW5kIG9mIG1lc3NhZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgJydcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsaW5rVGV4dD8gPSAnJztcblxuICAvKipcbiAgICogTGluayB1cmxcbiAgICpcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsaW5rVXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaW5rIHRhcmdldFxuICAgKlxuICAgKiBAdHlwZSB7QHR5cGUge0xpbmtUYXJnZXRUeXBlfX1cbiAgICogQGRlZmF1bHQgJ19ibGFuaydcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBsaW5rVGFyZ2V0PzogTGlua1RhcmdldFR5cGUgPSAnX2JsYW5rJztcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWVcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBkZWZhdWx0ICdsaWdodCdcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lID0gJ2xpZ2h0JztcblxuICAvKipcbiAgICogU2V0cyB0aGUgZnVsbCB3aWR0aFxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBpc0Z1bGxXaWR0aDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQ2xvc2UgYnV0dG9uIHRvb2x0aXBcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJydcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBjbG9zZUJ1dHRvblRvb2x0aXAgPSAnJztcblxuICAvKipcbiAgICogU2hvd3MgaWNvblxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGhhc0ljb24gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhbGVydCBiYW5uZXIgcG9zaXRpb25cbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZml4ZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBBUklBIHJlcXVpcmVtZW50IGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgKiBUaGlzIGF0dHJpYnV0ZSBpcyB1c2VkIHRvIGluZGljYXRlIHdoZXRoZXIgYW4gaW5wdXQgZmllbGQgaXMgcmVxdWlyZWQgZm9yIGZvcm0gc3VibWlzc2lvbi5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcmlhRGVzY3JpYmVkYnkgPSAnJztcblxuICBASW5wdXQoKSBzZXQgc2Vjb25kYXJ5QWxlcnRzKGFsZXJ0czogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9zZWNvbmRhcnlBbGVydHMgPSBhbGVydHMubWFwKGFsZXJ0ID0+IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGFsZXJ0KSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc3BsYXktbm9uZScpIGdldCBpc0Rpc21pc3NlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNtaXNzQWxlcnRCYW5uZXI7XG4gIH1cblxuICBpY29uTmFtZTogSWNvbk5hbWU7XG4gIHZpc2libGUgPSB0cnVlO1xuICBmdWxsV2lkdGg6IGJvb2xlYW47XG4gIHBvc2l0aW9uOiBzdHJpbmc7XG4gIGNzc0NsYXNzOiBzdHJpbmc7XG4gIF9tZXNzYWdlOiBTYWZlSHRtbCA9ICcnO1xuICBfc2Vjb25kYXJ5QWxlcnRzOiBTYWZlSHRtbFtdID0gW107XG4gIGRpc21pc3NBbGVydEJhbm5lciA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQmFubmVyKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRvdC1ub3RhdGlvblxuICAgIGlmIChjaGFuZ2VzWydhbGVydFR5cGUnXSkge1xuICAgICB0aGlzLnVwZGF0ZUJhbm5lcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQmFubmVyKCk6IHZvaWQge1xuICAgIHRoaXMuaWNvbk5hbWUgPSBhbGVydEJhcnNVdGlsLnNldEljb24odGhpcy5hbGVydFR5cGUpO1xuICAgIHRoaXMucG9zaXRpb24gPSBhbGVydEJhcnNVdGlsLnNldFBvc2l0aW9uKHRoaXMuZml4ZWQpO1xuICAgIHRoaXMuZnVsbFdpZHRoID0gdGhpcy5pc0Z1bGxXaWR0aCA/PyB0aGlzLmFsZXJ0VmFyaWFudCA9PT0gJ2Jhbm5lcic7XG4gICAgdGhpcy5jc3NDbGFzcyA9IGFsZXJ0QmFyc1V0aWwuc2V0Q3NzQ2xhc3ModGhpcy5mdWxsV2lkdGgsIHRoaXMuYWxlcnRUeXBlLCB0aGlzLnBvc2l0aW9uLCB0aGlzLmFsZXJ0VmFyaWFudCk7XG4gIH1cblxuICAvL0hpZGUgc25hY2tiYXIgd2hlbiBkaXNtaXNzIGJ1dHRvbiBpcyBjbGlja2VkXG4gIGRpc21pc3NDbGljaygpIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZGlzbWlzc0FsZXJ0QmFubmVyID0gdHJ1ZTtcbiAgICB9LCAyMDApO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtuZ0NsYXNzXT1cImNzc0NsYXNzXCJcbiAgW0BvcGVuQ2xvc2VdXG4gICpuZ0lmPVwidmlzaWJsZVwiXG4gIHJvbGU9XCJhbGVydFwiXG4gIGNsYXNzPVwiYWxlcnQtY29udGFpbmVyXCJcbiAgW2F0dHIudGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gIFtjbGFzcy5zaGFkb3ddPVwiYWxlcnRWYXJpYW50ID09PSAnY2FsbG91dCcgJiYgc2hhZG93XCJcbiAgW2F0dHIuYXJpYS1saXZlXT1cIihhbGVydFR5cGUgPT09ICdlcnJvcicgfHwgYWxlcnRUeXBlID09PSAnd2FybmluZycpID8gJ2Fzc2VydGl2ZScgOiAncG9saXRlJ1wiXG4gIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2Rlc2NyaWJlZGJ5J1wiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInbGFiZWxsZWRieSdcIlxuICBbdGFiSW5kZXhdPVwiMFwiXG4+XG4gIDxzcGFuIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtOTk5OXB4XCIgaWQ9XCJsYWJlbGxlZGJ5XCI+e3sgKCdBTEVSVF9CQU5ORVIuJyArIChhbGVydFR5cGUgfCB1cHBlcmNhc2UpKSB8IHVpVHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG4gIDxzcGFuIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiIGlkPVwiZGVzY3JpYmVkYnlcIj57eyBhcmlhRGVzY3JpYmVkYnkgfX08L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJwcmltYXJ5LWFsZXJ0LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJhbGVydC10ZXh0XCI+XG4gICAgICBAaWYgKGhhc0ljb24pIHtcbiAgICAgICAgPHVpLWljb24gY2xhc3M9XCJsZWZ0LWljb25cIiBbbmFtZV09XCJpY29uTmFtZVwiIHNpemU9XCIyNFwiIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIj48L3VpLWljb24+XG4gICAgICB9XG4gICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIl9tZXNzYWdlXCI+PC9zcGFuPlxuICAgICAgPGEgKm5nSWY9XCIhIWxpbmtUZXh0XCIgW3RhcmdldF09XCJsaW5rVGFyZ2V0XCIgW2hyZWZdPVwibGlua1VybFwiPnt7IGxpbmtUZXh0IH19PC9hPlxuICAgIDwvZGl2PlxuICAgIDx1aS1idXR0b25cbiAgICAgICpuZ0lmPVwiaW5jbHVkZURpc21pc3NCdXR0b24gJiYgYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnXCJcbiAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgIFtqdXN0SWNvbl09XCJ0cnVlXCJcbiAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgaWNvbk5hbWU9XCJDbG9zZVwiXG4gICAgICAoYnV0dG9uQ2xpY2tFdmVudCk9XCJkaXNtaXNzQ2xpY2soKVwiXG4gICAgPjwvdWktYnV0dG9uPlxuICAgIDx1aS1idXR0b25cbiAgICAgICpuZ0lmPVwiaW5jbHVkZURpc21pc3NCdXR0b24gJiYgYXBwbGljYXRpb25UaGVtZSAhPT0gJ2NsYXNzaWMnICYmIGFsZXJ0VmFyaWFudCAhPT0gJ2NhbGxvdXQnXCJcbiAgICAgIGNsYXNzPVwicmlnaHQtaWNvblwiXG4gICAgICBbdmFyaWFudF09XCInaWNvbi1idXR0b24nXCJcbiAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgW2ljb25OYW1lXT1cIidDbG9zZSdcIlxuICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICBbanVzdEljb25dPVwidHJ1ZVwiXG4gICAgICBbdG9vbHRpcF09XCIoY2xvc2VCdXR0b25Ub29sdGlwIHx8ICgnQ09NTU9OLkNMT1NFJyB8IHVpVHJhbnNsYXRlIHwgYXN5bmMpKSFcIlxuICAgICAgKGNsaWNrKT1cImRpc21pc3NDbGljaygpXCJcbiAgICA+PC91aS1idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2Vjb25kYXJ5LWFsZXJ0cy1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWxlcnQtdGV4dFwiICpuZ0Zvcj1cImxldCBhbGVydCBvZiBfc2Vjb25kYXJ5QWxlcnRzXCI+XG4gICAgICA8dWktaWNvbiBjbGFzcz1cImxlZnQtaWNvblwiIFtuYW1lXT1cIidTdG9wLWZpbGxlZCdcIiBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCI+PC91aS1pY29uPlxuICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJhbGVydFwiPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9hbGVydC1iYW5uZXIvYWxlcnQtYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9hbGVydC1iYW5uZXIvYWxlcnQtYmFubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7O0FBZTdELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDNkUsZUFBaUMsRUFDcEcsWUFBMEI7UUFEeUMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ3BHLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBT3BDOzs7Ozs7V0FNRztRQUNNLGNBQVMsR0FBaUIsU0FBUyxDQUFDO1FBRTdDOzs7Ozs7V0FNRztRQUNNLGlCQUFZLEdBQWlCLFFBQVEsQ0FBQztRQVcvQzs7Ozs7V0FLRztRQUNNLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUVyQzs7Ozs7V0FLRztRQUNNLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFeEI7Ozs7O1dBS0c7UUFDTSxhQUFRLEdBQUksRUFBRSxDQUFDO1FBU3hCOzs7Ozs7V0FNRztRQUNNLGVBQVUsR0FBb0IsUUFBUSxDQUFDO1FBRWhEOzs7Ozs7O1dBT0c7UUFDTSxxQkFBZ0IsR0FBcUIsT0FBTyxDQUFDO1FBVXREOzs7Ozs7V0FNRztRQUNNLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUVqQzs7Ozs7O1dBTUc7UUFDTSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXhCOzs7Ozs7V0FNRztRQUNNLFVBQUssR0FBRyxLQUFLLENBQUM7UUFFdkI7Ozs7O1dBS0c7UUFDTSxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQVc5QixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBSWYsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUN4QixxQkFBZ0IsR0FBZSxFQUFFLENBQUM7UUFDbEMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBNUl6QixJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFvQkQ7Ozs7T0FJRztJQUNILElBQWEsT0FBTyxDQUFDLEdBQVc7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUErRkQsSUFBYSxlQUFlLENBQUMsTUFBZ0I7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELElBQXVDLFdBQVc7UUFDaEQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQVdELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyx3Q0FBd0M7UUFDeEMsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxRQUFRLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQsOENBQThDO0lBQzlDLFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUNqQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQTNLVSxvQkFBb0Isa0JBRVQsb0NBQW9DO21HQUYvQyxvQkFBb0Isa2tCQy9CakMscWdFQWtEQSx1L09EM0JjO1lBQ1YsT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDbkIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2RSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkUsQ0FBQztTQUNIOzs0RkFHVSxvQkFBb0I7a0JBWmhDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBR2Y7d0JBQ1YsT0FBTyxDQUFDLFdBQVcsRUFBRTs0QkFDbkIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUN2RSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3ZFLENBQUM7cUJBQ0gsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OzBCQUk1QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG9DQUFvQztvRUFlakQsU0FBUztzQkFBakIsS0FBSztnQkFTRyxZQUFZO3NCQUFwQixLQUFLO2dCQU9PLE9BQU87c0JBQW5CLEtBQUs7Z0JBVUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQVFHLE1BQU07c0JBQWQsS0FBSztnQkFRRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLE9BQU87c0JBQWYsS0FBSztnQkFTRyxVQUFVO3NCQUFsQixLQUFLO2dCQVVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFRRyxXQUFXO3NCQUFuQixLQUFLO2dCQVNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFTRyxPQUFPO3NCQUFmLEtBQUs7Z0JBU0csS0FBSztzQkFBYixLQUFLO2dCQVFHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRU8sZUFBZTtzQkFBM0IsS0FBSztnQkFJaUMsV0FBVztzQkFBakQsV0FBVzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBIb3N0QmluZGluZyxcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEljb25OYW1lIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pY29uL2ljb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvblRoZW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsJztcclxuaW1wb3J0IHsgQWxlcnRCYXJUeXBlLCBBbGVydFZhcmlhbnQgfSBmcm9tICcuLi8uLi91dGlscy9hbGVydC1iYXIubW9kZWwnO1xyXG5pbXBvcnQgeyBhbGVydEJhcnNVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbHMvYWxlcnQtYmFycy51dGlscyc7XHJcbmltcG9ydCB7IExpbmtUYXJnZXRUeXBlIH0gZnJvbSAnLi9hbGVydC1iYW5uZXIubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1hbGVydC1iYW5uZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGVydC1iYW5uZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LWJhbm5lci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ29wZW5DbG9zZScsIFtcclxuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW2FuaW1hdGUoJzAuMnMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXSksXHJcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFthbmltYXRlKCcwLjJzIGVhc2UtaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpXSksXHJcbiAgICBdKSxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWxlcnRCYW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXHJcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyXHJcbiAgKSB7XHJcbiAgICBpZiAoZGVmYXVsdEFwcFRoZW1lKSB7XHJcbiAgICAgIHRoaXMuYXBwbGljYXRpb25UaGVtZSA9IGRlZmF1bHRBcHBUaGVtZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFsZXJ0IEJhbm5lciB0eXBlXHJcbiAgICpcclxuICAgKiBAdHlwZSB7QWxlcnRCYXJUeXBlfVxyXG4gICAqIEBkZWZhdWx0ICdzdWNjZXNzJ1xyXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFsZXJ0VHlwZTogQWxlcnRCYXJUeXBlID0gJ3N1Y2Nlc3MnO1xyXG5cclxuICAvKipcclxuICAgKiBBbGVydCBCYW5uZXIgdmFyaWFudFxyXG4gICAqXHJcbiAgICogQHR5cGUge0FsZXJ0VmFyaWFudH1cclxuICAgKiBAZGVmYXVsdCAnYmFubmVyJ1xyXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFsZXJ0VmFyaWFudDogQWxlcnRWYXJpYW50ID0gJ2Jhbm5lcic7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFsZXJ0IGJhbm5lciBtZXNzYWdlXHJcbiAgICpcclxuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgbWVzc2FnZShtc2c6IHN0cmluZykge1xyXG4gICAgdGhpcy5fbWVzc2FnZSA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKG1zZyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbmNsdWRlIGRpc21taXNzIGJ1dHRvblxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGluY2x1ZGVEaXNtaXNzQnV0dG9uID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5jbHVkZSBzaGFkb3cgb3Igbm90XHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNoYWRvdyA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBMaW5rIHRleHQgdGhhdCB3aWxsIGFwcGVuZGVkIGF0IHRoZSBlbmQgb2YgbWVzc2FnZVxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgJydcclxuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBsaW5rVGV4dD8gPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogTGluayB1cmxcclxuICAgKlxyXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGxpbmtVcmw/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpbmsgdGFyZ2V0XHJcbiAgICpcclxuICAgKiBAdHlwZSB7QHR5cGUge0xpbmtUYXJnZXRUeXBlfX1cclxuICAgKiBAZGVmYXVsdCAnX2JsYW5rJ1xyXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGxpbmtUYXJnZXQ/OiBMaW5rVGFyZ2V0VHlwZSA9ICdfYmxhbmsnO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIERlZmluZXMgdGhlIGFwcGxpY2F0aW9uIHRoZW1lXHJcbiAgICpcclxuICAgKiBAdHlwZSB7QXBwbGljYXRpb25UaGVtZX1cclxuICAgKiBAZGVmYXVsdCAnbGlnaHQnXHJcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgYXBwbGljYXRpb25UaGVtZTogQXBwbGljYXRpb25UaGVtZSA9ICdsaWdodCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGZ1bGwgd2lkdGhcclxuICAgKlxyXG4gICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGlzRnVsbFdpZHRoOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBDbG9zZSBidXR0b24gdG9vbHRpcFxyXG4gICAqXHJcbiAgICogQHR5cGUge3N0cmluZ31cclxuICAgKiBAZGVmYXVsdCAnJ1xyXG4gICAqIEBtZW1iZXJvZiBBbGVydEJhbm5lckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNsb3NlQnV0dG9uVG9vbHRpcCA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBTaG93cyBpY29uXHJcbiAgICpcclxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICogQG1lbWJlcm9mIEFsZXJ0QmFubmVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgaGFzSWNvbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGFsZXJ0IGJhbm5lciBwb3NpdGlvblxyXG4gICAqXHJcbiAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBmaXhlZCA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIEFSSUEgcmVxdWlyZW1lbnQgZm9yIGFjY2Vzc2liaWxpdHkuXHJcbiAgICogVGhpcyBhdHRyaWJ1dGUgaXMgdXNlZCB0byBpbmRpY2F0ZSB3aGV0aGVyIGFuIGlucHV0IGZpZWxkIGlzIHJlcXVpcmVkIGZvciBmb3JtIHN1Ym1pc3Npb24uXHJcbiAgICogQHR5cGUge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgQWxlcnRCYW5uZXJDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBhcmlhRGVzY3JpYmVkYnkgPSAnJztcclxuXHJcbiAgQElucHV0KCkgc2V0IHNlY29uZGFyeUFsZXJ0cyhhbGVydHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLl9zZWNvbmRhcnlBbGVydHMgPSBhbGVydHMubWFwKGFsZXJ0ID0+IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGFsZXJ0KSk7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc3BsYXktbm9uZScpIGdldCBpc0Rpc21pc3NlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRpc21pc3NBbGVydEJhbm5lcjtcclxuICB9XHJcblxyXG4gIGljb25OYW1lOiBJY29uTmFtZTtcclxuICB2aXNpYmxlID0gdHJ1ZTtcclxuICBmdWxsV2lkdGg6IGJvb2xlYW47XHJcbiAgcG9zaXRpb246IHN0cmluZztcclxuICBjc3NDbGFzczogc3RyaW5nO1xyXG4gIF9tZXNzYWdlOiBTYWZlSHRtbCA9ICcnO1xyXG4gIF9zZWNvbmRhcnlBbGVydHM6IFNhZmVIdG1sW10gPSBbXTtcclxuICBkaXNtaXNzQWxlcnRCYW5uZXIgPSBmYWxzZTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUJhbm5lcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRvdC1ub3RhdGlvblxyXG4gICAgaWYgKGNoYW5nZXNbJ2FsZXJ0VHlwZSddKSB7XHJcbiAgICAgdGhpcy51cGRhdGVCYW5uZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQmFubmVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pY29uTmFtZSA9IGFsZXJ0QmFyc1V0aWwuc2V0SWNvbih0aGlzLmFsZXJ0VHlwZSk7XHJcbiAgICB0aGlzLnBvc2l0aW9uID0gYWxlcnRCYXJzVXRpbC5zZXRQb3NpdGlvbih0aGlzLmZpeGVkKTtcclxuICAgIHRoaXMuZnVsbFdpZHRoID0gdGhpcy5pc0Z1bGxXaWR0aCA/PyB0aGlzLmFsZXJ0VmFyaWFudCA9PT0gJ2Jhbm5lcic7XHJcbiAgICB0aGlzLmNzc0NsYXNzID0gYWxlcnRCYXJzVXRpbC5zZXRDc3NDbGFzcyh0aGlzLmZ1bGxXaWR0aCwgdGhpcy5hbGVydFR5cGUsIHRoaXMucG9zaXRpb24sIHRoaXMuYWxlcnRWYXJpYW50KTtcclxuICB9XHJcblxyXG4gIC8vSGlkZSBzbmFja2JhciB3aGVuIGRpc21pc3MgYnV0dG9uIGlzIGNsaWNrZWRcclxuICBkaXNtaXNzQ2xpY2soKSB7XHJcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmRpc21pc3NBbGVydEJhbm5lciA9IHRydWU7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XG4gIFtuZ0NsYXNzXT1cImNzc0NsYXNzXCJcbiAgW0BvcGVuQ2xvc2VdXG4gICpuZ0lmPVwidmlzaWJsZVwiXG4gIHJvbGU9XCJhbGVydFwiXG4gIGNsYXNzPVwiYWxlcnQtY29udGFpbmVyXCJcbiAgW2F0dHIudGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gIFtjbGFzcy5zaGFkb3ddPVwiYWxlcnRWYXJpYW50ID09PSAnY2FsbG91dCcgJiYgc2hhZG93XCJcbiAgW2F0dHIuYXJpYS1saXZlXT1cIihhbGVydFR5cGUgPT09ICdlcnJvcicgfHwgYWxlcnRUeXBlID09PSAnd2FybmluZycpID8gJ2Fzc2VydGl2ZScgOiAncG9saXRlJ1wiXG4gIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2Rlc2NyaWJlZGJ5J1wiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInbGFiZWxsZWRieSdcIlxuICBbdGFiSW5kZXhdPVwiMFwiXG4+XG4gIDxzcGFuIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtOTk5OXB4XCIgaWQ9XCJsYWJlbGxlZGJ5XCI+e3sgKCdBTEVSVF9CQU5ORVIuJyArIChhbGVydFR5cGUgfCB1cHBlcmNhc2UpKSB8IHVpVHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG4gIDxzcGFuIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiIGlkPVwiZGVzY3JpYmVkYnlcIj57eyBhcmlhRGVzY3JpYmVkYnkgfX08L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJwcmltYXJ5LWFsZXJ0LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJhbGVydC10ZXh0XCI+XG4gICAgICBAaWYgKGhhc0ljb24pIHtcbiAgICAgICAgPHVpLWljb24gY2xhc3M9XCJsZWZ0LWljb25cIiBbbmFtZV09XCJpY29uTmFtZVwiIHNpemU9XCIyNFwiIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIj48L3VpLWljb24+XG4gICAgICB9XG4gICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIl9tZXNzYWdlXCI+PC9zcGFuPlxuICAgICAgPGEgKm5nSWY9XCIhIWxpbmtUZXh0XCIgW3RhcmdldF09XCJsaW5rVGFyZ2V0XCIgW2hyZWZdPVwibGlua1VybFwiPnt7IGxpbmtUZXh0IH19PC9hPlxuICAgIDwvZGl2PlxuICAgIDx1aS1idXR0b25cbiAgICAgICpuZ0lmPVwiaW5jbHVkZURpc21pc3NCdXR0b24gJiYgYXBwbGljYXRpb25UaGVtZSA9PT0gJ2NsYXNzaWMnXCJcbiAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgIFtqdXN0SWNvbl09XCJ0cnVlXCJcbiAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgaWNvbk5hbWU9XCJDbG9zZVwiXG4gICAgICAoYnV0dG9uQ2xpY2tFdmVudCk9XCJkaXNtaXNzQ2xpY2soKVwiXG4gICAgPjwvdWktYnV0dG9uPlxuICAgIDx1aS1idXR0b25cbiAgICAgICpuZ0lmPVwiaW5jbHVkZURpc21pc3NCdXR0b24gJiYgYXBwbGljYXRpb25UaGVtZSAhPT0gJ2NsYXNzaWMnICYmIGFsZXJ0VmFyaWFudCAhPT0gJ2NhbGxvdXQnXCJcbiAgICAgIGNsYXNzPVwicmlnaHQtaWNvblwiXG4gICAgICBbdmFyaWFudF09XCInaWNvbi1idXR0b24nXCJcbiAgICAgIFthcHBsaWNhdGlvblRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgW2ljb25OYW1lXT1cIidDbG9zZSdcIlxuICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICBbanVzdEljb25dPVwidHJ1ZVwiXG4gICAgICBbdG9vbHRpcF09XCIoY2xvc2VCdXR0b25Ub29sdGlwIHx8ICgnQ09NTU9OLkNMT1NFJyB8IHVpVHJhbnNsYXRlIHwgYXN5bmMpKSFcIlxuICAgICAgKGNsaWNrKT1cImRpc21pc3NDbGljaygpXCJcbiAgICA+PC91aS1idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2Vjb25kYXJ5LWFsZXJ0cy1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWxlcnQtdGV4dFwiICpuZ0Zvcj1cImxldCBhbGVydCBvZiBfc2Vjb25kYXJ5QWxlcnRzXCI+XG4gICAgICA8dWktaWNvbiBjbGFzcz1cImxlZnQtaWNvblwiIFtuYW1lXT1cIidTdG9wLWZpbGxlZCdcIiBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCI+PC91aS1pY29uPlxuICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJhbGVydFwiPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|