geonetwork-ui 2.5.0-dev.22c177ea1 → 2.5.0-dev.50bf7a85a

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.
Files changed (26) hide show
  1. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +16 -8
  2. package/esm2022/libs/ui/elements/src/index.mjs +2 -1
  3. package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +78 -0
  4. package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +2 -1
  5. package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +10 -4
  6. package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +7 -2
  7. package/fesm2022/geonetwork-ui.mjs +103 -13
  8. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  9. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  10. package/libs/ui/elements/src/index.d.ts +1 -0
  11. package/libs/ui/elements/src/index.d.ts.map +1 -1
  12. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts +16 -0
  13. package/libs/ui/elements/src/lib/application-banner/application-banner.component.d.ts.map +1 -0
  14. package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
  15. package/libs/ui/elements/src/lib/ui-elements.module.d.ts +2 -1
  16. package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
  17. package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts.map +1 -1
  18. package/package.json +1 -1
  19. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +20 -12
  20. package/src/libs/ui/elements/src/index.ts +1 -0
  21. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.css +0 -0
  22. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +25 -0
  23. package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +70 -0
  24. package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +2 -0
  25. package/src/libs/ui/elements/src/lib/ui-elements.module.ts +3 -0
  26. package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +6 -0
@@ -96,13 +96,21 @@ export class DataService {
96
96
  }
97
97
  getDownloadLinksFromWfs(wfsLink) {
98
98
  // Pour DL toutes les données
99
- return this.getDownloadUrlsFromWfs(wfsLink.url.toString(), wfsLink.name).pipe(map((urls) => urls.all), map((urls) => Object.keys(urls).map((format) => ({
100
- ...wfsLink,
101
- name: wfsLink.name,
102
- type: 'download',
103
- url: new URL(urls[format]),
104
- mimeType: getMimeTypeForFormat(getFileFormatFromServiceOutput(format)),
105
- }))));
99
+ return this.getDownloadUrlsFromWfs(wfsLink.url.toString(), wfsLink.name).pipe(map((urls) => {
100
+ if (urls.geojson) {
101
+ urls.all['application/json'] = urls.geojson;
102
+ }
103
+ return urls;
104
+ }), map((urls) => {
105
+ const resources = Object.keys(urls.all).map((format) => ({
106
+ ...wfsLink,
107
+ name: wfsLink.name,
108
+ type: 'download',
109
+ url: new URL(urls.all[format]),
110
+ mimeType: getMimeTypeForFormat(getFileFormatFromServiceOutput(format)),
111
+ }));
112
+ return resources;
113
+ }));
106
114
  }
107
115
  async getDownloadLinksFromOgcApiFeatures(ogcApiLink) {
108
116
  const collectionInfo = await this.getDownloadUrlsFromOgcApi(ogcApiLink.url.href);
@@ -193,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
193
201
  providedIn: 'root',
194
202
  }]
