geonetwork-ui 2.2.0-dev.c15a456d → 2.2.0-dev.f866474c

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 (54) hide show
  1. package/esm2022/libs/feature/catalog/src/lib/organisations/organisations.component.mjs +4 -15
  2. package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +63 -0
  3. package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +5 -2
  4. package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +4 -3
  5. package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +10 -3
  6. package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +6 -3
  7. package/esm2022/libs/util/i18n/src/index.mjs +2 -1
  8. package/esm2022/libs/util/shared/src/lib/utils/fuzzy-filter.mjs +27 -0
  9. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  10. package/esm2022/translations/de.json +4 -0
  11. package/esm2022/translations/en.json +4 -0
  12. package/esm2022/translations/es.json +4 -0
  13. package/esm2022/translations/fr.json +4 -0
  14. package/esm2022/translations/it.json +4 -0
  15. package/esm2022/translations/nl.json +4 -0
  16. package/esm2022/translations/pt.json +4 -0
  17. package/fesm2022/geonetwork-ui.mjs +126 -21
  18. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  19. package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts +0 -1
  20. package/libs/feature/catalog/src/lib/organisations/organisations.component.d.ts.map +1 -1
  21. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts +22 -0
  22. package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -0
  23. package/libs/feature/map/src/lib/feature-map.module.d.ts +13 -12
  24. package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
  25. package/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.d.ts +1 -0
  26. package/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.d.ts.map +1 -1
  27. package/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.d.ts.map +1 -1
  28. package/libs/util/i18n/src/index.d.ts +1 -0
  29. package/libs/util/i18n/src/index.d.ts.map +1 -1
  30. package/libs/util/shared/src/lib/utils/fuzzy-filter.d.ts +9 -0
  31. package/libs/util/shared/src/lib/utils/fuzzy-filter.d.ts.map +1 -0
  32. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  33. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  34. package/package.json +1 -1
  35. package/src/libs/feature/catalog/src/lib/organisations/organisations.component.ts +3 -17
  36. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.css +0 -0
  37. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.html +55 -0
  38. package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +63 -0
  39. package/src/libs/feature/map/src/lib/feature-map.module.ts +2 -0
  40. package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +3 -1
  41. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +93 -27
  42. package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +7 -0
  43. package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.ts +7 -4
  44. package/src/libs/util/i18n/src/index.ts +1 -0
  45. package/src/libs/util/shared/src/lib/utils/fuzzy-filter.ts +32 -0
  46. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  47. package/translations/de.json +4 -0
  48. package/translations/en.json +4 -0
  49. package/translations/es.json +4 -0
  50. package/translations/fr.json +4 -0
  51. package/translations/it.json +4 -0
  52. package/translations/nl.json +4 -0
  53. package/translations/pt.json +4 -0
  54. package/translations/sk.json +4 -0
@@ -3,6 +3,7 @@ import { BehaviorSubject, combineLatest } from 'rxjs';
3
3
  import { map, startWith, tap } from 'rxjs/operators';
4
4
  import { ORGANIZATION_URL_TOKEN } from '../feature-catalog.module';
5
5
  import { OrganizationsServiceInterface } from '../../../../../../libs/common/domain/src/lib/organizations.service.interface';
6
+ import { createFuzzyFilter } from '../../../../../../libs/util/shared/src';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "../../../../../../libs/common/domain/src/lib/organizations.service.interface";
8
9
  import * as i2 from "../../../../../ui/catalog/src/lib/organisation-preview/organisation-preview.component";
