@dsivd/prestations-ng 17.0.0-beta.3 → 17.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -14,7 +14,26 @@
14
14
 
15
15
  - Added migration guide
16
16
 
17
- ## [16.5.2]
17
+ ## [16.5.4]
18
+
19
+ ### Added
20
+
21
+ - [foehn-input-time.component.html](projects/prestations-ng/src/foehn-input-time/foehn-input-time.component.html)
22
+
23
+ - added `allowLeadingZero` to true to allowed leading 0 in hours and minutes
24
+
25
+ - [ApplicationInfo](projects/prestations-ng/src/sdk-appinfo/application-info.ts)
26
+
27
+ - added `baseVdChUrl?: string` to `ApplicationInfo.Configuration.Portail`
28
+ - with default value by environnement
29
+ - use in `BreadcrumbEventService` and `GesdemConfirmationComponent`
30
+
31
+ ### Fixed
32
+
33
+ - [redirect.component.ts](projects/prestations-ng/src/sdk-redirect/redirect.component.ts)
34
+ - fixed redirect url when IAM ACV session is expired
35
+
36
+ ## [16.5.3]
18
37
 
19
38
  ### Added
20
39
 
package/UPGRADING_V17.md CHANGED
@@ -7,11 +7,12 @@ to `^17.2.4`, using `node 20+` to build, `npm 10+` for package manager and `Foeh
7
7
 
8
8
  ### Migrating to ESLint
9
9
 
10
- Follow [our migration guide](ESLINT_MIGRATION_GUIDE.md) to migrate your project from TSLint to ESLint
10
+ Follow [our migration guide](ESLINT_MIGRATION_GUIDE.md) to migrate your project from TSLint to ESLint.
11
11
 
12
12
  ### Package manager NPM instead of YARN
13
13
 
14
14
  We now recommend using `npm` instead of `yarn`.
15
+
15
16
  **NB: Don't need `run` when running `npm` for https://docs.npmjs.com/cli/v10/commands**
16
17
 
17
18
  - When using `prestations-ng` as a link, you need to run:
@@ -40,7 +41,7 @@ npm update
40
41
 
41
42
  [https://update.angular.io/?l=3&v=15.0-16.0](https://update.angular.io/?l=3&v=15.0-16.0)
42
43
 
43
- **NB: Commit before continuing so your repository is clean**
44
+ **NB: Commit before continuing so your repository is clean.**
44
45
 
45
46
  ```bash
46
47
  # Remove your resolutions in package.json before starting
@@ -57,7 +58,9 @@ ng update @angular/core@16 @angular/cli@16
57
58
 
58
59
  ##### If you are using our `slave-apps`
59
60
 
