@ecodev/natural 61.2.0 → 61.3.1

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 (31) hide show
  1. package/esm2022/lib/modules/alert/alert.service.mjs +2 -2
  2. package/esm2022/lib/modules/avatar/component/avatar.component.mjs +2 -2
  3. package/esm2022/lib/modules/common/directives/background-density.directive.mjs +2 -2
  4. package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +2 -2
  5. package/esm2022/lib/modules/common/directives/src-density.directive.mjs +2 -2
  6. package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +2 -2
  7. package/esm2022/lib/modules/common/services/seo.service.mjs +2 -2
  8. package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +1 -1
  9. package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +1 -1
  10. package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +2 -2
  11. package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +2 -2
  12. package/esm2022/lib/modules/file/component/file.component.mjs +13 -14
  13. package/esm2022/lib/modules/file/file.service.mjs +2 -2
  14. package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +2 -2
  15. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +2 -2
  16. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +2 -2
  17. package/esm2022/lib/modules/icon/icon.directive.mjs +2 -2
  18. package/esm2022/lib/modules/logger/error-handler.mjs +2 -2
  19. package/esm2022/lib/modules/panels/panels.component.mjs +1 -1
  20. package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +2 -2
  21. package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +2 -2
  22. package/esm2022/lib/modules/search/input/input.component.mjs +2 -2
  23. package/esm2022/lib/modules/search/search/search.component.mjs +2 -2
  24. package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +2 -2
  25. package/esm2022/lib/services/enum.service.mjs +2 -2
  26. package/esm2022/lib/services/link-mutation.service.mjs +2 -2
  27. package/fesm2022/ecodev-natural.mjs +12 -13
  28. package/fesm2022/ecodev-natural.mjs.map +1 -1
  29. package/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.d.ts +1 -1
  30. package/lib/modules/file/component/file.component.d.ts +4 -2
  31. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
2
2
  import { ComponentPortal } from '@angular/cdk/portal';
3
- import { Injectable, InjectionToken, Injector, inject } from '@angular/core';
3
+ import { inject, Injectable, InjectionToken, Injector } from '@angular/core';
4
4
  import { takeUntil } from 'rxjs/operators';
5
5
  import { NATURAL_DROPDOWN_CONTAINER_DATA, NaturalDropdownContainerComponent, } from './dropdown-container.component';
6
6
  import { NaturalDropdownRef } from './dropdown-ref';
@@ -87,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
87
87
  providedIn: 'root',
88
88
  }]
89
89
  }] });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRixPQUFPLEVBQUMsZUFBZSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ25FLE9BQU8sRUFBMkIsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQWtCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNySCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUNILCtCQUErQixFQUMvQixpQ0FBaUMsR0FFcEMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFTbEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXNCLHFCQUFxQixDQUFDLENBQUM7QUFLcEcsTUFBTSxPQUFPLHNCQUFzQjtJQUNkLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxJQUFJLENBQ1AsU0FBMkMsRUFDM0MsZ0JBQXlDLEVBQ3pDLGVBQWlDLEVBQ2pDLGtCQUEyQjtRQUUzQixpQkFBaUI7UUFDakIsTUFBTSxhQUFhLEdBQWlDO1lBQ2hELGtCQUFrQixFQUFFLGtCQUFrQjtTQUN6QyxDQUFDO1FBRUYsTUFBTSxlQUFlLEdBQXFCO1lBQ3RDO2dCQUNJLE9BQU8sRUFBRSwrQkFBK0I7Z0JBQ3hDLFFBQVEsRUFBRSxhQUFhO2FBQzFCO1NBQ0osQ0FB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UG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZ30gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3RvciwgU3RhdGljUHJvdmlkZXIsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkfSBmcm9tICcuLi9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUudHlwZXMnO1xuaW1wb3J0IHtcbiAgICBOQVRVUkFMX0RST1BET1dOX0NPTlRBSU5FUl9EQVRBLFxuICAgIE5hdHVyYWxEcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBOYXR1cmFsRHJvcGRvd25Db250YWluZXJEYXRhLFxufSBmcm9tICcuL2Ryb3Bkb3duLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtOYXR1cmFsRHJvcGRvd25SZWZ9IGZyb20gJy4vZHJvcGRvd24tcmVmJztcbmltcG9ydCB7RHJvcGRvd25Db21wb25lbnR9IGZyb20gJy4uL3R5cGVzL2Ryb3Bkb3duLWNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIE5hdHVyYWxEcm9wZG93bkRhdGE8QyA9IGFueT4gPSB7XG4gICAgY29uZGl0aW9uOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHwgbnVsbDtcbiAgICBjb25maWd1cmF0aW9uOiBDO1xuICAgIHRpdGxlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IE5BVFVSQUxfRFJPUERPV05fREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOYXR1cmFsRHJvcGRvd25EYXRhPignTmF0dXJhbERyb3Bkb3duRGF0YScpO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRHJvcGRvd25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgICBwdWJsaWMgb3BlbihcbiAgICAgICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPERyb3Bkb3duQ29tcG9uZW50PixcbiAgICAgICAgY29ubmVjdGVkRWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIGN1c3RvbVByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSxcbiAgICAgICAgc2hvd1ZhbGlkYXRlQnV0dG9uOiBib29sZWFuLFxuICAgICk6IE5hdHVyYWxEcm9wZG93blJlZiB7XG4gICAgICAgIC8vIENvbnRhaW5lciBkYXRhXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckRhdGE6IE5hdHVyYWxEcm9wZG93bkNvbnRhaW5lckRhdGEgPSB7XG4gICAgICAgICAgICBzaG93VmFsaWRhdGVCdXR0b246IHNob3dWYWxpZGF0ZUJ1dHRvbixcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBpbmplY3Rpb25Ub2tlbnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogTkFUVVJBTF9EUk9QRE9XTl9DT05UQUlORVJfREFUQSxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogY29udGFpbmVyRGF0YSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgY29udGFpbmVySW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe3Byb3ZpZGVyczogaW5qZWN0aW9uVG9rZW5zLCBwYXJlbnQ6IHRoaXMuaW5qZWN0b3J9KTtcblxuICAgICAgICAvLyBDb250YWluZXJcbiAgICAgICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUodGhpcy5nZXRPdmVybGF5Q29uZmlnKGNvbm5lY3RlZEVsZW1lbnQpKTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChOYXR1cmFsRHJvcGRvd25Db250YWluZXJDb21wb25lbnQsIHVuZGVmaW5lZCwgY29udGFpbmVySW5qZWN0b3IpO1xuICAgICAgICBjb25zdCBjb250YWluZXJSZWY6IENvbXBvbmVudFJlZjxOYXR1cmFsRHJvcGRvd25Db250YWluZXJDb21wb25lbnQ+ID0gb3ZlcmxheVJlZi5hdHRhY2goY29udGFpbmVyUG9ydGFsKTtcblxuICAgICAgICBjb25zdCBkcm9wZG93bkNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcbiAgICAgICAgY29uc3QgZHJvcGRvd25SZWYgPSBuZXcgTmF0dXJhbERyb3Bkb3duUmVmKFxuICAgICAgICAgICAgZHJvcGRvd25Db250YWluZXIsXG4gICAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgICBjdXN0b21Qcm92aWRlcnMsXG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFN0YXJ0IGFuaW1hdGlvbiB0aGF0IHNob3dzIG1lbnVcbiAgICAgICAgZHJvcGRvd25Db250YWluZXIuc3RhcnRBbmltYXRpb24oKTtcblxuICAgICAgICBjb25zdCBjbG9zZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGlmIChkcm9wZG93blJlZi5jb21wb25lbnRJbnN0YW5jZS5pc1ZhbGlkKCkgJiYgZHJvcGRvd25SZWYuY29tcG9uZW50SW5zdGFuY2UuaXNEaXJ0eSgpKSB7XG4gICAgICAgICAgICAgICAgZHJvcGRvd25SZWYuY2xvc2Uoe1xuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IGRyb3Bkb3duUmVmLmNvbXBvbmVudEluc3RhbmNlLmdldENvbmRpdGlvbigpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkcm9wZG93blJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFdoZW4gcGFyZW50IGNsb3NlcywgcmVtb3ZlIG92ZXJsYXkgZnJvbSBkb20gYW5kIHVwZGF0ZSBcInJldHVyblwiIHZhbHVcbiAgICAgICAgZHJvcGRvd25Db250YWluZXIuY2xvc2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFdoZW4gY2xpY2sgb24gYmFja2Ryb3AsIHZhbGlkYXRlIHJlc3VsdC4uID9cbiAgICAgICAgb3ZlcmxheVJlZlxuICAgICAgICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKGRyb3Bkb3duQ29udGFpbmVyLmNsb3NlZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IGRyb3Bkb3duQ29udGFpbmVyLmNsb3NlKCkpO1xuXG4gICAgICAgIHJldHVybiBkcm9wZG93blJlZjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBidWlsZHMgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IG5lZWRlZCB0byBjcmVhdGUgdGhlIG92ZXJsYXksIHRoZSBPdmVybGF5U3RhdGUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTogT3ZlcmxheUNvbmZpZyB7XG4gICAgICAgIHJldHVybiBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLmdldFBvc2l0aW9uKGVsZW1lbnQpLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBvc2l0aW9uKGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheVxuICAgICAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKGVsZW1lbnQpXG4gICAgICAgICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0cnVlKVxuICAgICAgICAgICAgLndpdGhWaWV3cG9ydE1hcmdpbigzMClcbiAgICAgICAgICAgIC53aXRoUHVzaChmYWxzZSlcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXRZOiAxMCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSk7XG4gICAgfVxufVxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRixPQUFPLEVBQUMsZUFBZSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ25FLE9BQU8sRUFBMkIsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNySCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUNILCtCQUErQixFQUMvQixpQ0FBaUMsR0FFcEMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFTbEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXNCLHFCQUFxQixDQUFDLENBQUM7QUFLcEcsTUFBTSxPQUFPLHNCQUFzQjtJQUNkLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxJQUFJLENBQ1AsU0FBMkMsRUFDM0MsZ0JBQXlDLEVBQ3pDLGVBQWlDLEVBQ2pDLGtCQUEyQjtRQUUzQixpQkFBaUI7UUFDakIsTUFBTSxhQUFhLEdBQWlDO1lBQ2hELGtCQUFrQixFQUFFLGtCQUFrQjtTQUN6QyxDQUFDO1FBRUYsTUFBTSxlQUFlLEdBQXFCO1lBQ3RDO2dCQUNJLE9BQU8sRUFBRSwrQkFBK0I7Z0JBQ3hDLFFBQVEsRUFBRSxhQUFhO2FBQzFCO1NBQ0osQ0FB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UG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZ30gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBTdGF0aWNQcm92aWRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkfSBmcm9tICcuLi9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUudHlwZXMnO1xuaW1wb3J0IHtcbiAgICBOQVRVUkFMX0RST1BET1dOX0NPTlRBSU5FUl9EQVRBLFxuICAgIE5hdHVyYWxEcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBOYXR1cmFsRHJvcGRvd25Db250YWluZXJEYXRhLFxufSBmcm9tICcuL2Ryb3Bkb3duLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtOYXR1cmFsRHJvcGRvd25SZWZ9IGZyb20gJy4vZHJvcGRvd24tcmVmJztcbmltcG9ydCB7RHJvcGRvd25Db21wb25lbnR9IGZyb20gJy4uL3R5cGVzL2Ryb3Bkb3duLWNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIE5hdHVyYWxEcm9wZG93bkRhdGE8QyA9IGFueT4gPSB7XG4gICAgY29uZGl0aW9uOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHwgbnVsbDtcbiAgICBjb25maWd1cmF0aW9uOiBDO1xuICAgIHRpdGxlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IE5BVFVSQUxfRFJPUERPV05fREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOYXR1cmFsRHJvcGRvd25EYXRhPignTmF0dXJhbERyb3Bkb3duRGF0YScpO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRHJvcGRvd25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgICBwdWJsaWMgb3BlbihcbiAgICAgICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPERyb3Bkb3duQ29tcG9uZW50PixcbiAgICAgICAgY29ubmVjdGVkRWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIGN1c3RvbVByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSxcbiAgICAgICAgc2hvd1ZhbGlkYXRlQnV0dG9uOiBib29sZWFuLFxuICAgICk6IE5hdHVyYWxEcm9wZG93blJlZiB7XG4gICAgICAgIC8vIENvbnRhaW5lciBkYXRhXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckRhdGE6IE5hdHVyYWxEcm9wZG93bkNvbnRhaW5lckRhdGEgPSB7XG4gICAgICAgICAgICBzaG93VmFsaWRhdGVCdXR0b246IHNob3dWYWxpZGF0ZUJ1dHRvbixcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBpbmplY3Rpb25Ub2tlbnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogTkFUVVJBTF9EUk9QRE9XTl9DT05UQUlORVJfREFUQSxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogY29udGFpbmVyRGF0YSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgY29udGFpbmVySW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe3Byb3ZpZGVyczogaW5qZWN0aW9uVG9rZW5zLCBwYXJlbnQ6IHRoaXMuaW5qZWN0b3J9KTtcblxuICAgICAgICAvLyBDb250YWluZXJcbiAgICAgICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUodGhpcy5nZXRPdmVybGF5Q29uZmlnKGNvbm5lY3RlZEVsZW1lbnQpKTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChOYXR1cmFsRHJvcGRvd25Db250YWluZXJDb21wb25lbnQsIHVuZGVmaW5lZCwgY29udGFpbmVySW5qZWN0b3IpO1xuICAgICAgICBjb25zdCBjb250YWluZXJSZWY6IENvbXBvbmVudFJlZjxOYXR1cmFsRHJvcGRvd25Db250YWluZXJDb21wb25lbnQ+ID0gb3ZlcmxheVJlZi5hdHRhY2goY29udGFpbmVyUG9ydGFsKTtcblxuICAgICAgICBjb25zdCBkcm9wZG93bkNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcbiAgICAgICAgY29uc3QgZHJvcGRvd25SZWYgPSBuZXcgTmF0dXJhbERyb3Bkb3duUmVmKFxuICAgICAgICAgICAgZHJvcGRvd25Db250YWluZXIsXG4gICAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgICBjdXN0b21Qcm92aWRlcnMsXG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFN0YXJ0IGFuaW1hdGlvbiB0aGF0IHNob3dzIG1lbnVcbiAgICAgICAgZHJvcGRvd25Db250YWluZXIuc3RhcnRBbmltYXRpb24oKTtcblxuICAgICAgICBjb25zdCBjbG9zZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGlmIChkcm9wZG93blJlZi5jb21wb25lbnRJbnN0YW5jZS5pc1ZhbGlkKCkgJiYgZHJvcGRvd25SZWYuY29tcG9uZW50SW5zdGFuY2UuaXNEaXJ0eSgpKSB7XG4gICAgICAgICAgICAgICAgZHJvcGRvd25SZWYuY2xvc2Uoe1xuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IGRyb3Bkb3duUmVmLmNvbXBvbmVudEluc3RhbmNlLmdldENvbmRpdGlvbigpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkcm9wZG93blJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFdoZW4gcGFyZW50IGNsb3NlcywgcmVtb3ZlIG92ZXJsYXkgZnJvbSBkb20gYW5kIHVwZGF0ZSBcInJldHVyblwiIHZhbHVcbiAgICAgICAgZHJvcGRvd25Db250YWluZXIuY2xvc2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFdoZW4gY2xpY2sgb24gYmFja2Ryb3AsIHZhbGlkYXRlIHJlc3VsdC4uID9cbiAgICAgICAgb3ZlcmxheVJlZlxuICAgICAgICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKGRyb3Bkb3duQ29udGFpbmVyLmNsb3NlZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IGRyb3Bkb3duQ29udGFpbmVyLmNsb3NlKCkpO1xuXG4gICAgICAgIHJldHVybiBkcm9wZG93blJlZjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBidWlsZHMgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IG5lZWRlZCB0byBjcmVhdGUgdGhlIG92ZXJsYXksIHRoZSBPdmVybGF5U3RhdGUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTogT3ZlcmxheUNvbmZpZyB7XG4gICAgICAgIHJldHVybiBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLmdldFBvc2l0aW9uKGVsZW1lbnQpLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBvc2l0aW9uKGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheVxuICAgICAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKGVsZW1lbnQpXG4gICAgICAgICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyh0cnVlKVxuICAgICAgICAgICAgLndpdGhWaWV3cG9ydE1hcmdpbigzMClcbiAgICAgICAgICAgIC53aXRoUHVzaChmYWxzZSlcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXRZOiAxMCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSk7XG4gICAgfVxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, createComponent, createEnvironmentInjector, ElementRef, EnvironmentInjector, EventEmitter, HostListener, Input, Output, ViewChild, inject, } from '@angular/core';
1
+ import { Component, createComponent, createEnvironmentInjector, ElementRef, EnvironmentInjector, EventEmitter, HostListener, inject, Input, Output, ViewChild, } from '@angular/core';
2
2
  import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
3
3
  import { MatRipple, MatRippleModule } from '@angular/material/core';
4
4
  import { getFacetFromSelection } from '../classes/utils';
@@ -362,4 +362,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
362
362
  type: HostListener,
363
363
  args: ['focus']
364
364
  }] } });