@@ -50,20 +51,8 @@ export class OrganisationsComponent {
50
51
  filterOrganisations(organisations, filterBy) {
51
52
  if (!filterBy)
52
53
  return organisations;
53
- const filterRegex = new RegExp(this.normalizeString(filterBy) //ignore accents and case
54
- .replace(/[^a-z0-9\s]/g, ' ') //ignore special characters (also without spaces like l')
55
- .replace(/\s(?=.)/g, '.*') //replace whitespaces by "AND" separator
56
- .replace(/\s/g, ''), //remove potential whitespaces left
57
- 'i');
58
- return [...organisations].filter((org) => {
59
- return this.normalizeString(org.name).match(filterRegex);
60
- });
61
- }
62
- normalizeString(str) {
63
- return str
64
- .normalize('NFD')
65
- .replace(/[\u0300-\u036f]/g, '')
66
- .toLowerCase();
54
+ const filter = createFuzzyFilter(filterBy);
55
+ return organisations.filter((org) => filter(org.name));
67
56
  }
68
57
  sortOrganisations(organisations, sortBy) {
69
58
  let order;
@@ -110,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
110
99
  }], orgSelect: [{
111
100
  type: Output
112
101
  }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pc2F0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvY2F0YWxvZy9zcmMvbGliL29yZ2FuaXNhdGlvbnMvb3JnYW5pc2F0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvY2F0YWxvZy9zcmMvbGliL29yZ2FuaXNhdGlvbnMvb3JnYW5pc2F0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ2xFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhFQUE4RSxDQUFBOzs7Ozs7Ozs7QUFTNUgsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUNVLG9CQUFtRCxFQUduRCxXQUFtQjtRQUhuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQStCO1FBR25ELGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBUHBCLGdCQUFXLEdBQUcsRUFBRSxDQUFBO1FBQ2YsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFBO1FBVXRELGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFckMsWUFBTyxHQUFpQyxJQUFJLGVBQWUsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FB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QUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUE7UUFDL0MsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsWUFBMEI7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTyxJQUFJLENBQUE7UUFDbEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQy9ELENBQUM7OEdBbEhVLHNCQUFzQiwrREFPdkIsc0JBQXNCO2tHQVByQixzQkFBc0Isd0lDdEJuQyx5b0NBa0NBOzsyRkRaYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OzBCQVE1QyxRQUFROzswQkFDUixNQUFNOzJCQUFDLHNCQUFzQjs0Q0FOdkIsV0FBVztzQkFBbkIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IE9SR0FOSVpBVElPTl9VUkxfVE9LRU4gfSBmcm9tICcuLi9mZWF0dXJlLWNhdGFsb2cubW9kdWxlJ1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9vcmdhbml6YXRpb25zLnNlcnZpY2UuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgU29ydEJ5RmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9zZWFyY2gnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW9yZ2FuaXNhdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vb3JnYW5pc2F0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29yZ2FuaXNhdGlvbnMuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgT3JnYW5pc2F0aW9uc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGl0ZW1zT25QYWdlID0gMTJcbiAgQE91dHB1dCgpIG9yZ1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8T3JnYW5pemF0aW9uPigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvcmdhbmlzYXRpb25zU2VydmljZTogT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2UsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KE9SR0FOSVpBVElPTl9VUkxfVE9LRU4pXG4gICAgcHJpdmF0ZSB1cmxUZW1wbGF0ZTogc3RyaW5nXG4gICkge31cblxuICB0b3RhbFBhZ2VzOiBudW1iZXJcbiAgY3VycmVudFBhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgxKVxuICBvcmdhbmlzYXRpb25SZXN1bHRzOiBudW1iZXJcbiAgc29ydEJ5JDogQmVoYXZpb3JTdWJqZWN0PFNvcnRCeUZpZWxkPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoWydhc2MnLCAnbmFtZSddKVxuICBmaWx0ZXJCeSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJylcbiAgb3JnYW5pc2F0aW9uc1RvdGFsJCA9IHRoaXMub3JnYW5pc2F0aW9uc1NlcnZpY2Uub3JnYW5pc2F0aW9uc0NvdW50JFxuICBvcmdhbmlzYXRpb25zRmlsdGVyZWRBbmRTb3J0ZWQkOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbltdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMub3JnYW5pc2F0aW9uc1NlcnZpY2Uub3JnYW5pc2F0aW9ucyQucGlwZShcbiAgICAgIHN0YXJ0V2l0aChBcnJheSh0aGlzLml0ZW1zT25QYWdlKS5maWxsKHt9KSlcbiAgICApLFxuICAgIHRoaXMuc29ydEJ5JCxcbiAgICB0aGlzLmZpbHRlckJ5JCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtvcmdhbmlzYXRpb25zLCBzb3J0QnksIGZpbHRlckJ5XSkgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyZWRPcmdhbmlzYXRpb25zID0gdGhpcy5maWx0ZXJPcmdhbmlzYXRpb25zKFxuICAgICAgICBvcmdhbmlzYXRpb25zLFxuICAgICAgICBmaWx0ZXJCeVxuICAgICAgKVxuICAgICAgcmV0dXJuIHRoaXMuc29ydE9yZ2FuaXNhdGlvbnMoZmlsdGVyZWRPcmdhbmlzYXRpb25zLCBzb3J0QnkpXG4gICAgfSlcbiAgKVxuXG4gIG9yZ2FuaXNhdGlvbnMkOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbltdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMub3JnYW5pc2F0aW9uc0ZpbHRlcmVkQW5kU29ydGVkJCxcbiAgICB0aGlzLmN1cnJlbnRQYWdlJCxcbiAgXSkucGlwZShcbiAgICB0YXAoKFtvcmdhbmlzYXRpb25zXSkgPT4ge1xuICAgICAgdGhpcy5vcmdhbmlzYXRpb25SZXN1bHRzID0gb3JnYW5pc2F0aW9ucy5sZW5ndGhcbiAgICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbChvcmdhbmlzYXRpb25zLmxlbmd0aCAvIHRoaXMuaXRlbXNPblBhZ2UpXG4gICAgfSksXG4gICAgbWFwKChbb3JnYW5pc2F0aW9ucywgcGFnZV0pID0+XG4gICAgICBvcmdhbmlzYXRpb25zLnNsaWNlKFxuICAgICAgICAocGFnZSAtIDEpICogdGhpcy5pdGVtc09uUGFnZSxcbiAgICAgICAgcGFnZSAqIHRoaXMuaXRlbXNPblBhZ2VcbiAgICAgIClcbiAgICApXG4gIClcblxuICBwcm90ZWN0ZWQgc2V0Q3VycmVudFBhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSQubmV4dChwYWdlKVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldEZpbHRlckJ5KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlJC5uZXh0KDEpXG4gICAgdGhpcy5maWx0ZXJCeSQubmV4dCh2YWx1ZSlcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRTb3J0QnkodmFsdWU6IFNvcnRCeUZpZWxkKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0QnkkLm5leHQodmFsdWUpXG4gIH1cblxuICBwcml2YXRlIGZpbHRlck9yZ2FuaXNhdGlvbnMob3JnYW5pc2F0aW9uczogT3JnYW5pemF0aW9uW10sIGZpbHRlckJ5OiBzdHJpbmcpIHtcbiAgICBpZiAoIWZpbHRlckJ5KSByZXR1cm4gb3JnYW5pc2F0aW9uc1xuICAgIGNvbnN0IGZpbHRlclJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgIHRoaXMubm9ybWFsaXplU3RyaW5nKGZpbHRlckJ5KSAvL2lnbm9yZSBhY2NlbnRzIGFuZCBjYXNlXG4gICAgICAgIC5yZXBsYWNlKC9bXmEtejAtOVxcc10vZywgJyAnKSAvL2lnbm9yZSBzcGVjaWFsIGNoYXJhY3RlcnMgKGFsc28gd2l0aG91dCBzcGFjZXMgbGlrZSBsJylcbiAgICAgICAgLnJlcGxhY2UoL1xccyg/PS4pL2csICcuKicpIC8vcmVwbGFjZSB3aGl0ZXNwYWNlcyBieSBcIkFORFwiIHNlcGFyYXRvclxuICAgICAgICAucmVwbGFjZSgvXFxzL2csICcnKSwgLy9yZW1vdmUgcG90ZW50aWFsIHdoaXRlc3BhY2VzIGxlZnRcbiAgICAgICdpJ1xuICAgIClcbiAgICByZXR1cm4gWy4uLm9yZ2FuaXNhdGlvbnNdLmZpbHRlcigob3JnKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVTdHJpbmcob3JnLm5hbWUpLm1hdGNoKGZpbHRlclJlZ2V4KVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZVN0cmluZyhzdHI6IHN0cmluZykge1xuICAgIHJldHVybiBzdHJcbiAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpXG4gICAgICAudG9Mb3dlckNhc2UoKVxuICB9XG5cbiAgcHJpdmF0ZSBzb3J0T3JnYW5pc2F0aW9ucyhcbiAgICBvcmdhbmlzYXRpb25zOiBPcmdhbml6YXRpb25bXSxcbiAgICBzb3J0Qnk6IFNvcnRCeUZpZWxkXG4gICk6IE9yZ2FuaXphdGlvbltdIHtcbiAgICBsZXQgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnXG4gICAgbGV0IGF0dHJpYnV0ZTogc3RyaW5nXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc29ydEJ5WzBdKSkge1xuICAgICAgb3JkZXIgPSBzb3J0QnlbMF1bMF1cbiAgICAgIGF0dHJpYnV0ZSA9IHNvcnRCeVswXVsxXVxuICAgIH0gZWxzZSB7XG4gICAgICBvcmRlciA9IHNvcnRCeVswXVxuICAgICAgYXR0cmlidXRlID0gc29ydEJ5WzFdIGFzIHN0cmluZ1xuICAgIH1cbiAgICBjb25zdCBkaXJlY3Rpb24gPSBvcmRlciA9PT0gJ2FzYycgPyAxIDogLTFcbiAgICByZXR1cm4gWy4uLm9yZ2FuaXNhdGlvbnNdLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlQSA9IGFbYXR0cmlidXRlXVxuICAgICAgY29uc3QgdmFsdWVCID0gYlthdHRyaWJ1dGVdXG4gICAgICBpZiAodHlwZW9mIHZhbHVlQSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhbHVlQiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiAqIHZhbHVlQS5sb2NhbGVDb21wYXJlKHZhbHVlQilcbiAgICAgIH1cbiAgICAgIHJldHVybiBkaXJlY3Rpb24gKiBNYXRoLnNpZ24odmFsdWVBIC0gdmFsdWVCKVxuICAgIH0pXG4gIH1cblxuICB0cmFja0J5SW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBpbmRleFxuICB9XG5cbiAgZ2V0T3JnYW5pc2F0aW9uVXJsKG9yZ2FuaXNhdGlvbjogT3JnYW5pemF0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMudXJsVGVtcGxhdGUpIHJldHVybiBudWxsXG4gICAgcmV0dXJuIHRoaXMudXJsVGVtcGxhdGUucmVwbGFjZSgnJHtuYW1lfScsIG9yZ2FuaXNhdGlvbi5uYW1lKVxuICB9XG59XG4iLCI8Z24tdWktb3JnYW5pc2F0aW9ucy1maWx0ZXJcbiAgKHNvcnRCeSk9XCJzZXRTb3J0QnkoJGV2ZW50KVwiXG4gIChmaWx0ZXJCeSk9XCJzZXRGaWx0ZXJCeSgkZXZlbnQpXCJcbj48L2duLXVpLW9yZ2FuaXNhdGlvbnMtZmlsdGVyPlxuPGRpdiBjbGFzcz1cIm10LTYgcm91bmRlZC1sZyB0ZXh0LWdyYXktODAwIHAtNCBiZy1zbGF0ZS0xMDBcIj5cbiAgPGduLXVpLW9yZ2FuaXNhdGlvbnMtcmVzdWx0XG4gICAgKm5nSWY9XCJvcmdhbmlzYXRpb25zVG90YWwkIHwgYXN5bmNcIlxuICAgIFtoaXRzXT1cIm9yZ2FuaXNhdGlvblJlc3VsdHNcIlxuICAgIFt0b3RhbF09XCJvcmdhbmlzYXRpb25zVG90YWwkIHwgYXN5bmNcIlxuICA+PC9nbi11aS1vcmdhbmlzYXRpb25zLXJlc3VsdD5cbjwvZGl2PlxuPGRpdlxuICBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgbXQtNiBnYXAteC02IGdhcC15LTggc206Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTNcIlxuPlxuICA8Z24tdWktY29udGVudC1naG9zdFxuICAgIGNsYXNzPVwiaC1bMzAwcHhdXCJcbiAgICBnaG9zdENsYXNzPVwiaC1mdWxsIG1iLTM2XCJcbiAgICAqbmdGb3I9XCJsZXQgb3JnYW5pc2F0aW9uIG9mIG9yZ2FuaXNhdGlvbnMkIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrQnlJbmRleFwiXG4gICAgW3Nob3dDb250ZW50XT1cIiEhb3JnYW5pc2F0aW9uLm5hbWVcIlxuICA+XG4gICAgPGduLXVpLW9yZ2FuaXNhdGlvbi1wcmV2aWV3XG4gICAgICBbb3JnYW5pc2F0aW9uXT1cIm9yZ2FuaXNhdGlvblwiXG4gICAgICBbb3JnYW5pc2F0aW9uVXJsXT1cImdldE9yZ2FuaXNhdGlvblVybChvcmdhbmlzYXRpb24pXCJcbiAgICAgIChjbGlja2VkT3JnYW5pc2F0aW9uKT1cIm9yZ1NlbGVjdC5lbWl0KCRldmVudClcIlxuICAgID48L2duLXVpLW9yZ2FuaXNhdGlvbi1wcmV2aWV3PlxuICA8L2duLXVpLWNvbnRlbnQtZ2hvc3Q+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJweS0yMFwiPlxuICA8Z24tdWktcGFnaW5hdGlvblxuICAgIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZSQgfCBhc3luY1wiXG4gICAgW25QYWdlc109XCJ0b3RhbFBhZ2VzXCJcbiAgICAobmV3Q3VycmVudFBhZ2VFdmVudCk9XCJzZXRDdXJyZW50UGFnZSgkZXZlbnQpXCJcbiAgPjwvZ24tdWktcGFnaW5hdGlvbj5cbjwvZGl2PlxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pc2F0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvY2F0YWxvZy9zcmMvbGliL29yZ2FuaXNhdGlvbnMvb3JnYW5pc2F0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvY2F0YWxvZy9zcmMvbGliL29yZ2FuaXNhdGlvbnMvb3JnYW5pc2F0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ2xFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhFQUE4RSxDQUFBO0FBRTVILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFBOzs7Ozs7Ozs7QUFRMUUsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUNVLG9CQUFtRCxFQUduRCxXQUFtQjtRQUhuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQStCO1FBR25ELGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBUHBCLGdCQUFXLEdBQUcsRUFBRSxDQUFBO1FBQ2YsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFBO1FBVXRELGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFckMsWUFBTyxHQUFpQyxJQUFJLGVB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bEMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTTs7MEJBUTVDLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsc0JBQXNCOzRDQU52QixXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBPcmdhbml6YXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgT1JHQU5JWkFUSU9OX1VSTF9UT0tFTiB9IGZyb20gJy4uL2ZlYXR1cmUtY2F0YWxvZy5tb2R1bGUnXG5pbXBvcnQgeyBPcmdhbml6YXRpb25zU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL29yZ2FuaXphdGlvbnMuc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBTb3J0QnlGaWVsZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3NlYXJjaCdcbmltcG9ydCB7IGNyZWF0ZUZ1enp5RmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW9yZ2FuaXNhdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vb3JnYW5pc2F0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29yZ2FuaXNhdGlvbnMuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgT3JnYW5pc2F0aW9uc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGl0ZW1zT25QYWdlID0gMTJcbiAgQE91dHB1dCgpIG9yZ1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8T3JnYW5pemF0aW9uPigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvcmdhbmlzYXRpb25zU2VydmljZTogT3JnYW5pemF0aW9uc1NlcnZpY2VJbnRlcmZhY2UsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KE9SR0FOSVpBVElPTl9VUkxfVE9LRU4pXG4gICAgcHJpdmF0ZSB1cmxUZW1wbGF0ZTogc3RyaW5nXG4gICkge31cblxuICB0b3RhbFBhZ2VzOiBudW1iZXJcbiAgY3VycmVudFBhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgxKVxuICBvcmdhbmlzYXRpb25SZXN1bHRzOiBudW1iZXJcbiAgc29ydEJ5JDogQmVoYXZpb3JTdWJqZWN0PFNvcnRCeUZpZWxkPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoWydhc2MnLCAnbmFtZSddKVxuICBmaWx0ZXJCeSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJylcbiAgb3JnYW5pc2F0aW9uc1RvdGFsJCA9IHRoaXMub3JnYW5pc2F0aW9uc1NlcnZpY2Uub3JnYW5pc2F0aW9uc0NvdW50JFxuICBvcmdhbmlzYXRpb25zRmlsdGVyZWRBbmRTb3J0ZWQkOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbltdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMub3JnYW5pc2F0aW9uc1NlcnZpY2Uub3JnYW5pc2F0aW9ucyQucGlwZShcbiAgICAgIHN0YXJ0V2l0aChBcnJheSh0aGlzLml0ZW1zT25QYWdlKS5maWxsKHt9KSlcbiAgICApLFxuICAgIHRoaXMuc29ydEJ5JCxcbiAgICB0aGlzLmZpbHRlckJ5JCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtvcmdhbmlzYXRpb25zLCBzb3J0QnksIGZpbHRlckJ5XSkgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyZWRPcmdhbmlzYXRpb25zID0gdGhpcy5maWx0ZXJPcmdhbmlzYXRpb25zKFxuICAgICAgICBvcmdhbmlzYXRpb25zLFxuICAgICAgICBmaWx0ZXJCeVxuICAgICAgKVxuICAgICAgcmV0dXJuIHRoaXMuc29ydE9yZ2FuaXNhdGlvbnMoZmlsdGVyZWRPcmdhbmlzYXRpb25zLCBzb3J0QnkpXG4gICAgfSlcbiAgKVxuXG4gIG9yZ2FuaXNhdGlvbnMkOiBPYnNlcnZhYmxlPE9yZ2FuaXphdGlvbltdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMub3JnYW5pc2F0aW9uc0ZpbHRlcmVkQW5kU29ydGVkJCxcbiAgICB0aGlzLmN1cnJlbnRQYWdlJCxcbiAgXSkucGlwZShcbiAgICB0YXAoKFtvcmdhbmlzYXRpb25zXSkgPT4ge1xuICAgICAgdGhpcy5vcmdhbmlzYXRpb25SZXN1bHRzID0gb3JnYW5pc2F0aW9ucy5sZW5ndGhcbiAgICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbChvcmdhbmlzYXRpb25zLmxlbmd0aCAvIHRoaXMuaXRlbXNPblBhZ2UpXG4gICAgfSksXG4gICAgbWFwKChbb3JnYW5pc2F0aW9ucywgcGFnZV0pID0+XG4gICAgICBvcmdhbmlzYXRpb25zLnNsaWNlKFxuICAgICAgICAocGFnZSAtIDEpICogdGhpcy5pdGVtc09uUGFnZSxcbiAgICAgICAgcGFnZSAqIHRoaXMuaXRlbXNPblBhZ2VcbiAgICAgIClcbiAgICApXG4gIClcblxuICBwcm90ZWN0ZWQgc2V0Q3VycmVudFBhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSQubmV4dChwYWdlKVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldEZpbHRlckJ5KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlJC5uZXh0KDEpXG4gICAgdGhpcy5maWx0ZXJCeSQubmV4dCh2YWx1ZSlcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRTb3J0QnkodmFsdWU6IFNvcnRCeUZpZWxkKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0QnkkLm5leHQodmFsdWUpXG4gIH1cblxuICBwcml2YXRlIGZpbHRlck9yZ2FuaXNhdGlvbnMob3JnYW5pc2F0aW9uczogT3JnYW5pemF0aW9uW10sIGZpbHRlckJ5OiBzdHJpbmcpIHtcbiAgICBpZiAoIWZpbHRlckJ5KSByZXR1cm4gb3JnYW5pc2F0aW9uc1xuICAgIGNvbnN0IGZpbHRlciA9IGNyZWF0ZUZ1enp5RmlsdGVyKGZpbHRlckJ5KVxuICAgIHJldHVybiBvcmdhbmlzYXRpb25zLmZpbHRlcigob3JnKSA9PiBmaWx0ZXIob3JnLm5hbWUpKVxuICB9XG5cbiAgcHJpdmF0ZSBzb3J0T3JnYW5pc2F0aW9ucyhcbiAgICBvcmdhbmlzYXRpb25zOiBPcmdhbml6YXRpb25bXSxcbiAgICBzb3J0Qnk6IFNvcnRCeUZpZWxkXG4gICk6IE9yZ2FuaXphdGlvbltdIHtcbiAgICBsZXQgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnXG4gICAgbGV0IGF0dHJpYnV0ZTogc3RyaW5nXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc29ydEJ5WzBdKSkge1xuICAgICAgb3JkZXIgPSBzb3J0QnlbMF1bMF1cbiAgICAgIGF0dHJpYnV0ZSA9IHNvcnRCeVswXVsxXVxuICAgIH0gZWxzZSB7XG4gICAgICBvcmRlciA9IHNvcnRCeVswXVxuICAgICAgYXR0cmlidXRlID0gc29ydEJ5WzFdIGFzIHN0cmluZ1xuICAgIH1cbiAgICBjb25zdCBkaXJlY3Rpb24gPSBvcmRlciA9PT0gJ2FzYycgPyAxIDogLTFcbiAgICByZXR1cm4gWy4uLm9yZ2FuaXNhdGlvbnNdLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlQSA9IGFbYXR0cmlidXRlXVxuICAgICAgY29uc3QgdmFsdWVCID0gYlthdHRyaWJ1dGVdXG4gICAgICBpZiAodHlwZW9mIHZhbHVlQSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhbHVlQiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiAqIHZhbHVlQS5sb2NhbGVDb21wYXJlKHZhbHVlQilcbiAgICAgIH1cbiAgICAgIHJldHVybiBkaXJlY3Rpb24gKiBNYXRoLnNpZ24odmFsdWVBIC0gdmFsdWVCKVxuICAgIH0pXG4gIH1cblxuICB0cmFja0J5SW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBpbmRleFxuICB9XG5cbiAgZ2V0T3JnYW5pc2F0aW9uVXJsKG9yZ2FuaXNhdGlvbjogT3JnYW5pemF0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMudXJsVGVtcGxhdGUpIHJldHVybiBudWxsXG4gICAgcmV0dXJuIHRoaXMudXJsVGVtcGxhdGUucmVwbGFjZSgnJHtuYW1lfScsIG9yZ2FuaXNhdGlvbi5uYW1lKVxuICB9XG59XG4iLCI8Z24tdWktb3JnYW5pc2F0aW9ucy1maWx0ZXJcbiAgKHNvcnRCeSk9XCJzZXRTb3J0QnkoJGV2ZW50KVwiXG4gIChmaWx0ZXJCeSk9XCJzZXRGaWx0ZXJCeSgkZXZlbnQpXCJcbj48L2duLXVpLW9yZ2FuaXNhdGlvbnMtZmlsdGVyPlxuPGRpdiBjbGFzcz1cIm10LTYgcm91bmRlZC1sZyB0ZXh0LWdyYXktODAwIHAtNCBiZy1zbGF0ZS0xMDBcIj5cbiAgPGduLXVpLW9yZ2FuaXNhdGlvbnMtcmVzdWx0XG4gICAgKm5nSWY9XCJvcmdhbmlzYXRpb25zVG90YWwkIHwgYXN5bmNcIlxuICAgIFtoaXRzXT1cIm9yZ2FuaXNhdGlvblJlc3VsdHNcIlxuICAgIFt0b3RhbF09XCJvcmdhbmlzYXRpb25zVG90YWwkIHwgYXN5bmNcIlxuICA+PC9nbi11aS1vcmdhbmlzYXRpb25zLXJlc3VsdD5cbjwvZGl2PlxuPGRpdlxuICBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgbXQtNiBnYXAteC02IGdhcC15LTggc206Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTNcIlxuPlxuICA8Z24tdWktY29udGVudC1naG9zdFxuICAgIGNsYXNzPVwiaC1bMzAwcHhdXCJcbiAgICBnaG9zdENsYXNzPVwiaC1mdWxsIG1iLTM2XCJcbiAgICAqbmdGb3I9XCJsZXQgb3JnYW5pc2F0aW9uIG9mIG9yZ2FuaXNhdGlvbnMkIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrQnlJbmRleFwiXG4gICAgW3Nob3dDb250ZW50XT1cIiEhb3JnYW5pc2F0aW9uLm5hbWVcIlxuICA+XG4gICAgPGduLXVpLW9yZ2FuaXNhdGlvbi1wcmV2aWV3XG4gICAgICBbb3JnYW5pc2F0aW9uXT1cIm9yZ2FuaXNhdGlvblwiXG4gICAgICBbb3JnYW5pc2F0aW9uVXJsXT1cImdldE9yZ2FuaXNhdGlvblVybChvcmdhbmlzYXRpb24pXCJcbiAgICAgIChjbGlja2VkT3JnYW5pc2F0aW9uKT1cIm9yZ1NlbGVjdC5lbWl0KCRldmVudClcIlxuICAgID48L2duLXVpLW9yZ2FuaXNhdGlvbi1wcmV2aWV3PlxuICA8L2duLXVpLWNvbnRlbnQtZ2hvc3Q+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJweS0yMFwiPlxuICA8Z24tdWktcGFnaW5hdGlvblxuICAgIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZSQgfCBhc3luY1wiXG4gICAgW25QYWdlc109XCJ0b3RhbFBhZ2VzXCJcbiAgICAobmV3Q3VycmVudFBhZ2VFdmVudCk9XCJzZXRDdXJyZW50UGFnZSgkZXZlbnQpXCJcbiAgPjwvZ24tdWktcGFnaW5hdGlvbj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,63 @@
1
+ import { Component, ChangeDetectorRef } from '@angular/core';
2
+ import { WmsEndpoint } from '@camptocamp/ogc-client';
3
+ import { MapFacade } from '../+state/map.facade';
4
+ import { MapContextLayerTypeEnum, } from '../map-context/map-context.model';
5
+ import { Subject } from 'rxjs';
6
+ import { debounceTime } from 'rxjs/operators';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../+state/map.facade";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@ngx-translate/core";
11
+ import * as i4 from "../../../../../ui/inputs/src/lib/button/button.component";
12
+ import * as i5 from "../../../../../ui/inputs/src/lib/text-input/text-input.component";
13
+ export class AddLayerFromWmsComponent {
14
+ constructor(mapFacade, changeDetectorRef) {
15
+ this.mapFacade = mapFacade;
16
+ this.changeDetectorRef = changeDetectorRef;
17
+ this.wmsUrl = '';
18
+ this.loading = false;
19
+ this.layers = [];
20
+ this.wmsEndpoint = null;
21
+ this.urlChange = new Subject();
22
+ this.errorMessage = null;
23
+ }
24
+ ngOnInit() {
25
+ this.urlChange.pipe(debounceTime(700)).subscribe(() => this.loadLayers());
26
+ }
27
+ async loadLayers() {
28
+ this.errorMessage = null;
29
+ try {
30
+ this.loading = true;
31
+ if (this.wmsUrl.trim() === '') {
32
+ this.layers = [];
33
+ return;
34
+ }
35
+ this.wmsEndpoint = await new WmsEndpoint(this.wmsUrl).isReady();
36
+ this.layers = this.wmsEndpoint.getLayers();
37
+ }
38
+ catch (error) {
39
+ const err = error;
40
+ this.layers = [];
41
+ this.errorMessage = 'Error loading layers: ' + err.message;
42
+ }
43
+ finally {
44
+ this.loading = false;
45
+ this.changeDetectorRef.markForCheck();
46
+ }
47
+ }
48
+ addLayer(layer) {
49
+ const layerToAdd = {
50
+ name: layer.name,
51
+ url: this.wmsUrl.toString(),
52
+ type: MapContextLayerTypeEnum.WMS,
53
+ };
54
+ this.mapFacade.addLayer({ ...layerToAdd, title: layer.title });
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWmsComponent, deps: [{ token: i1.MapFacade }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms", ngImport: i0, template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wmsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wms.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container\n *ngFor=\"let layer of layers\"\n [ngTemplateOutlet]=\"layerTreeItem\"\n [ngTemplateOutletContext]=\"{\n layer: layer\n }\"\n ></ng-container>\n</div>\n\n<ng-template #layerTreeItem let-layer=\"layer\">\n <div class=\"flex items-center justify-between layer-tree-item my-2\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer.title }}\n </p>\n <gn-ui-button\n *ngIf=\"layer.name\"\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n <div *ngIf=\"layer.children?.length > 0\" class=\"ml-4\">\n <ng-container\n *ngFor=\"let child of layer.children\"\n [ngTemplateOutlet]=\"layerTreeItem\"\n [ngTemplateOutletContext]=\"{\n layer: child\n }\"\n >\n </ng-container>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i5.TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "hint", "required"], outputs: ["valueChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AddLayerFromWmsComponent, decorators: [{
60
+ type: Component,
61
+ args: [{ selector: 'gn-ui-add-layer-from-wms', template: "<div class=\"flex items-center mb-5\">\n <gn-ui-text-input\n [(value)]=\"wmsUrl\"\n (valueChange)=\"urlChange.next($event)\"\n [hint]=\"'map.wms.urlInput.hint' | translate\"\n class=\"w-96\"\n >\n </gn-ui-text-input>\n</div>\n\n<div *ngIf=\"errorMessage\" class=\"text-red-500 mt-2\">\n {{ errorMessage }}\n</div>\n\n<div *ngIf=\"loading\">\n <p class=\"loading-message\" translate>map.loading.service</p>\n</div>\n\n<div *ngIf=\"!loading && layers.length > 0\">\n <h2 class=\"font-bold\" translate>map.layers.available</h2>\n <ng-container\n *ngFor=\"let layer of layers\"\n [ngTemplateOutlet]=\"layerTreeItem\"\n [ngTemplateOutletContext]=\"{\n layer: layer\n }\"\n ></ng-container>\n</div>\n\n<ng-template #layerTreeItem let-layer=\"layer\">\n <div class=\"flex items-center justify-between layer-tree-item my-2\">\n <p class=\"max-w-xs overflow-hidden overflow-ellipsis whitespace-nowrap\">\n {{ layer.title }}\n </p>\n <gn-ui-button\n *ngIf=\"layer.name\"\n class=\"layer-add-btn\"\n type=\"primary\"\n (buttonClick)=\"addLayer(layer)\"\n extraClass=\"text-sm !px-2 !py-1\"\n translate\n ><span translate> map.layer.add </span></gn-ui-button\n >\n </div>\n <div *ngIf=\"layer.children?.length > 0\" class=\"ml-4\">\n <ng-container\n *ngFor=\"let child of layer.children\"\n [ngTemplateOutlet]=\"layerTreeItem\"\n [ngTemplateOutletContext]=\"{\n layer: child\n }\"\n >\n </ng-container>\n </div>\n</ng-template>\n" }]
62
+ }], ctorParameters: function () { return [{ type: i1.MapFacade }, { type: i0.ChangeDetectorRef }]; } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxheWVyLWZyb20td21zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS13bXMvYWRkLWxheWVyLWZyb20td21zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9hZGQtbGF5ZXItZnJvbS13bXMvYWRkLWxheWVyLWZyb20td21zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBbUIsTUFBTSx3QkFBd0IsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDaEQsT0FBTyxFQUVMLHVCQUF1QixHQUN4QixNQUFNLGtDQUFrQyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7Ozs7O0FBTzdDLE1BQU0sT0FBTyx3QkFBd0I7SUFRbkMsWUFDVSxTQUFvQixFQUNwQixpQkFBb0M7UUFEcEMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBVDlDLFdBQU0sR0FBRyxFQUFFLENBQUE7UUFDWCxZQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ2YsV0FBTSxHQUFzQixFQUFFLENBQUE7UUFDOUIsZ0JBQVcsR0FBdUIsSUFBSSxDQUFBO1FBQ3RDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFBO1FBQ2pDLGlCQUFZLEdBQWtCLElBQUksQ0FBQTtJQUsvQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtRQUN4QixJQUFJO1lBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7WUFFbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7Z0JBQ2hCLE9BQU07YUFDUDtZQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDL0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFBO1NBQzNDO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxNQUFNLEdBQUcsR0FBRyxLQUFjLENBQUE7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7WUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyx3QkFBd0IsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFBO1NBQzNEO2dCQUFTO1lBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFBO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFzQjtRQUM3QixNQUFNLFVBQVUsR0FBeUI7WUFDdkMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUMzQixJQUFJLEVBQUUsdUJBQXVCLENBQUMsR0FBRztTQUNsQyxDQUFBO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDaEUsQ0FBQzs4R0E5Q1Usd0JBQXdCO2tHQUF4Qix3QkFBd0IsZ0VDZnJDLDRnREF1REE7OzJGRHhDYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFdtc0VuZHBvaW50LCBXbXNMYXllclN1bW1hcnkgfSBmcm9tICdAY2FtcHRvY2FtcC9vZ2MtY2xpZW50J1xuaW1wb3J0IHsgTWFwRmFjYWRlIH0gZnJvbSAnLi4vK3N0YXRlL21hcC5mYWNhZGUnXG5pbXBvcnQge1xuICBNYXBDb250ZXh0TGF5ZXJNb2RlbCxcbiAgTWFwQ29udGV4dExheWVyVHlwZUVudW0sXG59IGZyb20gJy4uL21hcC1jb250ZXh0L21hcC1jb250ZXh0Lm1vZGVsJ1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktYWRkLWxheWVyLWZyb20td21zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1sYXllci1mcm9tLXdtcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FkZC1sYXllci1mcm9tLXdtcy5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkZExheWVyRnJvbVdtc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHdtc1VybCA9ICcnXG4gIGxvYWRpbmcgPSBmYWxzZVxuICBsYXllcnM6IFdtc0xheWVyU3VtbWFyeVtdID0gW11cbiAgd21zRW5kcG9pbnQ6IFdtc0VuZHBvaW50IHwgbnVsbCA9IG51bGxcbiAgdXJsQ2hhbmdlID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1hcEZhY2FkZTogTWFwRmFjYWRlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVybENoYW5nZS5waXBlKGRlYm91bmNlVGltZSg3MDApKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5sb2FkTGF5ZXJzKCkpXG4gIH1cblxuICBhc3luYyBsb2FkTGF5ZXJzKCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbFxuICAgIHRyeSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXG5cbiAgICAgIGlmICh0aGlzLndtc1VybC50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIHRoaXMubGF5ZXJzID0gW11cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHRoaXMud21zRW5kcG9pbnQgPSBhd2FpdCBuZXcgV21zRW5kcG9pbnQodGhpcy53bXNVcmwpLmlzUmVhZHkoKVxuICAgICAgdGhpcy5sYXllcnMgPSB0aGlzLndtc0VuZHBvaW50LmdldExheWVycygpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IGVyciA9IGVycm9yIGFzIEVycm9yXG4gICAgICB0aGlzLmxheWVycyA9IFtdXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFcnJvciBsb2FkaW5nIGxheWVyczogJyArIGVyci5tZXNzYWdlXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgfVxuICB9XG5cbiAgYWRkTGF5ZXIobGF5ZXI6IFdtc0xheWVyU3VtbWFyeSkge1xuICAgIGNvbnN0IGxheWVyVG9BZGQ6IE1hcENvbnRleHRMYXllck1vZGVsID0ge1xuICAgICAgbmFtZTogbGF5ZXIubmFtZSxcbiAgICAgIHVybDogdGhpcy53bXNVcmwudG9TdHJpbmcoKSxcbiAgICAgIHR5cGU6IE1hcENvbnRleHRMYXllclR5cGVFbnVtLldNUyxcbiAgICB9XG4gICAgdGhpcy5tYXBGYWNhZGUuYWRkTGF5ZXIoeyAuLi5sYXllclRvQWRkLCB0aXRsZTogbGF5ZXIudGl0bGUgfSlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTVcIj5cbiAgPGduLXVpLXRleHQtaW5wdXRcbiAgICBbKHZhbHVlKV09XCJ3bXNVcmxcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJ1cmxDaGFuZ2UubmV4dCgkZXZlbnQpXCJcbiAgICBbaGludF09XCInbWFwLndtcy51cmxJbnB1dC5oaW50JyB8IHRyYW5zbGF0ZVwiXG4gICAgY2xhc3M9XCJ3LTk2XCJcbiAgPlxuICA8L2duLXVpLXRleHQtaW5wdXQ+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImVycm9yTWVzc2FnZVwiIGNsYXNzPVwidGV4dC1yZWQtNTAwIG10LTJcIj5cbiAge3sgZXJyb3JNZXNzYWdlIH19XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cImxvYWRpbmdcIj5cbiAgPHAgY2xhc3M9XCJsb2FkaW5nLW1lc3NhZ2VcIiB0cmFuc2xhdGU+bWFwLmxvYWRpbmcuc2VydmljZTwvcD5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgbGF5ZXJzLmxlbmd0aCA+IDBcIj5cbiAgPGgyIGNsYXNzPVwiZm9udC1ib2xkXCIgdHJhbnNsYXRlPm1hcC5sYXllcnMuYXZhaWxhYmxlPC9oMj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0Zvcj1cImxldCBsYXllciBvZiBsYXllcnNcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxheWVyVHJlZUl0ZW1cIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICBsYXllcjogbGF5ZXJcbiAgICB9XCJcbiAgPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbGF5ZXJUcmVlSXRlbSBsZXQtbGF5ZXI9XCJsYXllclwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGxheWVyLXRyZWUtaXRlbSBteS0yXCI+XG4gICAgPHAgY2xhc3M9XCJtYXgtdy14cyBvdmVyZmxvdy1oaWRkZW4gb3ZlcmZsb3ctZWxsaXBzaXMgd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgIHt7IGxheWVyLnRpdGxlIH19XG4gICAgPC9wPlxuICAgIDxnbi11aS1idXR0b25cbiAgICAgICpuZ0lmPVwibGF5ZXIubmFtZVwiXG4gICAgICBjbGFzcz1cImxheWVyLWFkZC1idG5cIlxuICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgICAgKGJ1dHRvbkNsaWNrKT1cImFkZExheWVyKGxheWVyKVwiXG4gICAgICBleHRyYUNsYXNzPVwidGV4dC1zbSAhcHgtMiAhcHktMVwiXG4gICAgICB0cmFuc2xhdGVcbiAgICAgID48c3BhbiB0cmFuc2xhdGU+IG1hcC5sYXllci5hZGQgPC9zcGFuPjwvZ24tdWktYnV0dG9uXG4gICAgPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImxheWVyLmNoaWxkcmVuPy5sZW5ndGggPiAwXCIgY2xhc3M9XCJtbC00XCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGxheWVyLmNoaWxkcmVuXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxheWVyVHJlZUl0ZW1cIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgbGF5ZXI6IGNoaWxkXG4gICAgICB9XCJcbiAgICA+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -20,6 +20,7 @@ import { MapContainerComponent } from './map-container/map-container.component';
20
20
  import { AddLayerRecordPreviewComponent } from './add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component';
21
21
  import { UiElementsModule } from '../../../../../libs/ui/elements/src';
22
22
  import { UiInputsModule } from '../../../../../libs/ui/inputs/src';
23
+ import { AddLayerFromWmsComponent } from './add-layer-from-wms/add-layer-from-wms.component';
23
24
  import * as i0 from "@angular/core";
24
25
  import * as i1 from "@ngrx/store";
25
26
  import * as i2 from "@ngrx/effects";
@@ -30,7 +31,8 @@ export class FeatureMapModule {
30
31
  LayersPanelComponent,
31
32
  AddLayerFromCatalogComponent,
32
33
  MapContainerComponent,
33
- AddLayerRecordPreviewComponent], imports: [CommonModule,
34
+ AddLayerRecordPreviewComponent,
35
+ AddLayerFromWmsComponent], imports: [CommonModule,
34
36
  UiMapModule,
35
37
  UiLayoutModule,
36
38
  MatIconModule,
@@ -70,6 +72,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
70
72
  AddLayerFromCatalogComponent,
71
73
  MapContainerComponent,
72
74
  AddLayerRecordPreviewComponent,
75
+ AddLayerFromWmsComponent,
73
76
  ],
74
77
  exports: [
75
78
  MapContextComponent,
@@ -100,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
100
103
  ],
101
104
  }]
102
105
  }] });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2ZlYXR1cmUtbWFwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQTtBQUN4RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDN0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNGQUFzRixDQUFBO0FBQ3JJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTs7OztBQXVDbEUsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBbkN6QixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQiw0QkFBNEI7WUFDNUIscUJBQXFCO1lBQ3JCLDhCQUE4QixhQVU5QixZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7WUFDZCxhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixtQkFBbUIsa0RBR25CLGdCQUFnQjtZQUNoQixjQUFjLGFBakJkLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLDRCQUE0QjtZQUM1QixxQkFBcUI7K0dBdUJaLGdCQUFnQixhQVJoQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxtQkFBbUI7Z0JBQzVCLFFBQVEsRUFBRSxpQkFBaUI7YUFDNUI7WUFDRCxTQUFTO1NBQ1YsWUFsQkMsWUFBWTtZQUNaLFdBQVc7WUFDWCxjQUFjO1lBQ2QsYUFBYTtZQUNiLGFBQWE7WUFDYixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ25FLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0QyxnQkFBZ0I7WUFDaEIsY0FBYzs7MkZBVUwsZ0JBQWdCO2tCQXJDNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsNEJBQTRCO3dCQUM1QixxQkFBcUI7d0JBQ3JCLDhCQUE4QjtxQkFDL0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQzt3QkFDbkUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUN0QyxnQkFBZ0I7d0JBQ2hCLGNBQWM7cUJBQ2Y7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFFBQVEsRUFBRSxpQkFBaUI7eUJBQzVCO3dCQUNELFNBQVM7cUJBQ1Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBVaU1hcE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYydcbmltcG9ydCB7IGRlZmF1bHRNYXBPcHRpb25zLCBGRUFUVVJFX01BUF9PUFRJT05TIH0gZnJvbSAnLi9jb25zdGFudCdcbmltcG9ydCB7IE1hcEluc3RhbmNlRGlyZWN0aXZlIH0gZnJvbSAnLi9tYW5hZ2VyL21hcC1pbnN0YW5jZS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBNYXBDb250ZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9tYXAtY29udGV4dC9jb21wb25lbnQvbWFwLWNvbnRleHQuY29tcG9uZW50J1xuaW1wb3J0IHsgTGF5ZXJzUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL2xheWVycy1wYW5lbC9sYXllcnMtcGFuZWwuY29tcG9uZW50J1xuaW1wb3J0IHsgVWlMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEFkZExheWVyRnJvbUNhdGFsb2dDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLWNhdGFsb2cvYWRkLWxheWVyLWZyb20tY2F0YWxvZy5jb21wb25lbnQnXG5pbXBvcnQgeyBGZWF0dXJlU2VhcmNoTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3NlYXJjaC9zcmMnXG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnXG5pbXBvcnQgKiBhcyBmcm9tTWFwIGZyb20gJy4vK3N0YXRlL21hcC5yZWR1Y2VyJ1xuaW1wb3J0IHsgTWFwRWZmZWN0cyB9IGZyb20gJy4vK3N0YXRlL21hcC5lZmZlY3RzJ1xuaW1wb3J0IHsgTWFwRmFjYWRlIH0gZnJvbSAnLi8rc3RhdGUvbWFwLmZhY2FkZSdcbmltcG9ydCB7IE1hcENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbWFwLWNvbnRhaW5lci9tYXAtY29udGFpbmVyLmNvbXBvbmVudCdcbmltcG9ydCB7IEFkZExheWVyUmVjb3JkUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWxheWVyLWZyb20tY2F0YWxvZy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcvYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3LmNvbXBvbmVudCdcbmltcG9ydCB7IFVpRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYydcbmltcG9ydCB7IFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNYXBDb250ZXh0Q29tcG9uZW50LFxuICAgIE1hcEluc3RhbmNlRGlyZWN0aXZlLFxuICAgIExheWVyc1BhbmVsQ29tcG9uZW50LFxuICAgIEFkZExheWVyRnJvbUNhdGFsb2dDb21wb25lbnQsXG4gICAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEFkZExheWVyUmVjb3JkUHJldmlld0NvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE1hcENvbnRleHRDb21wb25lbnQsXG4gICAgTWFwSW5zdGFuY2VEaXJlY3RpdmUsXG4gICAgTGF5ZXJzUGFuZWxDb21wb25lbnQsXG4gICAgQWRkTGF5ZXJGcm9tQ2F0YWxvZ0NvbXBvbmVudCxcbiAgICBNYXBDb250YWluZXJDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVWlNYXBNb2R1bGUsXG4gICAgVWlMYXlvdXRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBGZWF0dXJlU2VhcmNoTW9kdWxlLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoZnJvbU1hcC5NQVBfRkVBVFVSRV9LRVksIGZyb21NYXAubWFwUmVkdWNlciksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtNYXBFZmZlY3RzXSksXG4gICAgVWlFbGVtZW50c01vZHVsZSxcbiAgICBVaUlucHV0c01vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRkVBVFVSRV9NQVBfT1BUSU9OUyxcbiAgICAgIHVzZVZhbHVlOiBkZWZhdWx0TWFwT3B0aW9ucyxcbiAgICB9LFxuICAgIE1hcEZhY2FkZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZU1hcE1vZHVsZSB7fVxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL21hcC9zcmMvbGliL2ZlYXR1cmUtbWFwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQTtBQUN4RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDN0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNGQUFzRixDQUFBO0FBQ3JJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQTs7OztBQXdDNUYsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBcEN6QixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQiw0QkFBNEI7WUFDNUIscUJBQXFCO1lBQ3JCLDhCQUE4QjtZQUM5Qix3QkFBd0IsYUFVeEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxjQUFjO1lBQ2QsYUFBYTtZQUNiLGFBQWE7WUFDYixlQUFlO1lBQ2YsbUJBQW1CLGtEQUduQixnQkFBZ0I7WUFDaEIsY0FBYyxhQWpCZCxtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLG9CQUFvQjtZQUNwQiw0QkFBNEI7WUFDNUIscUJBQXFCOytHQXVCWixnQkFBZ0IsYUFSaEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixRQUFRLEVBQUUsaUJBQWlCO2FBQzVCO1lBQ0QsU0FBUztTQUNWLFlBbEJDLFlBQVk7WUFDWixXQUFXO1lBQ1gsY0FBYztZQUNkLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNuRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEMsZ0JBQWdCO1lBQ2hCLGNBQWM7OzJGQVVMLGdCQUFnQjtrQkF0QzVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQiw4QkFBOEI7d0JBQzlCLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQzt3QkFDbkUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUN0QyxnQkFBZ0I7d0JBQ2hCLGNBQWM7cUJBQ2Y7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFFBQVEsRUFBRSxpQkFBaUI7eUJBQzVCO3dCQUNELFNBQVM7cUJBQ1Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBVaU1hcE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbWFwL3NyYydcbmltcG9ydCB7IGRlZmF1bHRNYXBPcHRpb25zLCBGRUFUVVJFX01BUF9PUFRJT05TIH0gZnJvbSAnLi9jb25zdGFudCdcbmltcG9ydCB7IE1hcEluc3RhbmNlRGlyZWN0aXZlIH0gZnJvbSAnLi9tYW5hZ2VyL21hcC1pbnN0YW5jZS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBNYXBDb250ZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9tYXAtY29udGV4dC9jb21wb25lbnQvbWFwLWNvbnRleHQuY29tcG9uZW50J1xuaW1wb3J0IHsgTGF5ZXJzUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL2xheWVycy1wYW5lbC9sYXllcnMtcGFuZWwuY29tcG9uZW50J1xuaW1wb3J0IHsgVWlMYXlvdXRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2xheW91dC9zcmMnXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEFkZExheWVyRnJvbUNhdGFsb2dDb21wb25lbnQgfSBmcm9tICcuL2FkZC1sYXllci1mcm9tLWNhdGFsb2cvYWRkLWxheWVyLWZyb20tY2F0YWxvZy5jb21wb25lbnQnXG5pbXBvcnQgeyBGZWF0dXJlU2VhcmNoTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3NlYXJjaC9zcmMnXG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnXG5pbXBvcnQgKiBhcyBmcm9tTWFwIGZyb20gJy4vK3N0YXRlL21hcC5yZWR1Y2VyJ1xuaW1wb3J0IHsgTWFwRWZmZWN0cyB9IGZyb20gJy4vK3N0YXRlL21hcC5lZmZlY3RzJ1xuaW1wb3J0IHsgTWFwRmFjYWRlIH0gZnJvbSAnLi8rc3RhdGUvbWFwLmZhY2FkZSdcbmltcG9ydCB7IE1hcENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbWFwLWNvbnRhaW5lci9tYXAtY29udGFpbmVyLmNvbXBvbmVudCdcbmltcG9ydCB7IEFkZExheWVyUmVjb3JkUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWxheWVyLWZyb20tY2F0YWxvZy9hZGQtbGF5ZXItcmVjb3JkLXByZXZpZXcvYWRkLWxheWVyLXJlY29yZC1wcmV2aWV3LmNvbXBvbmVudCdcbmltcG9ydCB7IFVpRWxlbWVudHNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYydcbmltcG9ydCB7IFVpSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgQWRkTGF5ZXJGcm9tV21zQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtbGF5ZXItZnJvbS13bXMvYWRkLWxheWVyLWZyb20td21zLmNvbXBvbmVudCdcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTWFwQ29udGV4dENvbXBvbmVudCxcbiAgICBNYXBJbnN0YW5jZURpcmVjdGl2ZSxcbiAgICBMYXllcnNQYW5lbENvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21DYXRhbG9nQ29tcG9uZW50LFxuICAgIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBBZGRMYXllclJlY29yZFByZXZpZXdDb21wb25lbnQsXG4gICAgQWRkTGF5ZXJGcm9tV21zQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTWFwQ29udGV4dENvbXBvbmVudCxcbiAgICBNYXBJbnN0YW5jZURpcmVjdGl2ZSxcbiAgICBMYXllcnNQYW5lbENvbXBvbmVudCxcbiAgICBBZGRMYXllckZyb21DYXRhbG9nQ29tcG9uZW50LFxuICAgIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBVaU1hcE1vZHVsZSxcbiAgICBVaUxheW91dE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEZlYXR1cmVTZWFyY2hNb2R1bGUsXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShmcm9tTWFwLk1BUF9GRUFUVVJFX0tFWSwgZnJvbU1hcC5tYXBSZWR1Y2VyKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW01hcEVmZmVjdHNdKSxcbiAgICBVaUVsZW1lbnRzTW9kdWxlLFxuICAgIFVpSW5wdXRzTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBGRUFUVVJFX01BUF9PUFRJT05TLFxuICAgICAgdXNlVmFsdWU6IGRlZmF1bHRNYXBPcHRpb25zLFxuICAgIH0sXG4gICAgTWFwRmFjYWRlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTWFwTW9kdWxlIHt9XG4iXX0=