60
- Be sure to update your `slave-apps` git repository and source your bashrc (or whatever env file you're using) so you will be using node20 by default, verify by executing :
61
+ Be sure to update your `slave-apps` git repository and source your `.bashrc` (or whatever file you're using).
62
+
63
+ Verify your node version in your terminal by executing:
61
64
 
62
65
  ```bash
63
66
  node -v
@@ -71,11 +74,15 @@ node20
71
74
 
72
75
  ##### If you are NOT using our `slave-apps`
73
76
 
74
- Be sure to use a node version 20+ and use the same command as above.
77
+ Be sure to use a node version 20+ in your terminal:
78
+
79
+ ```bash
80
+ node -v
81
+ ```
75
82
 
76
83
  #### In your project
77
84
 
78
- Update your `package.json` to specify node engine
85
+ Update your `package.json` file to specify the node engine:
79
86
 
80
87
  ```json
81
88
  {
@@ -87,8 +94,8 @@ Update your `package.json` to specify node engine
87
94
 
88
95
  #### Update your jenkins files
89
96
 
90
- Add `nodeVersion: 20` to use node 20.
91
- Add `nodeLabel: 'rhel8pee'` to use a RedHat 8 which support node 20
97
+ - Add `nodeVersion: 20` to use node 20
98
+ - Add `nodeLabel: 'rhel8pee'` to use a RedHat 8 which support node 20
92
99
 
93
100
  ##### UT folder
94
101
 
@@ -119,8 +126,9 @@ def args = [
119
126
 
120
127
  ### Updating to Angular 17
121
128
 
122
- `prestations-ng` **v17+** now supports **Angular v17**. You can follow the Angular update guide
123
- at this address [https://update.angular.io/?l=3&v=16.0-17.0](https://update.angular.io/?l=3&v=16.0-17.0).
129
+ `prestations-ng` **v17+** now supports **Angular v17**.
130
+
131
+ You can follow the Angular update guide at this address [https://update.angular.io/?l=3&v=16.0-17.0](https://update.angular.io/?l=3&v=16.0-17.0).
124
132
 
125
133
  #### When having migrated to ESLint
126
134
 
@@ -162,18 +170,20 @@ ng g @dsivd/prestations-ng:foehn2-bootstrap5-migration
162
170
 
163
171
  **NB: Be aware that you will have to check every changes made to your repository to be sure everything is fine.**
164
172
 
165
- You will need to check manually your Java `dictionary.properties` for any HTML styling (search for: `class=`)
166
- You will need to check manually your TypeScript (`.ts`) files for any dynamique CSS classes or tests (`.spec.ts`)
173
+ You will need to check manually your:
174
+
175
+ - Java `dictionary.properties` for any HTML styling (search for: `class=`)
176
+ - TypeScript (`.ts`) files for any dynamique CSS classes or tests (`.spec.ts`)
167
177
 
168
178
  ##### More information here
169
179
 
170
- - Visite https://getbootstrap.com/docs/5.0/migration/ for Bootstrap 5 migration
171
- - Visite https://github.com/twbs/bootstrap/issues/32753 for the list of class changes in Bootstrap 5
172
- - Visite https://github.com/DSI-VD/foehn/blob/master/CHANGELOG.md for Foehn 2 migration
180
+ - https://getbootstrap.com/docs/5.0/migration/ for Bootstrap 5 migration.
181
+ - https://github.com/twbs/bootstrap/issues/32753 for the list of class changes in Bootstrap 5.
182
+ - https://github.com/DSI-VD/foehn/blob/master/CHANGELOG.md for Foehn 2 migration.
173
183
 
174
184
  ### Update ".eslintrc.json" file if your project was already migrated to ESLint
175
185
 
176
- **NB: Replace your current `.eslintrc.json` file by the one found in [ESLINT_MIGRATION.GUIDE](ESLINT_MIGRATION_GUIDE.md#customizing_eslint__inspired_from_otia_and_prestations-ng_s_files_for_rules_)**
186
+ **NB: Replace your current `.eslintrc.json` file by the one found in [ESLINT_MIGRATION.GUIDE](ESLINT_MIGRATION_GUIDE.md#customizing_eslint__inspired_from_otia_and_prestations-ng_s_files_for_rules_).**
177
187
 
178
188
  Then run
179
189
 
@@ -181,12 +191,11 @@ Then run
181
191
  ng lint --fix=true
182
192
  ```
183
193
 
184
- and finally fix manually remaining errors
194
+ and finally fix manually remaining errors. When encountering following warning in your `*.spec.ts`:
185
195
 
186
- If you encounter the following waring in your `*.spec.ts`:
187
- `warning Deprecated: Use `provideRouter`or`RouterModule`/`RouterModule.forRoot` instead`
196
+ **`warning Deprecated: Use provideRouter or RouterModule/RouterModule.forRoot instead`**
188
197
 
189
- You can replace `RouterTestingModule` by `RouterModule.forRoot([])`
198
+ replace `RouterTestingModule` by `RouterModule.forRoot([])`
190
199
 
191
200
  ### Cloudflare (`app.module.ts`)
192
201
 
@@ -208,8 +217,8 @@ Need to remove `CAPTCHA_URL_TOKEN` override
208
217
 
209
218
  When using `intellij`, you can run code inspection on your project to fix manually deprecations. Two ways:
210
219
 
211
- - Intellij window menu, go to: `Code > Analyze code > Run inspection by name...` (or **Ctrl+Alt+Maj+i**) and type `Deprecated symbol used`
212
- - Or select your project in your project panel and `right click` on it then `Analyze > Run inspection by name...` (or **Ctrl+Alt+Maj+i**) and type `Deprecated symbol used`
220
+ - Intellij window menu, go to: `Code > Analyze code > Run inspection by name...` (or **Ctrl+Alt+Maj+i**) and type `Deprecated symbol used`.
221
+ - Or select your project in your project panel and `right click` on it then `Analyze > Run inspection by name...` (or **Ctrl+Alt+Maj+i**) and type `Deprecated symbol used`.
213
222
 
214
223
  ### Last but not least, check if your application is working!!!
215
224
 
@@ -4,18 +4,19 @@ import { map } from 'rxjs/operators';
4
4
  import { Breadcrumb } from './breadcrumb';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../sdk-session-info/session-info.service";
7
+ import * as i2 from "../sdk-appinfo/application-info.service";
7
8
  const DEFAULT_VALUES = {
8
9
  espaceSecuriseUrl: '/100002/accueil',
9
10
  allPrestationsUrl: '/100002/prestations',
10
- vdChUrl: 'https://www.vd.ch/',
11
- descriptionPageBaseUrl: 'https://www.vd.ch/go.to?prestation=',
11
+ vdChUrl: null,
12
+ descriptionPageBaseUrl: null,
12
13
  // It's better to not display the breadcrumb item if the prestation doesn't give its code.
13
14
  prestationCode: null
14
15
  };
15
16
  // eslint-disable-next-line jsdoc/require-jsdoc
16
- function getNotConnectedBreadcrumb({ vdChUrl = DEFAULT_VALUES.vdChUrl, descriptionPageBaseUrl = DEFAULT_VALUES.descriptionPageBaseUrl, prestationCode = DEFAULT_VALUES.prestationCode }) {
17
+ function getNotConnectedBreadcrumb({ vdChUrl, descriptionPageBaseUrl, prestationCode = DEFAULT_VALUES.prestationCode }, vdChUrlFromAppInfo) {
17
18
  const rootElement = {
18
- url: vdChUrl,
19
+ url: vdChUrl || vdChUrlFromAppInfo,
19
20
  routerLink: null,
20
21
  label: 'vd.ch'
21
22
  };
@@ -29,7 +30,9 @@ function getNotConnectedBreadcrumb({ vdChUrl = DEFAULT_VALUES.vdChUrl, descripti
29
30
  rootElement,
30
31
  {
31
32
  // e.g. https://www.vd.ch/go.to?prestation=101016
32
- url: `${descriptionPageBaseUrl}${prestationCode}`,
33
+ url: descriptionPageBaseUrl
34
+ ? `${descriptionPageBaseUrl}${prestationCode}`
35
+ : `${vdChUrlFromAppInfo}/go.to?prestation=${prestationCode}`,
33
36
  routerLink: null,
34
37
  label: 'Description de la prestation'
35
38
  }
@@ -55,22 +58,23 @@ function getConnectedBreadcrumb({ espaceSecuriseUrl = DEFAULT_VALUES.espaceSecur
55
58
  * @param sessionInfoData data info on session
56
59
  * @param configuration as breadcrumb config.
57
60
  * @param currentItem as breadcrumb current item
61
+ * @param vdChBaseUrl typo3 base url for current env
58
62
  * @returns Breadcrumb
59
63
  */
60
- function getBreadcrumb(sessionInfoData, configuration, currentItem) {
64
+ function getBreadcrumb(sessionInfoData, configuration, currentItem, vdChBaseUrl) {
61
65
  // Whether the user has a context we consider it as connected.
62
66
  const isConnectedCyber = !!sessionInfoData && !!sessionInfoData.context;
63
67
  const breadcrumb = new Breadcrumb();
64
68
  // Depending on whether the user is connected, the content of the items change.
65
69
  breadcrumb.breadcrumbItems = isConnectedCyber
66
70
  ? getConnectedBreadcrumb(configuration, sessionInfoData)
67
- : getNotConnectedBreadcrumb(configuration);
71
+ : getNotConnectedBreadcrumb(configuration, vdChBaseUrl);
68
72
  // Optionally set the current item.
69
73
  breadcrumb.current = currentItem;
70
74
  return breadcrumb;
71
75
  }
72
76
  // eslint-disable-next-line jsdoc/require-jsdoc
73
- function mapBreadcrumb([override, configuration, currentItem, sessionInfoData]) {
77
+ function mapBreadcrumb([override, configuration, currentItem, sessionInfoData, applicationInfo]) {
74
78
  // Take the override if it exists
75
79
  if (override) {
76
80
  // Although there's an override, we do want to assign the current item
@@ -83,14 +87,15 @@ function mapBreadcrumb([override, configuration, currentItem, sessionInfoData])
83
87
  }
84
88
  // Otherwise get a breadcrumb based on the configuration
85
89
  if (configuration) {
86
- return getBreadcrumb(sessionInfoData, configuration, currentItem);
90
+ return getBreadcrumb(sessionInfoData, configuration, currentItem, applicationInfo.configuration.portail.baseVdChUrl);
87
91
  }
88
92
  // Only output a breadcrumb of there's a configuration or an override
89
93
  return null;
90
94
  }
91
95
  export class BreadcrumbEventService {
92
- constructor(sessionInfo) {
96
+ constructor(sessionInfo, applicationInfoService) {
93
97
  this.sessionInfo = sessionInfo;
98
+ this.applicationInfoService = applicationInfoService;
94
99
  this._breadcrumbOverride = new BehaviorSubject(null);
95
100
  this._breadcrumbConfiguration = new BehaviorSubject(null);
96
101
  this._currentBreadcrumbItem = new BehaviorSubject(null);
@@ -100,7 +105,8 @@ export class BreadcrumbEventService {
100
105
  this._breadcrumbOverride,
101
106
  this._breadcrumbConfiguration,
102
107
  this._currentBreadcrumbItem,
103
- this.sessionInfo.data
108
+ this.sessionInfo.data,
109
+ this.applicationInfoService.data
104
110
  ]).pipe(
105
111
  // Put together the breadcrumb, or just take the override if it exists.
106
112
  map(mapBreadcrumb));
@@ -109,7 +115,8 @@ export class BreadcrumbEventService {
109
115
  this._breadcrumbOverride,
110
116
  this._breadcrumbConfiguration,
111
117
  this._currentBreadcrumbItem,
112
- of(null)
118
+ of(null),
119
+ this.applicationInfoService.data
113
120
  ]).pipe(
114
121
  // Put together the breadcrumb, or just take the override if it exists.
115
122
  map(mapBreadcrumb));
@@ -158,7 +165,7 @@ export class BreadcrumbEventService {
158
165
  setConfiguration(configuration) {
159
166
  this._breadcrumbConfiguration.next(configuration);
160
167
  }
161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BreadcrumbEventService, deps: [{ token: i1.SessionInfo }], target: i0.ɵɵFactoryTarget.Injectable }); }
168
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BreadcrumbEventService, deps: [{ token: i1.SessionInfo }, { token: i2.ApplicationInfoService }], target: i0.ɵɵFactoryTarget.Injectable }); }
162
169
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BreadcrumbEventService, providedIn: 'root' }); }
163
170
  }
164
171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BreadcrumbEventService, decorators: [{
@@ -166,5 +173,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
166
173
  args: [{
167
174
  providedIn: 'root'
168
175
  }]
169
- }], ctorParameters: () => [{ type: i1.SessionInfo }] });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQ0gsVUFBVSxFQUdiLE1BQU0sY0FBYyxDQUFDOzs7QUFFdEIsTUFBTSxjQUFjLEdBQTRCO0lBQzVDLGlCQUFpQixFQUFFLGlCQUFpQjtJQUNwQyxpQkFBaUIsRUFBRSxxQkFBcUI7SUFDeEMsT0FBTyxFQUFFLG9CQUFvQjtJQUM3QixzQkFBc0IsRUFBRSxxQ0FBcUM7SUFDN0QsMEZBQTBGO0lBQzFGLGNBQWMsRUFBRSxJQUFJO0NBQ3ZCLENBQUM7QUFFRiwrQ0FBK0M7QUFDL0MsU0FBUyx5QkFBeUIsQ0FBQyxFQUMvQixPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFDaEMsc0JBQXNCLEdBQUcsY0FBYyxDQUFDLHNCQUFzQixFQUM5RCxjQUFjLEdBQUcsY0FBYyxDQUFDLGNBQWMsRUFDeEI7SUFDdEIsTUFBTSxXQUFXLEdBQW1CO1FBQ2hDLEdBQUcsRUFBRSxPQUFPO1FBQ1osVUFBVSxFQUFFLElBQUk7UUFDaEIsS0FBSyxFQUFFLE9BQU87S0FDakIsQ0FBQztJQUVGLG1GQUFtRjtJQUNuRixzRkFBc0Y7SUFDdEYsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE9BQU87UUFDSCxX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QUN2RSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQ3JCLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSwwQ0FBMEM7UUFDMUMsT0FBTyxJQUFJLENBQUMsMkNBQTJDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksMENBQTBDLENBQUMsS0FBYztRQUN6RCxJQUFJLENBQUMsMkNBQTJDLEdBQUcsS0FBSyxDQUFDO0lBQzdELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLFVBQXNCO1FBQ2hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILG9CQUFvQjtRQUNoQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0NBQWtDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0IsQ0FBQyxXQUEyQjtRQUM1QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFDLGFBQXNDO1FBQ25ELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQzs4R0FuRlEsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7MkZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi9zZGstc2Vzc2lvbi1pbmZvL3Nlc3Npb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25JbmZvRGF0YSB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLWRhdGEnO1xuaW1wb3J0IHtcbiAgICBCcmVhZGNydW1iLFxuICAgIEJyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgIEJyZWFkY3J1bWJJdGVtXG59IGZyb20gJy4vYnJlYWRjcnVtYic7XG5cbmNvbnN0IERFRkFVTFRfVkFMVUVTOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbiA9IHtcbiAgICBlc3BhY2VTZWN1cmlzZVVybDogJy8xMDAwMDIvYWNjdWVpbCcsXG4gICAgYWxsUHJlc3RhdGlvbnNVcmw6ICcvMTAwMDAyL3ByZXN0YXRpb25zJyxcbiAgICB2ZENoVXJsOiAnaHR0cHM6Ly93d3cudmQuY2gvJyxcbiAgICBkZXNjcmlwdGlvblBhZ2VCYXNlVXJsOiAnaHR0cHM6Ly93d3cudmQuY2gvZ28udG8/cHJlc3RhdGlvbj0nLFxuICAgIC8vIEl0J3MgYmV0dGVyIHRvIG5vdCBkaXNwbGF5IHRoZSBicmVhZGNydW1iIGl0ZW0gaWYgdGhlIHByZXN0YXRpb24gZG9lc24ndCBnaXZlIGl0cyBjb2RlLlxuICAgIHByZXN0YXRpb25Db2RlOiBudWxsXG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZnVuY3Rpb24gZ2V0Tm90Q29ubmVjdGVkQnJlYWRjcnVtYih7XG4gICAgdmRDaFVybCA9IERFRkFVTFRfVkFMVUVTLnZkQ2hVcmwsXG4gICAgZGVzY3JpcHRpb25QYWdlQmFzZVVybCA9IERFRkFVTFRfVkFMVUVTLmRlc2NyaXB0aW9uUGFnZUJhc2VVcmwsXG4gICAgcHJlc3RhdGlvbkNvZGUgPSBERUZBVUxUX1ZBTFVFUy5wcmVzdGF0aW9uQ29kZVxufTogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24pOiBCcmVhZGNydW1iSXRlbVtdIHtcbiAgICBjb25zdCByb290RWxlbWVudDogQnJlYWRjcnVtYkl0ZW0gPSB7XG4gICAgICAgIHVybDogdmRDaFVybCxcbiAgICAgICAgcm91dGVyTGluazogbnVsbCxcbiAgICAgICAgbGFiZWw6ICd2ZC5jaCdcbiAgICB9O1xuXG4gICAgLy8gRG8gbm90IGRpc3BsYXkgdGhlIHNlY29uZCBlbGVtZW50IGlmIHRoZSBwcmVzdGF0aW9uIGNvZGUgaXMgbm90IHRoZXJlIHNvIHdlIGhhdmVcbiAgICAvLyBhIGNoYW5jZSB0byByZWFsaXplIHRoYXQgc29tZXRoaW5nJ3MgbWlzc2luZyByYXRoZXIgdGhhbiBoYXZpbmcgYSBsaW5rIHRoYXQgZG9lc24ndFxuICAgIC8vIHBvaW50IHRvIHNvbWV0aGluZyBtZWFuaW5nZnVsLlxuICAgIGlmICghcHJlc3RhdGlvbkNvZGUpIHtcbiAgICAgICAgcmV0dXJuIFtyb290RWxlbWVudF07XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgcm9vdEVsZW1lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC8vIGUuZy4gaHR0cHM6Ly93d3cudmQuY2gvZ28udG8/cHJlc3RhdGlvbj0xMDEwMTZcbiAgICAgICAgICAgIHVybDogYCR7ZGVzY3JpcHRpb25QYWdlQmFzZVVybH0ke3ByZXN0YXRpb25Db2RlfWAsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBudWxsLFxuICAgICAgICAgICAgbGFiZWw6ICdEZXNjcmlwdGlvbiBkZSBsYSBwcmVzdGF0aW9uJ1xuICAgICAgICB9XG4gICAgXTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIGdldENvbm5lY3RlZEJyZWFkY3J1bWIoXG4gICAge1xuICAgICAgICBlc3BhY2VTZWN1cmlzZVVybCA9IERFRkFVTFRfVkFMVUVTLmVzcGFjZVNlY3VyaXNlVXJsXG4gICAgfTogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgc2Vzc2lvbkluZm9EYXRhOiBTZXNzaW9uSW5mb0RhdGFcbik6IEJyZWFkY3J1bWJJdGVtW10ge1xuICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHVybDogZXNwYWNlU2VjdXJpc2VVcmwsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBudWxsLFxuICAgICAgICAgICAgbGFiZWw6IHNlc3Npb25JbmZvRGF0YS5lc3BhY2VMYWJlbFxuICAgICAgICB9XG4gICAgXTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGJyZWFkY3J1bWIgZGVwZW5kaW5nIG9uIHRoZSBzdGF0ZSBvZiB0aGUgdXNlci5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIENvbm5lY3RlZCB1c2VyIDogXCJNb24gZXNwYWNlXCJcbiAqIEFub255bW91cyB1c2VyIDogXCJ2ZC5jaCA+IERlc2NyaXB0aW9uIGRlIGxhIHByZXN0YXRpb25cIlxuICogQHBhcmFtIHNlc3Npb25JbmZvRGF0YSBkYXRhIGluZm8gb24gc2Vzc2lvblxuICogQHBhcmFtIGNvbmZpZ3VyYXRpb24gYXMgYnJlYWRjcnVtYiBjb25maWcuXG4gKiBAcGFyYW0gY3VycmVudEl0ZW0gYXMgYnJlYWRjcnVtYiBjdXJyZW50IGl0ZW1cbiAqIEByZXR1cm5zIEJyZWFkY3J1bWJcbiAqL1xuZnVuY3Rpb24gZ2V0QnJlYWRjcnVtYihcbiAgICBzZXNzaW9uSW5mb0RhdGE6IFNlc3Npb25JbmZvRGF0YSxcbiAgICBjb25maWd1cmF0aW9uOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbixcbiAgICBjdXJyZW50SXRlbTogQnJlYWRjcnVtYkl0ZW1cbik6IEJyZWFkY3J1bWIge1xuICAgIC8vIFdoZXRoZXIgdGhlIHVzZXIgaGFzIGEgY29udGV4dCB3ZSBjb25zaWRlciBpdCBhcyBjb25uZWN0ZWQuXG4gICAgY29uc3QgaXNDb25uZWN0ZWRDeWJlciA9ICEhc2Vzc2lvbkluZm9EYXRhICYmICEhc2Vzc2lvbkluZm9EYXRhLmNvbnRleHQ7XG5cbiAgICBjb25zdCBicmVhZGNydW1iID0gbmV3IEJyZWFkY3J1bWIoKTtcblxuICAgIC8vIERlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB1c2VyIGlzIGNvbm5lY3RlZCwgdGhlIGNvbnRlbnQgb2YgdGhlIGl0ZW1zIGNoYW5nZS5cbiAgICBicmVhZGNydW1iLmJyZWFkY3J1bWJJdGVtcyA9IGlzQ29ubmVjdGVkQ3liZXJcbiAgICAgICAgPyBnZXRDb25uZWN0ZWRCcmVhZGNydW1iKGNvbmZpZ3VyYXRpb24sIHNlc3Npb25JbmZvRGF0YSlcbiAgICAgICAgOiBnZXROb3RDb25uZWN0ZWRCcmVhZGNydW1iKGNvbmZpZ3VyYXRpb24pO1xuXG4gICAgLy8gT3B0aW9uYWxseSBzZXQgdGhlIGN1cnJlbnQgaXRlbS5cbiAgICBicmVhZGNydW1iLmN1cnJlbnQgPSBjdXJyZW50SXRlbTtcblxuICAgIHJldHVybiBicmVhZGNydW1iO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZnVuY3Rpb24gbWFwQnJlYWRjcnVtYihbXG4gICAgb3ZlcnJpZGUsXG4gICAgY29uZmlndXJhdGlvbixcbiAgICBjdXJyZW50SXRlbSxcbiAgICBzZXNzaW9uSW5mb0RhdGFcbl06IFtcbiAgICBCcmVhZGNydW1iLFxuICAgIEJyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgIEJyZWFkY3J1bWJJdGVtLFxuICAgIFNlc3Npb25JbmZvRGF0YVxuXSk6IEJyZWFkY3J1bWIge1xuICAgIC8vIFRha2UgdGhlIG92ZXJyaWRlIGlmIGl0IGV4aXN0c1xuICAgIGlmIChvdmVycmlkZSkge1xuICAgICAgICAvLyBBbHRob3VnaCB0aGVyZSdzIGFuIG92ZXJyaWRlLCB3ZSBkbyB3YW50IHRvIGFzc2lnbiB0aGUgY3VycmVudCBpdGVtXG4gICAgICAgIC8vIHNvIGVhY2ggcGFnZSBkYW5zIHNldCBpdHMgb3duIG5hbWUgcmF0aGVyIHRoYW4gbGV0dGluZyB0aGUgb3ZlcnJpZGVcbiAgICAgICAgLy8gaGFuZGxlIHRoaXMuXG4gICAgICAgIGlmIChjdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgb3ZlcnJpZGUuY3VycmVudCA9IGN1cnJlbnRJdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdmVycmlkZTtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UgZ2V0IGEgYnJlYWRjcnVtYiBiYXNlZCBvbiB0aGUgY29uZmlndXJhdGlvblxuICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgIHJldHVybiBnZXRCcmVhZGNydW1iKHNlc3Npb25JbmZvRGF0YSwgY29uZmlndXJhdGlvbiwgY3VycmVudEl0ZW0pO1xuICAgIH1cblxuICAgIC8vIE9ubHkgb3V0cHV0IGEgYnJlYWRjcnVtYiBvZiB0aGVyZSdzIGEgY29uZmlndXJhdGlvbiBvciBhbiBvdmVycmlkZVxuICAgIHJldHVybiBudWxsO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJFdmVudFNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2JyZWFkY3J1bWJPdmVycmlkZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWRjcnVtYj4obnVsbCk7XG4gICAgcHJpdmF0ZSBfYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24gPVxuICAgICAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJDb25maWd1cmF0aW9uPihudWxsKTtcbiAgICBwcml2YXRlIF9jdXJyZW50QnJlYWRjcnVtYkl0ZW0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJJdGVtPihudWxsKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9icmVhZGNydW1iT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+O1xuXG4gICAgcHJpdmF0ZSBfc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlc3Npb25JbmZvOiBTZXNzaW9uSW5mbykge1xuICAgICAgICAvLyBXaGVuIHRoZSB1c2VyIG1pZ2h0IGJlIGNvbm5lY3RlZFxuICAgICAgICB0aGlzLl9icmVhZGNydW1iT2JzZXJ2YWJsZSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYk92ZXJyaWRlLFxuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50QnJlYWRjcnVtYkl0ZW0sXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JbmZvLmRhdGFcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIFB1dCB0b2dldGhlciB0aGUgYnJlYWRjcnVtYiwgb3IganVzdCB0YWtlIHRoZSBvdmVycmlkZSBpZiBpdCBleGlzdHMuXG4gICAgICAgICAgICBtYXAobWFwQnJlYWRjcnVtYilcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBJZiB0aGUgdXNlciBpcyBORVZFUiBjb25uZWN0ZWQgKGZvciBpbnN0YW5jZSBpbiBjeWJlcmxvZ2luKVxuICAgICAgICB0aGlzLl9uZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iT3ZlcnJpZGUsXG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iQ29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRCcmVhZGNydW1iSXRlbSxcbiAgICAgICAgICAgIG9mKG51bGwpXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBQdXQgdG9nZXRoZXIgdGhlIGJyZWFkY3J1bWIsIG9yIGp1c3QgdGFrZSB0aGUgb3ZlcnJpZGUgaWYgaXQgZXhpc3RzLlxuICAgICAgICAgICAgbWFwKG1hcEJyZWFkY3J1bWIpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHNraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZDtcbiAgICB9XG5cbiAgICBzZXQgc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3NraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgYnJlYWRjcnVtYi4gVGhpcyB2YWx1ZSB3aWxsIG92ZXJyaWRlIGFueSBjb25maWd1cmF0aW9uIGluamVjdGVkIHdpdGhcbiAgICAgKiBgc2V0Q29uZmlndXJhdGlvbmAuIE9ubHkgdXNlIGlmIHlvdSB3YW50IHRvIGhhbmRsZSB0aGUgYnJlYWRjcnVtYiBtYW51YWxseS5cbiAgICAgKiBAcGFyYW0gYnJlYWRjcnVtYiBhcyBCcmVhZGNydW1iXG4gICAgICovXG4gICAgc2V0QnJlYWRjcnVtYihicmVhZGNydW1iOiBCcmVhZGNydW1iKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2JyZWFkY3J1bWJPdmVycmlkZS5uZXh0KGJyZWFkY3J1bWIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBicmVhZGNydW1iIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8QnJlYWRjcnVtYj5cbiAgICAgKi9cbiAgICBicmVhZGNydW1iT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJPYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBicmVhZGNydW1iIHZhbHVlIGlmIG5ldmVyIGNvbm5lY3RlZC5cbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+XG4gICAgICovXG4gICAgbmV2ZXJDb25uZWN0ZWRCcmVhZGNydW1iT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25ldmVyQ29ubmVjdGVkQnJlYWRjcnVtYk9ic2VydmFibGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBjdXJyZW50IGl0ZW0uIFVzZWQgZm9yIGFjY2Vzc2liaWxpdHkgcHVycG9zZXMuXG4gICAgICogQHBhcmFtIGN1cnJlbnRJdGVtIGFzIEJyZWFkY3J1bWJJdGVtXG4gICAgICovXG4gICAgc2V0Q3VycmVudEJyZWFkY3J1bWIoY3VycmVudEl0ZW06IEJyZWFkY3J1bWJJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRCcmVhZGNydW1iSXRlbS5uZXh0KGN1cnJlbnRJdGVtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGN1cnJlbnQgYnJlYWRjcnVtYiBjb25maWd1cmF0aW9uLlxuICAgICAqXG4gICAgICogU2V0IHRvIGBudWxsYCB0byBkaXNhYmxlIHRoZSBicmVhZGNydW1iLlxuICAgICAqIEBwYXJhbSBjb25maWd1cmF0aW9uIGFzIEJyZWFkY3J1bWJDb25maWd1cmF0aW9uXG4gICAgICovXG4gICAgc2V0Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9icmVhZGNydW1iQ29uZmlndXJhdGlvbi5uZXh0KGNvbmZpZ3VyYXRpb24pO1xuICAgIH1cbn1cbiJdfQ==
176
+ }], ctorParameters: () => [{ type: i1.SessionInfo }, { type: i2.ApplicationInfoService }] });
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU1yQyxPQUFPLEVBQ0gsVUFBVSxFQUdiLE1BQU0sY0FBYyxDQUFDOzs7O0FBRXRCLE1BQU0sY0FBYyxHQUE0QjtJQUM1QyxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsaUJBQWlCLEVBQUUscUJBQXFCO0lBQ3hDLE9BQU8sRUFBRSxJQUFJO0lBQ2Isc0JBQXNCLEVBQUUsSUFBSTtJQUM1QiwwRkFBMEY7SUFDMUYsY0FBYyxFQUFFLElBQUk7Q0FDdkIsQ0FBQztBQUVGLCtDQUErQztBQUMvQyxTQUFTLHlCQUF5QixDQUM5QixFQUNJLE9BQU8sRUFDUCxzQkFBc0IsRUFDdEIsY0FBYyxHQUFHLGNBQWMsQ0FBQyxjQUFjLEVBQ3hCLEVBQzFCLGtCQUEwQjtJQUUxQixNQUFNLFdBQVcsR0FBbUI7UUFDaEMsR0FBRyxFQUFFLE9BQU8sSUFBSSxrQkFBa0I7UUFDbEMsVUFBVSxFQUFFLElBQUk7UUFDaEIsS0FBSyxFQUFFLE9BQU87S0FDakIsQ0FBQztJQUVGLG1GQUFtRjtJQUNuRixzRkFBc0Y7SUFDdEYsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE9BQU87UUFDSCxXQUFXO1FBQ1g7WUFDSSxpREFBaUQ7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c0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm8gfSBmcm9tICcuLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UgfSBmcm9tICcuLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi9zZGstc2Vzc2lvbi1pbmZvL3Nlc3Npb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25JbmZvRGF0YSB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLWRhdGEnO1xuaW1wb3J0IHtcbiAgICBCcmVhZGNydW1iLFxuICAgIEJyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgIEJyZWFkY3J1bWJJdGVtXG59IGZyb20gJy4vYnJlYWRjcnVtYic7XG5cbmNvbnN0IERFRkFVTFRfVkFMVUVTOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbiA9IHtcbiAgICBlc3BhY2VTZWN1cmlzZVVybDogJy8xMDAwMDIvYWNjdWVpbCcsXG4gICAgYWxsUHJlc3RhdGlvbnNVcmw6ICcvMTAwMDAyL3ByZXN0YXRpb25zJyxcbiAgICB2ZENoVXJsOiBudWxsLFxuICAgIGRlc2NyaXB0aW9uUGFnZUJhc2VVcmw6IG51bGwsXG4gICAgLy8gSXQncyBiZXR0ZXIgdG8gbm90IGRpc3BsYXkgdGhlIGJyZWFkY3J1bWIgaXRlbSBpZiB0aGUgcHJlc3RhdGlvbiBkb2Vzbid0IGdpdmUgaXRzIGNvZGUuXG4gICAgcHJlc3RhdGlvbkNvZGU6IG51bGxcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5mdW5jdGlvbiBnZXROb3RDb25uZWN0ZWRCcmVhZGNydW1iKFxuICAgIHtcbiAgICAgICAgdmRDaFVybCxcbiAgICAgICAgZGVzY3JpcHRpb25QYWdlQmFzZVVybCxcbiAgICAgICAgcHJlc3RhdGlvbkNvZGUgPSBERUZBVUxUX1ZBTFVFUy5wcmVzdGF0aW9uQ29kZVxuICAgIH06IEJyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgIHZkQ2hVcmxGcm9tQXBwSW5mbzogc3RyaW5nXG4pOiBCcmVhZGNydW1iSXRlbVtdIHtcbiAgICBjb25zdCByb290RWxlbWVudDogQnJlYWRjcnVtYkl0ZW0gPSB7XG4gICAgICAgIHVybDogdmRDaFVybCB8fCB2ZENoVXJsRnJvbUFwcEluZm8sXG4gICAgICAgIHJvdXRlckxpbms6IG51bGwsXG4gICAgICAgIGxhYmVsOiAndmQuY2gnXG4gICAgfTtcblxuICAgIC8vIERvIG5vdCBkaXNwbGF5IHRoZSBzZWNvbmQgZWxlbWVudCBpZiB0aGUgcHJlc3RhdGlvbiBjb2RlIGlzIG5vdCB0aGVyZSBzbyB3ZSBoYXZlXG4gICAgLy8gYSBjaGFuY2UgdG8gcmVhbGl6ZSB0aGF0IHNvbWV0aGluZydzIG1pc3NpbmcgcmF0aGVyIHRoYW4gaGF2aW5nIGEgbGluayB0aGF0IGRvZXNuJ3RcbiAgICAvLyBwb2ludCB0byBzb21ldGhpbmcgbWVhbmluZ2Z1bC5cbiAgICBpZiAoIXByZXN0YXRpb25Db2RlKSB7XG4gICAgICAgIHJldHVybiBbcm9vdEVsZW1lbnRdO1xuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICAgIHJvb3RFbGVtZW50LFxuICAgICAgICB7XG4gICAgICAgICAgICAvLyBlLmcuIGh0dHBzOi8vd3d3LnZkLmNoL2dvLnRvP3ByZXN0YXRpb249MTAxMDE2XG4gICAgICAgICAgICB1cmw6IGRlc2NyaXB0aW9uUGFnZUJhc2VVcmxcbiAgICAgICAgICAgICAgICA/IGAke2Rlc2NyaXB0aW9uUGFnZUJhc2VVcmx9JHtwcmVzdGF0aW9uQ29kZX1gXG4gICAgICAgICAgICAgICAgOiBgJHt2ZENoVXJsRnJvbUFwcEluZm99L2dvLnRvP3ByZXN0YXRpb249JHtwcmVzdGF0aW9uQ29kZX1gLFxuICAgICAgICAgICAgcm91dGVyTGluazogbnVsbCxcbiAgICAgICAgICAgIGxhYmVsOiAnRGVzY3JpcHRpb24gZGUgbGEgcHJlc3RhdGlvbidcbiAgICAgICAgfVxuICAgIF07XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5mdW5jdGlvbiBnZXRDb25uZWN0ZWRCcmVhZGNydW1iKFxuICAgIHtcbiAgICAgICAgZXNwYWNlU2VjdXJpc2VVcmwgPSBERUZBVUxUX1ZBTFVFUy5lc3BhY2VTZWN1cmlzZVVybFxuICAgIH06IEJyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgIHNlc3Npb25JbmZvRGF0YTogU2Vzc2lvbkluZm9EYXRhXG4pOiBCcmVhZGNydW1iSXRlbVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgICB1cmw6IGVzcGFjZVNlY3VyaXNlVXJsLFxuICAgICAgICAgICAgcm91dGVyTGluazogbnVsbCxcbiAgICAgICAgICAgIGxhYmVsOiBzZXNzaW9uSW5mb0RhdGEuZXNwYWNlTGFiZWxcbiAgICAgICAgfVxuICAgIF07XG59XG5cbi8qKlxuICogR2V0IHRoZSBicmVhZGNydW1iIGRlcGVuZGluZyBvbiB0aGUgc3RhdGUgb2YgdGhlIHVzZXIuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBDb25uZWN0ZWQgdXNlciA6IFwiTW9uIGVzcGFjZVwiXG4gKiBBbm9ueW1vdXMgdXNlciA6IFwidmQuY2ggPiBEZXNjcmlwdGlvbiBkZSBsYSBwcmVzdGF0aW9uXCJcbiAqIEBwYXJhbSBzZXNzaW9uSW5mb0RhdGEgZGF0YSBpbmZvIG9uIHNlc3Npb25cbiAqIEBwYXJhbSBjb25maWd1cmF0aW9uIGFzIGJyZWFkY3J1bWIgY29uZmlnLlxuICogQHBhcmFtIGN1cnJlbnRJdGVtIGFzIGJyZWFkY3J1bWIgY3VycmVudCBpdGVtXG4gKiBAcGFyYW0gdmRDaEJhc2VVcmwgdHlwbzMgYmFzZSB1cmwgZm9yIGN1cnJlbnQgZW52XG4gKiBAcmV0dXJucyBCcmVhZGNydW1iXG4gKi9cbmZ1bmN0aW9uIGdldEJyZWFkY3J1bWIoXG4gICAgc2Vzc2lvbkluZm9EYXRhOiBTZXNzaW9uSW5mb0RhdGEsXG4gICAgY29uZmlndXJhdGlvbjogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgY3VycmVudEl0ZW06IEJyZWFkY3J1bWJJdGVtLFxuICAgIHZkQ2hCYXNlVXJsOiBzdHJpbmdcbik6IEJyZWFkY3J1bWIge1xuICAgIC8vIFdoZXRoZXIgdGhlIHVzZXIgaGFzIGEgY29udGV4dCB3ZSBjb25zaWRlciBpdCBhcyBjb25uZWN0ZWQuXG4gICAgY29uc3QgaXNDb25uZWN0ZWRDeWJlciA9ICEhc2Vzc2lvbkluZm9EYXRhICYmICEhc2Vzc2lvbkluZm9EYXRhLmNvbnRleHQ7XG5cbiAgICBjb25zdCBicmVhZGNydW1iID0gbmV3IEJyZWFkY3J1bWIoKTtcblxuICAgIC8vIERlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB1c2VyIGlzIGNvbm5lY3RlZCwgdGhlIGNvbnRlbnQgb2YgdGhlIGl0ZW1zIGNoYW5nZS5cbiAgICBicmVhZGNydW1iLmJyZWFkY3J1bWJJdGVtcyA9IGlzQ29ubmVjdGVkQ3liZXJcbiAgICAgICAgPyBnZXRDb25uZWN0ZWRCcmVhZGNydW1iKGNvbmZpZ3VyYXRpb24sIHNlc3Npb25JbmZvRGF0YSlcbiAgICAgICAgOiBnZXROb3RDb25uZWN0ZWRCcmVhZGNydW1iKGNvbmZpZ3VyYXRpb24sIHZkQ2hCYXNlVXJsKTtcblxuICAgIC8vIE9wdGlvbmFsbHkgc2V0IHRoZSBjdXJyZW50IGl0ZW0uXG4gICAgYnJlYWRjcnVtYi5jdXJyZW50ID0gY3VycmVudEl0ZW07XG5cbiAgICByZXR1cm4gYnJlYWRjcnVtYjtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIG1hcEJyZWFkY3J1bWIoW1xuICAgIG92ZXJyaWRlLFxuICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgY3VycmVudEl0ZW0sXG4gICAgc2Vzc2lvbkluZm9EYXRhLFxuICAgIGFwcGxpY2F0aW9uSW5mb1xuXTogW1xuICAgIEJyZWFkY3J1bWIsXG4gICAgQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgQnJlYWRjcnVtYkl0ZW0sXG4gICAgU2Vzc2lvbkluZm9EYXRhLFxuICAgIEFwcGxpY2F0aW9uSW5mb1xuXSk6IEJyZWFkY3J1bWIge1xuICAgIC8vIFRha2UgdGhlIG92ZXJyaWRlIGlmIGl0IGV4aXN0c1xuICAgIGlmIChvdmVycmlkZSkge1xuICAgICAgICAvLyBBbHRob3VnaCB0aGVyZSdzIGFuIG92ZXJyaWRlLCB3ZSBkbyB3YW50IHRvIGFzc2lnbiB0aGUgY3VycmVudCBpdGVtXG4gICAgICAgIC8vIHNvIGVhY2ggcGFnZSBkYW5zIHNldCBpdHMgb3duIG5hbWUgcmF0aGVyIHRoYW4gbGV0dGluZyB0aGUgb3ZlcnJpZGVcbiAgICAgICAgLy8gaGFuZGxlIHRoaXMuXG4gICAgICAgIGlmIChjdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgb3ZlcnJpZGUuY3VycmVudCA9IGN1cnJlbnRJdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdmVycmlkZTtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UgZ2V0IGEgYnJlYWRjcnVtYiBiYXNlZCBvbiB0aGUgY29uZmlndXJhdGlvblxuICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgIHJldHVybiBnZXRCcmVhZGNydW1iKFxuICAgICAgICAgICAgc2Vzc2lvbkluZm9EYXRhLFxuICAgICAgICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIGN1cnJlbnRJdGVtLFxuICAgICAgICAgICAgYXBwbGljYXRpb25JbmZvLmNvbmZpZ3VyYXRpb24ucG9ydGFpbC5iYXNlVmRDaFVybFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIE9ubHkgb3V0cHV0IGEgYnJlYWRjcnVtYiBvZiB0aGVyZSdzIGEgY29uZmlndXJhdGlvbiBvciBhbiBvdmVycmlkZVxuICAgIHJldHVybiBudWxsO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJFdmVudFNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2JyZWFkY3J1bWJPdmVycmlkZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWRjcnVtYj4obnVsbCk7XG4gICAgcHJpdmF0ZSBfYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24gPVxuICAgICAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJDb25maWd1cmF0aW9uPihudWxsKTtcbiAgICBwcml2YXRlIF9jdXJyZW50QnJlYWRjcnVtYkl0ZW0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJJdGVtPihudWxsKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9icmVhZGNydW1iT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+O1xuXG4gICAgcHJpdmF0ZSBfc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uSW5mbzogU2Vzc2lvbkluZm8sXG4gICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZVxuICAgICkge1xuICAgICAgICAvLyBXaGVuIHRoZSB1c2VyIG1pZ2h0IGJlIGNvbm5lY3RlZFxuICAgICAgICB0aGlzLl9icmVhZGNydW1iT2JzZXJ2YWJsZSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYk92ZXJyaWRlLFxuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50QnJlYWRjcnVtYkl0ZW0sXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JbmZvLmRhdGEsXG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZGF0YVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgLy8gUHV0IHRvZ2V0aGVyIHRoZSBicmVhZGNydW1iLCBvciBqdXN0IHRha2UgdGhlIG92ZXJyaWRlIGlmIGl0IGV4aXN0cy5cbiAgICAgICAgICAgIG1hcChtYXBCcmVhZGNydW1iKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIE5FVkVSIGNvbm5lY3RlZCAoZm9yIGluc3RhbmNlIGluIGN5YmVybG9naW4pXG4gICAgICAgIHRoaXMuX25ldmVyQ29ubmVjdGVkQnJlYWRjcnVtYk9ic2VydmFibGUgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuX2JyZWFkY3J1bWJPdmVycmlkZSxcbiAgICAgICAgICAgIHRoaXMuX2JyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEJyZWFkY3J1bWJJdGVtLFxuICAgICAgICAgICAgb2YobnVsbCksXG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZGF0YVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgLy8gUHV0IHRvZ2V0aGVyIHRoZSBicmVhZGNydW1iLCBvciBqdXN0IHRha2UgdGhlIG92ZXJyaWRlIGlmIGl0IGV4aXN0cy5cbiAgICAgICAgICAgIG1hcChtYXBCcmVhZGNydW1iKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBza2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9za2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQ7XG4gICAgfVxuXG4gICAgc2V0IHNraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9za2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGJyZWFkY3J1bWIuIFRoaXMgdmFsdWUgd2lsbCBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBpbmplY3RlZCB3aXRoXG4gICAgICogYHNldENvbmZpZ3VyYXRpb25gLiBPbmx5IHVzZSBpZiB5b3Ugd2FudCB0byBoYW5kbGUgdGhlIGJyZWFkY3J1bWIgbWFudWFsbHkuXG4gICAgICogQHBhcmFtIGJyZWFkY3J1bWIgYXMgQnJlYWRjcnVtYlxuICAgICAqL1xuICAgIHNldEJyZWFkY3J1bWIoYnJlYWRjcnVtYjogQnJlYWRjcnVtYik6IHZvaWQge1xuICAgICAgICB0aGlzLl9icmVhZGNydW1iT3ZlcnJpZGUubmV4dChicmVhZGNydW1iKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYnJlYWRjcnVtYiB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+XG4gICAgICovXG4gICAgYnJlYWRjcnVtYk9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9icmVhZGNydW1iT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYnJlYWRjcnVtYiB2YWx1ZSBpZiBuZXZlciBjb25uZWN0ZWQuXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxCcmVhZGNydW1iPlxuICAgICAqL1xuICAgIG5ldmVyQ29ubmVjdGVkQnJlYWRjcnVtYk9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgY3VycmVudCBpdGVtLiBVc2VkIGZvciBhY2Nlc3NpYmlsaXR5IHB1cnBvc2VzLlxuICAgICAqIEBwYXJhbSBjdXJyZW50SXRlbSBhcyBCcmVhZGNydW1iSXRlbVxuICAgICAqL1xuICAgIHNldEN1cnJlbnRCcmVhZGNydW1iKGN1cnJlbnRJdGVtOiBCcmVhZGNydW1iSXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50QnJlYWRjcnVtYkl0ZW0ubmV4dChjdXJyZW50SXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBjdXJyZW50IGJyZWFkY3J1bWIgY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIFNldCB0byBgbnVsbGAgdG8gZGlzYWJsZSB0aGUgYnJlYWRjcnVtYi5cbiAgICAgKiBAcGFyYW0gY29uZmlndXJhdGlvbiBhcyBCcmVhZGNydW1iQ29uZmlndXJhdGlvblxuICAgICAqL1xuICAgIHNldENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbjogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24ubmV4dChjb25maWd1cmF0aW9uKTtcbiAgICB9XG59XG4iXX0=
@@ -72,7 +72,7 @@ export class FoehnTimeComponent extends FoehnInputStringComponent {
72
72
  useExisting: forwardRef(() => FoehnTimeComponent),
73
73
  multi: true
74
74
  }
75
- ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 'vd-p'\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_hours'\"\n [name]=\"name + '_hours'\"\n [label]=\"'foehn-input-time.hours.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"24\"\n [(model)]=\"hour\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_minutes'\"\n [name]=\"name + '_minutes'\"\n [label]=\"'foehn-input-time.minutes.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"59\"\n [(model)]=\"minute\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n ></foehn-input-number>\n </div>\n <div\n class=\"align-self-center position-relative\"\n *ngIf=\"!isEmpty() && (displayClearButton() | async)\"\n >\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label' | fromDictionary\n \"\n ></foehn-icon-times>\n </button>\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}\n"], dependencies: [{ kind: "component", type: i1.FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: i4.FoehnInputNumberComponent, selector: "foehn-input-number", inputs: ["hideStandardHelpText", "allowDecimal", "allowNegative", "maxDecimalCount", "allowFreeInput", "allowLeadingZero", "model"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.SdkDictionaryPipe, name: "fromDictionary" }] }); }
75
+ ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 'vd-p'\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_hours'\"\n [name]=\"name + '_hours'\"\n [label]=\"'foehn-input-time.hours.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"24\"\n [(model)]=\"hour\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n [allowLeadingZero]=\"true\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_minutes'\"\n [name]=\"name + '_minutes'\"\n [label]=\"'foehn-input-time.minutes.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"59\"\n [(model)]=\"minute\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n [allowLeadingZero]=\"true\"\n ></foehn-input-number>\n </div>\n <div\n class=\"align-self-center position-relative\"\n *ngIf=\"!isEmpty() && (displayClearButton() | async)\"\n >\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label' | fromDictionary\n \"\n ></foehn-icon-times>\n </button>\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}\n"], dependencies: [{ kind: "component", type: i1.FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: i4.FoehnInputNumberComponent, selector: "foehn-input-number", inputs: ["hideStandardHelpText", "allowDecimal", "allowNegative", "maxDecimalCount", "allowFreeInput", "allowLeadingZero", "model"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.SdkDictionaryPipe, name: "fromDictionary" }] }); }
76
76
  }
77
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FoehnTimeComponent, decorators: [{
78
78
  type: Component,
@@ -82,8 +82,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
82
82
  useExisting: forwardRef(() => FoehnTimeComponent),
83
83
  multi: true
84
84
  }
85
- ], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 'vd-p'\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_hours'\"\n [name]=\"name + '_hours'\"\n [label]=\"'foehn-input-time.hours.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"24\"\n [(model)]=\"hour\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_minutes'\"\n [name]=\"name + '_minutes'\"\n [label]=\"'foehn-input-time.minutes.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"59\"\n [(model)]=\"minute\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n ></foehn-input-number>\n </div>\n <div\n class=\"align-self-center position-relative\"\n *ngIf=\"!isEmpty() && (displayClearButton() | async)\"\n >\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label' | fromDictionary\n \"\n ></foehn-icon-times>\n </button>\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}\n"] }]
85
+ ], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 'vd-p'\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_hours'\"\n [name]=\"name + '_hours'\"\n [label]=\"'foehn-input-time.hours.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"24\"\n [(model)]=\"hour\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n [allowLeadingZero]=\"true\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_minutes'\"\n [name]=\"name + '_minutes'\"\n [label]=\"'foehn-input-time.minutes.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"59\"\n [(model)]=\"minute\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n [allowLeadingZero]=\"true\"\n ></foehn-input-number>\n </div>\n <div\n class=\"align-self-center position-relative\"\n *ngIf=\"!isEmpty() && (displayClearButton() | async)\"\n >\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label' | fromDictionary\n \"\n ></foehn-icon-times>\n </button>\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}\n"] }]
86
86
  }], ctorParameters: () => [], propDecorators: { childrenLabelSrOnly: [{
87
87
  type: Input
88
88
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4taW5wdXQtdGltZS9mb2Vobi1pbnB1dC10aW1lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC10aW1lL2ZvZWhuLWlucHV0LXRpbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBY3JELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSx5QkFBeUI7SUFRN0Q7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQVBaLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUlwQixlQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUlsQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVTtRQUNOLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QyxJQUFJLE9BQU8sVUFBVSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksT0FBTyxVQUFVLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7YUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDZCw4RUFBOEU7UUFDOUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbkQsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTztRQUNILE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBRUQsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FDbkUsSUFBSSxDQUFDLE1BQU0sQ0FDZCxFQUFFLENBQUM7SUFDUixDQUFDOzhHQXRFUSxrQkFBa0I7a0dBQWxCLGtCQUFrQixtR0FSaEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2dCQUNqRCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osaURDakJMLG1zSUErR0E7OzJGRDVGYSxrQkFBa0I7a0JBWjlCLFNBQVM7K0JBQ0ksa0JBQWtCLGFBR2pCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDOzRCQUNqRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjt3REFJRCxtQkFBbUI7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnQgfSBmcm9tICcuLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC1zdHJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tICcuLi9zZGstZGF0ZS9kYXRlLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4taW5wdXQtdGltZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWlucHV0LXRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWlucHV0LXRpbWUuY29tcG9uZW50LmNzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5UaW1lQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuVGltZUNvbXBvbmVudCBleHRlbmRzIEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgY2hpbGRyZW5MYWJlbFNyT25seSA9IGZhbHNlO1xuICAgIGhvdXI6IHN0cmluZztcbiAgICBtaW51dGU6IHN0cmluZztcblxuICAgIHByaXZhdGUgZGF0ZUhlbHBlciA9IG5ldyBEYXRlSGVscGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jbGVhckJ1dHRvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgdXBkYXRlVGltZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuZ2V0VmFsaWRWYWx1ZSgpO1xuICAgICAgICBpZiAodHlwZW9mIHZhbGlkVmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVVc2VySW5wdXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldFZhbGlkVmFsdWUoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWxpZFZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGltZVBhcnRzID0gISF2YWx1ZSA/IHZhbHVlLnNwbGl0KCc6JykgOiBudWxsO1xuICAgICAgICBpZiAodGltZVBhcnRzICYmIHRpbWVQYXJ0cy5sZW5ndGggPj0gMikge1xuICAgICAgICAgICAgdGhpcy5ob3VyID0gdGltZVBhcnRzWzBdO1xuICAgICAgICAgICAgdGhpcy5taW51dGUgPSB0aW1lUGFydHNbMV07XG4gICAgICAgIH0gZWxzZSBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmhvdXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5taW51dGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzcGxheUNsZWFyQnV0dG9uKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICAvLyBPdmVycmlkZSB0aGUgY2xlYXIgYnV0dG9uIGZvbmN0aW9uIG5vdCB3b3JyeSBhYm91dCB0aGUgbW9kZWwgYXQgdGhpcyBzdGFnZS5cbiAgICAgICAgY29uc3QgdmlzaWJsZSA9IHRoaXMuY2xlYXJCdXR0b24gJiYgIXRoaXMuZGlzYWJsZWQ7XG4gICAgICAgIHJldHVybiBvZih2aXNpYmxlKTtcbiAgICB9XG5cbiAgICByZXNldE1vZGVsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdXIgPSBudWxsO1xuICAgICAgICB0aGlzLm1pbnV0ZSA9IG51bGw7XG4gICAgICAgIHRoaXMubW9kZWxfID0gbnVsbDtcbiAgICAgICAgdGhpcy51cGRhdGVUaW1lKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlVXNlcklucHV0KCk7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgIH1cblxuICAgIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBzdXBlci5pc0VtcHR5KHRoaXMuaG91cikgJiYgc3VwZXIuaXNFbXB0eSh0aGlzLm1pbnV0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZFZhbHVlKCk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsXyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7dGhpcy5kYXRlSGVscGVyLmxlZnRQYWQodGhpcy5ob3VyKX06JHt0aGlzLmRhdGVIZWxwZXIubGVmdFBhZChcbiAgICAgICAgICAgIHRoaXMubWludXRlXG4gICAgICAgICl9YDtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGZpZWxkc2V0XG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBudWxsXCJcbiAgICA+XG4gICAgICAgIDxsZWdlbmRcbiAgICAgICAgICAgICpuZ0lmPVwiISFsYWJlbFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3Zpc3VhbGx5LWhpZGRlbicgOiAndmQtcCdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImxhYmVsXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sZWdlbmQ+XG5cbiAgICAgICAgPGZvZWhuLXZhbGlkYXRpb24tYWxlcnRzIFtjb21wb25lbnRdPVwidGhpc1wiPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICAqbmdJZj1cImhlbHBUZXh0XCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgICAgICA+PC9zbWFsbD5cblxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZkLWZvcm0tZmxleFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ3ZkLWZvcm0tZmxleF9faXRlbS0tMy1jaGFyLXdpZHRoJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICd2ZC1mb3JtLWZsZXhfX2l0ZW0tLTItY2hhci13aWR0aCc6ICEoXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZkLWZvcm0tZmxleF9faXRlbVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZvZWhuLWlucHV0LW51bWJlclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiYnVpbGRJZCgpICsgJ19ob3VycydcIlxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJ19ob3VycydcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2ZvZWhuLWlucHV0LXRpbWUuaG91cnMubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIjJcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjI0XCJcbiAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiaG91clwiXG4gICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJ1cGRhdGVUaW1lKClcIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICBbaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKHVzZXJJbnB1dCk9XCJoYW5kbGVVc2VySW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0Vycm9ySW5oZXJpdGVkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGVTdGFuZGFyZEhlbHBUZXh0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbaXNMYWJlbFNyT25seV09XCJjaGlsZHJlbkxhYmVsU3JPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgI2VudHJ5Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgPjwvZm9laG4taW5wdXQtbnVtYmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAndmQtZm9ybS1mbGV4X19pdGVtLS0zLWNoYXItd2lkdGgnOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUNsZWFyQnV0dG9uKCkgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgJ3ZkLWZvcm0tZmxleF9faXRlbS0tMi1jaGFyLXdpZHRoJzogIShcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmNcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidmQtZm9ybS1mbGV4X19pdGVtXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Zm9laG4taW5wdXQtbnVtYmVyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZElkKCkgKyAnX21pbnV0ZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZSArICdfbWludXRlcydcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2ZvZWhuLWlucHV0LXRpbWUubWludXRlcy5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiNTlcIlxuICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtaW51dGVcIlxuICAgICAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPVwidXBkYXRlVGltZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGVOb3RSZXF1aXJlZEV4dHJhTGFiZWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICh1c2VySW5wdXQpPVwiaGFuZGxlVXNlcklucHV0KClcIlxuICAgICAgICAgICAgICAgICAgICBbaXNFcnJvckluaGVyaXRlZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRlU3RhbmRhcmRIZWxwVGV4dF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzTGFiZWxTck9ubHldPVwiY2hpbGRyZW5MYWJlbFNyT25seVwiXG4gICAgICAgICAgICAgICAgPjwvZm9laG4taW5wdXQtbnVtYmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhbGlnbi1zZWxmLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNFbXB0eSgpICYmIChkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiYnVpbGRJZCgpICsgJ19jbGVhckJ1dHRvbidcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjbGVhci1idXR0b24gYnRuIGJ0bi1saW5rIGQtZmxleFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXNldE1vZGVsKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tdGltZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4taW5wdXQuY2xlYXItYnV0dG9uLmxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mb2Vobi1pY29uLXRpbWVzPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG48L2Rpdj5cbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4taW5wdXQtdGltZS9mb2Vobi1pbnB1dC10aW1lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC10aW1lL2ZvZWhuLWlucHV0LXRpbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBY3JELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSx5QkFBeUI7SUFRN0Q7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQVBaLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUlwQixlQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUlsQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVTtRQUNOLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QyxJQUFJLE9BQU8sVUFBVSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksT0FBTyxVQUFVLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7YUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDZCw4RUFBOEU7UUFDOUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbkQsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTztRQUNILE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBRUQsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FDbkUsSUFBSSxDQUFDLE1BQU0sQ0FDZCxFQUFFLENBQUM7SUFDUixDQUFDOzhHQXRFUSxrQkFBa0I7a0dBQWxCLGtCQUFrQixtR0FSaEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2dCQUNqRCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osaURDakJMLHF5SUFpSEE7OzJGRDlGYSxrQkFBa0I7a0JBWjlCLFNBQVM7K0JBQ0ksa0JBQWtCLGFBR2pCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDOzRCQUNqRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjt3REFJRCxtQkFBbUI7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnQgfSBmcm9tICcuLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC1zdHJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tICcuLi9zZGstZGF0ZS9kYXRlLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4taW5wdXQtdGltZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWlucHV0LXRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWlucHV0LXRpbWUuY29tcG9uZW50LmNzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5UaW1lQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuVGltZUNvbXBvbmVudCBleHRlbmRzIEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgY2hpbGRyZW5MYWJlbFNyT25seSA9IGZhbHNlO1xuICAgIGhvdXI6IHN0cmluZztcbiAgICBtaW51dGU6IHN0cmluZztcblxuICAgIHByaXZhdGUgZGF0ZUhlbHBlciA9IG5ldyBEYXRlSGVscGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jbGVhckJ1dHRvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgdXBkYXRlVGltZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuZ2V0VmFsaWRWYWx1ZSgpO1xuICAgICAgICBpZiAodHlwZW9mIHZhbGlkVmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVVc2VySW5wdXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldFZhbGlkVmFsdWUoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWxpZFZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGltZVBhcnRzID0gISF2YWx1ZSA/IHZhbHVlLnNwbGl0KCc6JykgOiBudWxsO1xuICAgICAgICBpZiAodGltZVBhcnRzICYmIHRpbWVQYXJ0cy5sZW5ndGggPj0gMikge1xuICAgICAgICAgICAgdGhpcy5ob3VyID0gdGltZVBhcnRzWzBdO1xuICAgICAgICAgICAgdGhpcy5taW51dGUgPSB0aW1lUGFydHNbMV07XG4gICAgICAgIH0gZWxzZSBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmhvdXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5taW51dGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzcGxheUNsZWFyQnV0dG9uKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICAvLyBPdmVycmlkZSB0aGUgY2xlYXIgYnV0dG9uIGZvbmN0aW9uIG5vdCB3b3JyeSBhYm91dCB0aGUgbW9kZWwgYXQgdGhpcyBzdGFnZS5cbiAgICAgICAgY29uc3QgdmlzaWJsZSA9IHRoaXMuY2xlYXJCdXR0b24gJiYgIXRoaXMuZGlzYWJsZWQ7XG4gICAgICAgIHJldHVybiBvZih2aXNpYmxlKTtcbiAgICB9XG5cbiAgICByZXNldE1vZGVsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdXIgPSBudWxsO1xuICAgICAgICB0aGlzLm1pbnV0ZSA9IG51bGw7XG4gICAgICAgIHRoaXMubW9kZWxfID0gbnVsbDtcbiAgICAgICAgdGhpcy51cGRhdGVUaW1lKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlVXNlcklucHV0KCk7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgIH1cblxuICAgIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBzdXBlci5pc0VtcHR5KHRoaXMuaG91cikgJiYgc3VwZXIuaXNFbXB0eSh0aGlzLm1pbnV0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZFZhbHVlKCk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsXyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7dGhpcy5kYXRlSGVscGVyLmxlZnRQYWQodGhpcy5ob3VyKX06JHt0aGlzLmRhdGVIZWxwZXIubGVmdFBhZChcbiAgICAgICAgICAgIHRoaXMubWludXRlXG4gICAgICAgICl9YDtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGZpZWxkc2V0XG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBudWxsXCJcbiAgICA+XG4gICAgICAgIDxsZWdlbmRcbiAgICAgICAgICAgICpuZ0lmPVwiISFsYWJlbFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3Zpc3VhbGx5LWhpZGRlbicgOiAndmQtcCdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImxhYmVsXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sZWdlbmQ+XG5cbiAgICAgICAgPGZvZWhuLXZhbGlkYXRpb24tYWxlcnRzIFtjb21wb25lbnRdPVwidGhpc1wiPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICAqbmdJZj1cImhlbHBUZXh0XCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgICAgICA+PC9zbWFsbD5cblxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZkLWZvcm0tZmxleFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ3ZkLWZvcm0tZmxleF9faXRlbS0tMy1jaGFyLXdpZHRoJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICd2ZC1mb3JtLWZsZXhfX2l0ZW0tLTItY2hhci13aWR0aCc6ICEoXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZkLWZvcm0tZmxleF9faXRlbVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZvZWhuLWlucHV0LW51bWJlclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiYnVpbGRJZCgpICsgJ19ob3VycydcIlxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJ19ob3VycydcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2ZvZWhuLWlucHV0LXRpbWUuaG91cnMubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIjJcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjI0XCJcbiAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiaG91clwiXG4gICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJ1cGRhdGVUaW1lKClcIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICBbaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKHVzZXJJbnB1dCk9XCJoYW5kbGVVc2VySW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0Vycm9ySW5oZXJpdGVkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGVTdGFuZGFyZEhlbHBUZXh0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbaXNMYWJlbFNyT25seV09XCJjaGlsZHJlbkxhYmVsU3JPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93TGVhZGluZ1plcm9dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgICAgICAgICAgICAgID48L2ZvZWhuLWlucHV0LW51bWJlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ3ZkLWZvcm0tZmxleF9faXRlbS0tMy1jaGFyLXdpZHRoJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICd2ZC1mb3JtLWZsZXhfX2l0ZW0tLTItY2hhci13aWR0aCc6ICEoXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZkLWZvcm0tZmxleF9faXRlbVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZvZWhuLWlucHV0LW51bWJlclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiYnVpbGRJZCgpICsgJ19taW51dGVzJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWUgKyAnX21pbnV0ZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidmb2Vobi1pbnB1dC10aW1lLm1pbnV0ZXMubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIjJcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjU5XCJcbiAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibWludXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cInVwZGF0ZVRpbWUoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAodXNlcklucHV0KT1cImhhbmRsZVVzZXJJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzRXJyb3JJbmhlcml0ZWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbaGlkZVN0YW5kYXJkSGVscFRleHRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0xhYmVsU3JPbmx5XT1cImNoaWxkcmVuTGFiZWxTck9ubHlcIlxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dMZWFkaW5nWmVyb109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC9mb2Vobi1pbnB1dC1udW1iZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFsaWduLXNlbGYtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFpc0VtcHR5KCkgJiYgKGRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmMpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZElkKCkgKyAnX2NsZWFyQnV0dG9uJ1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNsZWFyLWJ1dHRvbiBidG4gYnRuLWxpbmsgZC1mbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0TW9kZWwoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi10aW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb2Vobi1pbnB1dC5jbGVhci1idXR0b24ubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZvZWhuLWljb24tdGltZXM+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9maWVsZHNldD5cbjwvZGl2PlxuIl19