365
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2VhcmNoL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULGVBQWUsRUFDZix5QkFBeUIsRUFDekIsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxFQUNULE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBZ0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RyxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQ0gscUJBQXFCLEVBRXJCLHNCQUFzQixHQUN6QixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBQyxzQkFBc0IsRUFBNkIsTUFBTSw0Q0FBNEMsQ0FBQztBQUk5RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIs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YSxvTEFDYixvQkFBb0Isa0dBQ3BCLGVBQWU7OzJGQUdWLHFCQUFxQjtrQkFoQmpDLFNBQVM7K0JBQ0ksZUFBZSxjQUdiLElBQUksV0FDUDt3QkFDTCxrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLGVBQWU7cUJBQ2xCOzhCQVU0QyxNQUFNO3NCQUFsRCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBS08sS0FBSztzQkFBL0MsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUtsQixXQUFXO3NCQUExQixLQUFLO2dCQUtVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBS1UsU0FBUztzQkFBeEIsS0FBSztnQkFLMEIsTUFBTTtzQkFBckMsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBS1AsYUFBYTtzQkFBNUIsS0FBSztnQkFLb0IsZUFBZTtzQkFBeEMsTUFBTTtnQkFLbUIsT0FBTztzQkFBaEMsTUFBTTtnQkFtREEsS0FBSztzQkFEWCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgY3JlYXRlQ29tcG9uZW50LFxuICAgIGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFN0YXRpY1Byb3ZpZGVyLFxuICAgIFZpZXdDaGlsZCxcbiAgICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Vycm9yU3RhdGVNYXRjaGVyLCBNYXRSaXBwbGUsIE1hdFJpcHBsZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge0ZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGR9IGZyb20gJy4uL2NsYXNzZXMvZ3JhcGhxbC1kb2N0cmluZS50eXBlcyc7XG5pbXBvcnQge2dldEZhY2V0RnJvbVNlbGVjdGlvbn0gZnJvbSAnLi4vY2xhc3Nlcy91dGlscyc7XG5pbXBvcnQge05hdHVyYWxEcm9wZG93blJlZn0gZnJvbSAnLi4vZHJvcGRvd24tY29udGFpbmVyL2Ryb3Bkb3duLXJlZic7XG5pbXBvcnQge1xuICAgIE5BVFVSQUxfRFJPUERPV05fREFUQSxcbiAgICBOYXR1cmFsRHJvcGRvd25EYXRhLFxuICAgIE5hdHVyYWxEcm9wZG93blNlcnZpY2UsXG59IGZyb20gJy4uL2Ryb3Bkb3duLWNvbnRhaW5lci9kcm9wZG93bi5zZXJ2aWNlJztcbmltcG9ydCB7RmFjZXRTZWxlY3RvckNvbXBvbmVudCwgRmFjZXRTZWxlY3RvckNvbmZpZ3VyYXRpb259IGZyb20gJy4uL2ZhY2V0LXNlbGVjdG9yL2ZhY2V0LXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQge0Ryb3Bkb3duQ29tcG9uZW50fSBmcm9tICcuLi90eXBlcy9kcm9wZG93bi1jb21wb25lbnQnO1xuaW1wb3J0IHtEcm9wZG93bkZhY2V0LCBGYWNldCwgRmxhZ0ZhY2V0LCBOYXR1cmFsU2VhcmNoRmFjZXRzfSBmcm9tICcuLi90eXBlcy9mYWNldCc7XG5pbXBvcnQge0Ryb3Bkb3duUmVzdWx0LCBOYXR1cmFsU2VhcmNoU2VsZWN0aW9ufSBmcm9tICcuLi90eXBlcy92YWx1ZXMnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge05hdHVyYWxJY29uRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9pY29uL2ljb24uZGlyZWN0aXZlJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge01hdEZvcm1GaWVsZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbi8vIFJlcXVpcmVkIHRvIGNoZWNrIGludmFsaWQgZmllbGRzIHdoZW4gaW5pdGlhbGl6aW5nIG5hdHVyYWwtc2VhcmNoXG5jbGFzcyBBbHdheXNFcnJvclN0YXRlTWF0Y2hlciBpbXBsZW1lbnRzIEVycm9yU3RhdGVNYXRjaGVyIHtcbiAgICBwdWJsaWMgaXNFcnJvclN0YXRlKGNvbnRyb2w6IEZvcm1Db250cm9sPHVua25vd24+IHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISFjb250cm9sICYmIGNvbnRyb2wuaW52YWxpZDtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzQ29tcG9uZW50VmFsaWQoY29tcG9uZW50OiBEcm9wZG93bkNvbXBvbmVudCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgaWYgKCFjb21wb25lbnQuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4ge2NvbXBvbmVudDogdHJ1ZX07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5zY3NzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRSaXBwbGVNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTmF0dXJhbEljb25EaXJlY3RpdmUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd25TZXJ2aWNlID0gaW5qZWN0KE5hdHVyYWxEcm9wZG93blNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgICAvKipcbiAgICAgKiBDb250cm9scyB0aGUgcmlwcGxlIGVmZmVjdCwgdXNlZCB3aGVuIG9wZW5pbmcgYSBkcm9wZG93blxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoTWF0UmlwcGxlLCB7c3RhdGljOiB0cnVlfSkgcHVibGljIHJpcHBsZSE6IE1hdFJpcHBsZTtcblxuICAgIC8qKlxuICAgICAqIE5hdGl2ZSBlbGVtZW50IHJlZiBmb3IgPGlucHV0PiByZWxhdGVkIHRvIHRoaXMgPG5hdHVyYWwtaW5wdXQ+IGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3N0YXRpYzogdHJ1ZX0pIHB1YmxpYyBpbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBmb3IgdGhpcyBmaWVsZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGZpZWxkIG9uIHdoaWNoIGRvIGEgZ2xvYmFsIHNlYXJjaCAod2l0aG91dCBmYWNldClcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc2VhcmNoRmllbGROYW1lID0gJ3NlYXJjaCc7XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3RlZCBzZXR0ZWQgZm9yIHRoaXMgY29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHNlbGVjdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQXZhaWxhYmxlIGZhY2V0cywgYWxsb3dzIHRoZSB1c2VyIHRvIHBpY2sgb25lLCB0aGFuIGdlbmVyYXRlZCB0aGVuIGEgc2VsZWN0aW9uXG4gICAgICovXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBmYWNldHMhOiBOYXR1cmFsU2VhcmNoRmFjZXRzO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBkaXNwbGF5IGluIHRoZSBkcm9wZG93biB0byBzZWxlY3QgdGhlIGZhY2V0XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRyb3Bkb3duVGl0bGUgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gdXNlciBhIGFkZGVkL3VwZGF0ZWQvZGVsZXRlZCBhIHNlYXJjaCAoZnJvbSBnbG9iYWwgY29udGV4dCBvciBmcm9tIGZhY2V0KVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxOYXR1cmFsU2VhcmNoU2VsZWN0aW9uPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiB1c2VyIHJlbW92ZXMgdGhlIHNlYXJjaCBieSBwcmVzc2luZyB0aGUgY3Jvc3MgaWNvblxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgY2xlYXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TmF0dXJhbElucHV0Q29tcG9uZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogU2VsZWN0ZWQgZmFjZXQgZnJvbSB0aGUgbGlzdCBvZiBhdmFpbGFibGUgZmFjZXRzXG4gICAgICovXG4gICAgcHVibGljIGZhY2V0OiBGYWNldCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQ29udHJvbGxlciBmb3IgdGhlIGlucHV0IGZpZWxkXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGZvcm1DdHJsID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tZXIgZXJyb3IgbWF0Y2hlciB0aGF0IHNob3VsZCB2YWxpZGF0ZSBvbiBlYWNoIGNoYW5nZSAoaW5jbHVkaW5nIGluaXRpYWxpc2F0aW9uKVxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBlcnJvck1hdGNoZXIgPSBuZXcgQWx3YXlzRXJyb3JTdGF0ZU1hdGNoZXIoKTtcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZSBvZiB0aGUgb3BlbmVkIGRyb3Bkb3duIGNvbnRhaW5lclxuICAgICAqL1xuICAgIHByaXZhdGUgZHJvcGRvd25SZWY6IE5hdHVyYWxEcm9wZG93blJlZiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIG9mIHRoZSBjb21wb25lbnQgaW5zaWRlIHRoZSBkcm9wZG93biBjb250YWluZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIGRyb3Bkb3duQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8RHJvcGRvd25Db21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiAgTWluaW11bSBpbnB1dCBsZW5ndGggKG51bWJlciBvZiBjaGFycylcbiAgICAgKiAgU2VlIGxlbmd0aCBhdHRyaWJ1dGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1pbkxlbmd0aCA9IDU7XG5cbiAgICAvKipcbiAgICAgKiBTaXplIG9mIHRoZSBpbnB1dCAobnVtYmVyIG9mIGNoYXJzKVxuICAgICAqIE1hdGNoIHRoZSBpbnB1dC5zaXplIGF0dHJpYnV0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBsZW5ndGggPSB0aGlzLm1pbkxlbmd0aDtcblxuICAgIC8qKlxuICAgICAqIEZsYWcsIHRoYXQsIGlmIG1hcmtlZCBhcyB5ZXMsIHByZXZlbnRzIHRoZSBvcGVuaW5nIG9mIHRoZSBkcm9wZG93blxuICAgICAqIElzIHVzZWQgdG8gcHJldmVudCBkcm9wZG93biBvcGVuaW5nIHdoZW4gbmF0dXJhbC1zZWFyY2ggdGFrZXMgdGhlIGZvY3VzIGZyb20gcGFyZW50IGNvbnRleHQgKGxpa2Ugb24gbW9kYWwgb3BlbmluZylcbiAgICAgKi9cbiAgICBwcml2YXRlIG5ldXRyYWxpemVEcm9wZG93bk9wZW5pbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBtYW5hZ2VtZW50IGZvciB0YWtpbmcgdGhlIGZvY3VzIGZyb20gcGFyZW50IGNvbnRleHRcbiAgICAgKiBXaGVuIGZvY3VzaW5nIG1hbnVhbGx5IG9uIHRoZSA8aW5wdXQ+LCBhIGRyb3Bkb3duIGlzIG9wZW5lZFxuICAgICAqIEJ1dCB3aGVuIHRoZSBmb2N1cyBpcyBnaXZlbiBmcm9tIGFuZ3VsYXIgaW4gYSBwYXJlbnQgY29udGV4dCAobGlrZSBhIGRpYWxvZykgdGhlIGRyb3Bkb3duIHdvdWxkIG9wZW4gYW5kIHdlIGRvbid0IHdhbnQgaXQuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZXV0cmFsaXplRHJvcGRvd25PcGVuaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMubmV1dHJhbGl6ZURyb3Bkb3duT3BlbmluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZhY2V0cyAmJiB0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsZWFyKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmFjZXRzICYmIHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmZhY2V0ID0gZ2V0RmFjZXRGcm9tU2VsZWN0aW9uKHRoaXMuZmFjZXRzLCB0aGlzLnNlbGVjdGlvbik7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd24oKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duQ29tcG9uZW50ID0gdGhpcy5jcmVhdGVDb21wb25lbnQodGhpcy5mYWNldCBhcyBEcm9wZG93bkZhY2V0PEZhY2V0U2VsZWN0b3JDb25maWd1cmF0aW9uPik7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWxpZGF0b3JzKFtpc0NvbXBvbmVudFZhbGlkKGRyb3Bkb3duQ29tcG9uZW50KV0pO1xuICAgICAgICAgICAgICAgIGRyb3Bkb3duQ29tcG9uZW50LnJlbmRlcmVkVmFsdWUuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNGbGFnKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1DdHJsLnNldFZhbHVlKCcnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5maWVsZCA9PT0gdGhpcy5zZWFyY2hGaWVsZE5hbWUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb25kaXRpb24ubGlrZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgLy8gZ2xvYmFsIHNlYXJjaCBtb2RlXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWx1ZSgnJyArIHRoaXMuc2VsZWN0aW9uLmNvbmRpdGlvbi5saWtlLnZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgY29tcG9uZW50IGlzIGludmFsaWQgKG5vIGZhY2V0IGFuZCBub3QgYSBnbG9iYWwgc2VhcmNoKSwgY2xlYXIgZnJvbSByZXN1bHQgYW5kIGRlc3Ryb3kgY29tcG9uZW50XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsZWFyKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9wZW5Ecm9wZG93bigpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZHJvcGRvd25SZWYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1DdHJsLnZhbHVlICE9PSAnJykge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd25SZWYuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gJGxvY2FsaXplYFJlY2hlcmNoZWA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwbGFjZWhvbGRlclNpemUgPSAodGhpcy5mYWNldCA/IHRoaXMuZmFjZXQuZGlzcGxheS5sZW5ndGggOiB0aGlzLnBsYWNlaG9sZGVyLmxlbmd0aCkgKiAwLjY2O1xuICAgICAgICB0aGlzLmxlbmd0aCA9IE1hdGgubWF4KHRoaXMubWluTGVuZ3RoLCBNYXRoLmNlaWwocGxhY2Vob2xkZXJTaXplKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bkNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBpZiAoIXRoaXMuZm9ybUN0cmwudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd24oKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUN0cmwudmFsaWQgJiYgdGhpcy5mb3JtQ3RybC5kaXJ0eSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLmdldFNlbGVjdGlvbih7bGlrZToge3ZhbHVlOiB0aGlzLmZvcm1DdHJsLnZhbHVlfX0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgLy8gUHJldmVudCBvcGVuaW5nIHRoZSBmYWNldHMgbGlzdCB3aGVuIHdlIGFyZSByZW1vdmluZyBhIGZhY2V0XG4gICAgICAgIHRoaXMubmV1dHJhbGl6ZURyb3Bkb3duT3BlbmluZyA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMubmV1dHJhbGl6ZURyb3Bkb3duT3BlbmluZyA9IGZhbHNlKSk7XG5cbiAgICAgICAgdGhpcy5mYWNldCA9IG51bGw7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uID0gbnVsbDtcbiAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgdGhpcy5jbGVhcmVkLmVtaXQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5Ecm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd25SZWYgfHwgdGhpcy5uZXV0cmFsaXplRHJvcGRvd25PcGVuaW5nKSB7XG4gICAgICAgICAgICAvLyBQcmV2ZW50IHRvIG9wZW4gbXVsdGlwbGUgZHJvcGRvd25zLlxuICAgICAgICAgICAgLy8gSGFwcGVucyBhcyB3ZSBvcGVuIG9uIFwiZm9jdXNcIiwgYW5kIGFsdCt0YWIgcmUtYWN0aXZhdGUgZm9jdXMgb24gYW4gZWxlbWVudCB0aGF0IGFscmVhZHkgaGFkXG4gICAgICAgICAgICAvLyBmb2N1cyB3aGVuIGxlYXZpbmcgd2luZG93IHdpdGggYW5vdGhlciBhbHQrdGFiXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxhdW5jaFJpcHBsZSgpO1xuXG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGZhY2V0IGFuZCBubyBzdHJpbmcgdHlwZWQsIHNob3cgcGFuZWwgdG8gc2VsZWN0IHRoZSBmYWNldFxuICAgICAgICBpZiAoIXRoaXMuZmFjZXQgJiYgIXRoaXMuZm9ybUN0cmwudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkZhY2V0U2VsZWN0b3JEcm9wZG93bih0aGlzLmRyb3Bkb3duVGl0bGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSWYgYSBmYWNldCBpcyBzZWxlY3RlZCwgb3BlbiBzcGVjaWZpYyBjb21wb25lbnQgZHJvcGRvd25cbiAgICAgICAgICAgIHRoaXMub3BlblR5cGVEcm9wZG93bigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzRHJvcGRvd24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhISh0aGlzLmZhY2V0ICYmICh0aGlzLmZhY2V0IGFzIERyb3Bkb3duRmFjZXQ8dW5rbm93bj4pLmNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRmxhZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuZmFjZXQgJiYgKHRoaXMuZmFjZXQgYXMgRmxhZ0ZhY2V0PEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQ+KS5jb25kaXRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50KGZhY2V0OiBEcm9wZG93bkZhY2V0PHVua25vd24+KTogRHJvcGRvd25Db21wb25lbnQge1xuICAgICAgICAvLyBBbHdheXMgZGVzdHJveSBhbmQgcmVjcmVhdGUgY29tcG9uZW50XG4gICAgICAgIC8vIFRvZG8gOiB0ZXN0IGlmIGZhY2V0IGhhcyBjaGFuZ2VkLCBpZiBub3QgcmUtdXNlIHRoZSBjb21wb25lbnRcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd25Db21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29uZGl0aW9uID0gdGhpcy5zZWxlY3Rpb24gPyB0aGlzLnNlbGVjdGlvbi5jb25kaXRpb24gOiBudWxsO1xuICAgICAgICBjb25zdCBkYXRhOiBOYXR1cmFsRHJvcGRvd25EYXRhID0ge1xuICAgICAgICAgICAgY29uZGl0aW9uOiBjb25kaXRpb24sXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uOiBmYWNldC5jb25maWd1cmF0aW9uLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gY3JlYXRlRW52aXJvbm1lbnRJbmplY3Rvcih0aGlzLmNyZWF0ZVByb3ZpZGVycyhkYXRhKSwgdGhpcy5pbmplY3Rvcik7XG4gICAgICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQoZmFjZXQuY29tcG9uZW50LCB7XG4gICAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiBpbmplY3RvcixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZHJvcGRvd25Db21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVQcm92aWRlcnMoZGF0YTogTmF0dXJhbERyb3Bkb3duRGF0YSk6IFN0YXRpY1Byb3ZpZGVyW10ge1xuICAgICAgICAvLyBDdXN0b21pemUgaW5qZWN0b3IgdG8gYWxsb3cgZGF0YSBhbmQgZHJvcGRvd24gcmVmZXJlbmNlIGluamVjdGlvbiBpbiBjb21wb25lbnRcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBOYXR1cmFsRHJvcGRvd25SZWYsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5BVFVSQUxfRFJPUERPV05fREFUQSxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogZGF0YSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsYXVuY2hSaXBwbGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJpcHBsZVJlZiA9IHRoaXMucmlwcGxlLmxhdW5jaCh7XG4gICAgICAgICAgICBwZXJzaXN0ZW50OiB0cnVlLFxuICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJpcHBsZVJlZi5mYWRlT3V0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuRmFjZXRTZWxlY3RvckRyb3Bkb3duKHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZhY2V0cyB8fCAodGhpcy5mYWNldHMgJiYgIXRoaXMuZmFjZXRzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRhdGE6IE5hdHVyYWxEcm9wZG93bkRhdGE8RmFjZXRTZWxlY3RvckNvbmZpZ3VyYXRpb24+ID0ge1xuICAgICAgICAgICAgY29uZGl0aW9uOiB7fSxcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgICBmYWNldHM6IHRoaXMuZmFjZXRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBpbmplY3RvclRva2VucyA9IHRoaXMuY3JlYXRlUHJvdmlkZXJzKGRhdGEpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duUmVmID0gdGhpcy5kcm9wZG93blNlcnZpY2Uub3BlbihGYWNldFNlbGVjdG9yQ29tcG9uZW50LCB0aGlzLmVsZW1lbnQsIGluamVjdG9yVG9rZW5zLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuZHJvcGRvd25SZWYuY2xvc2VkLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blJlZiA9IG51bGw7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmZhY2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RmFjZXQocmVzdWx0LmZhY2V0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5jb25kaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShyZXN1bHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuVHlwZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNEcm9wZG93bigpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkcm9wZG93bkZhY2V0ID0gdGhpcy5mYWNldCBhcyBEcm9wZG93bkZhY2V0PHVua25vd24+O1xuXG4gICAgICAgIGNvbnN0IGRhdGE6IE5hdHVyYWxEcm9wZG93bkRhdGEgPSB7XG4gICAgICAgICAgICBjb25kaXRpb246IHRoaXMuc2VsZWN0aW9uID8gdGhpcy5zZWxlY3Rpb24uY29uZGl0aW9uIDogbnVsbCxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246IGRyb3Bkb3duRmFjZXQuY29uZmlndXJhdGlvbixcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBpbmplY3RvclRva2VucyA9IHRoaXMuY3JlYXRlUHJvdmlkZXJzKGRhdGEpO1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSBkcm9wZG93bkZhY2V0LmNvbXBvbmVudDtcbiAgICAgICAgdGhpcy5kcm9wZG93blJlZiA9IHRoaXMuZHJvcGRvd25TZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICBpbmplY3RvclRva2VucyxcbiAgICAgICAgICAgIGRyb3Bkb3duRmFjZXQuc2hvd1ZhbGlkYXRlQnV0dG9uICE9PSB1bmRlZmluZWQgPyBkcm9wZG93bkZhY2V0LnNob3dWYWxpZGF0ZUJ1dHRvbiA6IHRydWUsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kcm9wZG93blJlZi5jbG9zZWQuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duUmVmID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRGYWNldChmYWNldDogRmFjZXQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mYWNldCA9IGZhY2V0O1xuXG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd24oKSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuVHlwZURyb3Bkb3duKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0ZsYWcoKSkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSh7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiAoZmFjZXQgYXMgRmxhZ0ZhY2V0PEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQ+KS5jb25kaXRpb24sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZShyZXN1bHQ6IERyb3Bkb3duUmVzdWx0KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZhY2V0KSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuZ2V0U2VsZWN0aW9uKHJlc3VsdC5jb25kaXRpb24pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0aW9uKGNvbmRpdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvblsnY29uZGl0aW9uJ10pOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uID0ge1xuICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmFjZXQgPyB0aGlzLmZhY2V0LmZpZWxkIDogdGhpcy5zZWFyY2hGaWVsZE5hbWUsXG4gICAgICAgICAgICBjb25kaXRpb246IGNvbmRpdGlvbixcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5mYWNldD8ubmFtZSkge1xuICAgICAgICAgICAgc2VsZWN0aW9uLm5hbWUgPSB0aGlzLmZhY2V0Lm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uO1xuICAgIH1cbn1cbiIsIjwhLS0gY2xpY2sgY29uZGl0aW9uIHNob3VsZCBtYXRjaCB0byBhbGxvdyBjbGljayBhY3Rpb24gb25seSB3aGVuIG5vIG90aGVyIGJ1dHRvbiBpcyB2aXNpYmxlIC0tPlxuPG1hdC1mb3JtLWZpZWxkICNmaWVsZCBtYXRSaXBwbGUgKGNsaWNrKT1cIiFzZWxlY3Rpb24gJiYgIShmYWNldCAmJiAhc2VsZWN0aW9uKSA/IG9wZW5Ecm9wZG93bigpIDogbnVsbFwiPlxuICAgIEBpZiAoZmFjZXQpIHtcbiAgICAgICAgPG1hdC1sYWJlbD57eyBmYWNldC5kaXNwbGF5IH19PC9tYXQtbGFiZWw+XG4gICAgfVxuICAgIEBpZiAoIWZhY2V0KSB7XG4gICAgICAgIDxtYXQtbGFiZWw+e3sgcGxhY2Vob2xkZXIgfX08L21hdC1sYWJlbD5cbiAgICB9XG5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIChibHVyKT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VhcmNoKCRldmVudClcIlxuICAgICAgICBbYXR0ci5zaXplXT1cImxlbmd0aFwiXG4gICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJlcnJvck1hdGNoZXJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUN0cmxcIlxuICAgICAgICBbcmVhZG9ubHldPVwiKGlzRHJvcGRvd24oKSAmJiAhIXNlbGVjdGlvbikgfHwgaXNGbGFnKClcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgLz5cblxuICAgIEBpZiAoIWZhY2V0ICYmICFzZWxlY3Rpb24pIHtcbiAgICAgICAgPG1hdC1pY29uIG5hdHVyYWxJY29uPVwic2VhcmNoXCIgbWF0SWNvblByZWZpeCAvPlxuICAgIH1cblxuICAgIEBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsZWFyKClcIiBtYXQtaWNvbi1idXR0b24gbWF0SWNvblN1ZmZpeD5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBuYXR1cmFsSWNvbj1cImNsb3NlXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgfVxuXG4gICAgQGlmIChmYWNldCAmJiAhc2VsZWN0aW9uKSB7XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsZWFyKClcIiBtYXQtaWNvbi1idXR0b24gbWF0SWNvblN1ZmZpeD5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBuYXR1cmFsSWNvbj1cInVuZG9cIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICB9XG48L21hdC1mb3JtLWZpZWxkPlxuPGRpdiBjbGFzcz1cImhpZGVcIj57eyBmb3JtQ3RybC52YWx1ZSA/IGZvcm1DdHJsLnZhbHVlIDogZmFjZXQgPyBmYWNldC5kaXNwbGF5IDogcGxhY2Vob2xkZXIgfX08L2Rpdj5cbiJdfQ==
365
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2VhcmNoL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULGVBQWUsRUFDZix5QkFBeUIsRUFDekIsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBZ0MsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RyxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQ0gscUJBQXFCLEVBRXJCLHNCQUFzQixHQUN6QixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBQyxzQkFBc0IsRUFBNkIsTUFBTSw0Q0FBNEMsQ0FBQztBQUk5RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIs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YSxvTEFDYixvQkFBb0Isa0dBQ3BCLGVBQWU7OzJGQUdWLHFCQUFxQjtrQkFoQmpDLFNBQVM7K0JBQ0ksZUFBZSxjQUdiLElBQUksV0FDUDt3QkFDTCxrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLGVBQWU7cUJBQ2xCOzhCQVU0QyxNQUFNO3NCQUFsRCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBS08sS0FBSztzQkFBL0MsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUtsQixXQUFXO3NCQUExQixLQUFLO2dCQUtVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBS1UsU0FBUztzQkFBeEIsS0FBSztnQkFLMEIsTUFBTTtzQkFBckMsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBS1AsYUFBYTtzQkFBNUIsS0FBSztnQkFLb0IsZUFBZTtzQkFBeEMsTUFBTTtnQkFLbUIsT0FBTztzQkFBaEMsTUFBTTtnQkFtREEsS0FBSztzQkFEWCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRSZWYsXG4gICAgY3JlYXRlQ29tcG9uZW50LFxuICAgIGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTdGF0aWNQcm92aWRlcixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Vycm9yU3RhdGVNYXRjaGVyLCBNYXRSaXBwbGUsIE1hdFJpcHBsZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge0ZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGR9IGZyb20gJy4uL2NsYXNzZXMvZ3JhcGhxbC1kb2N0cmluZS50eXBlcyc7XG5pbXBvcnQge2dldEZhY2V0RnJvbVNlbGVjdGlvbn0gZnJvbSAnLi4vY2xhc3Nlcy91dGlscyc7XG5pbXBvcnQge05hdHVyYWxEcm9wZG93blJlZn0gZnJvbSAnLi4vZHJvcGRvd24tY29udGFpbmVyL2Ryb3Bkb3duLXJlZic7XG5pbXBvcnQge1xuICAgIE5BVFVSQUxfRFJPUERPV05fREFUQSxcbiAgICBOYXR1cmFsRHJvcGRvd25EYXRhLFxuICAgIE5hdHVyYWxEcm9wZG93blNlcnZpY2UsXG59IGZyb20gJy4uL2Ryb3Bkb3duLWNvbnRhaW5lci9kcm9wZG93bi5zZXJ2aWNlJztcbmltcG9ydCB7RmFjZXRTZWxlY3RvckNvbXBvbmVudCwgRmFjZXRTZWxlY3RvckNvbmZpZ3VyYXRpb259IGZyb20gJy4uL2ZhY2V0LXNlbGVjdG9yL2ZhY2V0LXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQge0Ryb3Bkb3duQ29tcG9uZW50fSBmcm9tICcuLi90eXBlcy9kcm9wZG93bi1jb21wb25lbnQnO1xuaW1wb3J0IHtEcm9wZG93bkZhY2V0LCBGYWNldCwgRmxhZ0ZhY2V0LCBOYXR1cmFsU2VhcmNoRmFjZXRzfSBmcm9tICcuLi90eXBlcy9mYWNldCc7XG5pbXBvcnQge0Ryb3Bkb3duUmVzdWx0LCBOYXR1cmFsU2VhcmNoU2VsZWN0aW9ufSBmcm9tICcuLi90eXBlcy92YWx1ZXMnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge05hdHVyYWxJY29uRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9pY29uL2ljb24uZGlyZWN0aXZlJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge01hdEZvcm1GaWVsZE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbi8vIFJlcXVpcmVkIHRvIGNoZWNrIGludmFsaWQgZmllbGRzIHdoZW4gaW5pdGlhbGl6aW5nIG5hdHVyYWwtc2VhcmNoXG5jbGFzcyBBbHdheXNFcnJvclN0YXRlTWF0Y2hlciBpbXBsZW1lbnRzIEVycm9yU3RhdGVNYXRjaGVyIHtcbiAgICBwdWJsaWMgaXNFcnJvclN0YXRlKGNvbnRyb2w6IEZvcm1Db250cm9sPHVua25vd24+IHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISFjb250cm9sICYmIGNvbnRyb2wuaW52YWxpZDtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzQ29tcG9uZW50VmFsaWQoY29tcG9uZW50OiBEcm9wZG93bkNvbXBvbmVudCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgaWYgKCFjb21wb25lbnQuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4ge2NvbXBvbmVudDogdHJ1ZX07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5zY3NzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRSaXBwbGVNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTmF0dXJhbEljb25EaXJlY3RpdmUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd25TZXJ2aWNlID0gaW5qZWN0KE5hdHVyYWxEcm9wZG93blNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgICAvKipcbiAgICAgKiBDb250cm9scyB0aGUgcmlwcGxlIGVmZmVjdCwgdXNlZCB3aGVuIG9wZW5pbmcgYSBkcm9wZG93blxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoTWF0UmlwcGxlLCB7c3RhdGljOiB0cnVlfSkgcHVibGljIHJpcHBsZSE6IE1hdFJpcHBsZTtcblxuICAgIC8qKlxuICAgICAqIE5hdGl2ZSBlbGVtZW50IHJlZiBmb3IgPGlucHV0PiByZWxhdGVkIHRvIHRoaXMgPG5hdHVyYWwtaW5wdXQ+IGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3N0YXRpYzogdHJ1ZX0pIHB1YmxpYyBpbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBmb3IgdGhpcyBmaWVsZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGZpZWxkIG9uIHdoaWNoIGRvIGEgZ2xvYmFsIHNlYXJjaCAod2l0aG91dCBmYWNldClcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc2VhcmNoRmllbGROYW1lID0gJ3NlYXJjaCc7XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3RlZCBzZXR0ZWQgZm9yIHRoaXMgY29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHNlbGVjdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQXZhaWxhYmxlIGZhY2V0cywgYWxsb3dzIHRoZSB1c2VyIHRvIHBpY2sgb25lLCB0aGFuIGdlbmVyYXRlZCB0aGVuIGEgc2VsZWN0aW9uXG4gICAgICovXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBmYWNldHMhOiBOYXR1cmFsU2VhcmNoRmFjZXRzO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBkaXNwbGF5IGluIHRoZSBkcm9wZG93biB0byBzZWxlY3QgdGhlIGZhY2V0XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRyb3Bkb3duVGl0bGUgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gdXNlciBhIGFkZGVkL3VwZGF0ZWQvZGVsZXRlZCBhIHNlYXJjaCAoZnJvbSBnbG9iYWwgY29udGV4dCBvciBmcm9tIGZhY2V0KVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxOYXR1cmFsU2VhcmNoU2VsZWN0aW9uPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiB1c2VyIHJlbW92ZXMgdGhlIHNlYXJjaCBieSBwcmVzc2luZyB0aGUgY3Jvc3MgaWNvblxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgY2xlYXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TmF0dXJhbElucHV0Q29tcG9uZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogU2VsZWN0ZWQgZmFjZXQgZnJvbSB0aGUgbGlzdCBvZiBhdmFpbGFibGUgZmFjZXRzXG4gICAgICovXG4gICAgcHVibGljIGZhY2V0OiBGYWNldCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQ29udHJvbGxlciBmb3IgdGhlIGlucHV0IGZpZWxkXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGZvcm1DdHJsID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tZXIgZXJyb3IgbWF0Y2hlciB0aGF0IHNob3VsZCB2YWxpZGF0ZSBvbiBlYWNoIGNoYW5nZSAoaW5jbHVkaW5nIGluaXRpYWxpc2F0aW9uKVxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBlcnJvck1hdGNoZXIgPSBuZXcgQWx3YXlzRXJyb3JTdGF0ZU1hdGNoZXIoKTtcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZSBvZiB0aGUgb3BlbmVkIGRyb3Bkb3duIGNvbnRhaW5lclxuICAgICAqL1xuICAgIHByaXZhdGUgZHJvcGRvd25SZWY6IE5hdHVyYWxEcm9wZG93blJlZiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIG9mIHRoZSBjb21wb25lbnQgaW5zaWRlIHRoZSBkcm9wZG93biBjb250YWluZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIGRyb3Bkb3duQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8RHJvcGRvd25Db21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiAgTWluaW11bSBpbnB1dCBsZW5ndGggKG51bWJlciBvZiBjaGFycylcbiAgICAgKiAgU2VlIGxlbmd0aCBhdHRyaWJ1dGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1pbkxlbmd0aCA9IDU7XG5cbiAgICAvKipcbiAgICAgKiBTaXplIG9mIHRoZSBpbnB1dCAobnVtYmVyIG9mIGNoYXJzKVxuICAgICAqIE1hdGNoIHRoZSBpbnB1dC5zaXplIGF0dHJpYnV0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBsZW5ndGggPSB0aGlzLm1pbkxlbmd0aDtcblxuICAgIC8qKlxuICAgICAqIEZsYWcsIHRoYXQsIGlmIG1hcmtlZCBhcyB5ZXMsIHByZXZlbnRzIHRoZSBvcGVuaW5nIG9mIHRoZSBkcm9wZG93blxuICAgICAqIElzIHVzZWQgdG8gcHJldmVudCBkcm9wZG93biBvcGVuaW5nIHdoZW4gbmF0dXJhbC1zZWFyY2ggdGFrZXMgdGhlIGZvY3VzIGZyb20gcGFyZW50IGNvbnRleHQgKGxpa2Ugb24gbW9kYWwgb3BlbmluZylcbiAgICAgKi9cbiAgICBwcml2YXRlIG5ldXRyYWxpemVEcm9wZG93bk9wZW5pbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBtYW5hZ2VtZW50IGZvciB0YWtpbmcgdGhlIGZvY3VzIGZyb20gcGFyZW50IGNvbnRleHRcbiAgICAgKiBXaGVuIGZvY3VzaW5nIG1hbnVhbGx5IG9uIHRoZSA8aW5wdXQ+LCBhIGRyb3Bkb3duIGlzIG9wZW5lZFxuICAgICAqIEJ1dCB3aGVuIHRoZSBmb2N1cyBpcyBnaXZlbiBmcm9tIGFuZ3VsYXIgaW4gYSBwYXJlbnQgY29udGV4dCAobGlrZSBhIGRpYWxvZykgdGhlIGRyb3Bkb3duIHdvdWxkIG9wZW4gYW5kIHdlIGRvbid0IHdhbnQgaXQuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZXV0cmFsaXplRHJvcGRvd25PcGVuaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMubmV1dHJhbGl6ZURyb3Bkb3duT3BlbmluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZhY2V0cyAmJiB0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsZWFyKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmFjZXRzICYmIHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmZhY2V0ID0gZ2V0RmFjZXRGcm9tU2VsZWN0aW9uKHRoaXMuZmFjZXRzLCB0aGlzLnNlbGVjdGlvbik7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd24oKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duQ29tcG9uZW50ID0gdGhpcy5jcmVhdGVDb21wb25lbnQodGhpcy5mYWNldCBhcyBEcm9wZG93bkZhY2V0PEZhY2V0U2VsZWN0b3JDb25maWd1cmF0aW9uPik7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWxpZGF0b3JzKFtpc0NvbXBvbmVudFZhbGlkKGRyb3Bkb3duQ29tcG9uZW50KV0pO1xuICAgICAgICAgICAgICAgIGRyb3Bkb3duQ29tcG9uZW50LnJlbmRlcmVkVmFsdWUuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNGbGFnKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1DdHJsLnNldFZhbHVlKCcnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5maWVsZCA9PT0gdGhpcy5zZWFyY2hGaWVsZE5hbWUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb25kaXRpb24ubGlrZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgLy8gZ2xvYmFsIHNlYXJjaCBtb2RlXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWx1ZSgnJyArIHRoaXMuc2VsZWN0aW9uLmNvbmRpdGlvbi5saWtlLnZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgY29tcG9uZW50IGlzIGludmFsaWQgKG5vIGZhY2V0IGFuZCBub3QgYSBnbG9iYWwgc2VhcmNoKSwgY2xlYXIgZnJvbSByZXN1bHQgYW5kIGRlc3Ryb3kgY29tcG9uZW50XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsZWFyKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9wZW5Ecm9wZG93bigpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZHJvcGRvd25SZWYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1DdHJsLnZhbHVlICE9PSAnJykge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd25SZWYuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gJGxvY2FsaXplYFJlY2hlcmNoZWA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwbGFjZWhvbGRlclNpemUgPSAodGhpcy5mYWNldCA/IHRoaXMuZmFjZXQuZGlzcGxheS5sZW5ndGggOiB0aGlzLnBsYWNlaG9sZGVyLmxlbmd0aCkgKiAwLjY2O1xuICAgICAgICB0aGlzLmxlbmd0aCA9IE1hdGgubWF4KHRoaXMubWluTGVuZ3RoLCBNYXRoLmNlaWwocGxhY2Vob2xkZXJTaXplKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bkNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBpZiAoIXRoaXMuZm9ybUN0cmwudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd24oKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUN0cmwudmFsaWQgJiYgdGhpcy5mb3JtQ3RybC5kaXJ0eSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLmdldFNlbGVjdGlvbih7bGlrZToge3ZhbHVlOiB0aGlzLmZvcm1DdHJsLnZhbHVlfX0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgLy8gUHJldmVudCBvcGVuaW5nIHRoZSBmYWNldHMgbGlzdCB3aGVuIHdlIGFyZSByZW1vdmluZyBhIGZhY2V0XG4gICAgICAgIHRoaXMubmV1dHJhbGl6ZURyb3Bkb3duT3BlbmluZyA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMubmV1dHJhbGl6ZURyb3Bkb3duT3BlbmluZyA9IGZhbHNlKSk7XG5cbiAgICAgICAgdGhpcy5mYWNldCA9IG51bGw7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uID0gbnVsbDtcbiAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgdGhpcy5jbGVhcmVkLmVtaXQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5Ecm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd25SZWYgfHwgdGhpcy5uZXV0cmFsaXplRHJvcGRvd25PcGVuaW5nKSB7XG4gICAgICAgICAgICAvLyBQcmV2ZW50IHRvIG9wZW4gbXVsdGlwbGUgZHJvcGRvd25zLlxuICAgICAgICAgICAgLy8gSGFwcGVucyBhcyB3ZSBvcGVuIG9uIFwiZm9jdXNcIiwgYW5kIGFsdCt0YWIgcmUtYWN0aXZhdGUgZm9jdXMgb24gYW4gZWxlbWVudCB0aGF0IGFscmVhZHkgaGFkXG4gICAgICAgICAgICAvLyBmb2N1cyB3aGVuIGxlYXZpbmcgd2luZG93IHdpdGggYW5vdGhlciBhbHQrdGFiXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxhdW5jaFJpcHBsZSgpO1xuXG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGZhY2V0IGFuZCBubyBzdHJpbmcgdHlwZWQsIHNob3cgcGFuZWwgdG8gc2VsZWN0IHRoZSBmYWNldFxuICAgICAgICBpZiAoIXRoaXMuZmFjZXQgJiYgIXRoaXMuZm9ybUN0cmwudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkZhY2V0U2VsZWN0b3JEcm9wZG93bih0aGlzLmRyb3Bkb3duVGl0bGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSWYgYSBmYWNldCBpcyBzZWxlY3RlZCwgb3BlbiBzcGVjaWZpYyBjb21wb25lbnQgZHJvcGRvd25cbiAgICAgICAgICAgIHRoaXMub3BlblR5cGVEcm9wZG93bigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzRHJvcGRvd24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhISh0aGlzLmZhY2V0ICYmICh0aGlzLmZhY2V0IGFzIERyb3Bkb3duRmFjZXQ8dW5rbm93bj4pLmNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRmxhZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuZmFjZXQgJiYgKHRoaXMuZmFjZXQgYXMgRmxhZ0ZhY2V0PEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQ+KS5jb25kaXRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50KGZhY2V0OiBEcm9wZG93bkZhY2V0PHVua25vd24+KTogRHJvcGRvd25Db21wb25lbnQge1xuICAgICAgICAvLyBBbHdheXMgZGVzdHJveSBhbmQgcmVjcmVhdGUgY29tcG9uZW50XG4gICAgICAgIC8vIFRvZG8gOiB0ZXN0IGlmIGZhY2V0IGhhcyBjaGFuZ2VkLCBpZiBub3QgcmUtdXNlIHRoZSBjb21wb25lbnRcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd25Db21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29uZGl0aW9uID0gdGhpcy5zZWxlY3Rpb24gPyB0aGlzLnNlbGVjdGlvbi5jb25kaXRpb24gOiBudWxsO1xuICAgICAgICBjb25zdCBkYXRhOiBOYXR1cmFsRHJvcGRvd25EYXRhID0ge1xuICAgICAgICAgICAgY29uZGl0aW9uOiBjb25kaXRpb24sXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uOiBmYWNldC5jb25maWd1cmF0aW9uLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gY3JlYXRlRW52aXJvbm1lbnRJbmplY3Rvcih0aGlzLmNyZWF0ZVByb3ZpZGVycyhkYXRhKSwgdGhpcy5pbmplY3Rvcik7XG4gICAgICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQoZmFjZXQuY29tcG9uZW50LCB7XG4gICAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiBpbmplY3RvcixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZHJvcGRvd25Db21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVQcm92aWRlcnMoZGF0YTogTmF0dXJhbERyb3Bkb3duRGF0YSk6IFN0YXRpY1Byb3ZpZGVyW10ge1xuICAgICAgICAvLyBDdXN0b21pemUgaW5qZWN0b3IgdG8gYWxsb3cgZGF0YSBhbmQgZHJvcGRvd24gcmVmZXJlbmNlIGluamVjdGlvbiBpbiBjb21wb25lbnRcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBOYXR1cmFsRHJvcGRvd25SZWYsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5BVFVSQUxfRFJPUERPV05fREFUQSxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogZGF0YSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsYXVuY2hSaXBwbGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJpcHBsZVJlZiA9IHRoaXMucmlwcGxlLmxhdW5jaCh7XG4gICAgICAgICAgICBwZXJzaXN0ZW50OiB0cnVlLFxuICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJpcHBsZVJlZi5mYWRlT3V0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuRmFjZXRTZWxlY3RvckRyb3Bkb3duKHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZhY2V0cyB8fCAodGhpcy5mYWNldHMgJiYgIXRoaXMuZmFjZXRzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRhdGE6IE5hdHVyYWxEcm9wZG93bkRhdGE8RmFjZXRTZWxlY3RvckNvbmZpZ3VyYXRpb24+ID0ge1xuICAgICAgICAgICAgY29uZGl0aW9uOiB7fSxcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgICBmYWNldHM6IHRoaXMuZmFjZXRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBpbmplY3RvclRva2VucyA9IHRoaXMuY3JlYXRlUHJvdmlkZXJzKGRhdGEpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duUmVmID0gdGhpcy5kcm9wZG93blNlcnZpY2Uub3BlbihGYWNldFNlbGVjdG9yQ29tcG9uZW50LCB0aGlzLmVsZW1lbnQsIGluamVjdG9yVG9rZW5zLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuZHJvcGRvd25SZWYuY2xvc2VkLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blJlZiA9IG51bGw7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmZhY2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RmFjZXQocmVzdWx0LmZhY2V0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5jb25kaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShyZXN1bHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuVHlwZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNEcm9wZG93bigpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkcm9wZG93bkZhY2V0ID0gdGhpcy5mYWNldCBhcyBEcm9wZG93bkZhY2V0PHVua25vd24+O1xuXG4gICAgICAgIGNvbnN0IGRhdGE6IE5hdHVyYWxEcm9wZG93bkRhdGEgPSB7XG4gICAgICAgICAgICBjb25kaXRpb246IHRoaXMuc2VsZWN0aW9uID8gdGhpcy5zZWxlY3Rpb24uY29uZGl0aW9uIDogbnVsbCxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246IGRyb3Bkb3duRmFjZXQuY29uZmlndXJhdGlvbixcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBpbmplY3RvclRva2VucyA9IHRoaXMuY3JlYXRlUHJvdmlkZXJzKGRhdGEpO1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSBkcm9wZG93bkZhY2V0LmNvbXBvbmVudDtcbiAgICAgICAgdGhpcy5kcm9wZG93blJlZiA9IHRoaXMuZHJvcGRvd25TZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICBpbmplY3RvclRva2VucyxcbiAgICAgICAgICAgIGRyb3Bkb3duRmFjZXQuc2hvd1ZhbGlkYXRlQnV0dG9uICE9PSB1bmRlZmluZWQgPyBkcm9wZG93bkZhY2V0LnNob3dWYWxpZGF0ZUJ1dHRvbiA6IHRydWUsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kcm9wZG93blJlZi5jbG9zZWQuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duUmVmID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRGYWNldChmYWNldDogRmFjZXQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mYWNldCA9IGZhY2V0O1xuXG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd24oKSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuVHlwZURyb3Bkb3duKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0ZsYWcoKSkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSh7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiAoZmFjZXQgYXMgRmxhZ0ZhY2V0PEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQ+KS5jb25kaXRpb24sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZShyZXN1bHQ6IERyb3Bkb3duUmVzdWx0KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZhY2V0KSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuZ2V0U2VsZWN0aW9uKHJlc3VsdC5jb25kaXRpb24pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0aW9uKGNvbmRpdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvblsnY29uZGl0aW9uJ10pOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uID0ge1xuICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmFjZXQgPyB0aGlzLmZhY2V0LmZpZWxkIDogdGhpcy5zZWFyY2hGaWVsZE5hbWUsXG4gICAgICAgICAgICBjb25kaXRpb246IGNvbmRpdGlvbixcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5mYWNldD8ubmFtZSkge1xuICAgICAgICAgICAgc2VsZWN0aW9uLm5hbWUgPSB0aGlzLmZhY2V0Lm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uO1xuICAgIH1cbn1cbiIsIjwhLS0gY2xpY2sgY29uZGl0aW9uIHNob3VsZCBtYXRjaCB0byBhbGxvdyBjbGljayBhY3Rpb24gb25seSB3aGVuIG5vIG90aGVyIGJ1dHRvbiBpcyB2aXNpYmxlIC0tPlxuPG1hdC1mb3JtLWZpZWxkICNmaWVsZCBtYXRSaXBwbGUgKGNsaWNrKT1cIiFzZWxlY3Rpb24gJiYgIShmYWNldCAmJiAhc2VsZWN0aW9uKSA/IG9wZW5Ecm9wZG93bigpIDogbnVsbFwiPlxuICAgIEBpZiAoZmFjZXQpIHtcbiAgICAgICAgPG1hdC1sYWJlbD57eyBmYWNldC5kaXNwbGF5IH19PC9tYXQtbGFiZWw+XG4gICAgfVxuICAgIEBpZiAoIWZhY2V0KSB7XG4gICAgICAgIDxtYXQtbGFiZWw+e3sgcGxhY2Vob2xkZXIgfX08L21hdC1sYWJlbD5cbiAgICB9XG5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIChibHVyKT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VhcmNoKCRldmVudClcIlxuICAgICAgICBbYXR0ci5zaXplXT1cImxlbmd0aFwiXG4gICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJlcnJvck1hdGNoZXJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUN0cmxcIlxuICAgICAgICBbcmVhZG9ubHldPVwiKGlzRHJvcGRvd24oKSAmJiAhIXNlbGVjdGlvbikgfHwgaXNGbGFnKClcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgLz5cblxuICAgIEBpZiAoIWZhY2V0ICYmICFzZWxlY3Rpb24pIHtcbiAgICAgICAgPG1hdC1pY29uIG5hdHVyYWxJY29uPVwic2VhcmNoXCIgbWF0SWNvblByZWZpeCAvPlxuICAgIH1cblxuICAgIEBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsZWFyKClcIiBtYXQtaWNvbi1idXR0b24gbWF0SWNvblN1ZmZpeD5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBuYXR1cmFsSWNvbj1cImNsb3NlXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgfVxuXG4gICAgQGlmIChmYWNldCAmJiAhc2VsZWN0aW9uKSB7XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsZWFyKClcIiBtYXQtaWNvbi1idXR0b24gbWF0SWNvblN1ZmZpeD5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBuYXR1cmFsSWNvbj1cInVuZG9cIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICB9XG48L21hdC1mb3JtLWZpZWxkPlxuPGRpdiBjbGFzcz1cImhpZGVcIj57eyBmb3JtQ3RybC52YWx1ZSA/IGZvcm1DdHJsLnZhbHVlIDogZmFjZXQgPyBmYWNldC5kaXNwbGF5IDogcGxhY2Vob2xkZXIgfX08L2Rpdj5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output, inject } from '@angular/core';
1
+ import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
2
2
  import { deepClone } from '../classes/utils';