195
203
  }], ctorParameters: () => [{ type: i1.ProxyService }] });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2RhdGF2aXovc3JjL2xpYi9zZXJ2aWNlL2RhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBRUwsY0FBYyxFQUVkLFdBQVcsR0FFWixNQUFNLHdCQUF3QixDQUFBO0FBQy9CLE9BQU8sRUFHTCxXQUFXLEVBRVgsY0FBYyxHQUNmLE1BQU0sOENBQThDLENBQUE7QUFDckQsT0FBTyxFQUNMLGFBQWEsRUFDYiw4QkFBOEIsRUFDOUIsb0JBQW9CLEVBQ3BCLFlBQVksR0FDYixNQUFNLHdDQUF3QyxDQUFBO0FBRS9DLE9BQU8sRUFBRSxJQUFJLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTs7O0FBTWhFLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0FBQzlCLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0FBQzlCLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO0FBQ2pDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0FBQ2xDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO0FBQ3JDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO0FBQ2pDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0FBQy9CLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0FBQzVCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0FBQzdCLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO0FBQ3ZDLE1B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QUFVLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixDQUFBO2dCQUNsRCxPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFDM0MsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1YsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtnQkFDaEQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUNILENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUNuRCxDQUFDOytHQTdPVSxXQUFXO21IQUFYLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgT2djQXBpQ29sbGVjdGlvbkluZm8sXG4gIE9nY0FwaUVuZHBvaW50LFxuICBPZ2NBcGlSZWNvcmQsXG4gIFdmc0VuZHBvaW50LFxuICBXZnNWZXJzaW9uLFxufSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHtcbiAgQmFzZVJlYWRlcixcbiAgRmV0Y2hFcnJvcixcbiAgb3BlbkRhdGFzZXQsXG4gIFN1cHBvcnRlZFR5cGUsXG4gIFN1cHBvcnRlZFR5cGVzLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvZGF0YS1mZXRjaGVyL3NyYydcbmltcG9ydCB7XG4gIGdldEZpbGVGb3JtYXQsXG4gIGdldEZpbGVGb3JtYXRGcm9tU2VydmljZU91dHB1dCxcbiAgZ2V0TWltZVR5cGVGb3JGb3JtYXQsXG4gIFByb3h5U2VydmljZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHtcbiAgRGF0YXNldE9ubGluZVJlc291cmNlLFxuICBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5tYXJrZXIoJ3dmcy51bnJlYWNoYWJsZS5jb3JzJylcbm1hcmtlcignd2ZzLnVucmVhY2hhYmxlLmh0dHAnKVxubWFya2VyKCd3ZnMudW5yZWFjaGFibGUudW5rbm93bicpXG5tYXJrZXIoJ3dmcy5mZWF0dXJldHlwZS5ub3Rmb3VuZCcpXG5tYXJrZXIoJ3dmcy5nZW9qc29uZ21sLm5vdHN1cHBvcnRlZCcpXG5tYXJrZXIoJ29nYy51bnJlYWNoYWJsZS51bmtub3duJylcbm1hcmtlcignZGF0YXNldC5lcnJvci5uZXR3b3JrJylcbm1hcmtlcignZGF0YXNldC5lcnJvci5odHRwJylcbm1hcmtlcignZGF0YXNldC5lcnJvci5wYXJzZScpXG5tYXJrZXIoJ2RhdGFzZXQuZXJyb3IudW5zdXBwb3J0ZWRUeXBlJylcbm1hcmtlcignZGF0YXNldC5lcnJvci51bmtub3duJylcblxuaW50ZXJmYWNlIFdmc0Rvd25sb2FkVXJscyB7XG4gIGFsbDogeyBbZm9ybWF0OiBzdHJpbmddOiBzdHJpbmcgfVxuICBnZW9qc29uOiBzdHJpbmdcbiAgZ21sOiB7IGZlYXR1cmVVcmw6IHN0cmluZzsgbmFtZXNwYWNlOiBzdHJpbmc7IHdmc1ZlcnNpb246IFdmc1ZlcnNpb24gfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByb3h5OiBQcm94eVNlcnZpY2UpIHt9XG5cbiAgZ2V0V2ZzRW5kcG9pbnQod2ZzVXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFdmc0VuZHBvaW50PiB7XG4gICAgcmV0dXJuIGZyb20oXG4gICAgICBuZXcgV2ZzRW5kcG9pbnQodGhpcy5wcm94eS5nZXRQcm94aWVkVXJsKHdmc1VybCkpLmlzUmVhZHkoKVxuICAgICkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBGZXRjaEVycm9yIHwgRXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS51bmtub3duYClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZXJyb3IudHlwZSA9PT0gJ25ldHdvcmsnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS5jb3JzYClcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVycm9yLnR5cGUgPT09ICdodHRwJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3ZnMudW5yZWFjaGFibGUuaHR0cGApXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlcnJvci50eXBlID09PSAncGFyc2UnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS5wYXJzZWApXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlcnJvci50eXBlID09PSAndW5zdXBwb3J0ZWRUeXBlJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3ZnMudW5yZWFjaGFibGUudW5zdXBwb3J0ZWRUeXBlYClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB3ZnMudW5yZWFjaGFibGUudW5rbm93bmApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldERvd25sb2FkVXJsc0Zyb21XZnMoXG4gICAgd2ZzVXJsOiBzdHJpbmcsXG4gICAgZmVhdHVyZVR5cGVOYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxXZnNEb3dubG9hZFVybHM+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRXZnNFbmRwb2ludCh3ZnNVcmwpLnBpcGUoXG4gICAgICBtYXAoKGVuZHBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGZlYXR1cmVUeXBlcyA9IGVuZHBvaW50LmdldEZlYXR1cmVUeXBlcygpXG4gICAgICAgIGNvbnN0IGZlYXR1cmVUeXBlID0gZW5kcG9pbnQuZ2V0RmVhdHVyZVR5cGVTdW1tYXJ5KFxuICAgICAgICAgIGZlYXR1cmVUeXBlcy5sZW5ndGggPT09IDEgJiYgIWZlYXR1cmVUeXBlTmFtZVxuICAgICAgICAgICAgPyBmZWF0dXJlVHlwZXNbMF0ubmFtZVxuICAgICAgICAgICAgOiBmZWF0dXJlVHlwZU5hbWVcbiAgICAgICAgKVxuICAgICAgICBpZiAoIWZlYXR1cmVUeXBlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3ZnMuZmVhdHVyZXR5cGUubm90Zm91bmQnKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYWxsOiBmZWF0dXJlVHlwZS5vdXRwdXRGb3JtYXRzLnJlZHVjZShcbiAgICAgICAgICAgIChwcmV2LCBjdXJyKSA9PiAoe1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBbY3Vycl06IGVuZHBvaW50LmdldEZlYXR1cmVVcmwoZmVhdHVyZVR5cGUubmFtZSwge1xuICAgICAgICAgICAgICAgIG91dHB1dEZvcm1hdDogY3VycixcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKSxcbiAgICAgICAgICBnZW9qc29uOiBlbmRwb2ludC5zdXBwb3J0c0pzb24oZmVhdHVyZVR5cGUubmFtZSlcbiAgICAgICAgICAgID8gZW5kcG9pbnQuZ2V0RmVhdHVyZVVybChmZWF0dXJlVHlwZS5uYW1lLCB7XG4gICAgICAgICAgICAgICAgYXNKc29uOiB0cnVlLFxuICAgICAgICAgICAgICAgIG91dHB1dENyczogJ0VQU0c6NDMyNicsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgZ21sOlxuICAgICAgICAgICAgZmVhdHVyZVR5cGUub3V0cHV0Rm9ybWF0cy5maW5kKChmKSA9PlxuICAgICAgICAgICAgICBmLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2dtbCcpXG4gICAgICAgICAgICApICYmXG4gICAgICAgICAgICAoZmVhdHVyZVR5cGUuZGVmYXVsdENycyA9PT0gJ0VQU0c6NDMyNicgfHxcbiAgICAgICAgICAgICAgZmVhdHVyZVR5cGUub3RoZXJDcnM/LmluY2x1ZGVzKCdFUFNHOjQzMjYnKSlcbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBmZWF0dXJlVXJsOiBlbmRwb2ludC5nZXRGZWF0dXJlVXJsKGZlYXR1cmVUeXBlLm5hbWUsIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0OiBmZWF0dXJlVHlwZS5vdXRwdXRGb3JtYXRzLmZpbmQoKGYpID0+XG4gICAgICAgICAgICAgICAgICAgICAgZi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdnbWwnKVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBvdXRwdXRDcnM6ICdFUFNHOjQzMjYnLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBuYW1lc3BhY2U6IGZlYXR1cmVUeXBlLm5hbWUsXG4gICAgICAgICAgICAgICAgICB3ZnNWZXJzaW9uOiBlbmRwb2ludC5nZXRWZXJzaW9uKCksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0V2ZzRmVhdHVyZUNvdW50KFxuICAgIHdmc1VybDogc3RyaW5nLFxuICAgIGZlYXR1cmVUeXBlTmFtZTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0V2ZzRW5kcG9pbnQod2ZzVXJsKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChlbmRwb2ludCkgPT5cbiAgICAgICAgZnJvbShlbmRwb2ludC5nZXRGZWF0dXJlVHlwZUZ1bGwoZmVhdHVyZVR5cGVOYW1lKSkucGlwZShcbiAgICAgICAgICBtYXAoKGZlYXR1cmVUeXBlKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWZlYXR1cmVUeXBlKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignd2ZzLmZlYXR1cmV0eXBlLm5vdGZvdW5kJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmZWF0dXJlVHlwZS5vYmplY3RDb3VudFxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gIH1cblxuICBnZXREb3dubG9hZFVybEZyb21Fc3JpUmVzdChhcGlVcmw6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3h5LmdldFByb3hpZWRVcmwoXG4gICAgICBgJHthcGlVcmx9L3F1ZXJ5P2Y9JHtmb3JtYXR9JndoZXJlPTE9MSZvdXRGaWVsZHM9KmBcbiAgICApXG4gIH1cblxuICBnZXREb3dubG9hZExpbmtzRnJvbVdmcyhcbiAgICB3ZnNMaW5rOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApOiBPYnNlcnZhYmxlPERhdGFzZXRPbmxpbmVSZXNvdXJjZVtdPiB7XG4gICAgLy8gUG91ciBETCB0b3V0ZXMgbGVzIGRvbm7DqWVzXG4gICAgcmV0dXJuIHRoaXMuZ2V0RG93bmxvYWRVcmxzRnJvbVdmcyhcbiAgICAgIHdmc0xpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICB3ZnNMaW5rLm5hbWVcbiAgICApLnBpcGUoXG4gICAgICBtYXAoKHVybHMpID0+IHVybHMuYWxsKSxcbiAgICAgIG1hcCgodXJscykgPT5cbiAgICAgICAgT2JqZWN0LmtleXModXJscykubWFwKChmb3JtYXQpID0+ICh7XG4gICAgICAgICAgLi4ud2ZzTGluayxcbiAgICAgICAgICBuYW1lOiB3ZnNMaW5rLm5hbWUsXG4gICAgICAgICAgdHlwZTogJ2Rvd25sb2FkJyxcbiAgICAgICAgICB1cmw6IG5ldyBVUkwodXJsc1tmb3JtYXRdKSxcbiAgICAgICAgICBtaW1lVHlwZTogZ2V0TWltZVR5cGVGb3JGb3JtYXQoXG4gICAgICAgICAgICBnZXRGaWxlRm9ybWF0RnJvbVNlcnZpY2VPdXRwdXQoZm9ybWF0KVxuICAgICAgICAgICksXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIGFzeW5jIGdldERvd25sb2FkTGlua3NGcm9tT2djQXBpRmVhdHVyZXMoXG4gICAgb2djQXBpTGluazogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgKTogUHJvbWlzZTxEYXRhc2V0T25saW5lUmVzb3VyY2VbXT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25JbmZvID0gYXdhaXQgdGhpcy5nZXREb3dubG9hZFVybHNGcm9tT2djQXBpKFxuICAgICAgb2djQXBpTGluay51cmwuaHJlZlxuICAgIClcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoY29sbGVjdGlvbkluZm8uYnVsa0Rvd25sb2FkTGlua3MpLm1hcCgoZG93bmxvYWRMaW5rKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vZ2NBcGlMaW5rLFxuICAgICAgICBuYW1lOiBjb2xsZWN0aW9uSW5mby5pZCxcbiAgICAgICAgdHlwZTogJ2Rvd25sb2FkJyxcbiAgICAgICAgdXJsOiBuZXcgVVJMKGNvbGxlY3Rpb25JbmZvLmJ1bGtEb3dubG9hZExpbmtzW2Rvd25sb2FkTGlua10pLFxuICAgICAgICBtaW1lVHlwZTogZ2V0TWltZVR5cGVGb3JGb3JtYXQoXG4gICAgICAgICAgZ2V0RmlsZUZvcm1hdEZyb21TZXJ2aWNlT3V0cHV0KGRvd25sb2FkTGluaylcbiAgICAgICAgKSxcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0RG93bmxvYWRVcmxzRnJvbU9nY0FwaSh1cmw6IHN0cmluZyk6IFByb21pc2U8T2djQXBpQ29sbGVjdGlvbkluZm8+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IG5ldyBPZ2NBcGlFbmRwb2ludCh1cmwpXG4gICAgcmV0dXJuIGF3YWl0IGVuZHBvaW50LmFsbENvbGxlY3Rpb25zXG4gICAgICAudGhlbigoY29sbGVjdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIGVuZHBvaW50LmdldENvbGxlY3Rpb25JbmZvKGNvbGxlY3Rpb25zWzBdLm5hbWUpXG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYG9nYy51bnJlYWNoYWJsZS51bmtub3duYClcbiAgICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRJdGVtc0Zyb21PZ2NBcGkodXJsOiBzdHJpbmcpOiBQcm9taXNlPE9nY0FwaVJlY29yZD4ge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gbmV3IE9nY0FwaUVuZHBvaW50KHVybClcbiAgICByZXR1cm4gYXdhaXQgZW5kcG9pbnQuZmVhdHVyZUNvbGxlY3Rpb25zXG4gICAgICAudGhlbigoY29sbGVjdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb25zLmxlbmd0aFxuICAgICAgICAgID8gZW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkl0ZW0oY29sbGVjdGlvbnNbMF0sICcxJylcbiAgICAgICAgICA6IG51bGxcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgb2djLnVucmVhY2hhYmxlLnVua25vd25gKVxuICAgICAgfSlcbiAgfVxuXG4gIGdldERvd25sb2FkTGlua3NGcm9tRXNyaVJlc3QoXG4gICAgZXNyaVJlc3RMaW5rOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApOiBEYXRhc2V0T25saW5lUmVzb3VyY2VbXSB7XG4gICAgcmV0dXJuIFsnanNvbicsICdnZW9qc29uJ10ubWFwKChmb3JtYXQpID0+ICh7XG4gICAgICAuLi5lc3JpUmVzdExpbmssXG4gICAgICB1cmw6IG5ldyBVUkwoXG4gICAgICAgIHRoaXMuZ2V0RG93bmxvYWRVcmxGcm9tRXNyaVJlc3QoZXNyaVJlc3RMaW5rLnVybC50b1N0cmluZygpLCBmb3JtYXQpXG4gICAgICApLFxuICAgICAgbWltZVR5cGU6IGdldE1pbWVUeXBlRm9yRm9ybWF0KGdldEZpbGVGb3JtYXRGcm9tU2VydmljZU91dHB1dChmb3JtYXQpKSxcbiAgICB9KSlcbiAgfVxuXG4gIHJlYWRBc0dlb0pzb24obGluazogRGF0YXNldE9ubGluZVJlc291cmNlKTogT2JzZXJ2YWJsZTxGZWF0dXJlQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldERhdGFzZXQobGluaykucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoZGF0YXNldCkgPT4gZGF0YXNldC5zZWxlY3RBbGwoKS5yZWFkKCkpLFxuICAgICAgbWFwKChmZWF0dXJlcykgPT4gKHtcbiAgICAgICAgdHlwZTogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcbiAgICAgICAgZmVhdHVyZXMsXG4gICAgICB9KSlcbiAgICApXG4gIH1cblxuICBnZXREYXRhc2V0KGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSk6IE9ic2VydmFibGU8QmFzZVJlYWRlcj4ge1xuICAgIGlmIChsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJiBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycpIHtcbiAgICAgIGNvbnN0IHdmc1VybEVuZHBvaW50ID0gdGhpcy5wcm94eS5nZXRQcm94aWVkVXJsKGxpbmsudXJsLnRvU3RyaW5nKCkpXG4gICAgICByZXR1cm4gZnJvbShcbiAgICAgICAgb3BlbkRhdGFzZXQod2ZzVXJsRW5kcG9pbnQsICd3ZnMnLCB7XG4gICAgICAgICAgd2ZzRmVhdHVyZVR5cGU6IGxpbmsubmFtZSxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKGxpbmsudHlwZSA9PT0gJ2Rvd25sb2FkJykge1xuICAgICAgY29uc3QgbGlua1Byb3hpZmllZFVybCA9IHRoaXMucHJveHkuZ2V0UHJveGllZFVybChsaW5rLnVybC50b1N0cmluZygpKVxuICAgICAgY29uc3QgZm9ybWF0ID0gZ2V0RmlsZUZvcm1hdChsaW5rKVxuICAgICAgY29uc3Qgc3VwcG9ydGVkVHlwZSA9XG4gICAgICAgIFN1cHBvcnRlZFR5cGVzLmluZGV4T2YoZm9ybWF0IGFzIGFueSkgPiAtMVxuICAgICAgICAgID8gKGZvcm1hdCBhcyBTdXBwb3J0ZWRUeXBlKVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICByZXR1cm4gZnJvbShvcGVuRGF0YXNldChsaW5rUHJveGlmaWVkVXJsLCBzdXBwb3J0ZWRUeXBlKSkucGlwZSgpXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ2VzcmlSZXN0J1xuICAgICkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXREb3dubG9hZFVybEZyb21Fc3JpUmVzdChcbiAgICAgICAgbGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgICAgJ2dlb2pzb24nXG4gICAgICApXG4gICAgICByZXR1cm4gZnJvbShvcGVuRGF0YXNldCh1cmwsICdnZW9qc29uJykpLnBpcGUoKVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcydcbiAgICApIHtcbiAgICAgIHJldHVybiBmcm9tKHRoaXMuZ2V0RG93bmxvYWRVcmxzRnJvbU9nY0FwaShsaW5rLnVybC5ocmVmKSkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChjb2xsZWN0aW9uSW5mbykgPT4ge1xuICAgICAgICAgIGNvbnN0IGdlb2pzb25VcmwgPSBjb2xsZWN0aW9uSW5mby5qc29uRG93bmxvYWRMaW5rXG4gICAgICAgICAgcmV0dXJuIG9wZW5EYXRhc2V0KGdlb2pzb25VcmwsICdnZW9qc29uJylcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgodXJsKSA9PiB7XG4gICAgICAgICAgaWYgKHVybCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3ZnMuZ2VvanNvbmdtbC5ub3RzdXBwb3J0ZWQnKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ3Byb3RvY29sIG5vdCBzdXBwb3J0ZWQnKVxuICB9XG59XG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2RhdGF2aXovc3JjL2xpYi9zZXJ2aWNlL2RhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBRUwsY0FBYyxFQUVkLFdBQVcsR0FFWixNQUFNLHdCQUF3QixDQUFBO0FBQy9CLE9BQU8sRUFHTCxXQUFXLEVBRVgsY0FBYyxHQUNmLE1BQU0sOENBQThDLENBQUE7QUFDckQsT0FBTyxFQUNMLGFBQWEsRUFDYiw4QkFBOEIsRUFDOUIsb0JBQW9CLEVBQ3BCLFlBQVksR0FDYixNQUFNLHdDQUF3QyxDQUFBO0FBRS9DLE9BQU8sRUFBRSxJQUFJLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTs7O0FBTWhFLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0FBQzlCLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0FBQzlCLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO0FBQ2pDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0FBQ2xDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO0FBQ3JDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFBO0FBQ2pDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0FBQy9CLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0FBQzVCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0FBQzdCLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO0FBQ3ZDLE1B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QyxJQUFJLEtBQUssU0FBUztZQUN2QixJQUFJLENBQUMscUJBQXFCLEtBQUssYUFBYSxFQUM1QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdELFNBQVMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUMzQixNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUE7Z0JBQ2xELE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQTtZQUMzQyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDVixJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO2dCQUNoRCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0lBQ25ELENBQUM7K0dBclBVLFdBQVc7bUhBQVgsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBPZ2NBcGlDb2xsZWN0aW9uSW5mbyxcbiAgT2djQXBpRW5kcG9pbnQsXG4gIE9nY0FwaVJlY29yZCxcbiAgV2ZzRW5kcG9pbnQsXG4gIFdmc1ZlcnNpb24sXG59IGZyb20gJ0BjYW1wdG9jYW1wL29nYy1jbGllbnQnXG5pbXBvcnQge1xuICBCYXNlUmVhZGVyLFxuICBGZXRjaEVycm9yLFxuICBvcGVuRGF0YXNldCxcbiAgU3VwcG9ydGVkVHlwZSxcbiAgU3VwcG9ydGVkVHlwZXMsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9kYXRhLWZldGNoZXIvc3JjJ1xuaW1wb3J0IHtcbiAgZ2V0RmlsZUZvcm1hdCxcbiAgZ2V0RmlsZUZvcm1hdEZyb21TZXJ2aWNlT3V0cHV0LFxuICBnZXRNaW1lVHlwZUZvckZvcm1hdCxcbiAgUHJveHlTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB0eXBlIHsgRmVhdHVyZUNvbGxlY3Rpb24gfSBmcm9tICdnZW9qc29uJ1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQge1xuICBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbm1hcmtlcignd2ZzLnVucmVhY2hhYmxlLmNvcnMnKVxubWFya2VyKCd3ZnMudW5yZWFjaGFibGUuaHR0cCcpXG5tYXJrZXIoJ3dmcy51bnJlYWNoYWJsZS51bmtub3duJylcbm1hcmtlcignd2ZzLmZlYXR1cmV0eXBlLm5vdGZvdW5kJylcbm1hcmtlcignd2ZzLmdlb2pzb25nbWwubm90c3VwcG9ydGVkJylcbm1hcmtlcignb2djLnVucmVhY2hhYmxlLnVua25vd24nKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLm5ldHdvcmsnKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLmh0dHAnKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLnBhcnNlJylcbm1hcmtlcignZGF0YXNldC5lcnJvci51bnN1cHBvcnRlZFR5cGUnKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLnVua25vd24nKVxuXG5pbnRlcmZhY2UgV2ZzRG93bmxvYWRVcmxzIHtcbiAgYWxsOiB7IFtmb3JtYXQ6IHN0cmluZ106IHN0cmluZyB9XG4gIGdlb2pzb246IHN0cmluZ1xuICBnbWw6IHsgZmVhdHVyZVVybDogc3RyaW5nOyBuYW1lc3BhY2U6IHN0cmluZzsgd2ZzVmVyc2lvbjogV2ZzVmVyc2lvbiB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJveHk6IFByb3h5U2VydmljZSkge31cblxuICBnZXRXZnNFbmRwb2ludCh3ZnNVcmw6IHN0cmluZyk6IE9ic2VydmFibGU8V2ZzRW5kcG9pbnQ+IHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIG5ldyBXZnNFbmRwb2ludCh0aGlzLnByb3h5LmdldFByb3hpZWRVcmwod2ZzVXJsKSkuaXNSZWFkeSgpXG4gICAgKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEZldGNoRXJyb3IgfCBFcnJvcikgPT4ge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgd2ZzLnVucmVhY2hhYmxlLnVua25vd25gKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChlcnJvci50eXBlID09PSAnbmV0d29yaycpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgd2ZzLnVucmVhY2hhYmxlLmNvcnNgKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXJyb3IudHlwZSA9PT0gJ2h0dHAnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS5odHRwYClcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVycm9yLnR5cGUgPT09ICdwYXJzZScpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgd2ZzLnVucmVhY2hhYmxlLnBhcnNlYClcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVycm9yLnR5cGUgPT09ICd1bnN1cHBvcnRlZFR5cGUnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS51bnN1cHBvcnRlZFR5cGVgKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHdmcy51bnJlYWNoYWJsZS51bmtub3duYClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0RG93bmxvYWRVcmxzRnJvbVdmcyhcbiAgICB3ZnNVcmw6IHN0cmluZyxcbiAgICBmZWF0dXJlVHlwZU5hbWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPFdmc0Rvd25sb2FkVXJscz4ge1xuICAgIHJldHVybiB0aGlzLmdldFdmc0VuZHBvaW50KHdmc1VybCkucGlwZShcbiAgICAgIG1hcCgoZW5kcG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgZmVhdHVyZVR5cGVzID0gZW5kcG9pbnQuZ2V0RmVhdHVyZVR5cGVzKClcbiAgICAgICAgY29uc3QgZmVhdHVyZVR5cGUgPSBlbmRwb2ludC5nZXRGZWF0dXJlVHlwZVN1bW1hcnkoXG4gICAgICAgICAgZmVhdHVyZVR5cGVzLmxlbmd0aCA9PT0gMSAmJiAhZmVhdHVyZVR5cGVOYW1lXG4gICAgICAgICAgICA/IGZlYXR1cmVUeXBlc1swXS5uYW1lXG4gICAgICAgICAgICA6IGZlYXR1cmVUeXBlTmFtZVxuICAgICAgICApXG4gICAgICAgIGlmICghZmVhdHVyZVR5cGUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dmcy5mZWF0dXJldHlwZS5ub3Rmb3VuZCcpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhbGw6IGZlYXR1cmVUeXBlLm91dHB1dEZvcm1hdHMucmVkdWNlKFxuICAgICAgICAgICAgKHByZXYsIGN1cnIpID0+ICh7XG4gICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgIFtjdXJyXTogZW5kcG9pbnQuZ2V0RmVhdHVyZVVybChmZWF0dXJlVHlwZS5uYW1lLCB7XG4gICAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0OiBjdXJyLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApLFxuICAgICAgICAgIGdlb2pzb246IGVuZHBvaW50LnN1cHBvcnRzSnNvbihmZWF0dXJlVHlwZS5uYW1lKVxuICAgICAgICAgICAgPyBlbmRwb2ludC5nZXRGZWF0dXJlVXJsKGZlYXR1cmVUeXBlLm5hbWUsIHtcbiAgICAgICAgICAgICAgICBhc0pzb246IHRydWUsXG4gICAgICAgICAgICAgICAgb3V0cHV0Q3JzOiAnRVBTRzo0MzI2JyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICBnbWw6XG4gICAgICAgICAgICBmZWF0dXJlVHlwZS5vdXRwdXRGb3JtYXRzLmZpbmQoKGYpID0+XG4gICAgICAgICAgICAgIGYudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZ21sJylcbiAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgIChmZWF0dXJlVHlwZS5kZWZhdWx0Q3JzID09PSAnRVBTRzo0MzI2JyB8fFxuICAgICAgICAgICAgICBmZWF0dXJlVHlwZS5vdGhlckNycz8uaW5jbHVkZXMoJ0VQU0c6NDMyNicpKVxuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIGZlYXR1cmVVcmw6IGVuZHBvaW50LmdldEZlYXR1cmVVcmwoZmVhdHVyZVR5cGUubmFtZSwge1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ6IGZlYXR1cmVUeXBlLm91dHB1dEZvcm1hdHMuZmluZCgoZikgPT5cbiAgICAgICAgICAgICAgICAgICAgICBmLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2dtbCcpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIG91dHB1dENyczogJ0VQU0c6NDMyNicsXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZTogZmVhdHVyZVR5cGUubmFtZSxcbiAgICAgICAgICAgICAgICAgIHdmc1ZlcnNpb246IGVuZHBvaW50LmdldFZlcnNpb24oKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRXZnNGZWF0dXJlQ291bnQoXG4gICAgd2ZzVXJsOiBzdHJpbmcsXG4gICAgZmVhdHVyZVR5cGVOYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRXZnNFbmRwb2ludCh3ZnNVcmwpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGVuZHBvaW50KSA9PlxuICAgICAgICBmcm9tKGVuZHBvaW50LmdldEZlYXR1cmVUeXBlRnVsbChmZWF0dXJlVHlwZU5hbWUpKS5waXBlKFxuICAgICAgICAgIG1hcCgoZmVhdHVyZVR5cGUpID0+IHtcbiAgICAgICAgICAgIGlmICghZmVhdHVyZVR5cGUpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3ZnMuZmVhdHVyZXR5cGUubm90Zm91bmQnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZlYXR1cmVUeXBlLm9iamVjdENvdW50XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIGdldERvd25sb2FkVXJsRnJvbUVzcmlSZXN0KGFwaVVybDogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJveHkuZ2V0UHJveGllZFVybChcbiAgICAgIGAke2FwaVVybH0vcXVlcnk/Zj0ke2Zvcm1hdH0md2hlcmU9MT0xJm91dEZpZWxkcz0qYFxuICAgIClcbiAgfVxuXG4gIGdldERvd25sb2FkTGlua3NGcm9tV2ZzKFxuICAgIHdmc0xpbms6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gICk6IE9ic2VydmFibGU8RGF0YXNldE9ubGluZVJlc291cmNlW10+IHtcbiAgICAvLyBQb3VyIERMIHRvdXRlcyBsZXMgZG9ubsOpZXNcbiAgICByZXR1cm4gdGhpcy5nZXREb3dubG9hZFVybHNGcm9tV2ZzKFxuICAgICAgd2ZzTGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgIHdmc0xpbmsubmFtZVxuICAgICkucGlwZShcbiAgICAgIG1hcCgodXJscykgPT4ge1xuICAgICAgICBpZiAodXJscy5nZW9qc29uKSB7XG4gICAgICAgICAgdXJscy5hbGxbJ2FwcGxpY2F0aW9uL2pzb24nXSA9IHVybHMuZ2VvanNvblxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmxzXG4gICAgICB9KSxcbiAgICAgIG1hcCgodXJscykgPT4ge1xuICAgICAgICBjb25zdCByZXNvdXJjZXM6IERhdGFzZXRPbmxpbmVSZXNvdXJjZVtdID0gT2JqZWN0LmtleXModXJscy5hbGwpLm1hcChcbiAgICAgICAgICAoZm9ybWF0KSA9PiAoe1xuICAgICAgICAgICAgLi4ud2ZzTGluayxcbiAgICAgICAgICAgIG5hbWU6IHdmc0xpbmsubmFtZSxcbiAgICAgICAgICAgIHR5cGU6ICdkb3dubG9hZCcgYXMgY29uc3QsXG4gICAgICAgICAgICB1cmw6IG5ldyBVUkwodXJscy5hbGxbZm9ybWF0XSksXG4gICAgICAgICAgICBtaW1lVHlwZTogZ2V0TWltZVR5cGVGb3JGb3JtYXQoXG4gICAgICAgICAgICAgIGdldEZpbGVGb3JtYXRGcm9tU2VydmljZU91dHB1dChmb3JtYXQpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuIHJlc291cmNlc1xuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBhc3luYyBnZXREb3dubG9hZExpbmtzRnJvbU9nY0FwaUZlYXR1cmVzKFxuICAgIG9nY0FwaUxpbms6IERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uXG4gICk6IFByb21pc2U8RGF0YXNldE9ubGluZVJlc291cmNlW10+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uSW5mbyA9IGF3YWl0IHRoaXMuZ2V0RG93bmxvYWRVcmxzRnJvbU9nY0FwaShcbiAgICAgIG9nY0FwaUxpbmsudXJsLmhyZWZcbiAgICApXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGNvbGxlY3Rpb25JbmZvLmJ1bGtEb3dubG9hZExpbmtzKS5tYXAoKGRvd25sb2FkTGluaykgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2djQXBpTGluayxcbiAgICAgICAgbmFtZTogY29sbGVjdGlvbkluZm8uaWQsXG4gICAgICAgIHR5cGU6ICdkb3dubG9hZCcsXG4gICAgICAgIHVybDogbmV3IFVSTChjb2xsZWN0aW9uSW5mby5idWxrRG93bmxvYWRMaW5rc1tkb3dubG9hZExpbmtdKSxcbiAgICAgICAgbWltZVR5cGU6IGdldE1pbWVUeXBlRm9yRm9ybWF0KFxuICAgICAgICAgIGdldEZpbGVGb3JtYXRGcm9tU2VydmljZU91dHB1dChkb3dubG9hZExpbmspXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldERvd25sb2FkVXJsc0Zyb21PZ2NBcGkodXJsOiBzdHJpbmcpOiBQcm9taXNlPE9nY0FwaUNvbGxlY3Rpb25JbmZvPiB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBuZXcgT2djQXBpRW5kcG9pbnQodXJsKVxuICAgIHJldHVybiBhd2FpdCBlbmRwb2ludC5hbGxDb2xsZWN0aW9uc1xuICAgICAgLnRoZW4oKGNvbGxlY3Rpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiBlbmRwb2ludC5nZXRDb2xsZWN0aW9uSW5mbyhjb2xsZWN0aW9uc1swXS5uYW1lKVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBvZ2MudW5yZWFjaGFibGUudW5rbm93bmApXG4gICAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0SXRlbXNGcm9tT2djQXBpKHVybDogc3RyaW5nKTogUHJvbWlzZTxPZ2NBcGlSZWNvcmQ+IHtcbiAgICBjb25zdCBlbmRwb2ludCA9IG5ldyBPZ2NBcGlFbmRwb2ludCh1cmwpXG4gICAgcmV0dXJuIGF3YWl0IGVuZHBvaW50LmZlYXR1cmVDb2xsZWN0aW9uc1xuICAgICAgLnRoZW4oKGNvbGxlY3Rpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9ucy5sZW5ndGhcbiAgICAgICAgICA/IGVuZHBvaW50LmdldENvbGxlY3Rpb25JdGVtKGNvbGxlY3Rpb25zWzBdLCAnMScpXG4gICAgICAgICAgOiBudWxsXG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYG9nYy51bnJlYWNoYWJsZS51bmtub3duYClcbiAgICAgIH0pXG4gIH1cblxuICBnZXREb3dubG9hZExpbmtzRnJvbUVzcmlSZXN0KFxuICAgIGVzcmlSZXN0TGluazogRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgKTogRGF0YXNldE9ubGluZVJlc291cmNlW10ge1xuICAgIHJldHVybiBbJ2pzb24nLCAnZ2VvanNvbiddLm1hcCgoZm9ybWF0KSA9PiAoe1xuICAgICAgLi4uZXNyaVJlc3RMaW5rLFxuICAgICAgdXJsOiBuZXcgVVJMKFxuICAgICAgICB0aGlzLmdldERvd25sb2FkVXJsRnJvbUVzcmlSZXN0KGVzcmlSZXN0TGluay51cmwudG9TdHJpbmcoKSwgZm9ybWF0KVxuICAgICAgKSxcbiAgICAgIG1pbWVUeXBlOiBnZXRNaW1lVHlwZUZvckZvcm1hdChnZXRGaWxlRm9ybWF0RnJvbVNlcnZpY2VPdXRwdXQoZm9ybWF0KSksXG4gICAgfSkpXG4gIH1cblxuICByZWFkQXNHZW9Kc29uKGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSk6IE9ic2VydmFibGU8RmVhdHVyZUNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRhc2V0KGxpbmspLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGRhdGFzZXQpID0+IGRhdGFzZXQuc2VsZWN0QWxsKCkucmVhZCgpKSxcbiAgICAgIG1hcCgoZmVhdHVyZXMpID0+ICh7XG4gICAgICAgIHR5cGU6ICdGZWF0dXJlQ29sbGVjdGlvbicsXG4gICAgICAgIGZlYXR1cmVzLFxuICAgICAgfSkpXG4gICAgKVxuICB9XG5cbiAgZ2V0RGF0YXNldChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpOiBPYnNlcnZhYmxlPEJhc2VSZWFkZXI+IHtcbiAgICBpZiAobGluay50eXBlID09PSAnc2VydmljZScgJiYgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnKSB7XG4gICAgICBjb25zdCB3ZnNVcmxFbmRwb2ludCA9IHRoaXMucHJveHkuZ2V0UHJveGllZFVybChsaW5rLnVybC50b1N0cmluZygpKVxuICAgICAgcmV0dXJuIGZyb20oXG4gICAgICAgIG9wZW5EYXRhc2V0KHdmc1VybEVuZHBvaW50LCAnd2ZzJywge1xuICAgICAgICAgIHdmc0ZlYXR1cmVUeXBlOiBsaW5rLm5hbWUsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChsaW5rLnR5cGUgPT09ICdkb3dubG9hZCcpIHtcbiAgICAgIGNvbnN0IGxpbmtQcm94aWZpZWRVcmwgPSB0aGlzLnByb3h5LmdldFByb3hpZWRVcmwobGluay51cmwudG9TdHJpbmcoKSlcbiAgICAgIGNvbnN0IGZvcm1hdCA9IGdldEZpbGVGb3JtYXQobGluaylcbiAgICAgIGNvbnN0IHN1cHBvcnRlZFR5cGUgPVxuICAgICAgICBTdXBwb3J0ZWRUeXBlcy5pbmRleE9mKGZvcm1hdCBhcyBhbnkpID4gLTFcbiAgICAgICAgICA/IChmb3JtYXQgYXMgU3VwcG9ydGVkVHlwZSlcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgcmV0dXJuIGZyb20ob3BlbkRhdGFzZXQobGlua1Byb3hpZmllZFVybCwgc3VwcG9ydGVkVHlwZSkpLnBpcGUoKVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdlc3JpUmVzdCdcbiAgICApIHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0RG93bmxvYWRVcmxGcm9tRXNyaVJlc3QoXG4gICAgICAgIGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgICdnZW9qc29uJ1xuICAgICAgKVxuICAgICAgcmV0dXJuIGZyb20ob3BlbkRhdGFzZXQodXJsLCAnZ2VvanNvbicpKS5waXBlKClcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnb2djRmVhdHVyZXMnXG4gICAgKSB7XG4gICAgICByZXR1cm4gZnJvbSh0aGlzLmdldERvd25sb2FkVXJsc0Zyb21PZ2NBcGkobGluay51cmwuaHJlZikpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoY29sbGVjdGlvbkluZm8pID0+IHtcbiAgICAgICAgICBjb25zdCBnZW9qc29uVXJsID0gY29sbGVjdGlvbkluZm8uanNvbkRvd25sb2FkTGlua1xuICAgICAgICAgIHJldHVybiBvcGVuRGF0YXNldChnZW9qc29uVXJsLCAnZ2VvanNvbicpXG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKHVybCkgPT4ge1xuICAgICAgICAgIGlmICh1cmwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignd2ZzLmdlb2pzb25nbWwubm90c3VwcG9ydGVkJylcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdwcm90b2NvbCBub3Qgc3VwcG9ydGVkJylcbiAgfVxufVxuIl19