@@ -8,6 +8,7 @@ import * as i4 from "@angular/material/icon";
8
8
  import * as i5 from "@angular/material/tabs";
9
9
  import * as i6 from "@ngx-translate/core";
10
10
  import * as i7 from "../add-layer-from-catalog/add-layer-from-catalog.component";
11
+ import * as i8 from "../add-layer-from-wms/add-layer-from-wms.component";
11
12
  export class LayersPanelComponent {
12
13
  constructor(mapFacade) {
13
14
  this.mapFacade = mapFacade;
@@ -17,10 +18,10 @@ export class LayersPanelComponent {
17
18
  this.mapFacade.removeLayer(index);
18
19
  }
19
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LayersPanelComponent, deps: [{ token: i1.MapFacade }], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: LayersPanelComponent, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from WMS</div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from WFS</div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from file</div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.AddLayerFromCatalogComponent, selector: "gn-ui-add-layer-from-catalog" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: LayersPanelComponent, selector: "gn-ui-layers-panel", ngImport: i0, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from WFS</div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from file</div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.ExpandablePanelButtonComponent, selector: "gn-ui-expandable-panel-button", inputs: ["titleTemplate", "collapsed"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.AddLayerFromCatalogComponent, selector: "gn-ui-add-layer-from-catalog" }, { kind: "component", type: i8.AddLayerFromWmsComponent, selector: "gn-ui-add-layer-from-wms" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
22
  }
22
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: LayersPanelComponent, decorators: [{
23
24
  type: Component,
24
- args: [{ selector: 'gn-ui-layers-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from WMS</div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from WFS</div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from file</div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n" }]
25
+ args: [{ selector: 'gn-ui-layers-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"bg-white rounded shadow shadow-lg relative h-full w-[400px] overflow-hidden\"\n>\n <div class=\"p-3 border-b border-gray-300 flex items-center\">\n <mat-icon class=\"material-symbols-outlined mr-2\">layers</mat-icon>\n <span translate>map.layers.list</span>\n </div>\n <div class=\"flex flex-col px-4 divide-y divide-y-gray-50\">\n <div\n *ngFor=\"let layer of layers$ | async; let index = index\"\n class=\"flex flex-row py-3\"\n >\n <mat-icon class=\"material-symbols-outlined -ml-2 mr-2 shrink-0\"\n >chevron_right</mat-icon\n >\n <span class=\"mr-2 grow\">{{ layer.title }}</span>\n <a\n href\n class=\"underline text-sm text-red-700 hover:text-red-900\"\n (click)=\"deleteLayer(index)\"\n >\n delete\n </a>\n </div>\n </div>\n <gn-ui-expandable-panel-button [titleTemplate]=\"addLayerTitle\">\n <mat-tab-group animationDuration=\"200ms\" class=\"h-full\">\n <mat-tab [label]=\"'map.add.layer.catalog' | translate\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-catalog></gn-ui-add-layer-from-catalog>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wms' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3\">\n <gn-ui-add-layer-from-wms></gn-ui-add-layer-from-wms>\n </div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.wfs' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from WFS</div>\n </mat-tab>\n <mat-tab [label]=\"'map.add.layer.file' | translate\" bodyClass=\"h-full\">\n <div class=\"p-3 h-full\">Add from file</div>\n </mat-tab>\n </mat-tab-group>\n </gn-ui-expandable-panel-button>\n</div>\n\n<ng-template #addLayerTitle>\n <mat-icon class=\"material-symbols-outlined mr-4\">add_circle</mat-icon>\n <span translate>map.add.layer</span>\n</ng-template>\n" }]
25
26
  }], ctorParameters: function () { return [{ type: i1.MapFacade }]; } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBOzs7Ozs7Ozs7QUFRaEQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFvQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRHhDLFlBQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQTtJQUNXLENBQUM7SUFFNUMsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbkMsQ0FBQzs4R0FOVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiwwRENUakMsaTFEQWlEQTs7MkZEeENhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWFwRmFjYWRlIH0gZnJvbSAnLi4vK3N0YXRlL21hcC5mYWNhZGUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLWxheWVycy1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXllcnMtcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sYXllcnMtcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExheWVyc1BhbmVsQ29tcG9uZW50IHtcbiAgbGF5ZXJzJCA9IHRoaXMubWFwRmFjYWRlLmxheWVycyRcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXBGYWNhZGU6IE1hcEZhY2FkZSkge31cblxuICBkZWxldGVMYXllcihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5tYXBGYWNhZGUucmVtb3ZlTGF5ZXIoaW5kZXgpXG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJiZy13aGl0ZSByb3VuZGVkIHNoYWRvdyBzaGFkb3ctbGcgcmVsYXRpdmUgaC1mdWxsIHctWzQwMHB4XSBvdmVyZmxvdy1oaWRkZW5cIlxuPlxuICA8ZGl2IGNsYXNzPVwicC0zIGJvcmRlci1iIGJvcmRlci1ncmF5LTMwMCBmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgbXItMlwiPmxheWVyczwvbWF0LWljb24+XG4gICAgPHNwYW4gdHJhbnNsYXRlPm1hcC5sYXllcnMubGlzdDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHB4LTQgZGl2aWRlLXkgZGl2aWRlLXktZ3JheS01MFwiPlxuICAgIDxkaXZcbiAgICAgICpuZ0Zvcj1cImxldCBsYXllciBvZiBsYXllcnMkIHwgYXN5bmM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBweS0zXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIC1tbC0yIG1yLTIgc2hyaW5rLTBcIlxuICAgICAgICA+Y2hldnJvbl9yaWdodDwvbWF0LWljb25cbiAgICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwibXItMiBncm93XCI+e3sgbGF5ZXIudGl0bGUgfX08L3NwYW4+XG4gICAgICA8YVxuICAgICAgICBocmVmXG4gICAgICAgIGNsYXNzPVwidW5kZXJsaW5lIHRleHQtc20gdGV4dC1yZWQtNzAwIGhvdmVyOnRleHQtcmVkLTkwMFwiXG4gICAgICAgIChjbGljayk9XCJkZWxldGVMYXllcihpbmRleClcIlxuICAgICAgPlxuICAgICAgICBkZWxldGVcbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxnbi11aS1leHBhbmRhYmxlLXBhbmVsLWJ1dHRvbiBbdGl0bGVUZW1wbGF0ZV09XCJhZGRMYXllclRpdGxlXCI+XG4gICAgPG1hdC10YWItZ3JvdXAgYW5pbWF0aW9uRHVyYXRpb249XCIyMDBtc1wiIGNsYXNzPVwiaC1mdWxsXCI+XG4gICAgICA8bWF0LXRhYiBbbGFiZWxdPVwiJ21hcC5hZGQubGF5ZXIuY2F0YWxvZycgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtM1wiPlxuICAgICAgICAgIDxnbi11aS1hZGQtbGF5ZXItZnJvbS1jYXRhbG9nPjwvZ24tdWktYWRkLWxheWVyLWZyb20tY2F0YWxvZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC10YWI+XG4gICAgICA8bWF0LXRhYiBbbGFiZWxdPVwiJ21hcC5hZGQubGF5ZXIud21zJyB8IHRyYW5zbGF0ZVwiIGJvZHlDbGFzcz1cImgtZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zIGgtZnVsbFwiPkFkZCBmcm9tIFdNUzwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgICAgPG1hdC10YWIgW2xhYmVsXT1cIidtYXAuYWRkLmxheWVyLndmcycgfCB0cmFuc2xhdGVcIiBib2R5Q2xhc3M9XCJoLWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtMyBoLWZ1bGxcIj5BZGQgZnJvbSBXRlM8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCInbWFwLmFkZC5sYXllci5maWxlJyB8IHRyYW5zbGF0ZVwiIGJvZHlDbGFzcz1cImgtZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zIGgtZnVsbFwiPkFkZCBmcm9tIGZpbGU8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICA8L21hdC10YWItZ3JvdXA+XG4gIDwvZ24tdWktZXhwYW5kYWJsZS1wYW5lbC1idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNhZGRMYXllclRpdGxlPlxuICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIG1yLTRcIj5hZGRfY2lyY2xlPC9tYXQtaWNvbj5cbiAgPHNwYW4gdHJhbnNsYXRlPm1hcC5hZGQubGF5ZXI8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjL2xpYi9sYXllcnMtcGFuZWwvbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFBOzs7Ozs7Ozs7O0FBUWhELE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUR4QyxZQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUE7SUFDVyxDQUFDO0lBRTVDLFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ25DLENBQUM7OEdBTlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsMERDVGpDLHk0REFtREE7OzJGRDFDYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hcEZhY2FkZSB9IGZyb20gJy4uLytzdGF0ZS9tYXAuZmFjYWRlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1sYXllcnMtcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGF5ZXJzLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMYXllcnNQYW5lbENvbXBvbmVudCB7XG4gIGxheWVycyQgPSB0aGlzLm1hcEZhY2FkZS5sYXllcnMkXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWFwRmFjYWRlOiBNYXBGYWNhZGUpIHt9XG5cbiAgZGVsZXRlTGF5ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMubWFwRmFjYWRlLnJlbW92ZUxheWVyKGluZGV4KVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiYmctd2hpdGUgcm91bmRlZCBzaGFkb3cgc2hhZG93LWxnIHJlbGF0aXZlIGgtZnVsbCB3LVs0MDBweF0gb3ZlcmZsb3ctaGlkZGVuXCJcbj5cbiAgPGRpdiBjbGFzcz1cInAtMyBib3JkZXItYiBib3JkZXItZ3JheS0zMDAgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIG1yLTJcIj5sYXllcnM8L21hdC1pY29uPlxuICAgIDxzcGFuIHRyYW5zbGF0ZT5tYXAubGF5ZXJzLmxpc3Q8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweC00IGRpdmlkZS15IGRpdmlkZS15LWdyYXktNTBcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdGb3I9XCJsZXQgbGF5ZXIgb2YgbGF5ZXJzJCB8IGFzeW5jOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgcHktM1wiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAtbWwtMiBtci0yIHNocmluay0wXCJcbiAgICAgICAgPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uXG4gICAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1yLTIgZ3Jvd1wiPnt7IGxheWVyLnRpdGxlIH19PC9zcGFuPlxuICAgICAgPGFcbiAgICAgICAgaHJlZlxuICAgICAgICBjbGFzcz1cInVuZGVybGluZSB0ZXh0LXNtIHRleHQtcmVkLTcwMCBob3Zlcjp0ZXh0LXJlZC05MDBcIlxuICAgICAgICAoY2xpY2spPVwiZGVsZXRlTGF5ZXIoaW5kZXgpXCJcbiAgICAgID5cbiAgICAgICAgZGVsZXRlXG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8Z24tdWktZXhwYW5kYWJsZS1wYW5lbC1idXR0b24gW3RpdGxlVGVtcGxhdGVdPVwiYWRkTGF5ZXJUaXRsZVwiPlxuICAgIDxtYXQtdGFiLWdyb3VwIGFuaW1hdGlvbkR1cmF0aW9uPVwiMjAwbXNcIiBjbGFzcz1cImgtZnVsbFwiPlxuICAgICAgPG1hdC10YWIgW2xhYmVsXT1cIidtYXAuYWRkLmxheWVyLmNhdGFsb2cnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgICAgICAgICA8Z24tdWktYWRkLWxheWVyLWZyb20tY2F0YWxvZz48L2duLXVpLWFkZC1sYXllci1mcm9tLWNhdGFsb2c+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgICAgPG1hdC10YWIgW2xhYmVsXT1cIidtYXAuYWRkLmxheWVyLndtcycgfCB0cmFuc2xhdGVcIiBib2R5Q2xhc3M9XCJoLWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtM1wiPlxuICAgICAgICAgIDxnbi11aS1hZGQtbGF5ZXItZnJvbS13bXM+PC9nbi11aS1hZGQtbGF5ZXItZnJvbS13bXM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdGFiPlxuICAgICAgPG1hdC10YWIgW2xhYmVsXT1cIidtYXAuYWRkLmxheWVyLndmcycgfCB0cmFuc2xhdGVcIiBib2R5Q2xhc3M9XCJoLWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtMyBoLWZ1bGxcIj5BZGQgZnJvbSBXRlM8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCInbWFwLmFkZC5sYXllci5maWxlJyB8IHRyYW5zbGF0ZVwiIGJvZHlDbGFzcz1cImgtZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0zIGgtZnVsbFwiPkFkZCBmcm9tIGZpbGU8L2Rpdj5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICA8L21hdC10YWItZ3JvdXA+XG4gIDwvZ24tdWktZXhwYW5kYWJsZS1wYW5lbC1idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNhZGRMYXllclRpdGxlPlxuICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIG1yLTRcIj5hZGRfY2lyY2xlPC9tYXQtaWNvbj5cbiAgPHNwYW4gdHJhbnNsYXRlPm1hcC5hZGQubGF5ZXI8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -3,6 +3,7 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  import * as i2 from "@angular/material/icon";
5
5
  import * as i3 from "@ngx-translate/core";
6
+ import * as i4 from "../thumbnail/thumbnail.component";
6
7
  export class MetadataContactComponent {
7
8
  constructor() {
8
9
  this.organizationClick = new EventEmitter();
@@ -16,15 +17,21 @@ export class MetadataContactComponent {
16
17
  ? this.metadata.contactsForResource
17
18
  : this.metadata.contacts) || []);
18
19
  }
20
+ get address() {
21
+ const addressParts = this.contacts[0].address
22
+ .split(',')
23
+ .map((part) => part.trim());
24
+ return addressParts;
25
+ }
19
26
  onOrganizationClick() {
20
27
  this.organizationClick.emit(this.shownOrganization);
21
28
  }
22
29
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataContactComponent, selector: "gn-ui-metadata-contact", inputs: { metadata: "metadata" }, outputs: { organizationClick: "organizationClick", contactClick: "contactClick" }, ngImport: i0, template: "<div *ngIf=\"shownOrganization\" class=\"mb-6 sm:mb-12\">\n <p class=\"text-gray-700 text-xs mb-3 uppercase\" translate>\n record.metadata.contact\n </p>\n <div class=\"flex mb-1\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n >\n {{ shownOrganization.name }}\n </div>\n </div>\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-gray-700 text-sm hover:underline\"\n target=\"_blank\"\n >{{ contacts[0].email }}</a\n >\n <div *ngIf=\"shownOrganization.website\" class=\"mb-2\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MetadataContactComponent, selector: "gn-ui-metadata-contact", inputs: { metadata: "metadata" }, outputs: { organizationClick: "organizationClick", contactClick: "contactClick" }, ngImport: i0, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6 sm:mb-12\">\n <div class=\"grid gap-3\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n </div>\n <div class=\"grid gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >call_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >person_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n location_on</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.ThumbnailComponent, selector: "gn-ui-thumbnail", inputs: ["thumbnailUrl", "fit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
31
  }
25
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MetadataContactComponent, decorators: [{
26
33
  type: Component,
27
- args: [{ selector: 'gn-ui-metadata-contact', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"shownOrganization\" class=\"mb-6 sm:mb-12\">\n <p class=\"text-gray-700 text-xs mb-3 uppercase\" translate>\n record.metadata.contact\n </p>\n <div class=\"flex mb-1\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n >\n {{ shownOrganization.name }}\n </div>\n </div>\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-gray-700 text-sm hover:underline\"\n target=\"_blank\"\n >{{ contacts[0].email }}</a\n >\n <div *ngIf=\"shownOrganization.website\" class=\"mb-2\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n</div>\n" }]
34
+ args: [{ selector: 'gn-ui-metadata-contact', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"py-5 px-5 rounded bg-gray-100 text-black mb-6 sm:mb-12\">\n <div class=\"grid gap-3\">\n <div>\n <p class=\"text-sm font-medium\" translate>record.metadata.contact</p>\n </div>\n <div\n *ngIf=\"shownOrganization?.logoUrl?.href\"\n class=\"flex items-center justify-center border-solid border border-gray-300 rounded-md bg-white h-32 overflow-hidden\"\n >\n <gn-ui-thumbnail\n class=\"relative h-full w-full\"\n [thumbnailUrl]=\"shownOrganization.logoUrl.href\"\n fit=\"contain\"\n ></gn-ui-thumbnail>\n </div>\n <div class=\"grid gap-1\">\n <div class=\"flex\">\n <div\n class=\"text-primary font-title text-21 mr-2 cursor-pointer hover:underline\"\n (click)=\"onOrganizationClick()\"\n data-cy=\"organization-name\"\n >\n {{ shownOrganization.name }}\n </div>\n </div>\n <div *ngIf=\"shownOrganization?.website\">\n <a\n [href]=\"shownOrganization.website\"\n target=\"_blank\"\n class=\"contact-website text-primary text-sm cursor-pointer hover:underline transition-all\"\n >{{ shownOrganization.website }}\n <mat-icon\n class=\"material-symbols-outlined !w-[12px] !h-[12px] !text-[12px] opacity-75 shrink-0\"\n >open_in_new</mat-icon\n >\n </a>\n </div>\n </div>\n <div class=\"grid gap-5 py-3 overflow-hidden\">\n <div *ngIf=\"contacts[0]?.phone\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >call_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">{{ contacts[0].phone }}</p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.email\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n mail_outline</mat-icon\n >\n <a\n *ngIf=\"contacts.length\"\n [href]=\"'mailto:' + contacts[0].email\"\n class=\"text-sm hover:underline ml-2\"\n target=\"_blank\"\n data-cy=\"contact-email\"\n >{{ contacts[0].email }}</a\n >\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.firstName || contacts[0]?.lastName\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >person_outline</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p class=\"text-sm\">\n {{ contacts[0]?.firstName || '' }}\n {{ contacts[0]?.lastName || '' }}\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"contacts[0]?.address\">\n <div class=\"flex\">\n <mat-icon\n class=\"material-symbols-outlined !w-5 !h-5 !text-[20px] opacity-75 shrink-0\"\n >\n location_on</mat-icon\n >\n <div class=\"flex flex-col ml-2\">\n <p *ngFor=\"let addressPart of address\" class=\"text-sm\">\n {{ addressPart }}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
28
35
  }], propDecorators: { metadata: [{
29
36
  type: Input
30
37
  }], organizationClick: [{
@@ -32,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
32
39
  }], contactClick: [{
33
40
  type: Output
34
41
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtY29udGFjdC9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1jb250YWN0L21ldGFkYXRhLWNvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7Ozs7O0FBYXRCLE1BQU0sT0FBTyx3QkFBd0I7SUFOckM7UUFRWSxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQTtRQUNwRCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUE7S0FpQnhEO0lBZkMsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFBO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTO1lBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQjtZQUNuQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQ2xDLENBQUE7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDckQsQ0FBQzs4R0FuQlUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsbUxDbkJyQyxpaENBZ0NBOzsyRkRiYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ2F0YWxvZ1JlY29yZCxcbiAgSW5kaXZpZHVhbCxcbiAgT3JnYW5pemF0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW1ldGFkYXRhLWNvbnRhY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21ldGFkYXRhLWNvbnRhY3QuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTWV0YWRhdGFDb250YWN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbWV0YWRhdGE6IFBhcnRpYWw8Q2F0YWxvZ1JlY29yZD5cbiAgQE91dHB1dCgpIG9yZ2FuaXphdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxPcmdhbml6YXRpb24+KClcbiAgQE91dHB1dCgpIGNvbnRhY3RDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8SW5kaXZpZHVhbD4oKVxuXG4gIGdldCBzaG93bk9yZ2FuaXphdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhZGF0YS5vd25lck9yZ2FuaXphdGlvblxuICB9XG5cbiAgZ2V0IGNvbnRhY3RzKCkge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5tZXRhZGF0YS5raW5kID09PSAnZGF0YXNldCdcbiAgICAgICAgPyB0aGlzLm1ldGFkYXRhLmNvbnRhY3RzRm9yUmVzb3VyY2VcbiAgICAgICAgOiB0aGlzLm1ldGFkYXRhLmNvbnRhY3RzKSB8fCBbXVxuICAgIClcbiAgfVxuXG4gIG9uT3JnYW5pemF0aW9uQ2xpY2soKSB7XG4gICAgdGhpcy5vcmdhbml6YXRpb25DbGljay5lbWl0KHRoaXMuc2hvd25Pcmdhbml6YXRpb24pXG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJzaG93bk9yZ2FuaXphdGlvblwiIGNsYXNzPVwibWItNiBzbTptYi0xMlwiPlxuICA8cCBjbGFzcz1cInRleHQtZ3JheS03MDAgdGV4dC14cyBtYi0zIHVwcGVyY2FzZVwiIHRyYW5zbGF0ZT5cbiAgICByZWNvcmQubWV0YWRhdGEuY29udGFjdFxuICA8L3A+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IG1iLTFcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LXRpdGxlIHRleHQtMjEgbXItMiBjdXJzb3ItcG9pbnRlciBob3Zlcjp1bmRlcmxpbmVcIlxuICAgICAgKGNsaWNrKT1cIm9uT3JnYW5pemF0aW9uQ2xpY2soKVwiXG4gICAgPlxuICAgICAge3sgc2hvd25Pcmdhbml6YXRpb24ubmFtZSB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGFcbiAgICAqbmdJZj1cImNvbnRhY3RzLmxlbmd0aFwiXG4gICAgW2hyZWZdPVwiJ21haWx0bzonICsgY29udGFjdHNbMF0uZW1haWxcIlxuICAgIGNsYXNzPVwidGV4dC1ncmF5LTcwMCB0ZXh0LXNtIGhvdmVyOnVuZGVybGluZVwiXG4gICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICA+e3sgY29udGFjdHNbMF0uZW1haWwgfX08L2FcbiAgPlxuICA8ZGl2ICpuZ0lmPVwic2hvd25Pcmdhbml6YXRpb24ud2Vic2l0ZVwiIGNsYXNzPVwibWItMlwiPlxuICAgIDxhXG4gICAgICBbaHJlZl09XCJzaG93bk9yZ2FuaXphdGlvbi53ZWJzaXRlXCJcbiAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICBjbGFzcz1cImNvbnRhY3Qtd2Vic2l0ZSB0ZXh0LXByaW1hcnkgdGV4dC1zbSBjdXJzb3ItcG9pbnRlciBob3Zlcjp1bmRlcmxpbmUgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgPnt7IHNob3duT3JnYW5pemF0aW9uLndlYnNpdGUgfX1cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgIXctWzEycHhdICFoLVsxMnB4XSAhdGV4dC1bMTJweF0gb3BhY2l0eS03NVwiXG4gICAgICAgID5vcGVuX2luX25ldzwvbWF0LWljb25cbiAgICAgID5cbiAgICA8L2E+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYy9saWIvbWV0YWRhdGEtY29udGFjdC9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9tZXRhZGF0YS1jb250YWN0L21ldGFkYXRhLWNvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7Ozs7OztBQWF0QixNQUFNLE9BQU8sd0JBQXdCO0lBTnJDO1FBUVksc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUE7UUFDcEQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFBO0tBd0J4RDtJQXRCQyxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUE7SUFDeEMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CO1lBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FDbEMsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87YUFDMUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7UUFDN0IsT0FBTyxZQUFZLENBQUE7SUFDckIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3JELENBQUM7OEdBMUJVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLG1MQ25CckMscTJHQWtHQTs7MkZEL0VhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBJbmRpdmlkdWFsLFxuICBPcmdhbml6YXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWV0YWRhdGEtY29udGFjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRhZGF0YS1jb250YWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWV0YWRhdGEtY29udGFjdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YUNvbnRhY3RDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXRhZGF0YTogUGFydGlhbDxDYXRhbG9nUmVjb3JkPlxuICBAT3V0cHV0KCkgb3JnYW5pemF0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE9yZ2FuaXphdGlvbj4oKVxuICBAT3V0cHV0KCkgY29udGFjdENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsPigpXG5cbiAgZ2V0IHNob3duT3JnYW5pemF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGFkYXRhLm93bmVyT3JnYW5pemF0aW9uXG4gIH1cblxuICBnZXQgY29udGFjdHMoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLm1ldGFkYXRhLmtpbmQgPT09ICdkYXRhc2V0J1xuICAgICAgICA/IHRoaXMubWV0YWRhdGEuY29udGFjdHNGb3JSZXNvdXJjZVxuICAgICAgICA6IHRoaXMubWV0YWRhdGEuY29udGFjdHMpIHx8IFtdXG4gICAgKVxuICB9XG5cbiAgZ2V0IGFkZHJlc3MoKSB7XG4gICAgY29uc3QgYWRkcmVzc1BhcnRzID0gdGhpcy5jb250YWN0c1swXS5hZGRyZXNzXG4gICAgICAuc3BsaXQoJywnKVxuICAgICAgLm1hcCgocGFydCkgPT4gcGFydC50cmltKCkpXG4gICAgcmV0dXJuIGFkZHJlc3NQYXJ0c1xuICB9XG5cbiAgb25Pcmdhbml6YXRpb25DbGljaygpIHtcbiAgICB0aGlzLm9yZ2FuaXphdGlvbkNsaWNrLmVtaXQodGhpcy5zaG93bk9yZ2FuaXphdGlvbilcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInB5LTUgcHgtNSByb3VuZGVkIGJnLWdyYXktMTAwIHRleHQtYmxhY2sgbWItNiBzbTptYi0xMlwiPlxuICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAtM1wiPlxuICAgIDxkaXY+XG4gICAgICA8cCBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIiB0cmFuc2xhdGU+cmVjb3JkLm1ldGFkYXRhLmNvbnRhY3Q8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzaG93bk9yZ2FuaXphdGlvbj8ubG9nb1VybD8uaHJlZlwiXG4gICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlci1zb2xpZCBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbWQgYmctd2hpdGUgaC0zMiBvdmVyZmxvdy1oaWRkZW5cIlxuICAgID5cbiAgICAgIDxnbi11aS10aHVtYm5haWxcbiAgICAgICAgY2xhc3M9XCJyZWxhdGl2ZSBoLWZ1bGwgdy1mdWxsXCJcbiAgICAgICAgW3RodW1ibmFpbFVybF09XCJzaG93bk9yZ2FuaXphdGlvbi5sb2dvVXJsLmhyZWZcIlxuICAgICAgICBmaXQ9XCJjb250YWluXCJcbiAgICAgID48L2duLXVpLXRodW1ibmFpbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBnYXAtMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtdGl0bGUgdGV4dC0yMSBtci0yIGN1cnNvci1wb2ludGVyIGhvdmVyOnVuZGVybGluZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uT3JnYW5pemF0aW9uQ2xpY2soKVwiXG4gICAgICAgICAgZGF0YS1jeT1cIm9yZ2FuaXphdGlvbi1uYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHNob3duT3JnYW5pemF0aW9uLm5hbWUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93bk9yZ2FuaXphdGlvbj8ud2Vic2l0ZVwiPlxuICAgICAgICA8YVxuICAgICAgICAgIFtocmVmXT1cInNob3duT3JnYW5pemF0aW9uLndlYnNpdGVcIlxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgY2xhc3M9XCJjb250YWN0LXdlYnNpdGUgdGV4dC1wcmltYXJ5IHRleHQtc20gY3Vyc29yLXBvaW50ZXIgaG92ZXI6dW5kZXJsaW5lIHRyYW5zaXRpb24tYWxsXCJcbiAgICAgICAgICA+e3sgc2hvd25Pcmdhbml6YXRpb24ud2Vic2l0ZSB9fVxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkICF3LVsxMnB4XSAhaC1bMTJweF0gIXRleHQtWzEycHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgICAgPm9wZW5faW5fbmV3PC9tYXQtaWNvblxuICAgICAgICAgID5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdyaWQgZ2FwLTUgcHktMyBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250YWN0c1swXT8ucGhvbmVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhdy01ICFoLTUgIXRleHQtWzIwcHhdIG9wYWNpdHktNzUgc2hyaW5rLTBcIlxuICAgICAgICAgICAgPmNhbGxfb3V0bGluZTwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWwtMlwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtXCI+e3sgY29udGFjdHNbMF0ucGhvbmUgfX08L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdHNbMF0/LmVtYWlsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgIXctNSAhaC01ICF0ZXh0LVsyMHB4XSBvcGFjaXR5LTc1IHNocmluay0wXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBtYWlsX291dGxpbmU8L21hdC1pY29uXG4gICAgICAgICAgPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICAqbmdJZj1cImNvbnRhY3RzLmxlbmd0aFwiXG4gICAgICAgICAgICBbaHJlZl09XCInbWFpbHRvOicgKyBjb250YWN0c1swXS5lbWFpbFwiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc20gaG92ZXI6dW5kZXJsaW5lIG1sLTJcIlxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIGRhdGEtY3k9XCJjb250YWN0LWVtYWlsXCJcbiAgICAgICAgICAgID57eyBjb250YWN0c1swXS5lbWFpbCB9fTwvYVxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250YWN0c1swXT8uZmlyc3ROYW1lIHx8IGNvbnRhY3RzWzBdPy5sYXN0TmFtZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkICF3LTUgIWgtNSAhdGV4dC1bMjBweF0gb3BhY2l0eS03NSBzaHJpbmstMFwiXG4gICAgICAgICAgICA+cGVyc29uX291dGxpbmU8L21hdC1pY29uXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1sLTJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbVwiPlxuICAgICAgICAgICAgICB7eyBjb250YWN0c1swXT8uZmlyc3ROYW1lIHx8ICcnIH19XG4gICAgICAgICAgICAgIHt7IGNvbnRhY3RzWzBdPy5sYXN0TmFtZSB8fCAnJyB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3RzWzBdPy5hZGRyZXNzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgIXctNSAhaC01ICF0ZXh0LVsyMHB4XSBvcGFjaXR5LTc1IHNocmluay0wXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBsb2NhdGlvbl9vbjwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWwtMlwiPlxuICAgICAgICAgICAgPHAgKm5nRm9yPVwibGV0IGFkZHJlc3NQYXJ0IG9mIGFkZHJlc3NcIiBjbGFzcz1cInRleHQtc21cIj5cbiAgICAgICAgICAgICAge3sgYWRkcmVzc1BhcnQgfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren, } from '@angular/core';
2
2
  import { CdkConnectedOverlay, CdkOverlayOrigin, ScrollStrategyOptions, } from '@angular/cdk/overlay';
3
3
  import { take } from 'rxjs/operators';
4
- import { propagateToDocumentOnly } from '../../../../../../libs/util/shared/src';
4
+ import { createFuzzyFilter, propagateToDocumentOnly, } from '../../../../../../libs/util/shared/src';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/cdk/overlay";
7
7
  import * as i2 from "@angular/common";
@@ -17,7 +17,10 @@ export class DropdownMultiselectComponent {
17
17
  return this.choices.filter((choice) => this.selected.indexOf(choice.value) > -1);
18
18
  }
19
19
  get filteredChoicesByText() {
20
- return this.choices.filter((choice) => choice.label.toLowerCase().includes(this.searchInputValue?.toLowerCase()));
20
+ if (!this.searchInputValue)
21
+ return this.choices;
22
+ const filter = createFuzzyFilter(this.searchInputValue);
23
+ return this.choices.filter((choice) => filter(choice.label));
21
24
  }
22
25
  get focusedIndex() {
23
26
  return this.checkboxes.reduce((prev, curr, curIndex) => curr.nativeElement === document.activeElement ? curIndex : prev, -1);
@@ -187,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
187
190
  type: ViewChildren,
188
191
  args: ['checkBox', { read: ElementRef }]
189
192
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjL2xpYi9kcm9wZG93bi1tdWx0aXNlbGVjdC9kcm9wZG93bi1tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL2Ryb3Bkb3duLW11bHRpc2VsZWN0L2Ryb3Bkb3duLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUVoQixxQkFBcUIsR0FDdEIsTUFBTSxzQkFBc0IsQ0FBQTtBQUM3QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFckMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUE7Ozs7Ozs7O0FBUWhGLE1BQU0sT0FBTyw0QkFBNEI7SUFzQ3ZDLElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDeEIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDckQsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLHFCQUFxQjtRQUN2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QkFBdUIsQ0FBQyxNQUFNOzRHQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ3FCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDTSxPQUFPO3NCQUF0QyxTQUFTO3VCQUFDLG1CQUFtQjtnQkFFOUIsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUduRCxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBRzdCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcbiAgQ2RrT3ZlcmxheU9yaWdpbixcbiAgQ29ubmVjdGVkUG9zaXRpb24sXG4gIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBDaG9pY2UgfSBmcm9tICcuL2Ryb3Bkb3duLW11bHRpc2VsZWN0Lm1vZGVsJ1xuaW1wb3J0IHsgcHJvcGFnYXRlVG9Eb2N1bWVudE9ubHkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZHJvcGRvd24tbXVsdGlzZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24tbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi1tdWx0aXNlbGVjdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk11bHRpc2VsZWN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZ1xuICBASW5wdXQoKSBjaG9pY2VzOiBDaG9pY2VbXVxuICBASW5wdXQoKSBzZWxlY3RlZDogdW5rbm93bltdID0gW11cbiAgQElucHV0KCkgYWxsb3dTZWFyY2ggPSB0cnVlXG4gIEBJbnB1dCgpIG1heFJvd3M6IG51bWJlclxuICBASW5wdXQoKSBzZWFyY2hJbnB1dFZhbHVlID0gJydcbiAgQE91dHB1dCgpIHNlbGVjdFZhbHVlcyA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bltdPigpXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlPcmlnaW4nKSBvdmVybGF5T3JpZ2luOiBDZGtPdmVybGF5T3JpZ2luXG4gIEBWaWV3Q2hpbGQoQ2RrQ29ubmVjdGVkT3ZlcmxheSkgb3ZlcmxheTogQ2RrQ29ubmVjdGVkT3ZlcmxheVxuICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIG92ZXJsYXlDb250YWluZXI6IEVsZW1lbnRSZWZcbiAgQFZpZXdDaGlsZCgnc2VhcmNoRmllbGRJbnB1dCcpXG4gIHNlYXJjaEZpZWxkSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD5cbiAgQFZpZXdDaGlsZHJlbignY2hlY2tCb3gnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgY2hlY2tib3hlczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+XG4gIG92ZXJsYXlQb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICBvZmZzZXRZOiA4LFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICBvZmZzZXRZOiAtOCxcbiAgICB9LFxuICBdXG4gIHNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxuICBvdmVybGF5T3BlbiA9IGZhbHNlXG4gIG92ZXJsYXlXaWR0aCA9ICdhdXRvJ1xuICBvdmVybGF5TWF4SGVpZ2h0ID0gJ25vbmUnXG4gIGlkID0gYGRyb3Bkb3duLW11bHRpc2VsZWN0LSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApfWBcblxuICBnZXQgaGFzU2VsZWN0ZWRDaG9pY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkLmxlbmd0aCA+IDBcbiAgfVxuXG4gIGdldCBzZWxlY3RlZENob2ljZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hvaWNlcy5maWx0ZXIoXG4gICAgICAoY2hvaWNlKSA9PiB0aGlzLnNlbGVjdGVkLmluZGV4T2YoY2hvaWNlLnZhbHVlKSA+IC0xXG4gICAgKVxuICB9XG5cbiAgZ2V0IGZpbHRlcmVkQ2hvaWNlc0J5VGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5jaG9pY2VzLmZpbHRlcigoY2hvaWNlKSA9PlxuICAgICAgY2hvaWNlLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hJbnB1dFZhbHVlPy50b0xvd2VyQ2FzZSgpKVxuICAgIClcbiAgfVxuXG4gIGdldCBmb2N1c2VkSW5kZXgoKTogbnVtYmVyIHwgLTEge1xuICAgIHJldHVybiB0aGlzLmNoZWNrYm94ZXMucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cnIsIGN1ckluZGV4KSA9PlxuICAgICAgICBjdXJyLm5hdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPyBjdXJJbmRleCA6IHByZXYsXG4gICAgICAtMVxuICAgIClcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2Nyb2xsU3RyYXRlZ2llczogU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKSB7fVxuXG4gIHByaXZhdGUgc2V0Rm9jdXMoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNlYXJjaEZpZWxkSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gICAgfSwgMClcbiAgfVxuXG4gIG9wZW5PdmVybGF5KCkge1xuICAgIHRoaXMub3ZlcmxheVdpZHRoID1cbiAgICAgIHRoaXMub3ZlcmxheU9yaWdpbi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgLndpZHRoICsgJ3B4J1xuICAgIHRoaXMub3ZlcmxheU1heEhlaWdodCA9IHRoaXMubWF4Um93c1xuICAgICAgPyBgJHt0aGlzLm1heFJvd3MgKiAyOSArIDYwfXB4YFxuICAgICAgOiAnbm9uZSdcbiAgICB0aGlzLm92ZXJsYXlPcGVuID0gdHJ1ZVxuICAgIHRoaXMuc2V0Rm9jdXMoKVxuXG4gICAgLy8gdGhpcyB3aWxsIHdhaXQgZm9yIHRoZSBjaGVja2JveGVzIHRvIGJlIHJlZmVyZW5jZWQgYW5kIHRoZSBvdmVybGF5IHRvIGJlIGF0dGFjaGVkXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgIHRoaXMub3ZlcmxheS5hdHRhY2gucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKSxcbiAgICAgIHRoaXMuY2hlY2tib3hlcy5jaGFuZ2VzLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCksXG4gICAgXSlcbiAgfVxuXG4gIGNsb3NlT3ZlcmxheSgpIHtcbiAgICB0aGlzLm92ZXJsYXlPcGVuID0gZmFsc2VcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVRyaWdnZXJLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5Q29kZSA9IGV2ZW50LmNvZGVcbiAgICBjb25zdCBpc09wZW5LZXkgPVxuICAgICAga2V5Q29kZSA9PT0gJ0Fycm93RG93bicgfHxcbiAgICAgIGtleUNvZGUgPT09ICdBcnJvd1VwJyB8fFxuICAgICAga2V5Q29kZSA9PT0gJ0Fycm93TGVmdCcgfHxcbiAgICAgIGtleUNvZGUgPT09ICdBcnJvd1JpZ2h0JyB8fFxuICAgICAga2V5Q29kZSA9PT0gJ0VudGVyJyB8fFxuICAgICAga2V5Q29kZSA9PT0gJ1NwYWNlJ1xuICAgIGNvbnN0IGlzQ2xvc2VLZXkgPSBrZXlDb2RlID09PSAnRXNjYXBlJyB8fCBpc09wZW5LZXlcbiAgICBpZiAoIXRoaXMub3ZlcmxheU9wZW4gJiYgaXNPcGVuS2V5KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBhd2FpdCB0aGlzLm9wZW5PdmVybGF5KClcbiAgICAgIGlmIChrZXlDb2RlID09PSAnQXJyb3dMZWZ0JyB8fCBrZXlDb2RlID09PSAnQXJyb3dVcCcpIHRoaXMuZm9jdXNMYXN0SXRlbSgpXG4gICAgICBlbHNlIHRoaXMuZm9jdXNGaXJzdEl0ZW0oKVxuICAgIH0gZWxzZSBpZiAodGhpcy5vdmVybGF5T3BlbiAmJiBpc0Nsb3NlS2V5KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB0aGlzLmNsb3NlT3ZlcmxheSgpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlT3ZlcmxheUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMub3ZlcmxheU9wZW4pIHJldHVyblxuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5jb2RlXG4gICAgaWYgKGtleUNvZGUgPT09ICdBcnJvd0Rvd24nIHx8IGtleUNvZGUgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRbJ3R5cGUnXSAhPT0gJ2NoZWNrYm94Jykge1xuICAgICAgICB0aGlzLmZvY3VzRmlyc3RJdGVtKClcbiAgICAgIH0gZWxzZSB0aGlzLnNoaWZ0SXRlbUZvY3VzKDEpXG4gICAgfSBlbHNlIGlmIChrZXlDb2RlID09PSAnQXJyb3dMZWZ0JyB8fCBrZXlDb2RlID09PSAnQXJyb3dVcCcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIHRoaXMuc2hpZnRJdGVtRm9jdXMoLTEpXG4gICAgfSBlbHNlIGlmIChrZXlDb2RlID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKVxuICAgIH1cbiAgfVxuXG4gIGZvY3VzRmlyc3RJdGVtKCkge1xuICAgIHRoaXMuY2hlY2tib3hlcy5nZXQoMCkubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gIH1cblxuICBmb2N1c0xhc3RJdGVtKCkge1xuICAgIHRoaXMuY2hlY2tib3hlcy5nZXQodGhpcy5jaGVja2JveGVzLmxlbmd0aCAtIDEpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgc2hpZnRJdGVtRm9jdXMoc2hpZnQ6IG51bWJlcikge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mb2N1c2VkSW5kZXhcbiAgICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm5cbiAgICBjb25zdCBtYXggPSB0aGlzLmNoZWNrYm94ZXMubGVuZ3RoXG4gICAgLy8gbW9kdWxvLCBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvT3BlcmF0b3JzL1JlbWFpbmRlclxuICAgIGNvbnN0IG5ld0luZGV4ID0gKCgoaW5kZXggKyBzaGlmdCkgJSBtYXgpICsgbWF4KSAlIG1heFxuICAgIHRoaXMuY2hlY2tib3hlcy5nZXQobmV3SW5kZXgpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgaXNTZWxlY3RlZChjaG9pY2U6IENob2ljZSkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkLmluZGV4T2YoY2hvaWNlLnZhbHVlKSA+IC0xXG4gIH1cblxuICBzZWxlY3QoY2hvaWNlOiBDaG9pY2UsIHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkXG4gICAgICA/IFsuLi50aGlzLnNlbGVjdGVkLmZpbHRlcigodikgPT4gdiAhPT0gY2hvaWNlLnZhbHVlKSwgY2hvaWNlLnZhbHVlXVxuICAgICAgOiB0aGlzLnNlbGVjdGVkLmZpbHRlcigodikgPT4gdiAhPT0gY2hvaWNlLnZhbHVlKVxuICAgIHRoaXMuc2VsZWN0VmFsdWVzLmVtaXQodGhpcy5zZWxlY3RlZClcbiAgfVxuXG4gIHRvZ2dsZShjaG9pY2U6IENob2ljZSkge1xuICAgIHRoaXMuc2VsZWN0KGNob2ljZSwgIXRoaXMuaXNTZWxlY3RlZChjaG9pY2UpKVxuICB9XG5cbiAgY2xlYXJTZWxlY3Rpb24oZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5zZWxlY3RWYWx1ZXMuZW1pdChbXSlcbiAgICBwcm9wYWdhdGVUb0RvY3VtZW50T25seShldmVudClcbiAgfVxuXG4gIGNsZWFyU2VhcmNoSW5wdXRWYWx1ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLnNlYXJjaElucHV0VmFsdWUgPSAnJ1xuICAgIHByb3BhZ2F0ZVRvRG9jdW1lbnRPbmx5KGV2ZW50KVxuICAgIHRoaXMuc2V0Rm9jdXMoKVxuICB9XG59XG4iLCI8Z24tdWktYnV0dG9uXG4gIHR5cGU9XCJvdXRsaW5lXCJcbiAgZXh0cmFDbGFzcz1cInctZnVsbCAhcC1bOHB4XSAhcGwtWzE2cHhdXCJcbiAgW3RpdGxlXT1cInRpdGxlXCJcbiAgW2F0dHIuYXJpYS1vd25zXT1cImlkXCJcbiAgKGJ1dHRvbkNsaWNrKT1cIm9wZW5PdmVybGF5KClcIlxuICAoa2V5ZG93bik9XCJoYW5kbGVUcmlnZ2VyS2V5ZG93bigkZXZlbnQpXCJcbiAgY2RrT3ZlcmxheU9yaWdpblxuICAjb3ZlcmxheU9yaWdpbj1cImNka092ZXJsYXlPcmlnaW5cIlxuPlxuICA8ZGl2IGNsYXNzPVwiZ3JvdyBmbGV4IGl0ZW1zLWNlbnRlciBtci0yIGdhcC0yIG92ZXJmbG93LWhpZGRlblwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxlZnQgZm9udC1tZWRpdW0gdHJ1bmNhdGUgcHktMVwiPlxuICAgICAge3sgdGl0bGUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImhhc1NlbGVjdGVkQ2hvaWNlc1wiXG4gICAgICBjbGFzcz1cInNocmluay0wIHJvdW5kZWQtZnVsbCB0ZXh0LXByaW1hcnkgYmctcHJpbWFyeS1vcGFjaXR5LTI1IHRleHQtd2hpdGUgZm9udC1ib2xkIHRleHQtWzEycHhdIHctNSBoLTUgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbXItMSBzZWxlY3RlZC1jb3VudFwiXG4gICAgPlxuICAgICAge3sgc2VsZWN0ZWQubGVuZ3RoIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8YnV0dG9uIGNsYXNzPVwiaC02IHctNlwiIGRhdGEtY3k9XCJjbGVhclNlbGVjdGlvblwiPlxuICAgIDxtYXQtaWNvblxuICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHNocmluay0wIG9wYWNpdHktNDAgbXItMS41IGhvdmVyOm9wYWNpdHktODAgdHJhbnNpdGlvbi1jb2xvcnMgY2xlYXItYnRuXCJcbiAgICAgICpuZ0lmPVwiaGFzU2VsZWN0ZWRDaG9pY2VzICYmICFvdmVybGF5T3BlblwiXG4gICAgICAoY2xpY2spPVwiY2xlYXJTZWxlY3Rpb24oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgY2xvc2VcbiAgICA8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBzaHJpbmstMCBvcGFjaXR5LTQwXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm92ZXJsYXlPcGVuXCI+ZXhwYW5kX2xlc3M8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW92ZXJsYXlPcGVuXCI+ZXhwYW5kX21vcmU8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtaWNvbj5cbjwvZ24tdWktYnV0dG9uPlxuXG48bmctdGVtcGxhdGVcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICBjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cIm92ZXJsYXlPcmlnaW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwib3ZlcmxheU9wZW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJvdmVybGF5UG9zaXRpb25zXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneV09XCJzY3JvbGxTdHJhdGVneVwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5RmxleGlibGVEaW1lbnNpb25zXT1cInRydWVcIlxuICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJjbG9zZU92ZXJsYXkoKVwiXG4gIChkZXRhY2gpPVwiY2xvc2VPdmVybGF5KClcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQgc2hhZG93LWxnIHB5LTIgdy1mdWxsIG92ZXJmbG93LXgtaGlkZGVuIG92ZXJmbG93LXktYXV0byBvdmVybGF5LWNvbnRhaW5lclwiXG4gICAgW3N0eWxlLm1heC1oZWlnaHRdPVwib3ZlcmxheU1heEhlaWdodFwiXG4gICAgW3N0eWxlLndpZHRoXT1cIm92ZXJsYXlXaWR0aFwiXG4gICAgcm9sZT1cImxpc3Rib3hcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICBbYXR0ci5hcmlhLW11bHRpc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpdGxlXCJcbiAgICAoa2V5ZG93bik9XCJoYW5kbGVPdmVybGF5S2V5ZG93bigkZXZlbnQpXCJcbiAgICAjb3ZlcmxheUNvbnRhaW5lclxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQgbWItMiBteC0yIG1pbi1oLVs0NHB4XSBmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBwLTIgZm9jdXMtd2l0aGluOnJvdW5kZWQgZm9jdXMtd2l0aGluOmJvcmRlci0yIGZvY3VzLXdpdGhpbjpib3JkZXItcHJpbWFyeVwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IHNlbGVjdGVkIG9mIHNlbGVjdGVkQ2hvaWNlc1wiXG4gICAgICAgIFt0aXRsZV09XCJzZWxlY3RlZC5sYWJlbFwiXG4gICAgICAgIGNsYXNzPVwibWF4LXctZnVsbCBiZy1tYWluIHRleHQtd2hpdGUgcm91bmRlZCBwci1bN3B4XSBmbGV4IGdhcC0xIGl0ZW1zLWNlbnRlciBvcGFjaXR5LTcwIGhvdmVyOm9wYWNpdHktMTAwIGZvY3VzOm9wYWNpdHktMTAwIHRyYW5zaXRpb24tb3BhY2l0eSBtYi0xXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdChzZWxlY3RlZCwgZmFsc2UpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gdHJ1bmNhdGUgbGVhZGluZy1bMjZweF0gcHgtMlwiPlxuICAgICAgICAgIHt7IHNlbGVjdGVkLmxhYmVsIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgYmctd2hpdGUgdGV4dC1tYWluIGgtWzEzcHhdIHctWzEzcHhdIHB0LXB4IC1tdC1weCBzaHJpbmstMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhaC1bMTJweF0gIXctWzEycHhdIHRleHQtWzEycHhdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBjbG9zZTwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJhbGxvd1NlYXJjaFwiIGNsYXNzPVwidy1bNTAlXSByZWxhdGl2ZSBncm93IHNocmlua1wiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjc2VhcmNoRmllbGRJbnB1dFxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB4LTIgdHJ1bmNhdGUgdGV4dC1bMTRweF0gaC1mdWxsIG92ZXJsYXlTZWFyY2hJbnB1dCBmb2N1czpvdXRsaW5lLW5vbmVcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoSW5wdXRWYWx1ZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidtdWx0aXNlbGVjdC5maWx0ZXIucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiISFzZWFyY2hJbnB1dFZhbHVlXCJcbiAgICAgICAgICBjbGFzcz1cImFic29sdXRlIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiByaWdodC0wIHB4LVs3cHhdIGxlYWRpbmctdGlnaHQgY2xlYXItc2VhcmNoLWlucHV0IG1yLTJcIlxuICAgICAgICAgIChjbGljayk9XCJjbGVhclNlYXJjaElucHV0VmFsdWUoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhaC1bMTBweF0gIXctWzEycHhdIHRleHQtWzEycHhdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBjbG9zZVxuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bGFiZWxcbiAgICAgICpuZ0Zvcj1cImxldCBjaG9pY2Ugb2YgZmlsdGVyZWRDaG9pY2VzQnlUZXh0XCJcbiAgICAgIFt0aXRsZV09XCJjaG9pY2UubGFiZWxcIlxuICAgICAgY2xhc3M9XCJmbGV4IHB4LTUgcHktMSB3LWZ1bGwgdGV4dC1ncmF5LTkwMCBjdXJzb3ItcG9pbnRlciBob3Zlcjp0ZXh0LXByaW1hcnktZGFya2VzdCBob3ZlcjpiZy1ncmF5LTUwIGZvY3VzLXdpdGhpbjp0ZXh0LXByaW1hcnktZGFya2VzdCBmb2N1cy13aXRoaW46YmctZ3JheS01MCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwidy1bMThweF0gaC1bMThweF0gYWxpZ24tdGV4dC10b3Agc2hyaW5rLTBcIlxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAjY2hlY2tCb3hcbiAgICAgICAgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChjaG9pY2UpXCJcbiAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3QoY2hvaWNlLCAkZXZlbnQudGFyZ2V0LmNoZWNrZWQpXCJcbiAgICAgIC8+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1sLVs4cHhdIHRleHQtWzE0cHhdIHRydW5jYXRlXCI+XG4gICAgICAgIHt7IGNob2ljZS5sYWJlbCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjL2xpYi9kcm9wZG93bi1tdWx0aXNlbGVjdC9kcm9wZG93bi1tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2lucHV0cy9zcmMvbGliL2Ryb3Bkb3duLW11bHRpc2VsZWN0L2Ryb3Bkb3duLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUVoQixxQkFBcUIsR0FDdEIsTUFBTSxzQkFBc0IsQ0FBQTtBQUM3QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFckMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix1QkFBdUIsR0FDeEIsTUFBTSx3Q0FBd0MsQ0FBQTs7Ozs7Ozs7QUFRL0MsTUFBTSxPQUFPLDRCQUE0QjtJQXNDdkMsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7SUFDakMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUN4QixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNyRCxDQUFBO0lBQ0gsQ0FBQztJQUVELElB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QUNTLFVBQVUsMkxBSWYsVUFBVSw2QkM1QzlDLDBnSkEySEE7OzJGRDdGYSw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0UsNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNOzRHQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ3FCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDTSxPQUFPO3NCQUF0QyxTQUFTO3VCQUFDLG1CQUFtQjtnQkFFOUIsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUduRCxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBRzdCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcbiAgQ2RrT3ZlcmxheU9yaWdpbixcbiAgQ29ubmVjdGVkUG9zaXRpb24sXG4gIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBDaG9pY2UgfSBmcm9tICcuL2Ryb3Bkb3duLW11bHRpc2VsZWN0Lm1vZGVsJ1xuaW1wb3J0IHtcbiAgY3JlYXRlRnV6enlGaWx0ZXIsXG4gIHByb3BhZ2F0ZVRvRG9jdW1lbnRPbmx5LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZHJvcGRvd24tbXVsdGlzZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24tbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi1tdWx0aXNlbGVjdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk11bHRpc2VsZWN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZ1xuICBASW5wdXQoKSBjaG9pY2VzOiBDaG9pY2VbXVxuICBASW5wdXQoKSBzZWxlY3RlZDogdW5rbm93bltdID0gW11cbiAgQElucHV0KCkgYWxsb3dTZWFyY2ggPSB0cnVlXG4gIEBJbnB1dCgpIG1heFJvd3M6IG51bWJlclxuICBASW5wdXQoKSBzZWFyY2hJbnB1dFZhbHVlID0gJydcbiAgQE91dHB1dCgpIHNlbGVjdFZhbHVlcyA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bltdPigpXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlPcmlnaW4nKSBvdmVybGF5T3JpZ2luOiBDZGtPdmVybGF5T3JpZ2luXG4gIEBWaWV3Q2hpbGQoQ2RrQ29ubmVjdGVkT3ZlcmxheSkgb3ZlcmxheTogQ2RrQ29ubmVjdGVkT3ZlcmxheVxuICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIG92ZXJsYXlDb250YWluZXI6IEVsZW1lbnRSZWZcbiAgQFZpZXdDaGlsZCgnc2VhcmNoRmllbGRJbnB1dCcpXG4gIHNlYXJjaEZpZWxkSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD5cbiAgQFZpZXdDaGlsZHJlbignY2hlY2tCb3gnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgY2hlY2tib3hlczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+XG4gIG92ZXJsYXlQb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICBvZmZzZXRZOiA4LFxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICBvZmZzZXRZOiAtOCxcbiAgICB9LFxuICBdXG4gIHNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxuICBvdmVybGF5T3BlbiA9IGZhbHNlXG4gIG92ZXJsYXlXaWR0aCA9ICdhdXRvJ1xuICBvdmVybGF5TWF4SGVpZ2h0ID0gJ25vbmUnXG4gIGlkID0gYGRyb3Bkb3duLW11bHRpc2VsZWN0LSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApfWBcblxuICBnZXQgaGFzU2VsZWN0ZWRDaG9pY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkLmxlbmd0aCA+IDBcbiAgfVxuXG4gIGdldCBzZWxlY3RlZENob2ljZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hvaWNlcy5maWx0ZXIoXG4gICAgICAoY2hvaWNlKSA9PiB0aGlzLnNlbGVjdGVkLmluZGV4T2YoY2hvaWNlLnZhbHVlKSA+IC0xXG4gICAgKVxuICB9XG5cbiAgZ2V0IGZpbHRlcmVkQ2hvaWNlc0J5VGV4dCgpIHtcbiAgICBpZiAoIXRoaXMuc2VhcmNoSW5wdXRWYWx1ZSkgcmV0dXJuIHRoaXMuY2hvaWNlc1xuICAgIGNvbnN0IGZpbHRlciA9IGNyZWF0ZUZ1enp5RmlsdGVyKHRoaXMuc2VhcmNoSW5wdXRWYWx1ZSlcbiAgICByZXR1cm4gdGhpcy5jaG9pY2VzLmZpbHRlcigoY2hvaWNlKSA9PiBmaWx0ZXIoY2hvaWNlLmxhYmVsKSlcbiAgfVxuXG4gIGdldCBmb2N1c2VkSW5kZXgoKTogbnVtYmVyIHwgLTEge1xuICAgIHJldHVybiB0aGlzLmNoZWNrYm94ZXMucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cnIsIGN1ckluZGV4KSA9PlxuICAgICAgICBjdXJyLm5hdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPyBjdXJJbmRleCA6IHByZXYsXG4gICAgICAtMVxuICAgIClcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2Nyb2xsU3RyYXRlZ2llczogU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKSB7fVxuXG4gIHByaXZhdGUgc2V0Rm9jdXMoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNlYXJjaEZpZWxkSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gICAgfSwgMClcbiAgfVxuXG4gIG9wZW5PdmVybGF5KCkge1xuICAgIHRoaXMub3ZlcmxheVdpZHRoID1cbiAgICAgIHRoaXMub3ZlcmxheU9yaWdpbi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgLndpZHRoICsgJ3B4J1xuICAgIHRoaXMub3ZlcmxheU1heEhlaWdodCA9IHRoaXMubWF4Um93c1xuICAgICAgPyBgJHt0aGlzLm1heFJvd3MgKiAyOSArIDYwfXB4YFxuICAgICAgOiAnbm9uZSdcbiAgICB0aGlzLm92ZXJsYXlPcGVuID0gdHJ1ZVxuICAgIHRoaXMuc2V0Rm9jdXMoKVxuXG4gICAgLy8gdGhpcyB3aWxsIHdhaXQgZm9yIHRoZSBjaGVja2JveGVzIHRvIGJlIHJlZmVyZW5jZWQgYW5kIHRoZSBvdmVybGF5IHRvIGJlIGF0dGFjaGVkXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgIHRoaXMub3ZlcmxheS5hdHRhY2gucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKSxcbiAgICAgIHRoaXMuY2hlY2tib3hlcy5jaGFuZ2VzLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCksXG4gICAgXSlcbiAgfVxuXG4gIGNsb3NlT3ZlcmxheSgpIHtcbiAgICB0aGlzLm92ZXJsYXlPcGVuID0gZmFsc2VcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVRyaWdnZXJLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5Q29kZSA9IGV2ZW50LmNvZGVcbiAgICBjb25zdCBpc09wZW5LZXkgPVxuICAgICAga2V5Q29kZSA9PT0gJ0Fycm93RG93bicgfHxcbiAgICAgIGtleUNvZGUgPT09ICdBcnJvd1VwJyB8fFxuICAgICAga2V5Q29kZSA9PT0gJ0Fycm93TGVmdCcgfHxcbiAgICAgIGtleUNvZGUgPT09ICdBcnJvd1JpZ2h0JyB8fFxuICAgICAga2V5Q29kZSA9PT0gJ0VudGVyJyB8fFxuICAgICAga2V5Q29kZSA9PT0gJ1NwYWNlJ1xuICAgIGNvbnN0IGlzQ2xvc2VLZXkgPSBrZXlDb2RlID09PSAnRXNjYXBlJyB8fCBpc09wZW5LZXlcbiAgICBpZiAoIXRoaXMub3ZlcmxheU9wZW4gJiYgaXNPcGVuS2V5KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBhd2FpdCB0aGlzLm9wZW5PdmVybGF5KClcbiAgICAgIGlmIChrZXlDb2RlID09PSAnQXJyb3dMZWZ0JyB8fCBrZXlDb2RlID09PSAnQXJyb3dVcCcpIHRoaXMuZm9jdXNMYXN0SXRlbSgpXG4gICAgICBlbHNlIHRoaXMuZm9jdXNGaXJzdEl0ZW0oKVxuICAgIH0gZWxzZSBpZiAodGhpcy5vdmVybGF5T3BlbiAmJiBpc0Nsb3NlS2V5KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB0aGlzLmNsb3NlT3ZlcmxheSgpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlT3ZlcmxheUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMub3ZlcmxheU9wZW4pIHJldHVyblxuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5jb2RlXG4gICAgaWYgKGtleUNvZGUgPT09ICdBcnJvd0Rvd24nIHx8IGtleUNvZGUgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRbJ3R5cGUnXSAhPT0gJ2NoZWNrYm94Jykge1xuICAgICAgICB0aGlzLmZvY3VzRmlyc3RJdGVtKClcbiAgICAgIH0gZWxzZSB0aGlzLnNoaWZ0SXRlbUZvY3VzKDEpXG4gICAgfSBlbHNlIGlmIChrZXlDb2RlID09PSAnQXJyb3dMZWZ0JyB8fCBrZXlDb2RlID09PSAnQXJyb3dVcCcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIHRoaXMuc2hpZnRJdGVtRm9jdXMoLTEpXG4gICAgfSBlbHNlIGlmIChrZXlDb2RlID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKVxuICAgIH1cbiAgfVxuXG4gIGZvY3VzRmlyc3RJdGVtKCkge1xuICAgIHRoaXMuY2hlY2tib3hlcy5nZXQoMCkubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gIH1cblxuICBmb2N1c0xhc3RJdGVtKCkge1xuICAgIHRoaXMuY2hlY2tib3hlcy5nZXQodGhpcy5jaGVja2JveGVzLmxlbmd0aCAtIDEpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgc2hpZnRJdGVtRm9jdXMoc2hpZnQ6IG51bWJlcikge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mb2N1c2VkSW5kZXhcbiAgICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm5cbiAgICBjb25zdCBtYXggPSB0aGlzLmNoZWNrYm94ZXMubGVuZ3RoXG4gICAgLy8gbW9kdWxvLCBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvT3BlcmF0b3JzL1JlbWFpbmRlclxuICAgIGNvbnN0IG5ld0luZGV4ID0gKCgoaW5kZXggKyBzaGlmdCkgJSBtYXgpICsgbWF4KSAlIG1heFxuICAgIHRoaXMuY2hlY2tib3hlcy5nZXQobmV3SW5kZXgpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgaXNTZWxlY3RlZChjaG9pY2U6IENob2ljZSkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkLmluZGV4T2YoY2hvaWNlLnZhbHVlKSA+IC0xXG4gIH1cblxuICBzZWxlY3QoY2hvaWNlOiBDaG9pY2UsIHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkXG4gICAgICA/IFsuLi50aGlzLnNlbGVjdGVkLmZpbHRlcigodikgPT4gdiAhPT0gY2hvaWNlLnZhbHVlKSwgY2hvaWNlLnZhbHVlXVxuICAgICAgOiB0aGlzLnNlbGVjdGVkLmZpbHRlcigodikgPT4gdiAhPT0gY2hvaWNlLnZhbHVlKVxuICAgIHRoaXMuc2VsZWN0VmFsdWVzLmVtaXQodGhpcy5zZWxlY3RlZClcbiAgfVxuXG4gIHRvZ2dsZShjaG9pY2U6IENob2ljZSkge1xuICAgIHRoaXMuc2VsZWN0KGNob2ljZSwgIXRoaXMuaXNTZWxlY3RlZChjaG9pY2UpKVxuICB9XG5cbiAgY2xlYXJTZWxlY3Rpb24oZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5zZWxlY3RWYWx1ZXMuZW1pdChbXSlcbiAgICBwcm9wYWdhdGVUb0RvY3VtZW50T25seShldmVudClcbiAgfVxuXG4gIGNsZWFyU2VhcmNoSW5wdXRWYWx1ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLnNlYXJjaElucHV0VmFsdWUgPSAnJ1xuICAgIHByb3BhZ2F0ZVRvRG9jdW1lbnRPbmx5KGV2ZW50KVxuICAgIHRoaXMuc2V0Rm9jdXMoKVxuICB9XG59XG4iLCI8Z24tdWktYnV0dG9uXG4gIHR5cGU9XCJvdXRsaW5lXCJcbiAgZXh0cmFDbGFzcz1cInctZnVsbCAhcC1bOHB4XSAhcGwtWzE2cHhdXCJcbiAgW3RpdGxlXT1cInRpdGxlXCJcbiAgW2F0dHIuYXJpYS1vd25zXT1cImlkXCJcbiAgKGJ1dHRvbkNsaWNrKT1cIm9wZW5PdmVybGF5KClcIlxuICAoa2V5ZG93bik9XCJoYW5kbGVUcmlnZ2VyS2V5ZG93bigkZXZlbnQpXCJcbiAgY2RrT3ZlcmxheU9yaWdpblxuICAjb3ZlcmxheU9yaWdpbj1cImNka092ZXJsYXlPcmlnaW5cIlxuPlxuICA8ZGl2IGNsYXNzPVwiZ3JvdyBmbGV4IGl0ZW1zLWNlbnRlciBtci0yIGdhcC0yIG92ZXJmbG93LWhpZGRlblwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxlZnQgZm9udC1tZWRpdW0gdHJ1bmNhdGUgcHktMVwiPlxuICAgICAge3sgdGl0bGUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImhhc1NlbGVjdGVkQ2hvaWNlc1wiXG4gICAgICBjbGFzcz1cInNocmluay0wIHJvdW5kZWQtZnVsbCB0ZXh0LXByaW1hcnkgYmctcHJpbWFyeS1vcGFjaXR5LTI1IHRleHQtd2hpdGUgZm9udC1ib2xkIHRleHQtWzEycHhdIHctNSBoLTUgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbXItMSBzZWxlY3RlZC1jb3VudFwiXG4gICAgPlxuICAgICAge3sgc2VsZWN0ZWQubGVuZ3RoIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8YnV0dG9uIGNsYXNzPVwiaC02IHctNlwiIGRhdGEtY3k9XCJjbGVhclNlbGVjdGlvblwiPlxuICAgIDxtYXQtaWNvblxuICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHNocmluay0wIG9wYWNpdHktNDAgbXItMS41IGhvdmVyOm9wYWNpdHktODAgdHJhbnNpdGlvbi1jb2xvcnMgY2xlYXItYnRuXCJcbiAgICAgICpuZ0lmPVwiaGFzU2VsZWN0ZWRDaG9pY2VzICYmICFvdmVybGF5T3BlblwiXG4gICAgICAoY2xpY2spPVwiY2xlYXJTZWxlY3Rpb24oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgY2xvc2VcbiAgICA8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBzaHJpbmstMCBvcGFjaXR5LTQwXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm92ZXJsYXlPcGVuXCI+ZXhwYW5kX2xlc3M8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW92ZXJsYXlPcGVuXCI+ZXhwYW5kX21vcmU8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtaWNvbj5cbjwvZ24tdWktYnV0dG9uPlxuXG48bmctdGVtcGxhdGVcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICBjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cIm92ZXJsYXlPcmlnaW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwib3ZlcmxheU9wZW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJvdmVybGF5UG9zaXRpb25zXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneV09XCJzY3JvbGxTdHJhdGVneVwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5RmxleGlibGVEaW1lbnNpb25zXT1cInRydWVcIlxuICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJjbG9zZU92ZXJsYXkoKVwiXG4gIChkZXRhY2gpPVwiY2xvc2VPdmVybGF5KClcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQgc2hhZG93LWxnIHB5LTIgdy1mdWxsIG92ZXJmbG93LXgtaGlkZGVuIG92ZXJmbG93LXktYXV0byBvdmVybGF5LWNvbnRhaW5lclwiXG4gICAgW3N0eWxlLm1heC1oZWlnaHRdPVwib3ZlcmxheU1heEhlaWdodFwiXG4gICAgW3N0eWxlLndpZHRoXT1cIm92ZXJsYXlXaWR0aFwiXG4gICAgcm9sZT1cImxpc3Rib3hcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICBbYXR0ci5hcmlhLW11bHRpc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpdGxlXCJcbiAgICAoa2V5ZG93bik9XCJoYW5kbGVPdmVybGF5S2V5ZG93bigkZXZlbnQpXCJcbiAgICAjb3ZlcmxheUNvbnRhaW5lclxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQgbWItMiBteC0yIG1pbi1oLVs0NHB4XSBmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBwLTIgZm9jdXMtd2l0aGluOnJvdW5kZWQgZm9jdXMtd2l0aGluOmJvcmRlci0yIGZvY3VzLXdpdGhpbjpib3JkZXItcHJpbWFyeVwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IHNlbGVjdGVkIG9mIHNlbGVjdGVkQ2hvaWNlc1wiXG4gICAgICAgIFt0aXRsZV09XCJzZWxlY3RlZC5sYWJlbFwiXG4gICAgICAgIGNsYXNzPVwibWF4LXctZnVsbCBiZy1tYWluIHRleHQtd2hpdGUgcm91bmRlZCBwci1bN3B4XSBmbGV4IGdhcC0xIGl0ZW1zLWNlbnRlciBvcGFjaXR5LTcwIGhvdmVyOm9wYWNpdHktMTAwIGZvY3VzOm9wYWNpdHktMTAwIHRyYW5zaXRpb24tb3BhY2l0eSBtYi0xXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdChzZWxlY3RlZCwgZmFsc2UpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gdHJ1bmNhdGUgbGVhZGluZy1bMjZweF0gcHgtMlwiPlxuICAgICAgICAgIHt7IHNlbGVjdGVkLmxhYmVsIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgYmctd2hpdGUgdGV4dC1tYWluIGgtWzEzcHhdIHctWzEzcHhdIHB0LXB4IC1tdC1weCBzaHJpbmstMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhaC1bMTJweF0gIXctWzEycHhdIHRleHQtWzEycHhdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBjbG9zZTwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJhbGxvd1NlYXJjaFwiIGNsYXNzPVwidy1bNTAlXSByZWxhdGl2ZSBncm93IHNocmlua1wiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjc2VhcmNoRmllbGRJbnB1dFxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB4LTIgdHJ1bmNhdGUgdGV4dC1bMTRweF0gaC1mdWxsIG92ZXJsYXlTZWFyY2hJbnB1dCBmb2N1czpvdXRsaW5lLW5vbmVcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoSW5wdXRWYWx1ZVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidtdWx0aXNlbGVjdC5maWx0ZXIucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiISFzZWFyY2hJbnB1dFZhbHVlXCJcbiAgICAgICAgICBjbGFzcz1cImFic29sdXRlIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiByaWdodC0wIHB4LVs3cHhdIGxlYWRpbmctdGlnaHQgY2xlYXItc2VhcmNoLWlucHV0IG1yLTJcIlxuICAgICAgICAgIChjbGljayk9XCJjbGVhclNlYXJjaElucHV0VmFsdWUoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCAhaC1bMTBweF0gIXctWzEycHhdIHRleHQtWzEycHhdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBjbG9zZVxuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bGFiZWxcbiAgICAgICpuZ0Zvcj1cImxldCBjaG9pY2Ugb2YgZmlsdGVyZWRDaG9pY2VzQnlUZXh0XCJcbiAgICAgIFt0aXRsZV09XCJjaG9pY2UubGFiZWxcIlxuICAgICAgY2xhc3M9XCJmbGV4IHB4LTUgcHktMSB3LWZ1bGwgdGV4dC1ncmF5LTkwMCBjdXJzb3ItcG9pbnRlciBob3Zlcjp0ZXh0LXByaW1hcnktZGFya2VzdCBob3ZlcjpiZy1ncmF5LTUwIGZvY3VzLXdpdGhpbjp0ZXh0LXByaW1hcnktZGFya2VzdCBmb2N1cy13aXRoaW46YmctZ3JheS01MCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwidy1bMThweF0gaC1bMThweF0gYWxpZ24tdGV4dC10b3Agc2hyaW5rLTBcIlxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAjY2hlY2tCb3hcbiAgICAgICAgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChjaG9pY2UpXCJcbiAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3QoY2hvaWNlLCAkZXZlbnQudGFyZ2V0LmNoZWNrZWQpXCJcbiAgICAgIC8+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1sLVs4cHhdIHRleHQtWzE0cHhdIHRydW5jYXRlXCI+XG4gICAgICAgIHt7IGNob2ljZS5sYWJlbCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -5,4 +5,5 @@ export * from './lib/lang.service';
5
5
  export * from './lib/file.translate.loader';
6
6
  export * from './lib/testing/test.translate.module';
7
7
  export * from './lib/embedded.translate.loader';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWwtaTE4bi5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pMThuLmNvbnN0YW50cydcbmV4cG9ydCAqIGZyb20gJy4vbGliL2kxOG4uaW50ZXJjZXB0b3InXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYW5nLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWxlLnRyYW5zbGF0ZS5sb2FkZXInXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZXN0aW5nL3Rlc3QudHJhbnNsYXRlLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VtYmVkZGVkLnRyYW5zbGF0ZS5sb2FkZXInXG4iXX0=
8
+ export * from './lib/translate.loader.utils';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLDhCQUE4QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbC1pMThuLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2kxOG4uY29uc3RhbnRzJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaTE4bi5pbnRlcmNlcHRvcidcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xhbmcuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUudHJhbnNsYXRlLmxvYWRlcidcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rlc3RpbmcvdGVzdC50cmFuc2xhdGUubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW1iZWRkZWQudHJhbnNsYXRlLmxvYWRlcidcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RyYW5zbGF0ZS5sb2FkZXIudXRpbHMnXG4iXX0=
@@ -0,0 +1,27 @@
1
+ function normalize(input) {
2
+ return input
3
+ .toLowerCase()
4
+ .normalize('NFD') // explode composite chars (e.g. é) into multiple chars
5
+ .replace(/[\u0300-\u036f]/g, '') // remove accents
6
+ .replace(/œ/g, 'oe') // remove accents
7
+ .replace(/[^a-z0-9\s]/g, ' '); // replace special characters with space
8
+ }
9
+ function asNormalizedParts(input) {
10
+ return normalize(input)
11
+ .split(/\s+/)
12
+ .map((part) => part.trim())
13
+ .filter((part) => part.length > 0);
14
+ }
15
+ /**
16
+ * This creates a filter function based on a pattern (typically a user-input
17
+ * search text).
18
+ * @param pattern
19
+ */
20
+ export function createFuzzyFilter(pattern) {
21
+ const patternParts = asNormalizedParts(pattern);
22
+ return (input) => {
23
+ const inputParts = asNormalizedParts(input);
24
+ return patternParts.every((patternPart) => inputParts.some((part) => part.includes(patternPart)));
25
+ };
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnV6enktZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMvbGliL3V0aWxzL2Z1enp5LWZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxTQUFTLFNBQVMsQ0FBQyxLQUFhO0lBQzlCLE9BQU8sS0FBSztTQUNULFdBQVcsRUFBRTtTQUNiLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyx1REFBdUQ7U0FDeEUsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtTQUNqRCxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLGlCQUFpQjtTQUNyQyxPQUFPLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFBLENBQUMsd0NBQXdDO0FBQzFFLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQWE7SUFDdEMsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDO1NBQ3BCLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDWixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMxQixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDdEMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBZTtJQUMvQyxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMvQyxPQUFPLENBQUMsS0FBYSxFQUFFLEVBQUU7UUFDdkIsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDM0MsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDeEMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUN0RCxDQUFBO0lBQ0gsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgRnV6enlGaWx0ZXIgPSAoaW5wdXQ6IHN0cmluZykgPT4gYm9vbGVhblxuXG5mdW5jdGlvbiBub3JtYWxpemUoaW5wdXQ6IHN0cmluZykge1xuICByZXR1cm4gaW5wdXRcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5ub3JtYWxpemUoJ05GRCcpIC8vIGV4cGxvZGUgY29tcG9zaXRlIGNoYXJzIChlLmcuIMOpKSBpbnRvIG11bHRpcGxlIGNoYXJzXG4gICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKSAvLyByZW1vdmUgYWNjZW50c1xuICAgIC5yZXBsYWNlKC/Fky9nLCAnb2UnKSAvLyByZW1vdmUgYWNjZW50c1xuICAgIC5yZXBsYWNlKC9bXmEtejAtOVxcc10vZywgJyAnKSAvLyByZXBsYWNlIHNwZWNpYWwgY2hhcmFjdGVycyB3aXRoIHNwYWNlXG59XG5cbmZ1bmN0aW9uIGFzTm9ybWFsaXplZFBhcnRzKGlucHV0OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBub3JtYWxpemUoaW5wdXQpXG4gICAgLnNwbGl0KC9cXHMrLylcbiAgICAubWFwKChwYXJ0KSA9PiBwYXJ0LnRyaW0oKSlcbiAgICAuZmlsdGVyKChwYXJ0KSA9PiBwYXJ0Lmxlbmd0aCA+IDApXG59XG5cbi8qKlxuICogVGhpcyBjcmVhdGVzIGEgZmlsdGVyIGZ1bmN0aW9uIGJhc2VkIG9uIGEgcGF0dGVybiAodHlwaWNhbGx5IGEgdXNlci1pbnB1dFxuICogc2VhcmNoIHRleHQpLlxuICogQHBhcmFtIHBhdHRlcm5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZ1enp5RmlsdGVyKHBhdHRlcm46IHN0cmluZyk6IEZ1enp5RmlsdGVyIHtcbiAgY29uc3QgcGF0dGVyblBhcnRzID0gYXNOb3JtYWxpemVkUGFydHMocGF0dGVybilcbiAgcmV0dXJuIChpbnB1dDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgaW5wdXRQYXJ0cyA9IGFzTm9ybWFsaXplZFBhcnRzKGlucHV0KVxuICAgIHJldHVybiBwYXR0ZXJuUGFydHMuZXZlcnkoKHBhdHRlcm5QYXJ0KSA9PlxuICAgICAgaW5wdXRQYXJ0cy5zb21lKChwYXJ0KSA9PiBwYXJ0LmluY2x1ZGVzKHBhdHRlcm5QYXJ0KSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
@@ -5,4 +5,5 @@ export * from './geojson';
5
5
  export * from './sort-by';
6
6
  export * from './url';
7
7
  export * from './event';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLE9BQU8sQ0FBQTtBQUNyQixjQUFjLFNBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFyc2UnXG5leHBvcnQgKiBmcm9tICcuL3N0cmlwLWh0bWwnXG5leHBvcnQgKiBmcm9tICcuL3JlbW92ZS13aGl0ZXNwYWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9nZW9qc29uJ1xuZXhwb3J0ICogZnJvbSAnLi9zb3J0LWJ5J1xuZXhwb3J0ICogZnJvbSAnLi91cmwnXG5leHBvcnQgKiBmcm9tICcuL2V2ZW50J1xuIl19
8
+ export * from './fuzzy-filter';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLFdBQVcsQ0FBQTtBQUN6QixjQUFjLE9BQU8sQ0FBQTtBQUNyQixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLGdCQUFnQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wYXJzZSdcbmV4cG9ydCAqIGZyb20gJy4vc3RyaXAtaHRtbCdcbmV4cG9ydCAqIGZyb20gJy4vcmVtb3ZlLXdoaXRlc3BhY2UnXG5leHBvcnQgKiBmcm9tICcuL2dlb2pzb24nXG5leHBvcnQgKiBmcm9tICcuL3NvcnQtYnknXG5leHBvcnQgKiBmcm9tICcuL3VybCdcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQnXG5leHBvcnQgKiBmcm9tICcuL2Z1enp5LWZpbHRlcidcbiJdfQ==