3
3
  import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
4
4
  import { map } from 'rxjs';
@@ -99,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
99
99
  }], selections: [{
100
100
  type: Input
101
101
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUczQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN6QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQWlCN0MsTUFBTSxPQUFPLHNCQUFzQjtJQUNkLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRWpFOztPQUVHO0lBQ2EsV0FBVyxH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QWU7c0JBQXhDLE1BQU07Z0JBV0ksVUFBVTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZGVlcENsb25lfSBmcm9tICcuLi9jbGFzc2VzL3V0aWxzJztcbmltcG9ydCB7TmF0dXJhbFNlYXJjaEZhY2V0c30gZnJvbSAnLi4vdHlwZXMvZmFjZXQnO1xuaW1wb3J0IHtHcm91cFNlbGVjdGlvbnMsIE5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zfSBmcm9tICcuLi90eXBlcy92YWx1ZXMnO1xuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TWF0RGl2aWRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQge05hdHVyYWxJY29uRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9pY29uL2ljb24uZGlyZWN0aXZlJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdFRvb2x0aXBNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge05hdHVyYWxHcm91cENvbXBvbmVudH0gZnJvbSAnLi4vZ3JvdXAvZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtc2VhcmNoJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vc2VhcmNoLmNvbXBvbmVudC5zY3NzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBOYXR1cmFsR3JvdXBDb21wb25lbnQsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTmF0dXJhbEljb25EaXJlY3RpdmUsXG4gICAgICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBicmVha3BvaW50T2JzZXJ2ZXIgPSBpbmplY3QoQnJlYWtwb2ludE9ic2VydmVyKTtcblxuICAgIC8qKlxuICAgICAqIFBsYWNlaG9sZGVyIGZvciBsYXN0IGlucHV0ICh0aGUgZnJlZSBzZWFyY2ggaW5wdXQpXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJGxvY2FsaXplYFJlY2hlcmNoZXJgO1xuXG4gICAgLyoqXG4gICAgICogRXhoYXVzdGl2ZSBsaXN0IG9mIGZhY2V0cyB0byBiZSB1c2VkIGluIHRoaXMgPG5hdHVyYWwtc2VhcmNoPlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmYWNldHM6IE5hdHVyYWxTZWFyY2hGYWNldHMgPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYWxsb3cgZW5kLXVzZXIgdG8gY3JlYXRlIG11bHRpcGxlIGBPUmAgZ3JvdXBzXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIG11bHRpcGxlR3JvdXBzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IGRpc3BsYXkgaW4gdGhlIGRyb3Bkb3duIHRvIHNlbGVjdCB0aGUgZmFjZXRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgZHJvcGRvd25UaXRsZSA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBzb21lIHNlbGVjdGlvbiBoYXMgYmVlbiBzZXR0ZWQgYnkgdGhlIHVzZXJcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TmF0dXJhbFNlYXJjaFNlbGVjdGlvbnM+KCk7XG5cbiAgICAvKipcbiAgICAgKiBDbGVhbmVkIGlucHV0dGVkIHNlbGVjdGlvbnMuIEFsbG93IHZhbGlkIHNlbGVjdGlvbnMgdG8gYmUgbWFuaXB1bGF0ZWQgaW5zaWRlIGNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBpbm5lclNlbGVjdGlvbnM6IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zID0gW1tdXTtcblxuICAgIC8qKlxuICAgICAqIElucHV0IHRvIGRpc3BsYXkgYXQgY29tcG9uZW50IGluaXRpYWxpc2F0aW9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHNlbGVjdGlvbnMoc2VsZWN0aW9uczogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMpIHtcbiAgICAgICAgdGhpcy5pbm5lclNlbGVjdGlvbnMgPSBzZWxlY3Rpb25zPy5bMF0gPyBkZWVwQ2xvbmUoc2VsZWN0aW9ucykgOiBbW11dO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWFkb25seSBpc01vYmlsZSA9IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuWFNtYWxsKS5waXBlKG1hcChyZXN1bHQgPT4gcmVzdWx0Lm1hdGNoZXMpKTtcblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZhY2V0cykge1xuICAgICAgICAgICAgdGhpcy5mYWNldHMgPSBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVHcm91cChncm91cFNlbGVjdGlvbnM6IEdyb3VwU2VsZWN0aW9ucywgZ3JvdXBJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXBTZWxlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmlubmVyU2VsZWN0aW9uc1tncm91cEluZGV4XVtpXSA9IGdyb3VwU2VsZWN0aW9uc1tpXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlubmVyU2VsZWN0aW9uc1tncm91cEluZGV4XS5sZW5ndGggPSBncm91cFNlbGVjdGlvbnMubGVuZ3RoO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJTZWxlY3Rpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkR3JvdXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5uZXJTZWxlY3Rpb25zLnB1c2goW10pO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJTZWxlY3Rpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlR3JvdXAoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmlubmVyU2VsZWN0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJTZWxlY3Rpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5uZXJTZWxlY3Rpb25zID0gW1tdXTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChbW11dKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibmF0dXJhbC1zZWFyY2hcIiBbbmdDbGFzc109XCJ7bW9iaWxlOiBpc01vYmlsZSB8IGFzeW5jLCBoYXNNdWx0aXBsZUdyb3VwczogaW5uZXJTZWxlY3Rpb25zLmxlbmd0aCA+IDF9XCI+XG4gICAgPGRpdiBjbGFzcz1cImdyb3Vwc1dyYXBwZXJcIj5cbiAgICAgICAgQGZvciAoZ3JvdXBTZWxlY3Rpb25zIG9mIGlubmVyU2VsZWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBXcmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPG5hdHVyYWwtZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJ1cGRhdGVHcm91cCgkZXZlbnQsICRpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICBbZmFjZXRzXT1cImZhY2V0c1wiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3Rpb25zXT1cImdyb3VwU2VsZWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtkcm9wZG93blRpdGxlXT1cImRyb3Bkb3duVGl0bGVcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVuZE9mUm93QnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaW5uZXJTZWxlY3Rpb25zLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlR3JvdXAoJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaTE4bi1tYXRUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlN1cHByaW1lciBjZSBncm91cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBuYXR1cmFsSWNvbj1cInJlbW92ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKCEkbGFzdCkge1xuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlciAvPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZW5kT2ZSb3dCdXR0b25cIj5cbiAgICAgICAgQGlmIChtdWx0aXBsZUdyb3Vwcykge1xuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiYWRkR3JvdXAoKVwiIG1hdC1pY29uLWJ1dHRvbiBpMThuLW1hdFRvb2x0aXAgbWF0VG9vbHRpcD1cIkFqb3V0ZXIgdW4gZ3JvdXBlXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIG5hdHVyYWxJY29uPVwiYWRkXCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKClcIlxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImNsZWFyLWJ1dHRvblwiXG4gICAgICAgICAgICBpMThuLW1hdFRvb2x0aXBcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJBbm51bGVyIGxhIHJlY2hlcmNoZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBuYXR1cmFsSWNvbj1cImNsb3NlXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUczQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN6QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQWlCN0MsTUFBTSxPQUFPLHNCQUFzQjtJQUNkLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRWpFOztPQUVHO0lBQ2EsV0FBVyxH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QWU7c0JBQXhDLE1BQU07Z0JBV0ksVUFBVTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZGVlcENsb25lfSBmcm9tICcuLi9jbGFzc2VzL3V0aWxzJztcbmltcG9ydCB7TmF0dXJhbFNlYXJjaEZhY2V0c30gZnJvbSAnLi4vdHlwZXMvZmFjZXQnO1xuaW1wb3J0IHtHcm91cFNlbGVjdGlvbnMsIE5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zfSBmcm9tICcuLi90eXBlcy92YWx1ZXMnO1xuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TWF0RGl2aWRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQge05hdHVyYWxJY29uRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9pY29uL2ljb24uZGlyZWN0aXZlJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdFRvb2x0aXBNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge05hdHVyYWxHcm91cENvbXBvbmVudH0gZnJvbSAnLi4vZ3JvdXAvZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtc2VhcmNoJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vc2VhcmNoLmNvbXBvbmVudC5zY3NzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBOYXR1cmFsR3JvdXBDb21wb25lbnQsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTmF0dXJhbEljb25EaXJlY3RpdmUsXG4gICAgICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBicmVha3BvaW50T2JzZXJ2ZXIgPSBpbmplY3QoQnJlYWtwb2ludE9ic2VydmVyKTtcblxuICAgIC8qKlxuICAgICAqIFBsYWNlaG9sZGVyIGZvciBsYXN0IGlucHV0ICh0aGUgZnJlZSBzZWFyY2ggaW5wdXQpXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJGxvY2FsaXplYFJlY2hlcmNoZXJgO1xuXG4gICAgLyoqXG4gICAgICogRXhoYXVzdGl2ZSBsaXN0IG9mIGZhY2V0cyB0byBiZSB1c2VkIGluIHRoaXMgPG5hdHVyYWwtc2VhcmNoPlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmYWNldHM6IE5hdHVyYWxTZWFyY2hGYWNldHMgPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYWxsb3cgZW5kLXVzZXIgdG8gY3JlYXRlIG11bHRpcGxlIGBPUmAgZ3JvdXBzXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIG11bHRpcGxlR3JvdXBzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IGRpc3BsYXkgaW4gdGhlIGRyb3Bkb3duIHRvIHNlbGVjdCB0aGUgZmFjZXRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgZHJvcGRvd25UaXRsZSA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBzb21lIHNlbGVjdGlvbiBoYXMgYmVlbiBzZXR0ZWQgYnkgdGhlIHVzZXJcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TmF0dXJhbFNlYXJjaFNlbGVjdGlvbnM+KCk7XG5cbiAgICAvKipcbiAgICAgKiBDbGVhbmVkIGlucHV0dGVkIHNlbGVjdGlvbnMuIEFsbG93IHZhbGlkIHNlbGVjdGlvbnMgdG8gYmUgbWFuaXB1bGF0ZWQgaW5zaWRlIGNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBpbm5lclNlbGVjdGlvbnM6IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb25zID0gW1tdXTtcblxuICAgIC8qKlxuICAgICAqIElucHV0IHRvIGRpc3BsYXkgYXQgY29tcG9uZW50IGluaXRpYWxpc2F0aW9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHNlbGVjdGlvbnMoc2VsZWN0aW9uczogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbnMpIHtcbiAgICAgICAgdGhpcy5pbm5lclNlbGVjdGlvbnMgPSBzZWxlY3Rpb25zPy5bMF0gPyBkZWVwQ2xvbmUoc2VsZWN0aW9ucykgOiBbW11dO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWFkb25seSBpc01vYmlsZSA9IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuWFNtYWxsKS5waXBlKG1hcChyZXN1bHQgPT4gcmVzdWx0Lm1hdGNoZXMpKTtcblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZhY2V0cykge1xuICAgICAgICAgICAgdGhpcy5mYWNldHMgPSBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVHcm91cChncm91cFNlbGVjdGlvbnM6IEdyb3VwU2VsZWN0aW9ucywgZ3JvdXBJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXBTZWxlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmlubmVyU2VsZWN0aW9uc1tncm91cEluZGV4XVtpXSA9IGdyb3VwU2VsZWN0aW9uc1tpXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlubmVyU2VsZWN0aW9uc1tncm91cEluZGV4XS5sZW5ndGggPSBncm91cFNlbGVjdGlvbnMubGVuZ3RoO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJTZWxlY3Rpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkR3JvdXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5uZXJTZWxlY3Rpb25zLnB1c2goW10pO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJTZWxlY3Rpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlR3JvdXAoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmlubmVyU2VsZWN0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuaW5uZXJTZWxlY3Rpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5uZXJTZWxlY3Rpb25zID0gW1tdXTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChbW11dKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibmF0dXJhbC1zZWFyY2hcIiBbbmdDbGFzc109XCJ7bW9iaWxlOiBpc01vYmlsZSB8IGFzeW5jLCBoYXNNdWx0aXBsZUdyb3VwczogaW5uZXJTZWxlY3Rpb25zLmxlbmd0aCA+IDF9XCI+XG4gICAgPGRpdiBjbGFzcz1cImdyb3Vwc1dyYXBwZXJcIj5cbiAgICAgICAgQGZvciAoZ3JvdXBTZWxlY3Rpb25zIG9mIGlubmVyU2VsZWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBXcmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPG5hdHVyYWwtZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJ1cGRhdGVHcm91cCgkZXZlbnQsICRpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICBbZmFjZXRzXT1cImZhY2V0c1wiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3Rpb25zXT1cImdyb3VwU2VsZWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtkcm9wZG93blRpdGxlXT1cImRyb3Bkb3duVGl0bGVcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVuZE9mUm93QnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaW5uZXJTZWxlY3Rpb25zLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlR3JvdXAoJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaTE4bi1tYXRUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlN1cHByaW1lciBjZSBncm91cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBuYXR1cmFsSWNvbj1cInJlbW92ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKCEkbGFzdCkge1xuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlciAvPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZW5kT2ZSb3dCdXR0b25cIj5cbiAgICAgICAgQGlmIChtdWx0aXBsZUdyb3Vwcykge1xuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiYWRkR3JvdXAoKVwiIG1hdC1pY29uLWJ1dHRvbiBpMThuLW1hdFRvb2x0aXAgbWF0VG9vbHRpcD1cIkFqb3V0ZXIgdW4gZ3JvdXBlXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIG5hdHVyYWxJY29uPVwiYWRkXCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKClcIlxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImNsZWFyLWJ1dHRvblwiXG4gICAgICAgICAgICBpMThuLW1hdFRvb2x0aXBcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJBbm51bGVyIGxhIHJlY2hlcmNoZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBuYXR1cmFsSWNvbj1cImNsb3NlXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, HostBinding, Input, ViewChild, inject } from '@angular/core';
1
+ import { Component, HostBinding, inject, Input, ViewChild } from '@angular/core';
2
2
  import { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
3
3
  import { NaturalSidenavService } from '../sidenav.service';
4
4
  import { CommonModule } from '@angular/common';
@@ -87,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
87
87
  type: ViewChild,
88
88
  args: [MatSidenav, { static: true }]
89
89
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LWNvbnRhaW5lci9zaWRlbmF2LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9zaWRlbmF2L3NpZGVuYXYtY29udGFpbmVyL3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQVksVUFBVSxFQUFFLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbEYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7O0FBVTdDLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDekIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRS9EOztPQUVHO0lBQzZCLElBQUksQ0FBVTtJQUU5Qzs7T0FFRztJQUNhLFFBQVEsR0FBMEIsT0FBTyxDQUFDO0lBRTFEOzs7T0FHRztJQUNhLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFFdkM7O09BRUc7SUFDYSxjQUFjLEdBQUcsR0FBRyxDQUFDO0lBRXJDOzs7T0FHRztJQUM0QyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRWhFOztPQUVHO0lBQzJDLFdBQVcsQ0FBYztJQUV2RSxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRU0sUUFBUTtRQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLElBQUk7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQyxDQUFDO3VHQXpFUSxnQ0FBZ0M7MkZBQWhDLGdDQUFnQyxpUkFKOUIsQ0FBQyxxQkFBcUIsQ0FBQyx1RUFxQ3ZCLFVBQVUsOERDOUN6QixndkJBa0JBLHFVRFBjLGdCQUFnQiwwWUFBRSxZQUFZOzsyRkFFL0IsZ0NBQWdDO2tCQVI1QyxTQUFTOytCQUNJLDJCQUEyQixhQUcxQixDQUFDLHFCQUFxQixDQUFDLGNBQ3RCLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQzs4QkFRVCxJQUFJO3NCQUFuQyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFLUCxRQUFRO3NCQUF2QixLQUFLO2dCQU1VLGVBQWU7c0JBQTlCLEtBQUs7Z0JBS1UsY0FBYztzQkFBN0IsS0FBSztnQkFNeUMsUUFBUTtzQkFBdEQsV0FBVzt1QkFBQyxnQkFBZ0I7O3NCQUFHLEtBQUs7Z0JBS1MsV0FBVztzQkFBeEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0RHJhd2VyLCBNYXRTaWRlbmF2LCBNYXRTaWRlbmF2TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7TmF0dXJhbFNpZGVuYXZTZXJ2aWNlfSBmcm9tICcuLi9zaWRlbmF2LnNlcnZpY2UnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1zaWRlbmF2LWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vc2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50LnNjc3MnLFxuICAgIHByb3ZpZGVyczogW05hdHVyYWxTaWRlbmF2U2VydmljZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTWF0U2lkZW5hdk1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNpZGVuYXZDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHJlYWRvbmx5IHNpZGVuYXZTZXJ2aWNlID0gaW5qZWN0KE5hdHVyYWxTaWRlbmF2U2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiBVbmlxdWUgaWRlbnRpZmllciB1c2VkIGZvciB0aGUgbG9jYWwgc3RvcmFnZVxuICAgICAqL1xuICAgIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgbmFtZSE6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBzaWRlIHRoYXQgdGhlIGRyYXdlciBpcyBhdHRhY2hlZCB0b1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwb3NpdGlvbjogTWF0RHJhd2VyWydwb3NpdGlvbiddID0gJ3N0YXJ0JztcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUgbGlzdGVucyB0byByb3V0ZSBjaGFuZ2VzIHRvIGNsb3NlIHNpZGUgbmF2IGFmdGVyIGEgcm91dGUgY2hhbmdlIGlmIG1vYmlsZSB2aWV3IGlzIGFjdGl2ZVxuICAgICAqIEFjdHVhbGx5IGEgbmF2aWdhdGlvbiB0byBjdXJyZW50IHJvdXRlIGRvZXMgbm90IGVtaXQgYSByb3V0ZSBjaGFuZ2UsIGFuZCB0aGUgc2lkZW5hdiBkb24ndCBjbG9zZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbW9iaWxlQXV0b0Nsb3NlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdpZHRoIG9mIHRoZSBtaW5pbWl6ZWQgbWVudVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtaW5pbWl6ZWRXaWR0aCA9IDE1MDtcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHByZXZlbnRzIFwibmF0aXZlXCIgbWF0ZXJpYWwgc2lkZW5hdiB0byBzY3JvbGwgYXQgY29udGFpbmVyIGxldmVsIGFuZCBkZWxlZ2F0ZXMgdGhlIHNjcm9sbCByZXNwb25zYWJpbGl0eSB0byB0aGUgdHJhbnNjbHVkZWRcbiAgICAgKiBjb250ZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLm5vLXNjcm9sbCcpIEBJbnB1dCgpIHB1YmxpYyBub1Njcm9sbCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSW5uZXIgXCJuYXRpdmVcIiBtYXRlcmlhbCBzaWRlbmF2XG4gICAgICovXG4gICAgQFZpZXdDaGlsZChNYXRTaWRlbmF2LCB7c3RhdGljOiB0cnVlfSkgcHVibGljIG1lbnVTaWRlbmF2ITogTWF0U2lkZW5hdjtcblxuICAgIHB1YmxpYyBnZXQgaXNNaW5pbWl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpZGVuYXZTZXJ2aWNlLmlzTWluaW1pemVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNNb2JpbGVWaWV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaWRlbmF2U2VydmljZS5pc01vYmlsZVZpZXcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UuaW5pdCh0aGlzLm5hbWUsIHRoaXMsIHRoaXMubW9iaWxlQXV0b0Nsb3NlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UuZGVzdHJveSh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnRvZ2dsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLm9wZW4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWluaW1pemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UubWluaW1pemUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwYW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLmV4cGFuZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVNaW5pbWl6ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UudG9nZ2xlTWluaW1pemVkKCk7XG4gICAgfVxufVxuIiwiPG1hdC1zaWRlbmF2LWNvbnRhaW5lciAoYmFja2Ryb3BDbGljayk9XCJzaWRlbmF2U2VydmljZS5zZXRPcGVuZWQoZmFsc2UpXCI+XG4gICAgPG1hdC1zaWRlbmF2XG4gICAgICAgIFttb2RlXT1cInNpZGVuYXZTZXJ2aWNlLmFjdGl2ZU1vZGVcIlxuICAgICAgICBbbmdDbGFzc109XCJzaWRlbmF2U2VydmljZS5pc01pbmltaXplZCA/ICdtZW51TWluaW1pemVkJyA6ICcnXCJcbiAgICAgICAgW29wZW5lZF09XCJzaWRlbmF2U2VydmljZS5pc09wZW5lZFwiXG4gICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwic2lkZW5hdlNlcnZpY2UuaXNNaW5pbWl6ZWQgJiYgbWluaW1pemVkV2lkdGggPyBtaW5pbWl6ZWRXaWR0aCA6IG51bGxcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwic2lkZW5hdlNlcnZpY2UuaXNNaW5pbWl6ZWQgJiYgbWluaW1pemVkV2lkdGggPyBtaW5pbWl6ZWRXaWR0aCA6IG51bGxcIlxuICAgICAgICBbcG9zaXRpb25dPVwicG9zaXRpb25cIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibmF0dXJhbC1zaWRlbmF2XCIgLz5cbiAgICA8L21hdC1zaWRlbmF2PlxuXG4gICAgPG1hdC1zaWRlbmF2LWNvbnRlbnQ+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuYXR1cmFsLXNpZGVuYXYtY29udGVudFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXNpZGVuYXYtY29udGVudD5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LWNvbnRhaW5lci9zaWRlbmF2LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9zaWRlbmF2L3NpZGVuYXYtY29udGFpbmVyL3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQVksVUFBVSxFQUFFLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbEYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7O0FBVTdDLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDekIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRS9EOztPQUVHO0lBQzZCLElBQUksQ0FBVTtJQUU5Qzs7T0FFRztJQUNhLFFBQVEsR0FBMEIsT0FBTyxDQUFDO0lBRTFEOzs7T0FHRztJQUNhLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFFdkM7O09BRUc7SUFDYSxjQUFjLEdBQUcsR0FBRyxDQUFDO0lBRXJDOzs7T0FHRztJQUM0QyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRWhFOztPQUVHO0lBQzJDLFdBQVcsQ0FBYztJQUV2RSxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRU0sUUFBUTtRQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLElBQUk7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQyxDQUFDO3VHQXpFUSxnQ0FBZ0M7MkZBQWhDLGdDQUFnQyxpUkFKOUIsQ0FBQyxxQkFBcUIsQ0FBQyx1RUFxQ3ZCLFVBQVUsOERDOUN6QixndkJBa0JBLHFVRFBjLGdCQUFnQiwwWUFBRSxZQUFZOzsyRkFFL0IsZ0NBQWdDO2tCQVI1QyxTQUFTOytCQUNJLDJCQUEyQixhQUcxQixDQUFDLHFCQUFxQixDQUFDLGNBQ3RCLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQzs4QkFRVCxJQUFJO3NCQUFuQyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFLUCxRQUFRO3NCQUF2QixLQUFLO2dCQU1VLGVBQWU7c0JBQTlCLEtBQUs7Z0JBS1UsY0FBYztzQkFBN0IsS0FBSztnQkFNeUMsUUFBUTtzQkFBdEQsV0FBVzt1QkFBQyxnQkFBZ0I7O3NCQUFHLEtBQUs7Z0JBS1MsV0FBVztzQkFBeEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0RHJhd2VyLCBNYXRTaWRlbmF2LCBNYXRTaWRlbmF2TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7TmF0dXJhbFNpZGVuYXZTZXJ2aWNlfSBmcm9tICcuLi9zaWRlbmF2LnNlcnZpY2UnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1zaWRlbmF2LWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vc2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50LnNjc3MnLFxuICAgIHByb3ZpZGVyczogW05hdHVyYWxTaWRlbmF2U2VydmljZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTWF0U2lkZW5hdk1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNpZGVuYXZDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHJlYWRvbmx5IHNpZGVuYXZTZXJ2aWNlID0gaW5qZWN0KE5hdHVyYWxTaWRlbmF2U2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiBVbmlxdWUgaWRlbnRpZmllciB1c2VkIGZvciB0aGUgbG9jYWwgc3RvcmFnZVxuICAgICAqL1xuICAgIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgbmFtZSE6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBzaWRlIHRoYXQgdGhlIGRyYXdlciBpcyBhdHRhY2hlZCB0b1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwb3NpdGlvbjogTWF0RHJhd2VyWydwb3NpdGlvbiddID0gJ3N0YXJ0JztcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUgbGlzdGVucyB0byByb3V0ZSBjaGFuZ2VzIHRvIGNsb3NlIHNpZGUgbmF2IGFmdGVyIGEgcm91dGUgY2hhbmdlIGlmIG1vYmlsZSB2aWV3IGlzIGFjdGl2ZVxuICAgICAqIEFjdHVhbGx5IGEgbmF2aWdhdGlvbiB0byBjdXJyZW50IHJvdXRlIGRvZXMgbm90IGVtaXQgYSByb3V0ZSBjaGFuZ2UsIGFuZCB0aGUgc2lkZW5hdiBkb24ndCBjbG9zZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbW9iaWxlQXV0b0Nsb3NlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdpZHRoIG9mIHRoZSBtaW5pbWl6ZWQgbWVudVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtaW5pbWl6ZWRXaWR0aCA9IDE1MDtcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHByZXZlbnRzIFwibmF0aXZlXCIgbWF0ZXJpYWwgc2lkZW5hdiB0byBzY3JvbGwgYXQgY29udGFpbmVyIGxldmVsIGFuZCBkZWxlZ2F0ZXMgdGhlIHNjcm9sbCByZXNwb25zYWJpbGl0eSB0byB0aGUgdHJhbnNjbHVkZWRcbiAgICAgKiBjb250ZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLm5vLXNjcm9sbCcpIEBJbnB1dCgpIHB1YmxpYyBub1Njcm9sbCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSW5uZXIgXCJuYXRpdmVcIiBtYXRlcmlhbCBzaWRlbmF2XG4gICAgICovXG4gICAgQFZpZXdDaGlsZChNYXRTaWRlbmF2LCB7c3RhdGljOiB0cnVlfSkgcHVibGljIG1lbnVTaWRlbmF2ITogTWF0U2lkZW5hdjtcblxuICAgIHB1YmxpYyBnZXQgaXNNaW5pbWl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpZGVuYXZTZXJ2aWNlLmlzTWluaW1pemVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNNb2JpbGVWaWV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaWRlbmF2U2VydmljZS5pc01vYmlsZVZpZXcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UuaW5pdCh0aGlzLm5hbWUsIHRoaXMsIHRoaXMubW9iaWxlQXV0b0Nsb3NlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UuZGVzdHJveSh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnRvZ2dsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2U2VydmljZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLm9wZW4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWluaW1pemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UubWluaW1pemUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwYW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLmV4cGFuZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVNaW5pbWl6ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lkZW5hdlNlcnZpY2UudG9nZ2xlTWluaW1pemVkKCk7XG4gICAgfVxufVxuIiwiPG1hdC1zaWRlbmF2LWNvbnRhaW5lciAoYmFja2Ryb3BDbGljayk9XCJzaWRlbmF2U2VydmljZS5zZXRPcGVuZWQoZmFsc2UpXCI+XG4gICAgPG1hdC1zaWRlbmF2XG4gICAgICAgIFttb2RlXT1cInNpZGVuYXZTZXJ2aWNlLmFjdGl2ZU1vZGVcIlxuICAgICAgICBbbmdDbGFzc109XCJzaWRlbmF2U2VydmljZS5pc01pbmltaXplZCA/ICdtZW51TWluaW1pemVkJyA6ICcnXCJcbiAgICAgICAgW29wZW5lZF09XCJzaWRlbmF2U2VydmljZS5pc09wZW5lZFwiXG4gICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwic2lkZW5hdlNlcnZpY2UuaXNNaW5pbWl6ZWQgJiYgbWluaW1pemVkV2lkdGggPyBtaW5pbWl6ZWRXaWR0aCA6IG51bGxcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwic2lkZW5hdlNlcnZpY2UuaXNNaW5pbWl6ZWQgJiYgbWluaW1pemVkV2lkdGggPyBtaW5pbWl6ZWRXaWR0aCA6IG51bGxcIlxuICAgICAgICBbcG9zaXRpb25dPVwicG9zaXRpb25cIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibmF0dXJhbC1zaWRlbmF2XCIgLz5cbiAgICA8L21hdC1zaWRlbmF2PlxuXG4gICAgPG1hdC1zaWRlbmF2LWNvbnRlbnQ+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuYXR1cmFsLXNpZGVuYXYtY29udGVudFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXNpZGVuYXYtY29udGVudD5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Apollo, gql } from 'apollo-angular';
2
- import { Injectable, inject } from '@angular/core';
2
+ import { inject, Injectable } from '@angular/core';
3
3
  import { map } from 'rxjs/operators';
4
4
  import * as i0 from "@angular/core";
5
5
  const enumTypeQuery = gql `
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
61
61
  providedIn: 'root',
62
62
  }]
63
63
  }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL3NlcnZpY2VzL2VudW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbkMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O0NBVXhCLENBQUM7QUFzQkYsTUFBTSxPQUFPLGtCQUFrQjtJQUNWLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFekM7O09BRUc7SUFDSSxHQUFHLENBQUMsSUFBWTtRQUNuQixnQ0FBZ0M7UUFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNiLEtBQUssQ0FBVztZQUNiLEtBQUssRUFBRSxhQUFhO1lBQ3BCLFNBQVMsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUM7WUFDdkIsV0FBVyxFQUFFLGFBQWE7U0FDN0IsQ0FBQzthQUNELElBQUksQ0FDRCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDVCxNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUM7WUFDM0IsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDakMsS0FBSyxNQUFNLFNBQVMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDcEQsTUFBTSxDQUFDLElBQUksQ0FBQzt3QkFDUixLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUk7d0JBQ3JCLElBQUksRUFBRSxTQUFTLENBQUMsV0FBVyxJQUFJLEVBQUU7cUJBQ3BDLENBQUMsQ0FBQztnQkFDUCxDQUFDO1lBQ0wsQ0FBQztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZLENBQUMsS0FBYSxFQUFFLFFBQWdCO1FBQy9DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNULEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztvQkFDcEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNsQixDQUFDO1lBQ0wsQ0FBQztZQUVELE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7dUdBOUNRLGtCQUFrQjsyR0FBbEIsa0JBQWtCLGNBRmYsTUFBTTs7MkZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBvbGxvLCBncWx9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBlbnVtVHlwZVF1ZXJ5ID0gZ3FsYFxuICAgIHF1ZXJ5IEVudW1UeXBlKCRuYW1lOiBTdHJpbmchKSB7XG4gICAgICAgIF9fdHlwZShuYW1lOiAkbmFtZSkge1xuICAgICAgICAgICAgX190eXBlbmFtZVxuICAgICAgICAgICAgZW51bVZhbHVlcyB7XG4gICAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG50eXBlIEVudW1UeXBlID0ge1xuICAgIF9fdHlwZTogbnVsbCB8IHtcbiAgICAgICAgX190eXBlbmFtZTogc3RyaW5nO1xuICAgICAgICBlbnVtVmFsdWVzOlxuICAgICAgICAgICAgfCBudWxsXG4gICAgICAgICAgICB8IHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBudWxsIHwgc3RyaW5nO1xuICAgICAgICAgICAgICB9W107XG4gICAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIElFbnVtID0ge1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xufTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEVudW1TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwb2xsbyA9IGluamVjdChBcG9sbG8pO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgbGlzdCBvZiBvYnNlcnZhYmxlIGVudW1lcmFibGVzIGNvbnNpZGVyaW5nIHRoZSBnaXZlbiBuYW1lXG4gICAgICovXG4gICAgcHVibGljIGdldChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElFbnVtW10+IHtcbiAgICAgICAgLy8gTG9hZCBwb3NzaWJsZSBhY3Rpb24gc3RhdHVzZXNcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBvbGxvXG4gICAgICAgICAgICAucXVlcnk8RW51bVR5cGU+KHtcbiAgICAgICAgICAgICAgICBxdWVyeTogZW51bVR5cGVRdWVyeSxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtuYW1lOiBuYW1lfSxcbiAgICAgICAgICAgICAgICBmZXRjaFBvbGljeTogJ2NhY2hlLWZpcnN0JyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVzOiBJRW51bVtdID0gW107XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZGF0YS5fX3R5cGU/LmVudW1WYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZW51bVZhbHVlIG9mIHJlc3VsdC5kYXRhLl9fdHlwZS5lbnVtVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZW51bVZhbHVlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGVudW1WYWx1ZS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGVudW0gdXNlci1mcmllbmRseSBuYW1lLCBpbnN0ZWFkIG9mIGl0cyB2YWx1ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VmFsdWVOYW1lKHZhbHVlOiBzdHJpbmcsIGVudW1OYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoZW51bU5hbWUpLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsdWVzID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHYgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2LnZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHYubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL3NlcnZpY2VzL2VudW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbkMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O0NBVXhCLENBQUM7QUFzQkYsTUFBTSxPQUFPLGtCQUFrQjtJQUNWLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFekM7O09BRUc7SUFDSSxHQUFHLENBQUMsSUFBWTtRQUNuQixnQ0FBZ0M7UUFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNiLEtBQUssQ0FBVztZQUNiLEtBQUssRUFBRSxhQUFhO1lBQ3BCLFNBQVMsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUM7WUFDdkIsV0FBVyxFQUFFLGFBQWE7U0FDN0IsQ0FBQzthQUNELElBQUksQ0FDRCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDVCxNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUM7WUFDM0IsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDakMsS0FBSyxNQUFNLFNBQVMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDcEQsTUFBTSxDQUFDLElBQUksQ0FBQzt3QkFDUixLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUk7d0JBQ3JCLElBQUksRUFBRSxTQUFTLENBQUMsV0FBVyxJQUFJLEVBQUU7cUJBQ3BDLENBQUMsQ0FBQztnQkFDUCxDQUFDO1lBQ0wsQ0FBQztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZLENBQUMsS0FBYSxFQUFFLFFBQWdCO1FBQy9DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNULEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztvQkFDcEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNsQixDQUFDO1lBQ0wsQ0FBQztZQUVELE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7dUdBOUNRLGtCQUFrQjsyR0FBbEIsa0JBQWtCLGNBRmYsTUFBTTs7MkZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBvbGxvLCBncWx9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7aW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBlbnVtVHlwZVF1ZXJ5ID0gZ3FsYFxuICAgIHF1ZXJ5IEVudW1UeXBlKCRuYW1lOiBTdHJpbmchKSB7XG4gICAgICAgIF9fdHlwZShuYW1lOiAkbmFtZSkge1xuICAgICAgICAgICAgX190eXBlbmFtZVxuICAgICAgICAgICAgZW51bVZhbHVlcyB7XG4gICAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG50eXBlIEVudW1UeXBlID0ge1xuICAgIF9fdHlwZTogbnVsbCB8IHtcbiAgICAgICAgX190eXBlbmFtZTogc3RyaW5nO1xuICAgICAgICBlbnVtVmFsdWVzOlxuICAgICAgICAgICAgfCBudWxsXG4gICAgICAgICAgICB8IHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBudWxsIHwgc3RyaW5nO1xuICAgICAgICAgICAgICB9W107XG4gICAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIElFbnVtID0ge1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xufTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEVudW1TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwb2xsbyA9IGluamVjdChBcG9sbG8pO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgbGlzdCBvZiBvYnNlcnZhYmxlIGVudW1lcmFibGVzIGNvbnNpZGVyaW5nIHRoZSBnaXZlbiBuYW1lXG4gICAgICovXG4gICAgcHVibGljIGdldChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElFbnVtW10+IHtcbiAgICAgICAgLy8gTG9hZCBwb3NzaWJsZSBhY3Rpb24gc3RhdHVzZXNcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBvbGxvXG4gICAgICAgICAgICAucXVlcnk8RW51bVR5cGU+KHtcbiAgICAgICAgICAgICAgICBxdWVyeTogZW51bVR5cGVRdWVyeSxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtuYW1lOiBuYW1lfSxcbiAgICAgICAgICAgICAgICBmZXRjaFBvbGljeTogJ2NhY2hlLWZpcnN0JyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVzOiBJRW51bVtdID0gW107XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZGF0YS5fX3R5cGU/LmVudW1WYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZW51bVZhbHVlIG9mIHJlc3VsdC5kYXRhLl9fdHlwZS5lbnVtVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZW51bVZhbHVlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGVudW1WYWx1ZS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGVudW0gdXNlci1mcmllbmRseSBuYW1lLCBpbnN0ZWFkIG9mIGl0cyB2YWx1ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VmFsdWVOYW1lKHZhbHVlOiBzdHJpbmcsIGVudW1OYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoZW51bU5hbWUpLnBpcGUoXG4gICAgICAgICAgICBtYXAodmFsdWVzID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHYgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2LnZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHYubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Apollo, gql } from 'apollo-angular';
2
- import { Injectable, inject } from '@angular/core';
2
+ import { inject, Injectable } from '@angular/core';
3
3
  import { clone } from 'lodash-es';
4
4
  import { forkJoin, of } from 'rxjs';
5
5
  import { map, switchMap } from 'rxjs/operators';
@@ -151,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
151
151
  providedIn: 'root',
152
152
  }]
153
153
  }] });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1tdXRhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL3NlcnZpY2VzL2xpbmstbXV0YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFDLFFBQVEsRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FnQnZCLENBQUM7QUF5Q0YsTUFBTSxPQUFPLDBCQUEwQjtJQUNsQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXpDOztPQUVHO0lBQ0ssWUFBWSxDQUFjO0lBRWxDOztPQUVHO0lBQ0ksSUFBSSxDQUNQLElBQW9CLEVBQ3BCLElBQW9CLEVBQ3BCLFlBQTJCLElBQUksRUFDL0IsWUFBcUIsRUFBRTtRQUV2QixrREFBa0Q7UUFDbEQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXpDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUN4RSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENB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Q3BCLElBQW9CLEVBQ3BCLFlBQXFCLEVBQUU7UUFFdkIsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLEtBQUssQ0FBQztRQUNWLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pDLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUMzQixLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDSixLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDM0IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQy9CLENBQUM7UUFDRCxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMzQixTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUUzQixJQUFJLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM3QixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxtQkFBbUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzdFLENBQUM7UUFFRCxPQUFPO2NBQ0QsUUFBUSxDQUFDLElBQUksSUFBSSxtQkFBbUI7OztVQUd4QyxDQUFDO0lBQ1AsQ0FBQzt1R0FyS1EsMEJBQTBCOzJHQUExQiwwQkFBMEIsY0FGdkIsTUFBTTs7MkZBRVQsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBvbGxvLCBncWx9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7RmV0Y2hSZXN1bHR9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHtJbmplY3RhYmxlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjbG9uZX0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7Zm9ya0pvaW4sIE9ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TGl0ZXJhbH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHt1cHBlckNhc2VGaXJzdExldHRlcn0gZnJvbSAnLi4vY2xhc3Nlcy91dGlsaXR5JztcblxuLyoqXG4gKiBRdWVyeSB0byBnZXQgbGlzdCBvZiBtdXRhdGlvbnNcbiAqL1xuY29uc3QgcXVlcmllc1F1ZXJ5ID0gZ3FsYFxuICAgIHF1ZXJ5IE11dGF0aW9ucyB7XG4gICAgICAgIF9fdHlwZShuYW1lOiBcIk11dGF0aW9uXCIpIHtcbiAgICAgICAgICAgIGZpZWxkcyB7XG4gICAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgICAgIGFyZ3Mge1xuICAgICAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgICAgIHR5cGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2ZUeXBlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG50eXBlIEludHJvc3BlY3RlZEFyZyA9IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHlwZToge1xuICAgICAgICBvZlR5cGU6IG51bGwgfCB7XG4gICAgICAgICAgICBuYW1lOiBudWxsIHwgc3RyaW5nO1xuICAgICAgICB9O1xuICAgIH07XG59O1xuXG50eXBlIEludHJvc3BlY3RlZE11dGF0aW9ucyA9IHtcbiAgICBfX3R5cGU6IG51bGwgfCB7XG4gICAgICAgIGZpZWxkczpcbiAgICAgICAgICAgIHwgbnVsbFxuICAgICAgICAgICAgfCB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICBhcmdzOiBJbnRyb3NwZWN0ZWRBcmdbXTtcbiAgICAgICAgICAgICAgfVtdO1xuICAgIH07XG59O1xuXG5leHBvcnQgdHlwZSBMaW5rYWJsZU9iamVjdCA9IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIF9fdHlwZW5hbWU6IHN0cmluZztcbn07XG5cbnR5cGUgTXV0YXRpb25BcmcgPSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbn07XG5cbnR5cGUgTXV0YXRpb24gPSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFyZzE6IE11dGF0aW9uQXJnO1xuICAgIGFyZzI6IE11dGF0aW9uQXJnO1xufTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbExpbmtNdXRhdGlvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBvbGxvID0gaW5qZWN0KEFwb2xsbyk7XG5cbiAgICAvKipcbiAgICAgKiBSZWNlaXZlcyB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbXV0YXRpb25zXG4gICAgICovXG4gICAgcHJpdmF0ZSBhbGxNdXRhdGlvbnM/OiBNdXRhdGlvbltdO1xuXG4gICAgLyoqXG4gICAgICogTGluayB0d28gb2JqZWN0cyB0b2dldGhlclxuICAgICAqL1xuICAgIHB1YmxpYyBsaW5rKFxuICAgICAgICBvYmoxOiBMaW5rYWJsZU9iamVjdCxcbiAgICAgICAgb2JqMjogTGlua2FibGVPYmplY3QsXG4gICAgICAgIG90aGVyTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsXG4gICAgICAgIHZhcmlhYmxlczogTGl0ZXJhbCA9IHt9LFxuICAgICk6IE9ic2VydmFibGU8RmV0Y2hSZXN1bHQ8e2lkOiBzdHJpbmd9Pj4ge1xuICAgICAgICAvLyBjbG9uZSBwcmV2ZW50cyB0byBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlZmVyZW5jZVxuICAgICAgICBjb25zdCBjbG9uZWRWYXJpYWJsZXMgPSBjbG9uZSh2YXJpYWJsZXMpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldE11dGF0aW9uKCdsaW5rJywgb2JqMSwgb2JqMiwgb3RoZXJOYW1lLCBjbG9uZWRWYXJpYWJsZXMpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAobXV0YXRpb24gPT4gdGhpcy5leGVjdXRlKG11dGF0aW9uKSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTGluayBtYW55IG9iamVjdHNcbiAgICAgKi9cbiAgICBwdWJsaWMgbGlua01hbnkoXG4gICAgICAgIG9iajE6IExpbmthYmxlT2JqZWN0LFxuICAgICAgICBvYmplY3RzOiBMaW5rYWJsZU9iamVjdFtdLFxuICAgICAgICBvdGhlck5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLFxuICAgICAgICB2YXJpYWJsZXM6IExpdGVyYWwgPSB7fSxcbiAgICApOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PHtpZDogc3RyaW5nfT5bXT4ge1xuICAgICAgICByZXR1cm4gZm9ya0pvaW4ob2JqZWN0cy5tYXAob2JqMiA9PiB0aGlzLmxpbmsob2JqMSwgb2JqMiwgb3RoZXJOYW1lLCB2YXJpYWJsZXMpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW5saW5rIHR3byBvYmplY3RzXG4gICAgICovXG4gICAgcHVibGljIHVubGluayhcbiAgICAgICAgb2JqMTogTGlua2FibGVPYmplY3QsXG4gICAgICAgIG9iajI6IExpbmthYmxlT2JqZWN0LFxuICAgICAgICBvdGhlck5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLFxuICAgICk6IE9ic2VydmFibGU8RmV0Y2hSZXN1bHQ8e2lkOiBzdHJpbmd9Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRNdXRhdGlvbigndW5saW5rJywgb2JqMSwgb2JqMiwgb3RoZXJOYW1lKS5waXBlKHN3aXRjaE1hcChtdXRhdGlvbiA9PiB0aGlzLmV4ZWN1dGUobXV0YXRpb24pKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIHRoZSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbXV0YXRpb24gbmFtZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEFsbE11dGF0aW9uTmFtZXMoKTogT2JzZXJ2YWJsZTxNdXRhdGlvbltdPiB7XG4gICAgICAgIGlmICh0aGlzLmFsbE11dGF0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuYWxsTXV0YXRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1hcEFyZyA9IChhcmc6IEludHJvc3BlY3RlZEFyZyk6IE11dGF0aW9uQXJnID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbmFtZTogYXJnLm5hbWUsXG4gICAgICAgICAgICAgICAgdHlwZTogYXJnLnR5cGU/Lm9mVHlwZT8ubmFtZT8ucmVwbGFjZSgvSUQkLywgJycpIHx8ICdzaG91bGQtbmV2ZXItaGFwcGVuJyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBvbGxvXG4gICAgICAgICAgICAucXVlcnk8SW50cm9zcGVjdGVkTXV0YXRpb25zPih7XG4gICAgICAgICAgICAgICAgcXVlcnk6IHF1ZXJpZXNRdWVyeSxcbiAgICAgICAgICAgICAgICBmZXRjaFBvbGljeTogJ2NhY2hlLWZpcnN0JyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHtkYXRhfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5fX3R5cGU/LmZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxNdXRhdGlvbnMgPSBkYXRhLl9fdHlwZS5maWVsZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKHYgPT4gL14obGlua3x1bmxpbmspLy5leGVjKHYubmFtZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHYubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzE6IG1hcEFyZyh2LmFyZ3NbMF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnMjogbWFwQXJnKHYuYXJnc1sxXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsbE11dGF0aW9ucyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWxsTXV0YXRpb25zO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZSBtdXRhdGlvbiB1c2luZyBwYXR0ZXJucyBhbmQgcmVwbGFjaW5nIHZhcmlhYmxlc1xuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0TXV0YXRpb24oXG4gICAgICAgIGFjdGlvbjogc3RyaW5nLFxuICAgICAgICBvYmoxOiBMaW5rYWJsZU9iamVjdCxcbiAgICAgICAgb2JqMjogTGlua2FibGVPYmplY3QsXG4gICAgICAgIG90aGVyTmFtZTogc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgdmFyaWFibGVzOiBMaXRlcmFsID0ge30sXG4gICAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgb3RoZXJOYW1lID0gb3RoZXJOYW1lID8gdXBwZXJDYXNlRmlyc3RMZXR0ZXIob3RoZXJOYW1lKSA6IG90aGVyTmFtZTtcbiAgICAgICAgY29uc3QgbXV0YXRpb25OYW1lID0gYWN0aW9uICsgb2JqMS5fX3R5cGVuYW1lICsgKG90aGVyTmFtZSB8fCBvYmoyLl9fdHlwZW5hbWUpO1xuICAgICAgICBjb25zdCByZXZlcnNlZE11dGF0aW9uTmFtZSA9IGFjdGlvbiArIG9iajIuX190eXBlbmFtZSArIChvdGhlck5hbWUgfHwgb2JqMS5fX3R5cGVuYW1lKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGxNdXRhdGlvbk5hbWVzKCkucGlwZShcbiAgICAgICAgICAgIG1hcChhbGxNdXRhdGlvbk5hbWVzID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtdXRhdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgIGFsbE11dGF0aW9uTmFtZXMuZmluZChtdXQgPT4gbXV0Lm5hbWUgPT09IG11dGF0aW9uTmFtZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgYWxsTXV0YXRpb25OYW1lcy5maW5kKG11dCA9PiBtdXQubmFtZSA9PT0gcmV2ZXJzZWRNdXRhdGlvbk5hbWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG11dGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJ1aWxkVGVtcGxhdGUobXV0YXRpb24sIG9iajEsIG9iajIsIHZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCdBUEkgZG9lcyBub3QgYWxsb3cgdG8gJyArIGFjdGlvbiArICcgJyArIG9iajEuX190eXBlbmFtZSArICcgYW5kICcgKyBvYmoyLl9fdHlwZW5hbWUpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZSBtdXRhdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgZXhlY3V0ZShtdXRhdGlvbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxGZXRjaFJlc3VsdDx7aWQ6IHN0cmluZ30+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwb2xsb1xuICAgICAgICAgICAgLm11dGF0ZTx7aWQ6IHN0cmluZ30+KHtcbiAgICAgICAgICAgICAgICBtdXRhdGlvbjogZ3FsKG11dGF0aW9uKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAociA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBvbGxvLmNsaWVudC5yZUZldGNoT2JzZXJ2YWJsZVF1ZXJpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJ1aWxkIHRoZSBhY3R1YWwgbXV0YXRpb24gc3RyaW5nXG4gICAgICovXG4gICAgcHJpdmF0ZSBidWlsZFRlbXBsYXRlKFxuICAgICAgICBtdXRhdGlvbjogTXV0YXRpb24sXG4gICAgICAgIG9iajE6IExpbmthYmxlT2JqZWN0LFxuICAgICAgICBvYmoyOiBMaW5rYWJsZU9iamVjdCxcbiAgICAgICAgdmFyaWFibGVzOiBMaXRlcmFsID0ge30sXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG5hbWUxO1xuICAgICAgICBsZXQgbmFtZTI7XG4gICAgICAgIGlmIChvYmoxLl9fdHlwZW5hbWUgPT09IG11dGF0aW9uLmFyZzEudHlwZSkge1xuICAgICAgICAgICAgbmFtZTEgPSBtdXRhdGlvbi5hcmcxLm5hbWU7XG4gICAgICAgICAgICBuYW1lMiA9IG11dGF0aW9uLmFyZzIubmFtZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5hbWUxID0gbXV0YXRpb24uYXJnMi5uYW1lO1xuICAgICAgICAgICAgbmFtZTIgPSBtdXRhdGlvbi5hcmcxLm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyaWFibGVzW25hbWUxXSA9IG9iajEuaWQ7XG4gICAgICAgIHZhcmlhYmxlc1tuYW1lMl0gPSBvYmoyLmlkO1xuXG4gICAgICAgIGxldCBzZXJpYWxpemVkVmFyaWFibGVzID0gJyc7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhcmlhYmxlcykpIHtcbiAgICAgICAgICAgIHNlcmlhbGl6ZWRWYXJpYWJsZXMgKz0ga2V5ICsgJzogJyArIEpTT04uc3RyaW5naWZ5KHZhcmlhYmxlc1trZXldKSArICcgJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgbXV0YXRpb24gbGlua0FuZFVubGluayB7XG4gICAgICAgICAgICAke211dGF0aW9uLm5hbWV9KCR7c2VyaWFsaXplZFZhcmlhYmxlc30pIHtcbiAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgfVxuICAgICAgICB9YDtcbiAgICB9XG59XG4iXX0=
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1tdXRhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL3NlcnZpY2VzL2xpbmstbXV0YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFDLFFBQVEsRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FnQnZCLENBQUM7QUF5Q0YsTUFBTSxPQUFPLDBCQUEwQjtJQUNsQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXpDOztPQUVHO0lBQ0ssWUFBWSxDQUFjO0lBRWxDOztPQUVHO0lBQ0ksSUFBSSxDQUNQLElBQW9CLEVBQ3BCLElBQW9CLEVBQ3BCLFlBQTJCLElBQUksRUFDL0IsWUFBcUIsRUFBRTtRQUV2QixrREFBa0Q7UUFDbEQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXpDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUN4RSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENB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Q3BCLElBQW9CLEVBQ3BCLFlBQXFCLEVBQUU7UUFFdkIsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLEtBQUssQ0FBQztRQUNWLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pDLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUMzQixLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDSixLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDM0IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQy9CLENBQUM7UUFDRCxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMzQixTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUUzQixJQUFJLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM3QixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxtQkFBbUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzdFLENBQUM7UUFFRCxPQUFPO2NBQ0QsUUFBUSxDQUFDLElBQUksSUFBSSxtQkFBbUI7OztVQUd4QyxDQUFDO0lBQ1AsQ0FBQzt1R0FyS1EsMEJBQTBCOzJHQUExQiwwQkFBMEIsY0FGdkIsTUFBTTs7MkZBRVQsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBvbGxvLCBncWx9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7RmV0Y2hSZXN1bHR9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjbG9uZX0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7Zm9ya0pvaW4sIE9ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TGl0ZXJhbH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHt1cHBlckNhc2VGaXJzdExldHRlcn0gZnJvbSAnLi4vY2xhc3Nlcy91dGlsaXR5JztcblxuLyoqXG4gKiBRdWVyeSB0byBnZXQgbGlzdCBvZiBtdXRhdGlvbnNcbiAqL1xuY29uc3QgcXVlcmllc1F1ZXJ5ID0gZ3FsYFxuICAgIHF1ZXJ5IE11dGF0aW9ucyB7XG4gICAgICAgIF9fdHlwZShuYW1lOiBcIk11dGF0aW9uXCIpIHtcbiAgICAgICAgICAgIGZpZWxkcyB7XG4gICAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgICAgIGFyZ3Mge1xuICAgICAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgICAgIHR5cGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2ZUeXBlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5gO1xuXG50eXBlIEludHJvc3BlY3RlZEFyZyA9IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdHlwZToge1xuICAgICAgICBvZlR5cGU6IG51bGwgfCB7XG4gICAgICAgICAgICBuYW1lOiBudWxsIHwgc3RyaW5nO1xuICAgICAgICB9O1xuICAgIH07XG59O1xuXG50eXBlIEludHJvc3BlY3RlZE11dGF0aW9ucyA9IHtcbiAgICBfX3R5cGU6IG51bGwgfCB7XG4gICAgICAgIGZpZWxkczpcbiAgICAgICAgICAgIHwgbnVsbFxuICAgICAgICAgICAgfCB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICBhcmdzOiBJbnRyb3NwZWN0ZWRBcmdbXTtcbiAgICAgICAgICAgICAgfVtdO1xuICAgIH07XG59O1xuXG5leHBvcnQgdHlwZSBMaW5rYWJsZU9iamVjdCA9IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIF9fdHlwZW5hbWU6IHN0cmluZztcbn07XG5cbnR5cGUgTXV0YXRpb25BcmcgPSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbn07XG5cbnR5cGUgTXV0YXRpb24gPSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFyZzE6IE11dGF0aW9uQXJnO1xuICAgIGFyZzI6IE11dGF0aW9uQXJnO1xufTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbExpbmtNdXRhdGlvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBvbGxvID0gaW5qZWN0KEFwb2xsbyk7XG5cbiAgICAvKipcbiAgICAgKiBSZWNlaXZlcyB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbXV0YXRpb25zXG4gICAgICovXG4gICAgcHJpdmF0ZSBhbGxNdXRhdGlvbnM/OiBNdXRhdGlvbltdO1xuXG4gICAgLyoqXG4gICAgICogTGluayB0d28gb2JqZWN0cyB0b2dldGhlclxuICAgICAqL1xuICAgIHB1YmxpYyBsaW5rKFxuICAgICAgICBvYmoxOiBMaW5rYWJsZU9iamVjdCxcbiAgICAgICAgb2JqMjogTGlua2FibGVPYmplY3QsXG4gICAgICAgIG90aGVyTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGwsXG4gICAgICAgIHZhcmlhYmxlczogTGl0ZXJhbCA9IHt9LFxuICAgICk6IE9ic2VydmFibGU8RmV0Y2hSZXN1bHQ8e2lkOiBzdHJpbmd9Pj4ge1xuICAgICAgICAvLyBjbG9uZSBwcmV2ZW50cyB0byBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlZmVyZW5jZVxuICAgICAgICBjb25zdCBjbG9uZWRWYXJpYWJsZXMgPSBjbG9uZSh2YXJpYWJsZXMpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldE11dGF0aW9uKCdsaW5rJywgb2JqMSwgb2JqMiwgb3RoZXJOYW1lLCBjbG9uZWRWYXJpYWJsZXMpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAobXV0YXRpb24gPT4gdGhpcy5leGVjdXRlKG11dGF0aW9uKSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTGluayBtYW55IG9iamVjdHNcbiAgICAgKi9cbiAgICBwdWJsaWMgbGlua01hbnkoXG4gICAgICAgIG9iajE6IExpbmthYmxlT2JqZWN0LFxuICAgICAgICBvYmplY3RzOiBMaW5rYWJsZU9iamVjdFtdLFxuICAgICAgICBvdGhlck5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLFxuICAgICAgICB2YXJpYWJsZXM6IExpdGVyYWwgPSB7fSxcbiAgICApOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PHtpZDogc3RyaW5nfT5bXT4ge1xuICAgICAgICByZXR1cm4gZm9ya0pvaW4ob2JqZWN0cy5tYXAob2JqMiA9PiB0aGlzLmxpbmsob2JqMSwgb2JqMiwgb3RoZXJOYW1lLCB2YXJpYWJsZXMpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW5saW5rIHR3byBvYmplY3RzXG4gICAgICovXG4gICAgcHVibGljIHVubGluayhcbiAgICAgICAgb2JqMTogTGlua2FibGVPYmplY3QsXG4gICAgICAgIG9iajI6IExpbmthYmxlT2JqZWN0LFxuICAgICAgICBvdGhlck5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsLFxuICAgICk6IE9ic2VydmFibGU8RmV0Y2hSZXN1bHQ8e2lkOiBzdHJpbmd9Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRNdXRhdGlvbigndW5saW5rJywgb2JqMSwgb2JqMiwgb3RoZXJOYW1lKS5waXBlKHN3aXRjaE1hcChtdXRhdGlvbiA9PiB0aGlzLmV4ZWN1dGUobXV0YXRpb24pKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIHRoZSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbXV0YXRpb24gbmFtZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEFsbE11dGF0aW9uTmFtZXMoKTogT2JzZXJ2YWJsZTxNdXRhdGlvbltdPiB7XG4gICAgICAgIGlmICh0aGlzLmFsbE11dGF0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuYWxsTXV0YXRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1hcEFyZyA9IChhcmc6IEludHJvc3BlY3RlZEFyZyk6IE11dGF0aW9uQXJnID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbmFtZTogYXJnLm5hbWUsXG4gICAgICAgICAgICAgICAgdHlwZTogYXJnLnR5cGU/Lm9mVHlwZT8ubmFtZT8ucmVwbGFjZSgvSUQkLywgJycpIHx8ICdzaG91bGQtbmV2ZXItaGFwcGVuJyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBvbGxvXG4gICAgICAgICAgICAucXVlcnk8SW50cm9zcGVjdGVkTXV0YXRpb25zPih7XG4gICAgICAgICAgICAgICAgcXVlcnk6IHF1ZXJpZXNRdWVyeSxcbiAgICAgICAgICAgICAgICBmZXRjaFBvbGljeTogJ2NhY2hlLWZpcnN0JyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHtkYXRhfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5fX3R5cGU/LmZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGxNdXRhdGlvbnMgPSBkYXRhLl9fdHlwZS5maWVsZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKHYgPT4gL14obGlua3x1bmxpbmspLy5leGVjKHYubmFtZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHYubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzE6IG1hcEFyZyh2LmFyZ3NbMF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnMjogbWFwQXJnKHYuYXJnc1sxXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsbE11dGF0aW9ucyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWxsTXV0YXRpb25zO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZSBtdXRhdGlvbiB1c2luZyBwYXR0ZXJucyBhbmQgcmVwbGFjaW5nIHZhcmlhYmxlc1xuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0TXV0YXRpb24oXG4gICAgICAgIGFjdGlvbjogc3RyaW5nLFxuICAgICAgICBvYmoxOiBMaW5rYWJsZU9iamVjdCxcbiAgICAgICAgb2JqMjogTGlua2FibGVPYmplY3QsXG4gICAgICAgIG90aGVyTmFtZTogc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgdmFyaWFibGVzOiBMaXRlcmFsID0ge30sXG4gICAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgb3RoZXJOYW1lID0gb3RoZXJOYW1lID8gdXBwZXJDYXNlRmlyc3RMZXR0ZXIob3RoZXJOYW1lKSA6IG90aGVyTmFtZTtcbiAgICAgICAgY29uc3QgbXV0YXRpb25OYW1lID0gYWN0aW9uICsgb2JqMS5fX3R5cGVuYW1lICsgKG90aGVyTmFtZSB8fCBvYmoyLl9fdHlwZW5hbWUpO1xuICAgICAgICBjb25zdCByZXZlcnNlZE11dGF0aW9uTmFtZSA9IGFjdGlvbiArIG9iajIuX190eXBlbmFtZSArIChvdGhlck5hbWUgfHwgb2JqMS5fX3R5cGVuYW1lKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGxNdXRhdGlvbk5hbWVzKCkucGlwZShcbiAgICAgICAgICAgIG1hcChhbGxNdXRhdGlvbk5hbWVzID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtdXRhdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgIGFsbE11dGF0aW9uTmFtZXMuZmluZChtdXQgPT4gbXV0Lm5hbWUgPT09IG11dGF0aW9uTmFtZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgYWxsTXV0YXRpb25OYW1lcy5maW5kKG11dCA9PiBtdXQubmFtZSA9PT0gcmV2ZXJzZWRNdXRhdGlvbk5hbWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG11dGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmJ1aWxkVGVtcGxhdGUobXV0YXRpb24sIG9iajEsIG9iajIsIHZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhyb3cgVHlwZUVycm9yKCdBUEkgZG9lcyBub3QgYWxsb3cgdG8gJyArIGFjdGlvbiArICcgJyArIG9iajEuX190eXBlbmFtZSArICcgYW5kICcgKyBvYmoyLl9fdHlwZW5hbWUpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZSBtdXRhdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgZXhlY3V0ZShtdXRhdGlvbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxGZXRjaFJlc3VsdDx7aWQ6IHN0cmluZ30+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwb2xsb1xuICAgICAgICAgICAgLm11dGF0ZTx7aWQ6IHN0cmluZ30+KHtcbiAgICAgICAgICAgICAgICBtdXRhdGlvbjogZ3FsKG11dGF0aW9uKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAociA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBvbGxvLmNsaWVudC5yZUZldGNoT2JzZXJ2YWJsZVF1ZXJpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJ1aWxkIHRoZSBhY3R1YWwgbXV0YXRpb24gc3RyaW5nXG4gICAgICovXG4gICAgcHJpdmF0ZSBidWlsZFRlbXBsYXRlKFxuICAgICAgICBtdXRhdGlvbjogTXV0YXRpb24sXG4gICAgICAgIG9iajE6IExpbmthYmxlT2JqZWN0LFxuICAgICAgICBvYmoyOiBMaW5rYWJsZU9iamVjdCxcbiAgICAgICAgdmFyaWFibGVzOiBMaXRlcmFsID0ge30sXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG5hbWUxO1xuICAgICAgICBsZXQgbmFtZTI7XG4gICAgICAgIGlmIChvYmoxLl9fdHlwZW5hbWUgPT09IG11dGF0aW9uLmFyZzEudHlwZSkge1xuICAgICAgICAgICAgbmFtZTEgPSBtdXRhdGlvbi5hcmcxLm5hbWU7XG4gICAgICAgICAgICBuYW1lMiA9IG11dGF0aW9uLmFyZzIubmFtZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5hbWUxID0gbXV0YXRpb24uYXJnMi5uYW1lO1xuICAgICAgICAgICAgbmFtZTIgPSBtdXRhdGlvbi5hcmcxLm5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyaWFibGVzW25hbWUxXSA9IG9iajEuaWQ7XG4gICAgICAgIHZhcmlhYmxlc1tuYW1lMl0gPSBvYmoyLmlkO1xuXG4gICAgICAgIGxldCBzZXJpYWxpemVkVmFyaWFibGVzID0gJyc7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhcmlhYmxlcykpIHtcbiAgICAgICAgICAgIHNlcmlhbGl6ZWRWYXJpYWJsZXMgKz0ga2V5ICsgJzogJyArIEpTT04uc3RyaW5naWZ5KHZhcmlhYmxlc1trZXldKSArICcgJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgbXV0YXRpb24gbGlua0FuZFVubGluayB7XG4gICAgICAgICAgICAke211dGF0aW9uLm5hbWV9KCR7c2VyaWFsaXplZFZhcmlhYmxlc30pIHtcbiAgICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgfVxuICAgICAgICB9YDtcbiAgICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Component, Injectable, DestroyRef, Directive, HostBinding, HostListener, InjectionToken, ElementRef, TemplateRef, ViewEncapsulation, ViewChild, Injector, Input, EventEmitter, Output, Pipe, Optional, Inject, LOCALE_ID, APP_INITIALIZER, ContentChild, EnvironmentInjector, createEnvironmentInjector, createComponent, runInInjectionContext, PLATFORM_ID, ErrorHandler, importProvidersFrom } from '@angular/core';
2
+ import { inject, Component, Injectable, DestroyRef, Directive, HostBinding, HostListener, InjectionToken, ElementRef, TemplateRef, ViewEncapsulation, ViewChild, Injector, Input, EventEmitter, Output, Pipe, Optional, Inject, LOCALE_ID, APP_INITIALIZER, ContentChild, EnvironmentInjector, createEnvironmentInjector, createComponent, input, computed, runInInjectionContext, PLATFORM_ID, ErrorHandler, importProvidersFrom } from '@angular/core';
3
3
  import * as i1$2 from '@angular/forms';
4
4
  import { FormGroup, FormArray, Validators, UntypedFormGroup, UntypedFormArray, FormControl, FormsModule, ReactiveFormsModule, UntypedFormControl, NgControl, FormControlDirective, FormControlName } from '@angular/forms';
5
5
  import { ActivatedRoute, Router, NavigationStart, NavigationEnd, RouteConfigLoadStart, RouteConfigLoadEnd, PRIMARY_OUTLET, RouterLink, NavigationError, DefaultUrlSerializer, UrlTree } from '@angular/router';
@@ -9201,7 +9201,9 @@ class NaturalFileComponent {
9201
9201
  naturalFileService = inject(NaturalFileService);
9202
9202
  alertService = inject(NaturalAlertService);
9203
9203
  document = inject(DOCUMENT);
9204
- height = 250;
9204
+ height = input(250);
9205
+ iconHeight = computed(() => Math.min(this.height() * 0.66, 120));
9206
+ fontSize = computed(() => Math.min(this.height() * 0.3, 36));
9205
9207
  action = null;
9206
9208
  backgroundSize = 'contain';
9207
9209
  /**
@@ -9210,7 +9212,7 @@ class NaturalFileComponent {
9210
9212
  *
9211
9213
  * See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept
9212
9214
  */
9213
- accept = 'image/bmp,image/gif,image/jpeg,image/pjpeg,image/png,image/svg+xml,image/svg,image/webp';
9215
+ accept = 'image/avif,image/bmp,image/gif,image/heic,image/heif,image/jpeg,image/pjpeg,image/png,image/svg+xml,image/svg,image/webp';
9214
9216
  /**
9215
9217
  * If given, it will be called when a new file is selected. The callback should typically upload the file
9216
9218
  * to the server and link the newly uploaded file to the existing related object.
@@ -9274,7 +9276,7 @@ class NaturalFileComponent {
9274
9276
  if (!this.model) {
9275
9277
  return;
9276
9278
  }
9277
- if (this.model.file?.type.includes('image/')) {
9279
+ if (this.model.file?.type.startsWith('image/')) {
9278
9280
  // Model from upload (before saving)
9279
9281
  this.getBase64(this.model.file).subscribe(result => {
9280
9282
  if (this.model?.file?.type) {
@@ -9293,7 +9295,7 @@ class NaturalFileComponent {
9293
9295
  throw new Error('Could not show image preview because `window` is undefined');
9294
9296
  }
9295
9297
  const loc = window.location;
9296
- const height = this.height ? '/' + this.height : '';
9298
+ const height = this.height() ? '/' + this.height() : '';
9297
9299
  // create image url without port to stay compatible with dev mode
9298
9300
  const image = loc.protocol + '//' + loc.hostname + '/api/image/' + this.model.id + height;
9299
9301
  this.imagePreview = image;
@@ -9320,7 +9322,7 @@ class NaturalFileComponent {
9320
9322
  return subject.asObservable();
9321
9323
  }
9322
9324
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9323
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalFileComponent, isStandalone: true, selector: "natural-file", inputs: { height: "height", action: "action", backgroundSize: "backgroundSize", accept: "accept", uploader: "uploader", model: "model", formCtrl: "formCtrl" }, outputs: { modelChange: "modelChange" }, host: { properties: { "style.height.px": "this.height" } }, usesOnChanges: true, ngImport: i0, template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [naturalBackgroundDensity]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n @if (filePreview) {\n <div class=\"file-preview\">\n <mat-icon [size]=\"height * 0.33\" naturalIcon=\"attachment\" />\n {{ filePreview | uppercase }}\n </div>\n }\n\n <div class=\"action-overlay\">\n @if (action === 'upload') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"cloud_upload\" />\n }\n @if (action === 'download') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"get_app\" />\n }\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;position:relative;flex-direction:row;overflow:hidden}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{display:flex;position:absolute;inset:0;justify-content:center;align-items:center;opacity:0}\n"], dependencies: [{ kind: "directive", type: NaturalFileDropDirective, selector: ":not([naturalFileSelect])[naturalFileDrop]", outputs: ["fileOver"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$4.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "pipe", type: NaturalCapitalizePipe, name: "capitalize" }, { kind: "directive", type: NaturalBackgroundDensityDirective, selector: "[naturalBackgroundDensity]", inputs: ["naturalBackgroundDensity"] }] });
9325
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalFileComponent, isStandalone: true, selector: "natural-file", inputs: { height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: false, isRequired: false, transformFunction: null }, backgroundSize: { classPropertyName: "backgroundSize", publicName: "backgroundSize", isSignal: false, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: false, isRequired: false, transformFunction: null }, uploader: { classPropertyName: "uploader", publicName: "uploader", isSignal: false, isRequired: false, transformFunction: null }, model: { classPropertyName: "model", publicName: "model", isSignal: false, isRequired: false, transformFunction: null }, formCtrl: { classPropertyName: "formCtrl", publicName: "formCtrl", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { modelChange: "modelChange" }, host: { properties: { "style.height.px": "height()" } }, usesOnChanges: true, ngImport: i0, template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [naturalBackgroundDensity]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n @if (filePreview) {\n <div class=\"file-preview\" [style.font-size.px]=\"fontSize()\">\n <mat-icon [size]=\"iconHeight()\" naturalIcon=\"attachment\" />\n {{ filePreview | uppercase }}\n </div>\n }\n\n <div class=\"action-overlay\" [style.font-size.px]=\"fontSize()\">\n @if (action === 'upload') {\n <mat-icon [size]=\"iconHeight()\" naturalIcon=\"cloud_upload\" />\n }\n @if (action === 'download') {\n <mat-icon [size]=\"iconHeight()\" naturalIcon=\"get_app\" />\n }\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;position:relative;flex-direction:row;overflow:hidden}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{display:flex;position:absolute;inset:0;justify-content:center;align-items:center;opacity:0}\n"], dependencies: [{ kind: "directive", type: NaturalFileDropDirective, selector: ":not([naturalFileSelect])[naturalFileDrop]", outputs: ["fileOver"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$4.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "pipe", type: NaturalCapitalizePipe, name: "capitalize" }, { kind: "directive", type: NaturalBackgroundDensityDirective, selector: "[naturalBackgroundDensity]", inputs: ["naturalBackgroundDensity"] }] });
9324
9326
  }
9325
9327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileComponent, decorators: [{
9326
9328
  type: Component,
@@ -9332,13 +9334,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
9332
9334
  NaturalIconDirective,
9333
9335
  NaturalCapitalizePipe,
9334
9336
  NaturalBackgroundDensityDirective,
9335
- ], template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [naturalBackgroundDensity]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n @if (filePreview) {\n <div class=\"file-preview\">\n <mat-icon [size]=\"height * 0.33\" naturalIcon=\"attachment\" />\n {{ filePreview | uppercase }}\n </div>\n }\n\n <div class=\"action-overlay\">\n @if (action === 'upload') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"cloud_upload\" />\n }\n @if (action === 'download') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"get_app\" />\n }\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;position:relative;flex-direction:row;overflow:hidden}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{display:flex;position:absolute;inset:0;justify-content:center;align-items:center;opacity:0}\n"] }]
9336
- }], propDecorators: { height: [{
9337
- type: HostBinding,
9338
- args: ['style.height.px']
9339
- }, {
9340
- type: Input
9341
- }], action: [{
9337
+ ], host: {
9338
+ '[style.height.px]': 'height()',
9339
+ }, template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [naturalBackgroundDensity]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n @if (filePreview) {\n <div class=\"file-preview\" [style.font-size.px]=\"fontSize()\">\n <mat-icon [size]=\"iconHeight()\" naturalIcon=\"attachment\" />\n {{ filePreview | uppercase }}\n </div>\n }\n\n <div class=\"action-overlay\" [style.font-size.px]=\"fontSize()\">\n @if (action === 'upload') {\n <mat-icon [size]=\"iconHeight()\" naturalIcon=\"cloud_upload\" />\n }\n @if (action === 'download') {\n <mat-icon [size]=\"iconHeight()\" naturalIcon=\"get_app\" />\n }\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;position:relative;flex-direction:row;overflow:hidden}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{display:flex;position:absolute;inset:0;justify-content:center;align-items:center;opacity:0}\n"] }]
9340
+ }], propDecorators: { action: [{
9342
9341
  type: Input
9343
9342
  }], backgroundSize: [{
9344
9343
  type: Input