@@ -22,4 +22,5 @@ export * from './lib/thumbnail/thumbnail.component';
22
22
  export * from './lib/ui-elements.module';
23
23
  export * from './lib/user-feedback-item/user-feedback-item.component';
24
24
  export * from './lib/user-preview/user-preview.component';
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsK0JBQStCLENBQUE7QUFDN0MsY0FBYyx5REFBeUQsQ0FBQTtBQUN2RSxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyw2REFBNkQsQ0FBQTtBQUMzRSxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMsaURBQWlELENBQUE7QUFDL0QsY0FBYyxpREFBaUQsQ0FBQTtBQUMvRCxjQUFjLG1EQUFtRCxDQUFBO0FBQ2pFLGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYyw2Q0FBNkMsQ0FBQTtBQUMzRCxjQUFjLDZEQUE2RCxDQUFBO0FBQzNFLGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYywyQ0FBMkMsQ0FBQTtBQUN6RCxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMseURBQXlELENBQUE7QUFDdkUsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsdURBQXVELENBQUE7QUFDckUsY0FBYywyQ0FBMkMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS1jYXJkL2FwaS1jYXJkLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F2YXRhci9hdmF0YXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRlbnQtZ2hvc3QvY29udGVudC1naG9zdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kb3dubG9hZC1pdGVtL2Rvd25sb2FkLWl0ZW0uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZG93bmxvYWRzLWxpc3QvZG93bmxvYWRzLWxpc3QuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXJyb3IvZXJyb3IuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW1hZ2UtaW5wdXQvaW1hZ2UtaW5wdXQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW1hZ2Utb3ZlcmxheS1wcmV2aWV3L2ltYWdlLW92ZXJsYXktcHJldmlldy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9saW5rLWNhcmQvbGluay1jYXJkLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hcmtkb3duLWVkaXRvci9tYXJrZG93bi1lZGl0b3IuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFya2Rvd24tcGFyc2VyL21hcmtkb3duLXBhcnNlci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXRhZGF0YS1jYXRhbG9nL21ldGFkYXRhLWNhdGFsb2cuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWV0YWRhdGEtY29udGFjdC9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21ldGFkYXRhLWluZm8vbWV0YWRhdGEtaW5mby5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0vbWV0YWRhdGEtcXVhbGl0eS1pdGVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21ldGFkYXRhLXF1YWxpdHkvbWV0YWRhdGEtcXVhbGl0eS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlY29yZC1hcGktZm9ybS9yZWNvcmQtYXBpLWZvcm0uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVsYXRlZC1yZWNvcmQtY2FyZC9yZWxhdGVkLXJlY29yZC1jYXJkLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RodW1ibmFpbC90aHVtYm5haWwuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdWktZWxlbWVudHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXNlci1mZWVkYmFjay1pdGVtL3VzZXItZmVlZGJhY2staXRlbS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi91c2VyLXByZXZpZXcvdXNlci1wcmV2aWV3LmNvbXBvbmVudCdcbiJdfQ==
25
+ export * from './lib/application-banner/application-banner.component';
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsK0JBQStCLENBQUE7QUFDN0MsY0FBYyx5REFBeUQsQ0FBQTtBQUN2RSxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyw2REFBNkQsQ0FBQTtBQUMzRSxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMsaURBQWlELENBQUE7QUFDL0QsY0FBYyxpREFBaUQsQ0FBQTtBQUMvRCxjQUFjLG1EQUFtRCxDQUFBO0FBQ2pFLGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYyw2Q0FBNkMsQ0FBQTtBQUMzRCxjQUFjLDZEQUE2RCxDQUFBO0FBQzNFLGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYywyQ0FBMkMsQ0FBQTtBQUN6RCxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMseURBQXlELENBQUE7QUFDdkUsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsdURBQXVELENBQUE7QUFDckUsY0FBYywyQ0FBMkMsQ0FBQTtBQUN6RCxjQUFjLHVEQUF1RCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpLWNhcmQvYXBpLWNhcmQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udGVudC1naG9zdC9jb250ZW50LWdob3N0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Rvd25sb2FkLWl0ZW0vZG93bmxvYWQtaXRlbS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kb3dubG9hZHMtbGlzdC9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lcnJvci9lcnJvci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbWFnZS1pbnB1dC9pbWFnZS1pbnB1dC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbWFnZS1vdmVybGF5LXByZXZpZXcvaW1hZ2Utb3ZlcmxheS1wcmV2aWV3LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xpbmstY2FyZC9saW5rLWNhcmQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFya2Rvd24tZWRpdG9yL21hcmtkb3duLWVkaXRvci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXJrZG93bi1wYXJzZXIvbWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21ldGFkYXRhLWNhdGFsb2cvbWV0YWRhdGEtY2F0YWxvZy5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXRhZGF0YS1jb250YWN0L21ldGFkYXRhLWNvbnRhY3QuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWV0YWRhdGEtaW5mby9tZXRhZGF0YS1pbmZvLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21ldGFkYXRhLXF1YWxpdHktaXRlbS9tZXRhZGF0YS1xdWFsaXR5LWl0ZW0uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWV0YWRhdGEtcXVhbGl0eS9tZXRhZGF0YS1xdWFsaXR5LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVjb3JkLWFwaS1mb3JtL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWxhdGVkLXJlY29yZC1jYXJkL3JlbGF0ZWQtcmVjb3JkLWNhcmQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS1lbGVtZW50cy5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi91c2VyLWZlZWRiYWNrLWl0ZW0vdXNlci1mZWVkYmFjay1pdGVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VzZXItcHJldmlldy91c2VyLXByZXZpZXcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwbGljYXRpb24tYmFubmVyL2FwcGxpY2F0aW9uLWJhbm5lci5jb21wb25lbnQnXG4iXX0=
@@ -0,0 +1,78 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
4
+ import { matCloseOutline, matInfoOutline, matWarningAmberOutline, } from '@ng-icons/material-icons/outline';
5
+ import { matWarning } from '@ng-icons/material-icons/baseline';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ export class ApplicationBannerComponent {
9
+ constructor() {
10
+ this.closeEnabled = false;
11
+ this.extraClass = '';
12
+ this.icon = '';
13
+ this.msgClass = '';
14
+ this.bannerOpen = true;
15
+ }
16
+ set type(value) {
17
+ switch (value) {
18
+ case 'primary':
19
+ this.msgClass = 'bg-primary-darkest border-primary text-white';
20
+ this.icon = 'matWarning';
21
+ break;
22
+ case 'light':
23
+ this.msgClass =
24
+ 'bg-primary-opacity-10 border-primary-lightest text-black';
25
+ this.icon = 'matInfoOutline';
26
+ break;
27
+ case 'secondary':
28
+ default:
29
+ this.msgClass = 'bg-primary-opacity-50 border-primary-darker text-black';
30
+ this.icon = 'matWarningAmberOutline';
31
+ break;
32
+ }
33
+ }
34
+ get classList() {
35
+ if (this.message.length > 200) {
36
+ return `${this.msgClass} ${this.extraClass} overflow-y-scroll items-start`;
37
+ }
38
+ return `${this.msgClass} ${this.extraClass} items-center`;
39
+ }
40
+ closeMessage() {
41
+ this.bannerOpen = false;
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApplicationBannerComponent, isStandalone: true, selector: "gn-ui-application-banner", inputs: { message: "message", title: "title", closeEnabled: "closeEnabled", extraClass: "extraClass", icon: "icon", type: "type" }, providers: [
45
+ provideIcons({
46
+ matWarningAmberOutline,
47
+ matInfoOutline,
48
+ matCloseOutline,
49
+ matWarning,
50
+ }),
51
+ provideNgIconsConfig({ size: '1.5em' }),
52
+ ], ngImport: i0, template: "<div\n *ngIf=\"message && bannerOpen\"\n class=\"absolute top-0 text-wrap bg-white mt-4 max-h-24\"\n>\n <div\n class=\"flex flex-row py-2.5 px-5 gap-5 justify-start border max-h-20\"\n [ngClass]=\"classList\"\n >\n <div [ngClass]=\"{ 'pt-5': message.length > 200 }\">\n <ng-icon [name]=\"icon\"></ng-icon>\n </div>\n <div class=\"flex flex-col justify-start gap-2.5\">\n <span *ngIf=\"title\" class=\"font-bold\">{{ title }}</span>\n <span class=\"font-medium max-w-2xl\" [innerHTML]=\"message\"></span>\n </div>\n <button\n *ngIf=\"closeEnabled\"\n class=\"self-start\"\n type=\"button\"\n (click)=\"closeMessage()\"\n >\n <ng-icon name=\"matCloseOutline\"> </ng-icon>\n </button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationBannerComponent, decorators: [{
55
+ type: Component,
56
+ args: [{ selector: 'gn-ui-application-banner', standalone: true, imports: [CommonModule, NgIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
57
+ provideIcons({
58
+ matWarningAmberOutline,
59
+ matInfoOutline,
60
+ matCloseOutline,
61
+ matWarning,
62
+ }),
63
+ provideNgIconsConfig({ size: '1.5em' }),
64
+ ], template: "<div\n *ngIf=\"message && bannerOpen\"\n class=\"absolute top-0 text-wrap bg-white mt-4 max-h-24\"\n>\n <div\n class=\"flex flex-row py-2.5 px-5 gap-5 justify-start border max-h-20\"\n [ngClass]=\"classList\"\n >\n <div [ngClass]=\"{ 'pt-5': message.length > 200 }\">\n <ng-icon [name]=\"icon\"></ng-icon>\n </div>\n <div class=\"flex flex-col justify-start gap-2.5\">\n <span *ngIf=\"title\" class=\"font-bold\">{{ title }}</span>\n <span class=\"font-medium max-w-2xl\" [innerHTML]=\"message\"></span>\n </div>\n <button\n *ngIf=\"closeEnabled\"\n class=\"self-start\"\n type=\"button\"\n (click)=\"closeMessage()\"\n >\n <ng-icon name=\"matCloseOutline\"> </ng-icon>\n </button>\n </div>\n</div>\n" }]
65
+ }], propDecorators: { message: [{
66
+ type: Input
67
+ }], title: [{
68
+ type: Input
69
+ }], closeEnabled: [{
70
+ type: Input
71
+ }], extraClass: [{
72
+ type: Input
73
+ }], icon: [{
74
+ type: Input
75
+ }], type: [{
76
+ type: Input
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tYmFubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9hcHBsaWNhdGlvbi1iYW5uZXIvYXBwbGljYXRpb24tYmFubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9hcHBsaWNhdGlvbi1iYW5uZXIvYXBwbGljYXRpb24tYmFubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGNBQWMsRUFDZCxzQkFBc0IsR0FDdkIsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7OztBQW1COUQsTUFBTSxPQUFPLDBCQUEwQjtJQWpCdkM7UUFvQlcsaUJBQVksR0FBRyxLQUFLLENBQUE7UUFDcEIsZUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUNmLFNBQUksR0FBRyxFQUFFLENBQUE7UUFDbEIsYUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNiLGVBQVUsR0FBRyxJQUFJLENBQUE7S0ErQmxCO0lBN0JDLElBQWEsSUFBSSxDQUFDLEtBQXdDO1FBQ3hELFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDZCxLQUFLLFNBQVM7Z0JBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyw4Q0FBOEMsQ0FBQTtnQkFDOUQsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUE7Z0JBQ3hCLE1BQUs7WUFDUCxLQUFLLE9BQU87Z0JBQ1YsSUFBSSxDQUFDLFFBQVE7b0JBQ1gsMERBQTBELENBQUE7Z0JBQzVELElBQUksQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUE7Z0JBQzVCLE1BQUs7WUFDUCxLQUFLLFdBQVcsQ0FBQztZQUNqQjtnQkFDRSxJQUFJLENBQUMsUUFBUSxHQUFHLHdEQUF3RCxDQUFBO2dCQUN4RSxJQUFJLENBQUMsSUFBSSxHQUFHLHdCQUF3QixDQUFBO2dCQUNwQyxNQUFLO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQzlCLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLGdDQUFnQyxDQUFBO1FBQzVFLENBQUM7UUFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxlQUFlLENBQUE7SUFDM0QsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtJQUN6QixDQUFDOytHQXJDVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiwyTUFWMUI7WUFDVCxZQUFZLENBQUM7Z0JBQ1gsc0JBQXNCO2dCQUN0QixjQUFjO2dCQUNkLGVBQWU7Z0JBQ2YsVUFBVTthQUNYLENBQUM7WUFDRixvQkFBb0IsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztTQUN4QywwQkM3Qkgsc3dCQXlCQSx5RERSWSxZQUFZLGlPQUFFLGVBQWU7OzRGQWM1QiwwQkFBMEI7a0JBakJ0QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLG1CQUN2Qix1QkFBdUIsQ0FBQyxNQUFNLGFBR3BDO3dCQUNULFlBQVksQ0FBQzs0QkFDWCxzQkFBc0I7NEJBQ3RCLGNBQWM7NEJBQ2QsZUFBZTs0QkFDZixVQUFVO3lCQUNYLENBQUM7d0JBQ0Ysb0JBQW9CLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7cUJBQ3hDOzhCQUdRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFJTyxJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7XG4gIG1hdENsb3NlT3V0bGluZSxcbiAgbWF0SW5mb091dGxpbmUsXG4gIG1hdFdhcm5pbmdBbWJlck91dGxpbmUsXG59IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9vdXRsaW5lJ1xuaW1wb3J0IHsgbWF0V2FybmluZyB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktYXBwbGljYXRpb24tYmFubmVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdJY29uQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHBsaWNhdGlvbi1iYW5uZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYXBwbGljYXRpb24tYmFubmVyLmNvbXBvbmVudC5jc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlSWNvbnMoe1xuICAgICAgbWF0V2FybmluZ0FtYmVyT3V0bGluZSxcbiAgICAgIG1hdEluZm9PdXRsaW5lLFxuICAgICAgbWF0Q2xvc2VPdXRsaW5lLFxuICAgICAgbWF0V2FybmluZyxcbiAgICB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7IHNpemU6ICcxLjVlbScgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uQmFubmVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbWVzc2FnZTogc3RyaW5nXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmdcbiAgQElucHV0KCkgY2xvc2VFbmFibGVkID0gZmFsc2VcbiAgQElucHV0KCkgZXh0cmFDbGFzcyA9ICcnXG4gIEBJbnB1dCgpIGljb24gPSAnJ1xuICBtc2dDbGFzcyA9ICcnXG4gIGJhbm5lck9wZW4gPSB0cnVlXG5cbiAgQElucHV0KCkgc2V0IHR5cGUodmFsdWU6ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ2xpZ2h0Jykge1xuICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgIGNhc2UgJ3ByaW1hcnknOlxuICAgICAgICB0aGlzLm1zZ0NsYXNzID0gJ2JnLXByaW1hcnktZGFya2VzdCBib3JkZXItcHJpbWFyeSB0ZXh0LXdoaXRlJ1xuICAgICAgICB0aGlzLmljb24gPSAnbWF0V2FybmluZydcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ2xpZ2h0JzpcbiAgICAgICAgdGhpcy5tc2dDbGFzcyA9XG4gICAgICAgICAgJ2JnLXByaW1hcnktb3BhY2l0eS0xMCBib3JkZXItcHJpbWFyeS1saWdodGVzdCB0ZXh0LWJsYWNrJ1xuICAgICAgICB0aGlzLmljb24gPSAnbWF0SW5mb091dGxpbmUnXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdzZWNvbmRhcnknOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5tc2dDbGFzcyA9ICdiZy1wcmltYXJ5LW9wYWNpdHktNTAgYm9yZGVyLXByaW1hcnktZGFya2VyIHRleHQtYmxhY2snXG4gICAgICAgIHRoaXMuaWNvbiA9ICdtYXRXYXJuaW5nQW1iZXJPdXRsaW5lJ1xuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGdldCBjbGFzc0xpc3QoKSB7XG4gICAgaWYgKHRoaXMubWVzc2FnZS5sZW5ndGggPiAyMDApIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLm1zZ0NsYXNzfSAke3RoaXMuZXh0cmFDbGFzc30gb3ZlcmZsb3cteS1zY3JvbGwgaXRlbXMtc3RhcnRgXG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLm1zZ0NsYXNzfSAke3RoaXMuZXh0cmFDbGFzc30gaXRlbXMtY2VudGVyYFxuICB9XG5cbiAgY2xvc2VNZXNzYWdlKCkge1xuICAgIHRoaXMuYmFubmVyT3BlbiA9IGZhbHNlXG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJtZXNzYWdlICYmIGJhbm5lck9wZW5cIlxuICBjbGFzcz1cImFic29sdXRlIHRvcC0wIHRleHQtd3JhcCBiZy13aGl0ZSBtdC00IG1heC1oLTI0XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBweS0yLjUgcHgtNSBnYXAtNSBqdXN0aWZ5LXN0YXJ0IGJvcmRlciBtYXgtaC0yMFwiXG4gICAgW25nQ2xhc3NdPVwiY2xhc3NMaXN0XCJcbiAgPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieyAncHQtNSc6IG1lc3NhZ2UubGVuZ3RoID4gMjAwIH1cIj5cbiAgICAgIDxuZy1pY29uIFtuYW1lXT1cImljb25cIj48L25nLWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1zdGFydCBnYXAtMi41XCI+XG4gICAgICA8c3BhbiAqbmdJZj1cInRpdGxlXCIgY2xhc3M9XCJmb250LWJvbGRcIj57eyB0aXRsZSB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW0gbWF4LXctMnhsXCIgW2lubmVySFRNTF09XCJtZXNzYWdlXCI+PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiY2xvc2VFbmFibGVkXCJcbiAgICAgIGNsYXNzPVwic2VsZi1zdGFydFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJjbG9zZU1lc3NhZ2UoKVwiXG4gICAgPlxuICAgICAgPG5nLWljb24gbmFtZT1cIm1hdENsb3NlT3V0bGluZVwiPiA8L25nLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -110,6 +110,7 @@ export class RecordApiFormComponent {
110
110
  maxFeatures: limit !== '-1' ? Number(limit) : undefined,
111
111
  limit: limit !== '-1' ? Number(limit) : -1,
112
112
  offset: offset !== '' ? Number(offset) : undefined,
113
+ outputCrs: format === ('application/json' || 'geojson') ? 'EPSG:4326' : undefined,
113
114
  };
114
115
  if (this.endpoint instanceof WfsEndpoint) {
115
116
  delete options.limit;
@@ -135,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
135
136
  }], propDecorators: { apiLink: [{
136
137
  type: Input
137
138
  }] } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pFLE9BQU8sRUFBWSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFLOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDN0UsT0FBTyxFQUNMLHVCQUF1QixFQUV2Qix5QkFBeUIsRUFDekIsa0JBQWtCLEdBQ25CLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTs7OztBQUVyRCxNQUFNLGNBQWMsR0FBRztJQUNyQixNQUFNLEVBQUUsRUFBRTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLGtCQUFrQjtDQUMzQixDQUFBO0FBZ0JELE1BQU0sT0FBTyxzQkFBc0I7SUFkbkM7UUEwQkUsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNwRCxXQUFNLEdBQUcsSUFBSSxl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QkFBcUIsQ0FDOUMsSUFBSSxDQUFDLGNBQWMsRUFDbkIsT0FBTyxDQUNSLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0ExSVUsc0JBQXNCO21HQUF0QixzQkFBc0IsaUhDckNuQywyekdBMkZBLHFnQkQ3REksWUFBWSx3TEFDWixrQkFBa0IsK0pBQ2xCLHlCQUF5QixxTkFDekIsdUJBQXVCLDBIQUN2QixlQUFlOzs0RkFHTixzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLGVBQWU7cUJBQ2hCOzhCQUdZLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNaW1lVHlwZSwgT2djQXBpRW5kcG9pbnQsIFdmc0VuZHBvaW50IH0gZnJvbSAnQGNhbXB0b2NhbXAvb2djLWNsaWVudCdcbmltcG9ydCB7XG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICBTZXJ2aWNlUHJvdG9jb2wsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IG1pbWVUeXBlVG9Gb3JtYXQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCxcbiAgRHJvcGRvd25DaG9pY2UsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuY29uc3QgREVGQVVMVF9QQVJBTVMgPSB7XG4gIE9GRlNFVDogJycsXG4gIExJTUlUOiAnLTEnLFxuICBGT1JNQVQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVjb3JkLWFwaS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIENvcHlUZXh0QnV0dG9uQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVjb3JkQXBpRm9ybUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNldCBhcGlMaW5rKHZhbHVlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbikge1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0cyA9IFt7IHZhbHVlOiAnYXBwbGljYXRpb24vanNvbicsIGxhYmVsOiAnSlNPTicgfV1cbiAgICB0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IHZhbHVlID8gdmFsdWUuYWNjZXNzU2VydmljZVByb3RvY29sIDogdW5kZWZpbmVkXG4gICAgdGhpcy5hcGlGZWF0dXJlVHlwZSA9IHZhbHVlID8gdmFsdWUubmFtZSA6IHVuZGVmaW5lZFxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hcGlCYXNlVXJsID0gdmFsdWUudXJsLmhyZWZcbiAgICAgIHRoaXMuY3JlYXRlRW5kcG9pbnQoKS50aGVuKCgpID0+IHRoaXMucGFyc2VPdXRwdXRGb3JtYXRzKCkpXG4gICAgfVxuICAgIHRoaXMucmVzZXRVcmwoKVxuICB9XG5cbiAgb2Zmc2V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoREVGQVVMVF9QQVJBTVMuT0ZGU0VUKVxuICBsaW1pdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICBmb3JtYXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChERUZBVUxUX1BBUkFNUy5GT1JNQVQpXG4gIGVuZHBvaW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2ZzRW5kcG9pbnQgfCBPZ2NBcGlFbmRwb2ludCB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gIClcbiAgYXBpQmFzZVVybDogc3RyaW5nXG4gIGFwaUZlYXR1cmVUeXBlOiBzdHJpbmdcbiAgc3VwcG9ydE9mZnNldCA9IHRydWVcbiAgYWNjZXNzU2VydmljZVByb3RvY29sOiBTZXJ2aWNlUHJvdG9jb2wgfCB1bmRlZmluZWRcbiAgb3V0cHV0Rm9ybWF0czogRHJvcGRvd25DaG9pY2VbXSA9IFtcbiAgICB7IHZhbHVlOiAnYXBwbGljYXRpb24vanNvbicsIGxhYmVsOiAnSlNPTicgfSxcbiAgXVxuICBlbmRwb2ludDogV2ZzRW5kcG9pbnQgfCBPZ2NBcGlFbmRwb2ludCB8IHVuZGVmaW5lZFxuXG4gIGFwaVF1ZXJ5VXJsJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMub2Zmc2V0JCxcbiAgICB0aGlzLmxpbWl0JCxcbiAgICB0aGlzLmZvcm1hdCQsXG4gICAgLy8gb25seSBjb21wdXRlIHRoZSB1cmwgaWYgdGhlIGVuZHBvaW50IHdhcyBjcmVhdGVkXG4gICAgdGhpcy5lbmRwb2ludCQucGlwZShmaWx0ZXIoKGVuZHBvaW50KSA9PiAhIWVuZHBvaW50KSksXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2Zmc2V0LCBsaW1pdCwgZm9ybWF0XSkgPT5cbiAgICAgIHRoaXMuZ2VuZXJhdGVBcGlRdWVyeVVybChvZmZzZXQsIGxpbWl0LCBmb3JtYXQpXG4gICAgKVxuICApXG5cbiAgbm9MaW1pdENoZWNrZWQkID0gdGhpcy5saW1pdCQucGlwZShcbiAgICBtYXAoKGxpbWl0KSA9PiBsaW1pdCA9PT0gJy0xJyB8fCBsaW1pdCA9PT0gJycpXG4gIClcbiAgZGlzcGxheUxpbWl0JCA9IHRoaXMubGltaXQkLnBpcGUoXG4gICAgbWFwKChsaW1pdCkgPT4gKGxpbWl0ICE9PSAnLTEnID8gbGltaXQgOiAnJykpXG4gIClcblxuICBzZXRPZmZzZXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KHZhbHVlKVxuICB9XG5cbiAgc2V0TGltaXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMubGltaXQkLm5leHQodmFsdWUgPT09ICcnID8gJy0xJyA6IHZhbHVlKVxuICB9XG5cbiAgc2V0Rm9ybWF0KHZhbHVlOiBzdHJpbmcgfCB1bmtub3duKSB7XG4gICAgdGhpcy5mb3JtYXQkLm5leHQoU3RyaW5nKHZhbHVlKSlcbiAgfVxuXG4gIHJlc2V0VXJsKCkge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KERFRkFVTFRfUEFSQU1TLk9GRlNFVClcbiAgICB0aGlzLmxpbWl0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICAgIHRoaXMuZm9ybWF0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkZPUk1BVClcbiAgfVxuXG4gIGFzeW5jIHBhcnNlT3V0cHV0Rm9ybWF0cygpIHtcbiAgICBpZiAoIXRoaXMuZW5kcG9pbnQpIHJldHVyblxuICAgIGNvbnN0IG91dHB1dEZvcm1hdHMgPSAoYXdhaXQgdGhpcy5nZXRPdXRwdXRGb3JtYXRzKCkpLm1hcChcbiAgICAgIHRoaXMubWltZVR5cGVUb0Zvcm1hdE5hbWVcbiAgICApXG5cbiAgICB0aGlzLm91dHB1dEZvcm1hdHMgPSB0aGlzLm91dHB1dEZvcm1hdHNcbiAgICAgIC5jb25jYXQob3V0cHV0Rm9ybWF0cy5maWx0ZXIoQm9vbGVhbikpXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0LCBpbmRleCwgc2VsZikgPT5cbiAgICAgICAgICBpbmRleCA9PT0gc2VsZi5maW5kSW5kZXgoKHQpID0+IHQudmFsdWUgPT09IGZvcm1hdC52YWx1ZSlcbiAgICAgIClcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpXG4gIH1cblxuICBtaW1lVHlwZVRvRm9ybWF0TmFtZShtaW1lVHlwZTogTWltZVR5cGUpOiBEcm9wZG93bkNob2ljZSB8IG51bGwge1xuICAgIGNvbnN0IGZvcm1hdE5hbWUgPSBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlKVxuICAgIHJldHVybiBmb3JtYXROYW1lXG4gICAgICA/IHsgbGFiZWw6IGZvcm1hdE5hbWUudG9VcHBlckNhc2UoKSwgdmFsdWU6IG1pbWVUeXBlIH1cbiAgICAgIDogbnVsbFxuICB9XG5cbiAgYXN5bmMgZ2V0T3V0cHV0Rm9ybWF0cygpOiBQcm9taXNlPE1pbWVUeXBlW10+IHtcbiAgICBpZiAoIXRoaXMuZW5kcG9pbnQpIHJldHVybiBbXVxuICAgIGlmICh0aGlzLmVuZHBvaW50IGluc3RhbmNlb2YgV2ZzRW5kcG9pbnQpIHtcbiAgICAgIHRoaXMuc3VwcG9ydE9mZnNldCA9IHRoaXMuZW5kcG9pbnQuc3VwcG9ydHNTdGFydEluZGV4KClcbiAgICAgIHJldHVybiB0aGlzLmVuZHBvaW50LmdldFNlcnZpY2VJbmZvKCkub3V0cHV0Rm9ybWF0c1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkluZm8odGhpcy5hcGlGZWF0dXJlVHlwZSkpXG4gICAgICAgIC5pdGVtRm9ybWF0c1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUVuZHBvaW50KCkge1xuICAgIGlmICghdGhpcy5hcGlCYXNlVXJsIHx8ICF0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCkgcmV0dXJuXG4gICAgaWYgKHRoaXMuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJykge1xuICAgICAgdGhpcy5lbmRwb2ludCA9IG5ldyBXZnNFbmRwb2ludCh0aGlzLmFwaUJhc2VVcmwpXG4gICAgICBhd2FpdCAodGhpcy5lbmRwb2ludCBhcyBXZnNFbmRwb2ludCkuaXNSZWFkeSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW5kcG9pbnQgPSBuZXcgT2djQXBpRW5kcG9pbnQodGhpcy5hcGlCYXNlVXJsKVxuICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBhd2FpdCB0aGlzLmVuZHBvaW50LmFsbENvbGxlY3Rpb25zXG4gICAgICAvLyBpZiB0aGVyZSdzIG9ubHkgb25lIGNvbGxlY3Rpb24sIHVzZSB0aGlzIGluc3RlYWQgb2YgdGhlIG5hbWUgZ2l2ZW4gaW4gdGhlIGxpbmsuXG4gICAgICBpZiAoY29sbGVjdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuYXBpRmVhdHVyZVR5cGUgPSBjb2xsZWN0aW9uc1swXS5uYW1lXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZW5kcG9pbnQkLm5leHQodGhpcy5lbmRwb2ludClcbiAgfVxuXG4gIGFzeW5jIGdlbmVyYXRlQXBpUXVlcnlVcmwoXG4gICAgb2Zmc2V0OiBzdHJpbmcsXG4gICAgbGltaXQ6IHN0cmluZyxcbiAgICBmb3JtYXQ6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5hcGlCYXNlVXJsIHx8ICF0aGlzLmVuZHBvaW50IHx8ICF0aGlzLmFwaUZlYXR1cmVUeXBlKSByZXR1cm4gJydcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBvdXRwdXRGb3JtYXQ6IGZvcm1hdCxcbiAgICAgIHN0YXJ0SW5kZXg6IG9mZnNldCA/IE51bWJlcihvZmZzZXQpIDogdW5kZWZpbmVkLFxuICAgICAgbWF4RmVhdHVyZXM6IGxpbWl0ICE9PSAnLTEnID8gTnVtYmVyKGxpbWl0KSA6IHVuZGVmaW5lZCxcbiAgICAgIGxpbWl0OiBsaW1pdCAhPT0gJy0xJyA/IE51bWJlcihsaW1pdCkgOiAtMSxcbiAgICAgIG9mZnNldDogb2Zmc2V0ICE9PSAnJyA/IE51bWJlcihvZmZzZXQpIDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIGlmICh0aGlzLmVuZHBvaW50IGluc3RhbmNlb2YgV2ZzRW5kcG9pbnQpIHtcbiAgICAgIGRlbGV0ZSBvcHRpb25zLmxpbWl0XG4gICAgICBvcHRpb25zLm1heEZlYXR1cmVzID0gbGltaXQgIT09ICctMScgPyBOdW1iZXIobGltaXQpIDogdW5kZWZpbmVkXG4gICAgICByZXR1cm4gdGhpcy5lbmRwb2ludC5nZXRGZWF0dXJlVXJsKHRoaXMuYXBpRmVhdHVyZVR5cGUsIG9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmVuZHBvaW50LmdldENvbGxlY3Rpb25JdGVtc1VybChcbiAgICAgICAgdGhpcy5hcGlGZWF0dXJlVHlwZSxcbiAgICAgICAgb3B0aW9uc1xuICAgICAgKVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLThcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgYmctd2hpdGUgcC04IG5nLXN0YXItaW5zZXJ0ZWQgc2hhZG93LXhsIGdhcC04XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LVsxNnB4XSB0ZXh0LWJsYWNrIHRydW5jYXRlIGZvbnQtdGl0bGUgdy0xMS8xMlwiIHRyYW5zbGF0ZT5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmNyZWF0ZVxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJyZXNldFVybCgpXCJcbiAgICAgICAgY2xhc3M9XCJiZy1wcmltYXJ5LW9wYWNpdHktNTAgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTIgcHktMSB0ZXh0LTEzIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB0ZXh0LXdoaXRlIHJvdW5kZWQgY2FwaXRhbGl6ZSB0ZXh0LXByaW1hcnktbGlnaHRlc3QgaG92ZXI6YmctcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICA+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTNweF0gdXBwZXJjYXNlXCIgdHJhbnNsYXRlPlxuICAgICAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5yZXNldFxuICAgICAgICA8L3A+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIGdyb3cgZ2FwLTVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTRweF1cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmxpbWl0PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICA8Z24tdWktdGV4dC1pbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJtci0yIHctMjBcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInNldExpbWl0KCRldmVudClcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlMaW1pdCQgfCBhc3luY1wiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvZ24tdWktdGV4dC1pbnB1dD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cIm1yLTIgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJub0xpbWl0Q2hlY2tlZCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0TGltaXQoJy0xJylcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICA+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmxpbWl0LmFsbDwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTMgcmVsYXRpdmVcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgW2NsYXNzLnRleHQtZ3JheS02MDBdPVwiIXN1cHBvcnRPZmZzZXRcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLm9mZnNldFxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxnbi11aS10ZXh0LWlucHV0XG4gICAgICAgICAgICBjbGFzcz1cInctMjBcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9mZnNldCQgfCBhc3luY1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN1cHBvcnRPZmZzZXRcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInN1cHBvcnRPZmZzZXQgPyBzZXRPZmZzZXQoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2duLXVpLXRleHQtaW5wdXQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCIhc3VwcG9ydE9mZnNldFwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtb3JhbmdlLTUwMCB6LTEwIG1sLTNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJOb3Qgc3VwcG9ydGVkIG9uIHRoaXMgc2VydmljZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHdhcm5pbmdcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0udHlwZTwvcD5cbiAgICAgICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAgICAgI2Ryb3Bkb3duXG4gICAgICAgICAgW3RpdGxlXT1cIicnXCJcbiAgICAgICAgICBleHRyYUJ0bkNsYXNzPVwic2Vjb25kYXJ5IG1pbi13LWZ1bGwgIXctNDAgIXRleHQtYmxhY2tcIlxuICAgICAgICAgIFtzaG93VGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ibGFja1wiXG4gICAgICAgICAgW2Nob2ljZXNdPVwib3V0cHV0Rm9ybWF0c1wiXG4gICAgICAgICAgKHNlbGVjdFZhbHVlKT1cInNldEZvcm1hdCgkZXZlbnQpXCJcbiAgICAgICAgICBbc2VsZWN0ZWRdPVwiZm9ybWF0JCB8IGFzeW5jXCJcbiAgICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIG1iLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSB0ZXh0LWJsYWNrIHRydW5jYXRlIGZvbnQtdGl0bGUgdy0xMS8xMlwiIHRyYW5zbGF0ZT5cbiAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jdXN0b21VcmxcbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYmctd2hpdGUgcm91bmRlZC1sZ1wiPlxuICAgICAgPGduLXVpLWNvcHktdGV4dC1idXR0b25cbiAgICAgICAgW3RleHRdPVwiYXBpUXVlcnlVcmwkIHwgYXN5bmNcIlxuICAgICAgPjwvZ24tdWktY29weS10ZXh0LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9yZWNvcmQtYXBpLWZvcm0vcmVjb3JkLWFwaS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pFLE9BQU8sRUFBWSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFLOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDN0UsT0FBTyxFQUNMLHVCQUF1QixFQUV2Qix5QkFBeUIsRUFDekIsa0JBQWtCLEdBQ25CLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTs7OztBQUVyRCxNQUFNLGNBQWMsR0FBRztJQUNyQixNQUFNLEVBQUUsRUFBRTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLGtCQUFrQjtDQUMzQixDQUFBO0FBZ0JELE1BQU0sT0FBTyxzQkFBc0I7SUFkbkM7UUEwQkUsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNwRCxXQUFNLEdBQUcsSUFBSSxl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LElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDbEUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FDOUMsSUFBSSxDQUFDLGNBQWMsRUFDbkIsT0FBTyxDQUNSLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0E1SVUsc0JBQXNCO21HQUF0QixzQkFBc0IsaUhDckNuQywyekdBMkZBLHFnQkQ3REksWUFBWSx3TEFDWixrQkFBa0IsK0pBQ2xCLHlCQUF5QixxTkFDekIsdUJBQXVCLDBIQUN2QixlQUFlOzs0RkFHTixzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6Qix1QkFBdUI7d0JBQ3ZCLGVBQWU7cUJBQ2hCOzhCQUdZLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNaW1lVHlwZSwgT2djQXBpRW5kcG9pbnQsIFdmc0VuZHBvaW50IH0gZnJvbSAnQGNhbXB0b2NhbXAvb2djLWNsaWVudCdcbmltcG9ydCB7XG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICBTZXJ2aWNlUHJvdG9jb2wsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IG1pbWVUeXBlVG9Gb3JtYXQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBDb3B5VGV4dEJ1dHRvbkNvbXBvbmVudCxcbiAgRHJvcGRvd25DaG9pY2UsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcblxuY29uc3QgREVGQVVMVF9QQVJBTVMgPSB7XG4gIE9GRlNFVDogJycsXG4gIExJTUlUOiAnLTEnLFxuICBGT1JNQVQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVjb3JkLWFwaS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY29yZC1hcGktZm9ybS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIENvcHlUZXh0QnV0dG9uQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVjb3JkQXBpRm9ybUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNldCBhcGlMaW5rKHZhbHVlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbikge1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0cyA9IFt7IHZhbHVlOiAnYXBwbGljYXRpb24vanNvbicsIGxhYmVsOiAnSlNPTicgfV1cbiAgICB0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IHZhbHVlID8gdmFsdWUuYWNjZXNzU2VydmljZVByb3RvY29sIDogdW5kZWZpbmVkXG4gICAgdGhpcy5hcGlGZWF0dXJlVHlwZSA9IHZhbHVlID8gdmFsdWUubmFtZSA6IHVuZGVmaW5lZFxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hcGlCYXNlVXJsID0gdmFsdWUudXJsLmhyZWZcbiAgICAgIHRoaXMuY3JlYXRlRW5kcG9pbnQoKS50aGVuKCgpID0+IHRoaXMucGFyc2VPdXRwdXRGb3JtYXRzKCkpXG4gICAgfVxuICAgIHRoaXMucmVzZXRVcmwoKVxuICB9XG5cbiAgb2Zmc2V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoREVGQVVMVF9QQVJBTVMuT0ZGU0VUKVxuICBsaW1pdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICBmb3JtYXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChERUZBVUxUX1BBUkFNUy5GT1JNQVQpXG4gIGVuZHBvaW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2ZzRW5kcG9pbnQgfCBPZ2NBcGlFbmRwb2ludCB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gIClcbiAgYXBpQmFzZVVybDogc3RyaW5nXG4gIGFwaUZlYXR1cmVUeXBlOiBzdHJpbmdcbiAgc3VwcG9ydE9mZnNldCA9IHRydWVcbiAgYWNjZXNzU2VydmljZVByb3RvY29sOiBTZXJ2aWNlUHJvdG9jb2wgfCB1bmRlZmluZWRcbiAgb3V0cHV0Rm9ybWF0czogRHJvcGRvd25DaG9pY2VbXSA9IFtcbiAgICB7IHZhbHVlOiAnYXBwbGljYXRpb24vanNvbicsIGxhYmVsOiAnSlNPTicgfSxcbiAgXVxuICBlbmRwb2ludDogV2ZzRW5kcG9pbnQgfCBPZ2NBcGlFbmRwb2ludCB8IHVuZGVmaW5lZFxuXG4gIGFwaVF1ZXJ5VXJsJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMub2Zmc2V0JCxcbiAgICB0aGlzLmxpbWl0JCxcbiAgICB0aGlzLmZvcm1hdCQsXG4gICAgLy8gb25seSBjb21wdXRlIHRoZSB1cmwgaWYgdGhlIGVuZHBvaW50IHdhcyBjcmVhdGVkXG4gICAgdGhpcy5lbmRwb2ludCQucGlwZShmaWx0ZXIoKGVuZHBvaW50KSA9PiAhIWVuZHBvaW50KSksXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2Zmc2V0LCBsaW1pdCwgZm9ybWF0XSkgPT5cbiAgICAgIHRoaXMuZ2VuZXJhdGVBcGlRdWVyeVVybChvZmZzZXQsIGxpbWl0LCBmb3JtYXQpXG4gICAgKVxuICApXG5cbiAgbm9MaW1pdENoZWNrZWQkID0gdGhpcy5saW1pdCQucGlwZShcbiAgICBtYXAoKGxpbWl0KSA9PiBsaW1pdCA9PT0gJy0xJyB8fCBsaW1pdCA9PT0gJycpXG4gIClcbiAgZGlzcGxheUxpbWl0JCA9IHRoaXMubGltaXQkLnBpcGUoXG4gICAgbWFwKChsaW1pdCkgPT4gKGxpbWl0ICE9PSAnLTEnID8gbGltaXQgOiAnJykpXG4gIClcblxuICBzZXRPZmZzZXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KHZhbHVlKVxuICB9XG5cbiAgc2V0TGltaXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMubGltaXQkLm5leHQodmFsdWUgPT09ICcnID8gJy0xJyA6IHZhbHVlKVxuICB9XG5cbiAgc2V0Rm9ybWF0KHZhbHVlOiBzdHJpbmcgfCB1bmtub3duKSB7XG4gICAgdGhpcy5mb3JtYXQkLm5leHQoU3RyaW5nKHZhbHVlKSlcbiAgfVxuXG4gIHJlc2V0VXJsKCkge1xuICAgIHRoaXMub2Zmc2V0JC5uZXh0KERFRkFVTFRfUEFSQU1TLk9GRlNFVClcbiAgICB0aGlzLmxpbWl0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkxJTUlUKVxuICAgIHRoaXMuZm9ybWF0JC5uZXh0KERFRkFVTFRfUEFSQU1TLkZPUk1BVClcbiAgfVxuXG4gIGFzeW5jIHBhcnNlT3V0cHV0Rm9ybWF0cygpIHtcbiAgICBpZiAoIXRoaXMuZW5kcG9pbnQpIHJldHVyblxuICAgIGNvbnN0IG91dHB1dEZvcm1hdHMgPSAoYXdhaXQgdGhpcy5nZXRPdXRwdXRGb3JtYXRzKCkpLm1hcChcbiAgICAgIHRoaXMubWltZVR5cGVUb0Zvcm1hdE5hbWVcbiAgICApXG5cbiAgICB0aGlzLm91dHB1dEZvcm1hdHMgPSB0aGlzLm91dHB1dEZvcm1hdHNcbiAgICAgIC5jb25jYXQob3V0cHV0Rm9ybWF0cy5maWx0ZXIoQm9vbGVhbikpXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0LCBpbmRleCwgc2VsZikgPT5cbiAgICAgICAgICBpbmRleCA9PT0gc2VsZi5maW5kSW5kZXgoKHQpID0+IHQudmFsdWUgPT09IGZvcm1hdC52YWx1ZSlcbiAgICAgIClcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpXG4gIH1cblxuICBtaW1lVHlwZVRvRm9ybWF0TmFtZShtaW1lVHlwZTogTWltZVR5cGUpOiBEcm9wZG93bkNob2ljZSB8IG51bGwge1xuICAgIGNvbnN0IGZvcm1hdE5hbWUgPSBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlKVxuICAgIHJldHVybiBmb3JtYXROYW1lXG4gICAgICA/IHsgbGFiZWw6IGZvcm1hdE5hbWUudG9VcHBlckNhc2UoKSwgdmFsdWU6IG1pbWVUeXBlIH1cbiAgICAgIDogbnVsbFxuICB9XG5cbiAgYXN5bmMgZ2V0T3V0cHV0Rm9ybWF0cygpOiBQcm9taXNlPE1pbWVUeXBlW10+IHtcbiAgICBpZiAoIXRoaXMuZW5kcG9pbnQpIHJldHVybiBbXVxuICAgIGlmICh0aGlzLmVuZHBvaW50IGluc3RhbmNlb2YgV2ZzRW5kcG9pbnQpIHtcbiAgICAgIHRoaXMuc3VwcG9ydE9mZnNldCA9IHRoaXMuZW5kcG9pbnQuc3VwcG9ydHNTdGFydEluZGV4KClcbiAgICAgIHJldHVybiB0aGlzLmVuZHBvaW50LmdldFNlcnZpY2VJbmZvKCkub3V0cHV0Rm9ybWF0c1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZW5kcG9pbnQuZ2V0Q29sbGVjdGlvbkluZm8odGhpcy5hcGlGZWF0dXJlVHlwZSkpXG4gICAgICAgIC5pdGVtRm9ybWF0c1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUVuZHBvaW50KCkge1xuICAgIGlmICghdGhpcy5hcGlCYXNlVXJsIHx8ICF0aGlzLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCkgcmV0dXJuXG4gICAgaWYgKHRoaXMuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJykge1xuICAgICAgdGhpcy5lbmRwb2ludCA9IG5ldyBXZnNFbmRwb2ludCh0aGlzLmFwaUJhc2VVcmwpXG4gICAgICBhd2FpdCAodGhpcy5lbmRwb2ludCBhcyBXZnNFbmRwb2ludCkuaXNSZWFkeSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW5kcG9pbnQgPSBuZXcgT2djQXBpRW5kcG9pbnQodGhpcy5hcGlCYXNlVXJsKVxuICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBhd2FpdCB0aGlzLmVuZHBvaW50LmFsbENvbGxlY3Rpb25zXG4gICAgICAvLyBpZiB0aGVyZSdzIG9ubHkgb25lIGNvbGxlY3Rpb24sIHVzZSB0aGlzIGluc3RlYWQgb2YgdGhlIG5hbWUgZ2l2ZW4gaW4gdGhlIGxpbmsuXG4gICAgICBpZiAoY29sbGVjdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHRoaXMuYXBpRmVhdHVyZVR5cGUgPSBjb2xsZWN0aW9uc1swXS5uYW1lXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZW5kcG9pbnQkLm5leHQodGhpcy5lbmRwb2ludClcbiAgfVxuXG4gIGFzeW5jIGdlbmVyYXRlQXBpUXVlcnlVcmwoXG4gICAgb2Zmc2V0OiBzdHJpbmcsXG4gICAgbGltaXQ6IHN0cmluZyxcbiAgICBmb3JtYXQ6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5hcGlCYXNlVXJsIHx8ICF0aGlzLmVuZHBvaW50IHx8ICF0aGlzLmFwaUZlYXR1cmVUeXBlKSByZXR1cm4gJydcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBvdXRwdXRGb3JtYXQ6IGZvcm1hdCxcbiAgICAgIHN0YXJ0SW5kZXg6IG9mZnNldCA/IE51bWJlcihvZmZzZXQpIDogdW5kZWZpbmVkLFxuICAgICAgbWF4RmVhdHVyZXM6IGxpbWl0ICE9PSAnLTEnID8gTnVtYmVyKGxpbWl0KSA6IHVuZGVmaW5lZCxcbiAgICAgIGxpbWl0OiBsaW1pdCAhPT0gJy0xJyA/IE51bWJlcihsaW1pdCkgOiAtMSxcbiAgICAgIG9mZnNldDogb2Zmc2V0ICE9PSAnJyA/IE51bWJlcihvZmZzZXQpIDogdW5kZWZpbmVkLFxuICAgICAgb3V0cHV0Q3JzOlxuICAgICAgICBmb3JtYXQgPT09ICgnYXBwbGljYXRpb24vanNvbicgfHwgJ2dlb2pzb24nKSA/ICdFUFNHOjQzMjYnIDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIGlmICh0aGlzLmVuZHBvaW50IGluc3RhbmNlb2YgV2ZzRW5kcG9pbnQpIHtcbiAgICAgIGRlbGV0ZSBvcHRpb25zLmxpbWl0XG4gICAgICBvcHRpb25zLm1heEZlYXR1cmVzID0gbGltaXQgIT09ICctMScgPyBOdW1iZXIobGltaXQpIDogdW5kZWZpbmVkXG4gICAgICByZXR1cm4gdGhpcy5lbmRwb2ludC5nZXRGZWF0dXJlVXJsKHRoaXMuYXBpRmVhdHVyZVR5cGUsIG9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmVuZHBvaW50LmdldENvbGxlY3Rpb25JdGVtc1VybChcbiAgICAgICAgdGhpcy5hcGlGZWF0dXJlVHlwZSxcbiAgICAgICAgb3B0aW9uc1xuICAgICAgKVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLThcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgYmctd2hpdGUgcC04IG5nLXN0YXItaW5zZXJ0ZWQgc2hhZG93LXhsIGdhcC04XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LVsxNnB4XSB0ZXh0LWJsYWNrIHRydW5jYXRlIGZvbnQtdGl0bGUgdy0xMS8xMlwiIHRyYW5zbGF0ZT5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmNyZWF0ZVxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJyZXNldFVybCgpXCJcbiAgICAgICAgY2xhc3M9XCJiZy1wcmltYXJ5LW9wYWNpdHktNTAgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTIgcHktMSB0ZXh0LTEzIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB0ZXh0LXdoaXRlIHJvdW5kZWQgY2FwaXRhbGl6ZSB0ZXh0LXByaW1hcnktbGlnaHRlc3QgaG92ZXI6YmctcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICA+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTNweF0gdXBwZXJjYXNlXCIgdHJhbnNsYXRlPlxuICAgICAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5yZXNldFxuICAgICAgICA8L3A+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIGdyb3cgZ2FwLTVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTRweF1cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmxpbWl0PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICA8Z24tdWktdGV4dC1pbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJtci0yIHctMjBcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInNldExpbWl0KCRldmVudClcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlMaW1pdCQgfCBhc3luY1wiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvZ24tdWktdGV4dC1pbnB1dD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cIm1yLTIgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJub0xpbWl0Q2hlY2tlZCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0TGltaXQoJy0xJylcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICA+cmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLmxpbWl0LmFsbDwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTMgcmVsYXRpdmVcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCIgW2NsYXNzLnRleHQtZ3JheS02MDBdPVwiIXN1cHBvcnRPZmZzZXRcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmFwaS5mb3JtLm9mZnNldFxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxnbi11aS10ZXh0LWlucHV0XG4gICAgICAgICAgICBjbGFzcz1cInctMjBcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9mZnNldCQgfCBhc3luY1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN1cHBvcnRPZmZzZXRcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInN1cHBvcnRPZmZzZXQgPyBzZXRPZmZzZXQoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2duLXVpLXRleHQtaW5wdXQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCIhc3VwcG9ydE9mZnNldFwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtb3JhbmdlLTUwMCB6LTEwIG1sLTNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJOb3Qgc3VwcG9ydGVkIG9uIHRoaXMgc2VydmljZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHdhcm5pbmdcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuYXBpLmZvcm0udHlwZTwvcD5cbiAgICAgICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAgICAgI2Ryb3Bkb3duXG4gICAgICAgICAgW3RpdGxlXT1cIicnXCJcbiAgICAgICAgICBleHRyYUJ0bkNsYXNzPVwic2Vjb25kYXJ5IG1pbi13LWZ1bGwgIXctNDAgIXRleHQtYmxhY2tcIlxuICAgICAgICAgIFtzaG93VGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ibGFja1wiXG4gICAgICAgICAgW2Nob2ljZXNdPVwib3V0cHV0Rm9ybWF0c1wiXG4gICAgICAgICAgKHNlbGVjdFZhbHVlKT1cInNldEZvcm1hdCgkZXZlbnQpXCJcbiAgICAgICAgICBbc2VsZWN0ZWRdPVwiZm9ybWF0JCB8IGFzeW5jXCJcbiAgICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIG1iLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSB0ZXh0LWJsYWNrIHRydW5jYXRlIGZvbnQtdGl0bGUgdy0xMS8xMlwiIHRyYW5zbGF0ZT5cbiAgICAgIHJlY29yZC5tZXRhZGF0YS5hcGkuZm9ybS5jdXN0b21VcmxcbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYmctd2hpdGUgcm91bmRlZC1sZ1wiPlxuICAgICAgPGduLXVpLWNvcHktdGV4dC1idXR0b25cbiAgICAgICAgW3RleHRdPVwiYXBpUXVlcnlVcmwkIHwgYXN5bmNcIlxuICAgICAgPjwvZ24tdWktY29weS10ZXh0LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -15,6 +15,7 @@ import { MarkdownParserComponent } from './markdown-parser/markdown-parser.compo
15
15
  import { ThumbnailComponent } from './thumbnail/thumbnail.component';
16
16
  import { TimeSincePipe } from './user-feedback-item/time-since.pipe';
17
17
  import { UserPreviewComponent } from './user-preview/user-preview.component';
18
+ import { ApplicationBannerComponent } from './application-banner/application-banner.component';
18
19
  import * as i0 from "@angular/core";
19
20
  import * as i1 from "@ngx-translate/core";
20
21
  export class UiElementsModule {
@@ -34,11 +35,13 @@ export class UiElementsModule {
34
35
  BadgeComponent,
35
36
  MaxLinesComponent,
36
37
  TextInputComponent,
37
- ImageInputComponent], exports: [ThumbnailComponent,
38
+ ImageInputComponent,
39
+ ApplicationBannerComponent], exports: [ThumbnailComponent,
38
40
  AvatarComponent,
39
41
  UserPreviewComponent,
40
42
  MarkdownParserComponent,
41
- ImageInputComponent] }); }
43
+ ImageInputComponent,
44
+ ApplicationBannerComponent] }); }
42
45
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiElementsModule, providers: [
43
46
  provideNgIconsConfig({
44
47
  size: '1.5em',
@@ -57,7 +60,8 @@ export class UiElementsModule {
57
60
  BadgeComponent,
58
61
  MaxLinesComponent,
59
62
  TextInputComponent,
60
- ImageInputComponent] }); }
63
+ ImageInputComponent,
64
+ ApplicationBannerComponent] }); }
61
65
  }
62
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiElementsModule, decorators: [{
63
67
  type: NgModule,
@@ -81,6 +85,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
81
85
  MaxLinesComponent,
82
86
  TextInputComponent,
83
87
  ImageInputComponent,
88
+ ApplicationBannerComponent,
84
89
  ],
85
90
  providers: [
86
91
  provideNgIconsConfig({
@@ -94,7 +99,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
94
99
  UserPreviewComponent,
95
100
  MarkdownParserComponent,
96
101
  ImageInputComponent,
102
+ ApplicationBannerComponent,
97
103
  ],
98
104
  }]
99
105
  }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL3VpLWVsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGNBQWMsR0FDZixNQUFNLG1DQUFtQyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7OztBQXFDNUUsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsaUJBVFosZUFBZSxFQUFFLG9CQUFvQixhQXhCbEQsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsY0FBYyxzQkFFZCxnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLGNBQWM7WUFDZCxXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixtQkFBbUIsYUFTbkIsa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsdUJBQXVCO1lBQ3ZCLG1CQUFtQjtnSEFHVixnQkFBZ0IsYUFkaEI7WUFDVCxvQkFBb0IsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLE9BQU87YUFDZCxDQUFDO1NBQ0gsWUF2QkMsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsY0FBYztZQUNkLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixjQUFjO1lBQ2QsV0FBVztZQUVYLGdCQUFnQjtZQUVoQixrQkFBa0I7WUFFbEIsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsbUJBQW1COzs0RkFnQlYsZ0JBQWdCO2tCQW5DNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlLENBQUMsUUFBUSxFQUFFO3dCQUMxQixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixtQkFBbUI7cUJBQ3BCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxvQkFBb0IsQ0FBQzs0QkFDbkIsSUFBSSxFQUFFLE9BQU87eUJBQ2QsQ0FBQztxQkFDSDtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxlQUFlLEVBQUUsb0JBQW9CLENBQUM7b0JBQ3JELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQge1xuICBCYWRnZUNvbXBvbmVudCxcbiAgVGV4dElucHV0Q29tcG9uZW50LFxuICBVaUlucHV0c01vZHVsZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgTWF4TGluZXNDb21wb25lbnQsIFVpTGF5b3V0TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCwgVWlXaWRnZXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYydcbmltcG9ydCB7IFV0aWxTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IHByb3ZpZGVOZ0ljb25zQ29uZmlnIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCdcbmltcG9ydCB7IEltYWdlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLWlucHV0L2ltYWdlLWlucHV0LmNvbXBvbmVudCdcbmltcG9ydCB7IE1hcmtkb3duUGFyc2VyQ29tcG9uZW50IH0gZnJvbSAnLi9tYXJrZG93bi1wYXJzZXIvbWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudCdcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJy4vdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaW1lU2luY2VQaXBlIH0gZnJvbSAnLi91c2VyLWZlZWRiYWNrLWl0ZW0vdGltZS1zaW5jZS5waXBlJ1xuaW1wb3J0IHsgVXNlclByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL3VzZXItcHJldmlldy91c2VyLXByZXZpZXcuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgVWlXaWRnZXRzTW9kdWxlLFxuICAgIFVpTGF5b3V0TW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFV0aWxTaGFyZWRNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICBNYXJrZG93blBhcnNlckNvbXBvbmVudCxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgVGltZVNpbmNlUGlwZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBNYXhMaW5lc0NvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgSW1hZ2VJbnB1dENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNWVtJyxcbiAgICB9KSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbQXZhdGFyQ29tcG9uZW50LCBVc2VyUHJldmlld0NvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIFVzZXJQcmV2aWV3Q29tcG9uZW50LFxuICAgIE1hcmtkb3duUGFyc2VyQ29tcG9uZW50LFxuICAgIEltYWdlSW5wdXRDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFVpRWxlbWVudHNNb2R1bGUge31cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL3VpLWVsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGNBQWMsR0FDZixNQUFNLG1DQUFtQyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDNUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbURBQW1ELENBQUE7OztBQXVDOUYsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsaUJBVlosZUFBZSxFQUFFLG9CQUFvQixhQXpCbEQsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsY0FBYyxzQkFFZCxnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLGNBQWM7WUFDZCxXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsMEJBQTBCLGFBUzFCLGtCQUFrQjtZQUNsQixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLHVCQUF1QjtZQUN2QixtQkFBbUI7WUFDbkIsMEJBQTBCO2dIQUdqQixnQkFBZ0IsYUFmaEI7WUFDVCxvQkFBb0IsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLE9BQU87YUFDZCxDQUFDO1NBQ0gsWUF4QkMsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsY0FBYztZQUNkLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixjQUFjO1lBQ2QsV0FBVztZQUVYLGdCQUFnQjtZQUVoQixrQkFBa0I7WUFFbEIsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLDBCQUEwQjs7NEZBaUJqQixnQkFBZ0I7a0JBckM1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBQzFCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsMEJBQTBCO3FCQUMzQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Qsb0JBQW9CLENBQUM7NEJBQ25CLElBQUksRUFBRSxPQUFPO3lCQUNkLENBQUM7cUJBQ0g7b0JBQ0QsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLG9CQUFvQixDQUFDO29CQUNyRCxPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLDBCQUEwQjtxQkFDM0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQge1xuICBCYWRnZUNvbXBvbmVudCxcbiAgVGV4dElucHV0Q29tcG9uZW50LFxuICBVaUlucHV0c01vZHVsZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgTWF4TGluZXNDb21wb25lbnQsIFVpTGF5b3V0TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCwgVWlXaWRnZXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS93aWRnZXRzL3NyYydcbmltcG9ydCB7IFV0aWxTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IHByb3ZpZGVOZ0ljb25zQ29uZmlnIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCdcbmltcG9ydCB7IEltYWdlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLWlucHV0L2ltYWdlLWlucHV0LmNvbXBvbmVudCdcbmltcG9ydCB7IE1hcmtkb3duUGFyc2VyQ29tcG9uZW50IH0gZnJvbSAnLi9tYXJrZG93bi1wYXJzZXIvbWFya2Rvd24tcGFyc2VyLmNvbXBvbmVudCdcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJy4vdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaW1lU2luY2VQaXBlIH0gZnJvbSAnLi91c2VyLWZlZWRiYWNrLWl0ZW0vdGltZS1zaW5jZS5waXBlJ1xuaW1wb3J0IHsgVXNlclByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL3VzZXItcHJldmlldy91c2VyLXByZXZpZXcuY29tcG9uZW50J1xuaW1wb3J0IHsgQXBwbGljYXRpb25CYW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWJhbm5lci9hcHBsaWNhdGlvbi1iYW5uZXIuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgVWlXaWRnZXRzTW9kdWxlLFxuICAgIFVpTGF5b3V0TW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFV0aWxTaGFyZWRNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nT3B0aW1pemVkSW1hZ2UsXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICBNYXJrZG93blBhcnNlckNvbXBvbmVudCxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgVGltZVNpbmNlUGlwZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBNYXhMaW5lc0NvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgSW1hZ2VJbnB1dENvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvbkJhbm5lckNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZU5nSWNvbnNDb25maWcoe1xuICAgICAgc2l6ZTogJzEuNWVtJyxcbiAgICB9KSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbQXZhdGFyQ29tcG9uZW50LCBVc2VyUHJldmlld0NvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIFVzZXJQcmV2aWV3Q29tcG9uZW50LFxuICAgIE1hcmtkb3duUGFyc2VyQ29tcG9uZW50LFxuICAgIEltYWdlSW5wdXRDb21wb25lbnQsXG4gICAgQXBwbGljYXRpb25CYW5uZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFVpRWxlbWVudHNNb2R1bGUge31cbiJdfQ==
@@ -58,7 +58,12 @@ export class AutocompleteComponent {
58
58
  const suggestionsFromAction = merge(newValue$.pipe(filter((value) => value.length >= this.minCharacterCount)), externalValueChange$).pipe(tap(() => {
59
59
  this.searching = true;
60
60
  this.error = null;
61
- }), switchMap((value) => this.action(value)), catchError((error) => {
61
+ }), switchMap((value) => this.action(value)), tap((suggestions) => {
62
+ // forcing the panel to open if there are suggestions
63
+ if (suggestions.length > 0) {
64
+ this.triggerRef?.openPanel();
65
+ }
66
+ }), catchError((error) => {
62
67
  this.error = error.message;
63
68
  return of([]);
64
69
  }), finalize(() => (this.searching = false)));
@@ -199,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
199
204
  }], displayWithFn: [{
200
205
  type: Input
201
206
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYy9saWIvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDeEUsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFFckIsc0JBQXNCLEdBQ3ZCLE1BQU0sZ0NBQWdDLENBQUE7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDaEYsT0FBTyxFQUNMLFVBQVUsRUFDVixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7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LEVBQUUsUUFBUTt5QkFDZixDQUFDO3FCQUNIO3NGQUtRLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQzRCLFVBQVU7c0JBQTVDLFNBQVM7dUJBQUMsc0JBQXNCO2dCQUNMLFlBQVk7c0JBQXZDLFNBQVM7dUJBQUMsZUFBZTtnQkFDQSxRQUFRO3NCQUFqQyxTQUFTO3VCQUFDLGFBQWE7Z0JBV2YsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHtcbiAgTWF0QXV0b2NvbXBsZXRlLFxuICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsXG4gIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSdcbmltcG9ydCB7IGZpcnN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IFBvcHVwQWxlcnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJTZWFyY2ggfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IG1hdENsb3NlIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL2Jhc2VsaW5lJ1xuXG5leHBvcnQgdHlwZSBBdXRvY29tcGxldGVJdGVtID0gdW5rbm93blxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIGljb25vaXJTZWFyY2gsXG4gICAgICBtYXRDbG9zZSxcbiAgICB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS41cmVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nXG4gIEBJbnB1dCgpIGFjdGlvbjogKHZhbHVlOiBzdHJpbmcpID0+IE9ic2VydmFibGU8QXV0b2NvbXBsZXRlSXRlbVtdPlxuICBASW5wdXQoKSB2YWx1ZT86IEF1dG9jb21wbGV0ZUl0ZW1cbiAgQElucHV0KCkgY2xlYXJPblNlbGVjdGlvbiA9IGZhbHNlXG4gIEBJbnB1dCgpIHByZXZlbnRDb21wbGV0ZU9uU2VsZWN0aW9uID0gZmFsc2VcbiAgQElucHV0KCkgYXV0b0ZvY3VzID0gZmFsc2VcbiAgQElucHV0KCkgbWluQ2hhcmFjdGVyQ291bnQ/ID0gM1xuICAvLyB0aGlzIHdpbGwgc2hvdyBhIHN1Ym1pdCBidXR0b24gbmV4dCB0byB0aGUgaW5wdXQ7IGlmIGZhbHNlLCBhIHNlYXJjaCBpY29uIHdpbGwgYXBwZWFyIG9uIHRoZSBsZWZ0XG4gIEBJbnB1dCgpIGFsbG93U3VibWl0ID0gZmFsc2VcbiAgQE91dHB1dCgpIGl0ZW1TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QXV0b2NvbXBsZXRlSXRlbT4oKVxuICBAT3V0cHV0KCkgaW5wdXRTdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuICBAT3V0cHV0KCkgaW5wdXRDbGVhcmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcikgdHJpZ2dlclJlZjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZSkgYXV0b2NvbXBsZXRlOiBNYXRBdXRvY29tcGxldGVcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBpbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PlxuXG4gIHNlYXJjaGluZzogYm9vbGVhblxuICBjb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpXG4gIGNhbmNlbEVudGVyID0gdHJ1ZVxuICBzZWxlY3Rpb25TdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8TWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudD4oMSlcbiAgbGFzdElucHV0VmFsdWUkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKVxuICBlcnJvcjogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgc3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZUl0ZW1bXT5cbiAgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpXG5cbiAgQElucHV0KCkgZGlzcGxheVdpdGhGbjogKGl0ZW06IEF1dG9jb21wbGV0ZUl0ZW0pID0+IHN0cmluZyA9IChpdGVtKSA9PlxuICAgIGl0ZW0udG9TdHJpbmcoKVxuXG4gIGRpc3BsYXlXaXRoRm5JbnRlcm5hbCA9IChpdGVtPzogQXV0b2NvbXBsZXRlSXRlbSkgPT4ge1xuICAgIGlmIChpdGVtID09PSBudWxsIHx8IGl0ZW0gPT09IHVuZGVmaW5lZCkgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5V2l0aEZuKGl0ZW0pXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IGNoYW5nZXNcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzVGV4dFZhbHVlID0gdGhpcy5kaXNwbGF5V2l0aEZuSW50ZXJuYWwodmFsdWUucHJldmlvdXNWYWx1ZSlcbiAgICAgIGNvbnN0IGN1cnJlbnRUZXh0VmFsdWUgPSB0aGlzLmRpc3BsYXlXaXRoRm5JbnRlcm5hbCh2YWx1ZS5jdXJyZW50VmFsdWUpXG4gICAgICBpZiAocHJldmlvdXNUZXh0VmFsdWUgIT09IGN1cnJlbnRUZXh0VmFsdWUpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKHZhbHVlLmN1cnJlbnRWYWx1ZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdWYWx1ZSQgPSBtZXJnZShcbiAgICAgIG9mKCcnKSxcbiAgICAgIHRoaXMuaW5wdXRDbGVhcmVkLnBpcGUobWFwKCgpID0+ICcnKSksXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoNDAwKVxuICAgICAgKVxuICAgIClcblxuICAgIGNvbnN0IGV4dGVybmFsVmFsdWVDaGFuZ2UkID0gdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS50aXRsZSksXG4gICAgICBtYXAoKGl0ZW0pID0+IGl0ZW0udGl0bGUpXG4gICAgKVxuXG4gICAgLy8gdGhpcyBvYnNlcnZhYmxlIGVtaXRzIGFycmF5cyBvZiBzdWdnZXN0aW9ucyBsb2FkZWQgdXNpbmcgdGhlIGdpdmVuIGFjdGlvblxuICAgIGNvbnN0IHN1Z2dlc3Rpb25zRnJvbUFjdGlvbiA9IG1lcmdlKFxuICAgICAgbmV3VmFsdWUkLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWU6IHN0cmluZykgPT4gdmFsdWUubGVuZ3RoID49IHRoaXMubWluQ2hhcmFjdGVyQ291bnQpXG4gICAgICApLFxuICAgICAgZXh0ZXJuYWxWYWx1ZUNoYW5nZSRcbiAgICApLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaGluZyA9IHRydWVcbiAgICAgICAgdGhpcy5lcnJvciA9IG51bGxcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4gdGhpcy5hY3Rpb24odmFsdWUpKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmVycm9yID0gZXJyb3IubWVzc2FnZVxuICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLnNlYXJjaGluZyA9IGZhbHNlKSlcbiAgICApXG5cbiAgICB0aGlzLnN1Z2dlc3Rpb25zJCA9IG1lcmdlKFxuICAgICAgc3VnZ2VzdGlvbnNGcm9tQWN0aW9uLFxuICAgICAgLy8gaWYgYSBuZXcgdmFsdWUgaXMgdW5kZXIgdGhlIG1pbiBjaGFyIGNvdW50LCBjbGVhciBzdWdnZXN0aW9uc1xuICAgICAgbmV3VmFsdWUkLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWU6IHN0cmluZykgPT4gdmFsdWUubGVuZ3RoIDwgdGhpcy5taW5DaGFyYWN0ZXJDb3VudCksXG4gICAgICAgIG1hcCgoKSA9PiBbXSlcbiAgICAgIClcbiAgICApXG5cbiAgICAvLyBjbG9zZSB0aGUgcGFuZWwgd2hlbmV2ZXIgc3VnZ2VzdGlvbnMgYXJlIGNsZWFyZWRcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnN1Z2dlc3Rpb25zJFxuICAgICAgICAucGlwZShmaWx0ZXIoKHN1Z2dlc3Rpb25zKSA9PiBzdWdnZXN0aW9ucy5sZW5ndGggPT09IDApKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXJSZWY/LmNsb3NlUGFuZWwoKVxuICAgICAgICB9KVxuICAgIClcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChhbnkpID0+IHtcbiAgICAgICAgaWYgKGFueSAhPT0gJycpIHtcbiAgICAgICAgICB0aGlzLmNhbmNlbEVudGVyID0gZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG5cbiAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSlcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5sYXN0SW5wdXRWYWx1ZSQpXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvY29tcGxldGUub3B0aW9uU2VsZWN0ZWQuc3Vic2NyaWJlKHRoaXMuc2VsZWN0aW9uU3ViamVjdClcbiAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXG4gIH1cblxuICB1cGRhdGVJbnB1dFZhbHVlKHZhbHVlOiBBdXRvY29tcGxldGVJdGVtKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpXG4gICAgfVxuICAgIGlmICh0aGlzLmlucHV0UmVmKSB7XG4gICAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAodmFsdWUgYXMgYW55KT8udGl0bGUgfHwgJydcbiAgICB9XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJ1xuICAgIHRoaXMuaW5wdXRDbGVhcmVkLmVtaXQoKVxuICAgIHRoaXMuc2VsZWN0aW9uU3ViamVjdFxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4gc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5vcHRpb24uZGVzZWxlY3QoKSlcbiAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgaGFuZGxlRW50ZXIoYW55OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY2FuY2VsRW50ZXIgJiYgdGhpcy5hbGxvd1N1Ym1pdCkge1xuICAgICAgdGhpcy5pbnB1dFN1Ym1pdHRlZC5lbWl0KGFueSlcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDbGlja1NlYXJjaCgpIHtcbiAgICB0aGlzLmlucHV0U3VibWl0dGVkLmVtaXQodGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlKVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdoZW4gYW4gaXRlbSBpcyBzZWxlY3RlZCBpbiB0aGUgbGlzdCBvZiBkaXNwbGF5ZWQgaXRlbXMuXG4gICAqIElmIHByZXZlbnRDb21wbGV0ZU9uU2VsZWN0aW9uIGlzIHRydWUgdGhlbiB0aGUgaW5wdXQgd2lsbCBiZSBsZWZ0IGFzIGVudGVyZWQgYnkgdGhlIHVzZXIuXG4gICAqIElmIHByZXZlbnRDb21wbGV0ZU9uU2VsZWN0aW9uIGlzIGZhbHNlIChieSBkZWZhdWx0KSB0aGVuIHRoZSBpbnB1dCB3aWxsIGJlIGNvbXBsZXRlZCB3aXRoIHRoZSBpdGVtIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLlxuICAgKiBJZiBjbGVhck9uU2VsZWN0aW9uIGlzIHRydWUgdGhlbiB0aGUgaW5wdXQgd2lsbCBiZSBjbGVhcmVkIHVwb24gc2VsZWN0aW9uLlxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIGhhbmRsZVNlbGVjdGlvbihldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuICAgIHRoaXMuY2FuY2VsRW50ZXIgPSB0cnVlXG4gICAgdGhpcy5pdGVtU2VsZWN0ZWQuZW1pdChldmVudC5vcHRpb24udmFsdWUpXG4gICAgaWYgKHRoaXMucHJldmVudENvbXBsZXRlT25TZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMubGFzdElucHV0VmFsdWUkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKChsYXN0SW5wdXRWYWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBsYXN0SW5wdXRWYWx1ZVxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAodGhpcy5jbGVhck9uU2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJ1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKCcnKVxuICAgIH1cbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJ3LWZ1bGwgaW5saW5lLWJsb2NrIHJlbGF0aXZlXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LXktWy0taWNvbi1wYWRkaW5nXSBsZWZ0LVstLWljb24tcGFkZGluZ10gdy1bLS1pY29uLXdpZHRoXSBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgICAqbmdJZj1cIiFhbGxvd1N1Ym1pdFwiXG4gID5cbiAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pclNlYXJjaFwiIGNsYXNzPVwidGV4dC1wcmltYXJ5IHNlYXJjaFwiPjwvbmctaWNvbj5cbiAgPC9kaXY+XG4gIDxpbnB1dFxuICAgICNzZWFyY2hJbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBjbGFzcz1cImduLXVpLXRleHQtaW5wdXRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdweC1bLS1pY29uLXdpZHRoXSc6ICFhbGxvd1N1Ym1pdCxcbiAgICB9XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgIChrZXl1cC5lbnRlcik9XCJoYW5kbGVFbnRlcihzZWFyY2hJbnB1dC52YWx1ZSlcIlxuICAvPlxuICA8Z24tdWktYnV0dG9uXG4gICAgdHlwZT1cImxpZ2h0XCJcbiAgICBleHRyYUNsYXNzPVwiYm9yZGVyLTAgdGV4dC1wcmltYXJ5LWxpZ2h0ZXN0IGhvdmVyOnRleHQtcHJpbWFyeSBmb2N1czp0ZXh0LXByaW1hcnkgYWJzb2x1dGUgaW5zZXQteS1bLS1pY29uLXBhZGRpbmddIHt7XG4gICAgICBhbGxvd1N1Ym1pdFxuICAgICAgICA/ICdyaWdodC1bY2FsYyh2YXIoLS1pY29uLXdpZHRoKSt2YXIoLS1pY29uLXBhZGRpbmcpKV0nXG4gICAgICAgIDogJ3JpZ2h0LVstLWljb24tcGFkZGluZ10nXG4gICAgfX1cIlxuICAgIGRhdGEtdGVzdD1cImNsZWFyLWJ0blwiXG4gICAgKm5nSWY9XCJzZWFyY2hJbnB1dC52YWx1ZVwiXG4gICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcbiAgICAoYnV0dG9uQ2xpY2spPVwiY2xlYXIoKVwiXG4gID5cbiAgICA8bmctaWNvbiBuYW1lPVwibWF0Q2xvc2VcIj48L25nLWljb24+XG4gIDwvZ24tdWktYnV0dG9uPlxuICA8Z24tdWktYnV0dG9uXG4gICAgdHlwZT1cImxpZ2h0XCJcbiAgICBleHRyYUNsYXNzPVwiYm9yZGVyLTAgYm9yZGVyLWwtWzFweF0gYm9yZGVyLWdyYXktMzAwIGhvdmVyOmJvcmRlci1ncmF5LTUwMCB0ZXh0LXByaW1hcnkgaG92ZXI6dGV4dC1wcmltYXJ5LWRhcmtlc3QgZm9jdXM6dGV4dC1wcmltYXJ5LWRhcmtlc3QgYWJzb2x1dGUgaW5zZXQteS1bLS1pY29uLXBhZGRpbmddIHJpZ2h0LVstLWljb24tcGFkZGluZ11cIlxuICAgIGFyaWEtbGFiZWw9XCJUcmlnZ2VyIHNlYXJjaFwiXG4gICAgKm5nSWY9XCJhbGxvd1N1Ym1pdFwiXG4gICAgZGF0YS10ZXN0PVwiYXV0b2NvbXBsZXRlLXN1Ym1pdC1idG5cIlxuICAgIChidXR0b25DbGljayk9XCJoYW5kbGVDbGlja1NlYXJjaCgpXCJcbiAgPlxuICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyU2VhcmNoXCI+PC9uZy1pY29uPlxuICA8L2duLXVpLWJ1dHRvbj5cblxuICA8Z24tdWktcG9wdXAtYWxlcnRcbiAgICAqbmdJZj1cImVycm9yXCJcbiAgICBjbGFzcz1cImFic29sdXRlIG10LTIgdy1mdWxsIHRvcC1bMTAwJV0gbGVmdC0wXCJcbiAgICBpY29uPVwibWF0RXJyb3JPdXRsaW5lT3V0bGluZVwiXG4gICAgcG9zaXRpb249XCJ0b3BcIlxuICAgIHR5cGU9XCJ3YXJuaW5nXCJcbiAgPlxuICAgIDxzcGFuIHRyYW5zbGF0ZT5zZWFyY2guYXV0b2NvbXBsZXRlLmVycm9yPC9zcGFuPlxuICAgIHt7IGVycm9yIH19XG4gIDwvZ24tdWktcG9wdXAtYWxlcnQ+XG48L3NwYW4+XG5cbjxtYXQtYXV0b2NvbXBsZXRlXG4gICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgKG9wdGlvblNlbGVjdGVkKT1cImhhbmRsZVNlbGVjdGlvbigkZXZlbnQpXCJcbiAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlXaXRoRm5JbnRlcm5hbFwiXG4+XG4gIDxtYXQtb3B0aW9uXG4gICAgKm5nRm9yPVwibGV0IHN1Z2dlc3Rpb24gb2Ygc3VnZ2VzdGlvbnMkIHwgYXN5bmNcIlxuICAgIFt2YWx1ZV09XCJzdWdnZXN0aW9uXCJcbiAgICBjbGFzcz1cInAtMiBzdWdnZXN0aW9uXCJcbiAgPlxuICAgIHt7IGRpc3BsYXlXaXRoRm5JbnRlcm5hbChzdWdnZXN0aW9uKSB9fVxuICA8L21hdC1vcHRpb24+XG48L21hdC1hdXRvY29tcGxldGU+XG4iXX0=
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYy9saWIvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDeEUsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFFckIsc0JBQXNCLEdBQ3ZCLE1BQU0sZ0NBQWdDLENBQUE7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDaEYsT0FBTyxFQUNMLFVBQVUsRUFDVixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7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QkFDbkIscUJBQXFCO3dCQUNyQixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCLGFBQ1U7d0JBQ1QsWUFBWSxDQUFDOzRCQUNYLGFBQWE7NEJBQ2IsUUFBUTt5QkFDVCxDQUFDO3dCQUNGLG9CQUFvQixDQUFDOzRCQUNuQixJQUFJLEVBQUUsUUFBUTt5QkFDZixDQUFDO3FCQUNIO3NGQUtRLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQzRCLFVBQVU7c0JBQTVDLFNBQVM7dUJBQUMsc0JBQXNCO2dCQUNMLFlBQVk7c0JBQXZDLFNBQVM7dUJBQUMsZUFBZTtnQkFDQSxRQUFRO3NCQUFqQyxTQUFTO3VCQUFDLGFBQWE7Z0JBV2YsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHtcbiAgTWF0QXV0b2NvbXBsZXRlLFxuICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsXG4gIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSdcbmltcG9ydCB7IGZpcnN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IFBvcHVwQWxlcnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgTmdJY29uQ29tcG9uZW50LFxuICBwcm92aWRlSWNvbnMsXG4gIHByb3ZpZGVOZ0ljb25zQ29uZmlnLFxufSBmcm9tICdAbmctaWNvbnMvY29yZSdcbmltcG9ydCB7IGljb25vaXJTZWFyY2ggfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IG1hdENsb3NlIH0gZnJvbSAnQG5nLWljb25zL21hdGVyaWFsLWljb25zL2Jhc2VsaW5lJ1xuXG5leHBvcnQgdHlwZSBBdXRvY29tcGxldGVJdGVtID0gdW5rbm93blxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nSWNvbkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHtcbiAgICAgIGljb25vaXJTZWFyY2gsXG4gICAgICBtYXRDbG9zZSxcbiAgICB9KSxcbiAgICBwcm92aWRlTmdJY29uc0NvbmZpZyh7XG4gICAgICBzaXplOiAnMS41cmVtJyxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nXG4gIEBJbnB1dCgpIGFjdGlvbjogKHZhbHVlOiBzdHJpbmcpID0+IE9ic2VydmFibGU8QXV0b2NvbXBsZXRlSXRlbVtdPlxuICBASW5wdXQoKSB2YWx1ZT86IEF1dG9jb21wbGV0ZUl0ZW1cbiAgQElucHV0KCkgY2xlYXJPblNlbGVjdGlvbiA9IGZhbHNlXG4gIEBJbnB1dCgpIHByZXZlbnRDb21wbGV0ZU9uU2VsZWN0aW9uID0gZmFsc2VcbiAgQElucHV0KCkgYXV0b0ZvY3VzID0gZmFsc2VcbiAgQElucHV0KCkgbWluQ2hhcmFjdGVyQ291bnQ/ID0gM1xuICAvLyB0aGlzIHdpbGwgc2hvdyBhIHN1Ym1pdCBidXR0b24gbmV4dCB0byB0aGUgaW5wdXQ7IGlmIGZhbHNlLCBhIHNlYXJjaCBpY29uIHdpbGwgYXBwZWFyIG9uIHRoZSBsZWZ0XG4gIEBJbnB1dCgpIGFsbG93U3VibWl0ID0gZmFsc2VcbiAgQE91dHB1dCgpIGl0ZW1TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QXV0b2NvbXBsZXRlSXRlbT4oKVxuICBAT3V0cHV0KCkgaW5wdXRTdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuICBAT3V0cHV0KCkgaW5wdXRDbGVhcmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcikgdHJpZ2dlclJlZjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZSkgYXV0b2NvbXBsZXRlOiBNYXRBdXRvY29tcGxldGVcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBpbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PlxuXG4gIHNlYXJjaGluZzogYm9vbGVhblxuICBjb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpXG4gIGNhbmNlbEVudGVyID0gdHJ1ZVxuICBzZWxlY3Rpb25TdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8TWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudD4oMSlcbiAgbGFzdElucHV0VmFsdWUkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKVxuICBlcnJvcjogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgc3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZUl0ZW1bXT5cbiAgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpXG5cbiAgQElucHV0KCkgZGlzcGxheVdpdGhGbjogKGl0ZW06IEF1dG9jb21wbGV0ZUl0ZW0pID0+IHN0cmluZyA9IChpdGVtKSA9PlxuICAgIGl0ZW0udG9TdHJpbmcoKVxuXG4gIGRpc3BsYXlXaXRoRm5JbnRlcm5hbCA9IChpdGVtPzogQXV0b2NvbXBsZXRlSXRlbSkgPT4ge1xuICAgIGlmIChpdGVtID09PSBudWxsIHx8IGl0ZW0gPT09IHVuZGVmaW5lZCkgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5V2l0aEZuKGl0ZW0pXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IGNoYW5nZXNcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzVGV4dFZhbHVlID0gdGhpcy5kaXNwbGF5V2l0aEZuSW50ZXJuYWwodmFsdWUucHJldmlvdXNWYWx1ZSlcbiAgICAgIGNvbnN0IGN1cnJlbnRUZXh0VmFsdWUgPSB0aGlzLmRpc3BsYXlXaXRoRm5JbnRlcm5hbCh2YWx1ZS5jdXJyZW50VmFsdWUpXG4gICAgICBpZiAocHJldmlvdXNUZXh0VmFsdWUgIT09IGN1cnJlbnRUZXh0VmFsdWUpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKHZhbHVlLmN1cnJlbnRWYWx1ZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdWYWx1ZSQgPSBtZXJnZShcbiAgICAgIG9mKCcnKSxcbiAgICAgIHRoaXMuaW5wdXRDbGVhcmVkLnBpcGUobWFwKCgpID0+ICcnKSksXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoNDAwKVxuICAgICAgKVxuICAgIClcblxuICAgIGNvbnN0IGV4dGVybmFsVmFsdWVDaGFuZ2UkID0gdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS50aXRsZSksXG4gICAgICBtYXAoKGl0ZW0pID0+IGl0ZW0udGl0bGUpXG4gICAgKVxuXG4gICAgLy8gdGhpcyBvYnNlcnZhYmxlIGVtaXRzIGFycmF5cyBvZiBzdWdnZXN0aW9ucyBsb2FkZWQgdXNpbmcgdGhlIGdpdmVuIGFjdGlvblxuICAgIGNvbnN0IHN1Z2dlc3Rpb25zRnJvbUFjdGlvbiA9IG1lcmdlKFxuICAgICAgbmV3VmFsdWUkLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWU6IHN0cmluZykgPT4gdmFsdWUubGVuZ3RoID49IHRoaXMubWluQ2hhcmFjdGVyQ291bnQpXG4gICAgICApLFxuICAgICAgZXh0ZXJuYWxWYWx1ZUNoYW5nZSRcbiAgICApLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaGluZyA9IHRydWVcbiAgICAgICAgdGhpcy5lcnJvciA9IG51bGxcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4gdGhpcy5hY3Rpb24odmFsdWUpKSxcbiAgICAgIHRhcCgoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgICAgLy8gZm9yY2luZyB0aGUgcGFuZWwgdG8gb3BlbiBpZiB0aGVyZSBhcmUgc3VnZ2VzdGlvbnNcbiAgICAgICAgaWYgKHN1Z2dlc3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXJSZWY/Lm9wZW5QYW5lbCgpXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvci5tZXNzYWdlXG4gICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgIH0pLFxuICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMuc2VhcmNoaW5nID0gZmFsc2UpKVxuICAgIClcblxuICAgIHRoaXMuc3VnZ2VzdGlvbnMkID0gbWVyZ2UoXG4gICAgICBzdWdnZXN0aW9uc0Zyb21BY3Rpb24sXG4gICAgICAvLyBpZiBhIG5ldyB2YWx1ZSBpcyB1bmRlciB0aGUgbWluIGNoYXIgY291bnQsIGNsZWFyIHN1Z2dlc3Rpb25zXG4gICAgICBuZXdWYWx1ZSQucGlwZShcbiAgICAgICAgZmlsdGVyKCh2YWx1ZTogc3RyaW5nKSA9PiB2YWx1ZS5sZW5ndGggPCB0aGlzLm1pbkNoYXJhY3RlckNvdW50KSxcbiAgICAgICAgbWFwKCgpID0+IFtdKVxuICAgICAgKVxuICAgIClcblxuICAgIC8vIGNsb3NlIHRoZSBwYW5lbCB3aGVuZXZlciBzdWdnZXN0aW9ucyBhcmUgY2xlYXJlZFxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuc3VnZ2VzdGlvbnMkXG4gICAgICAgIC5waXBlKGZpbHRlcigoc3VnZ2VzdGlvbnMpID0+IHN1Z2dlc3Rpb25zLmxlbmd0aCA9PT0gMCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudHJpZ2dlclJlZj8uY2xvc2VQYW5lbCgpXG4gICAgICAgIH0pXG4gICAgKVxuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGFueSkgPT4ge1xuICAgICAgICBpZiAoYW55ICE9PSAnJykge1xuICAgICAgICAgIHRoaXMuY2FuY2VsRW50ZXIgPSBmYWxzZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcblxuICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKGZpbHRlcigodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmxhc3RJbnB1dFZhbHVlJClcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZS5vcHRpb25TZWxlY3RlZC5zdWJzY3JpYmUodGhpcy5zZWxlY3Rpb25TdWJqZWN0KVxuICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKClcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIHVwZGF0ZUlucHV0VmFsdWUodmFsdWU6IEF1dG9jb21wbGV0ZUl0ZW0pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSlcbiAgICB9XG4gICAgaWYgKHRoaXMuaW5wdXRSZWYpIHtcbiAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICh2YWx1ZSBhcyBhbnkpPy50aXRsZSB8fCAnJ1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnXG4gICAgdGhpcy5pbnB1dENsZWFyZWQuZW1pdCgpXG4gICAgdGhpcy5zZWxlY3Rpb25TdWJqZWN0XG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiBzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLm9wdGlvbi5kZXNlbGVjdCgpKVxuICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gIH1cblxuICBoYW5kbGVFbnRlcihhbnk6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5jYW5jZWxFbnRlciAmJiB0aGlzLmFsbG93U3VibWl0KSB7XG4gICAgICB0aGlzLmlucHV0U3VibWl0dGVkLmVtaXQoYW55KVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNsaWNrU2VhcmNoKCkge1xuICAgIHRoaXMuaW5wdXRTdWJtaXR0ZWQuZW1pdCh0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUpXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQgd2hlbiBhbiBpdGVtIGlzIHNlbGVjdGVkIGluIHRoZSBsaXN0IG9mIGRpc3BsYXllZCBpdGVtcy5cbiAgICogSWYgcHJldmVudENvbXBsZXRlT25TZWxlY3Rpb24gaXMgdHJ1ZSB0aGVuIHRoZSBpbnB1dCB3aWxsIGJlIGxlZnQgYXMgZW50ZXJlZCBieSB0aGUgdXNlci5cbiAgICogSWYgcHJldmVudENvbXBsZXRlT25TZWxlY3Rpb24gaXMgZmFsc2UgKGJ5IGRlZmF1bHQpIHRoZW4gdGhlIGlucHV0IHdpbGwgYmUgY29tcGxldGVkIHdpdGggdGhlIGl0ZW0gc2VsZWN0ZWQgYnkgdGhlIHVzZXIuXG4gICAqIElmIGNsZWFyT25TZWxlY3Rpb24gaXMgdHJ1ZSB0aGVuIHRoZSBpbnB1dCB3aWxsIGJlIGNsZWFyZWQgdXBvbiBzZWxlY3Rpb24uXG4gICAqIEBwYXJhbSBldmVudFxuICAgKi9cbiAgaGFuZGxlU2VsZWN0aW9uKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XG4gICAgdGhpcy5jYW5jZWxFbnRlciA9IHRydWVcbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGV2ZW50Lm9wdGlvbi52YWx1ZSlcbiAgICBpZiAodGhpcy5wcmV2ZW50Q29tcGxldGVPblNlbGVjdGlvbikge1xuICAgICAgdGhpcy5sYXN0SW5wdXRWYWx1ZSQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKGxhc3RJbnB1dFZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IGxhc3RJbnB1dFZhbHVlXG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmICh0aGlzLmNsZWFyT25TZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoJycpXG4gICAgfVxuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cInctZnVsbCBpbmxpbmUtYmxvY2sgcmVsYXRpdmVcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQteS1bLS1pY29uLXBhZGRpbmddIGxlZnQtWy0taWNvbi1wYWRkaW5nXSB3LVstLWljb24td2lkdGhdIHBvaW50ZXItZXZlbnRzLW5vbmVcIlxuICAgICpuZ0lmPVwiIWFsbG93U3VibWl0XCJcbiAgPlxuICAgIDxuZy1pY29uIG5hbWU9XCJpY29ub2lyU2VhcmNoXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgc2VhcmNoXCI+PC9uZy1pY29uPlxuICA8L2Rpdj5cbiAgPGlucHV0XG4gICAgI3NlYXJjaElucHV0XG4gICAgdHlwZT1cInRleHRcIlxuICAgIGNsYXNzPVwiZ24tdWktdGV4dC1pbnB1dFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3B4LVstLWljb24td2lkdGhdJzogIWFsbG93U3VibWl0LFxuICAgIH1cIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG4gICAgKGtleXVwLmVudGVyKT1cImhhbmRsZUVudGVyKHNlYXJjaElucHV0LnZhbHVlKVwiXG4gIC8+XG4gIDxnbi11aS1idXR0b25cbiAgICB0eXBlPVwibGlnaHRcIlxuICAgIGV4dHJhQ2xhc3M9XCJib3JkZXItMCB0ZXh0LXByaW1hcnktbGlnaHRlc3QgaG92ZXI6dGV4dC1wcmltYXJ5IGZvY3VzOnRleHQtcHJpbWFyeSBhYnNvbHV0ZSBpbnNldC15LVstLWljb24tcGFkZGluZ10ge3tcbiAgICAgIGFsbG93U3VibWl0XG4gICAgICAgID8gJ3JpZ2h0LVtjYWxjKHZhcigtLWljb24td2lkdGgpK3ZhcigtLWljb24tcGFkZGluZykpXSdcbiAgICAgICAgOiAncmlnaHQtWy0taWNvbi1wYWRkaW5nXSdcbiAgICB9fVwiXG4gICAgZGF0YS10ZXN0PVwiY2xlYXItYnRuXCJcbiAgICAqbmdJZj1cInNlYXJjaElucHV0LnZhbHVlXCJcbiAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxuICAgIChidXR0b25DbGljayk9XCJjbGVhcigpXCJcbiAgPlxuICAgIDxuZy1pY29uIG5hbWU9XCJtYXRDbG9zZVwiPjwvbmctaWNvbj5cbiAgPC9nbi11aS1idXR0b24+XG4gIDxnbi11aS1idXR0b25cbiAgICB0eXBlPVwibGlnaHRcIlxuICAgIGV4dHJhQ2xhc3M9XCJib3JkZXItMCBib3JkZXItbC1bMXB4XSBib3JkZXItZ3JheS0zMDAgaG92ZXI6Ym9yZGVyLWdyYXktNTAwIHRleHQtcHJpbWFyeSBob3Zlcjp0ZXh0LXByaW1hcnktZGFya2VzdCBmb2N1czp0ZXh0LXByaW1hcnktZGFya2VzdCBhYnNvbHV0ZSBpbnNldC15LVstLWljb24tcGFkZGluZ10gcmlnaHQtWy0taWNvbi1wYWRkaW5nXVwiXG4gICAgYXJpYS1sYWJlbD1cIlRyaWdnZXIgc2VhcmNoXCJcbiAgICAqbmdJZj1cImFsbG93U3VibWl0XCJcbiAgICBkYXRhLXRlc3Q9XCJhdXRvY29tcGxldGUtc3VibWl0LWJ0blwiXG4gICAgKGJ1dHRvbkNsaWNrKT1cImhhbmRsZUNsaWNrU2VhcmNoKClcIlxuICA+XG4gICAgPG5nLWljb24gbmFtZT1cImljb25vaXJTZWFyY2hcIj48L25nLWljb24+XG4gIDwvZ24tdWktYnV0dG9uPlxuXG4gIDxnbi11aS1wb3B1cC1hbGVydFxuICAgICpuZ0lmPVwiZXJyb3JcIlxuICAgIGNsYXNzPVwiYWJzb2x1dGUgbXQtMiB3LWZ1bGwgdG9wLVsxMDAlXSBsZWZ0LTBcIlxuICAgIGljb249XCJtYXRFcnJvck91dGxpbmVPdXRsaW5lXCJcbiAgICBwb3NpdGlvbj1cInRvcFwiXG4gICAgdHlwZT1cIndhcm5pbmdcIlxuICA+XG4gICAgPHNwYW4gdHJhbnNsYXRlPnNlYXJjaC5hdXRvY29tcGxldGUuZXJyb3I8L3NwYW4+XG4gICAge3sgZXJyb3IgfX1cbiAgPC9nbi11aS1wb3B1cC1hbGVydD5cbjwvc3Bhbj5cblxuPG1hdC1hdXRvY29tcGxldGVcbiAgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxuICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0aW9uKCRldmVudClcIlxuICBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVdpdGhGbkludGVybmFsXCJcbj5cbiAgPG1hdC1vcHRpb25cbiAgICAqbmdGb3I9XCJsZXQgc3VnZ2VzdGlvbiBvZiBzdWdnZXN0aW9ucyQgfCBhc3luY1wiXG4gICAgW3ZhbHVlXT1cInN1Z2dlc3Rpb25cIlxuICAgIGNsYXNzPVwicC0yIHN1Z2dlc3Rpb25cIlxuICA+XG4gICAge3sgZGlzcGxheVdpdGhGbkludGVybmFsKHN1Z2dlc3Rpb24pIH19XG4gIDwvbWF0LW9wdGlvbj5cbjwvbWF0LWF1dG9jb21wbGV0ZT5cbiJdfQ==