fabrikantencore 2.0.13 → 2.0.15

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 (37) hide show
  1. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.mjs +6 -6
  2. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-deeplink/beheer-deeplink.component.mjs +43 -0
  3. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.mjs +55 -41
  4. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.mjs +21 -3
  5. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.mjs +3 -3
  6. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.mjs +3 -3
  7. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.mjs +3 -3
  8. package/esm2020/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.mjs +2 -2
  9. package/esm2020/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.mjs +2 -2
  10. package/esm2020/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.mjs +2 -2
  11. package/esm2020/src/app/modules/fabrikantencore/components/fab-iframe/fab-iframe.component.mjs +29 -0
  12. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.mjs +23 -6
  13. package/esm2020/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.mjs +2 -2
  14. package/esm2020/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.mjs +2 -2
  15. package/esm2020/src/app/modules/fabrikantencore/components/fab-texture/fab-texture.component.mjs +38 -0
  16. package/esm2020/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.mjs +3 -3
  17. package/esm2020/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +18 -7
  18. package/esm2020/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +40 -8
  19. package/esm2020/src/app/modules/fabrikantencore/services/navigate.service.mjs +2 -2
  20. package/esm2020/src/app/modules/fabrikantencore/services/projectsetting.service.mjs +2 -1
  21. package/esm2020/src/app/modules/fabrikantencore/services/texture.service.mjs +33 -0
  22. package/esm2020/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +490 -25
  23. package/fesm2015/fabrikantencore.mjs +791 -128
  24. package/fesm2015/fabrikantencore.mjs.map +1 -1
  25. package/fesm2020/fabrikantencore.mjs +790 -128
  26. package/fesm2020/fabrikantencore.mjs.map +1 -1
  27. package/package.json +1 -1
  28. package/src/app/modules/fabrikantencore/beheer/components/beheer-deeplink/beheer-deeplink.component.d.ts +16 -0
  29. package/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.d.ts +1 -1
  30. package/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.d.ts +1 -0
  31. package/src/app/modules/fabrikantencore/components/fab-iframe/fab-iframe.component.d.ts +12 -0
  32. package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.d.ts +5 -2
  33. package/src/app/modules/fabrikantencore/components/fab-texture/fab-texture.component.d.ts +18 -0
  34. package/src/app/modules/fabrikantencore/fabrikantencore.module.d.ts +27 -24
  35. package/src/app/modules/fabrikantencore/services/fabrikanten.service.d.ts +7 -2
  36. package/src/app/modules/fabrikantencore/services/texture.service.d.ts +12 -0
  37. package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +154 -20
@@ -39,9 +39,9 @@ export class BeheerNavComponent {
39
39
  }
40
40
  }
41
41
  BeheerNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerNavComponent, deps: [{ token: i1.AuthenticationService }, { token: i2.Router }, { token: i3.FabrikantenApiClient }], target: i0.ɵɵFactoryTarget.Component });
42
- BeheerNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerNavComponent, selector: "app-beheer-nav", ngImport: i0, template: "<div class=\"main-block\">\n <div class=\"row\">\n <div class=\"cell left-block\">\n <button mat-raised-button (click)=\"NavigateTo('searchproducts')\" class=\"link\" [disabled]=\"IsActive('/searchproducts')\">\n Zoeken\n </button>\n <button mat-raised-button (click)=\"NavigateTo('importsets')\" class=\"link\" [disabled]=\"IsActive('/importsets')\">\n Import\n </button>\n <button mat-raised-button (click)=\"NavigateTo('products')\" class=\"link\" [disabled]=\"IsActive('/products')\">\n Products\n </button>\n <button mat-raised-button (click)=\"NavigateTo('filters')\" class=\"link\" [disabled]=\"IsActive('/filters')\">\n Filters\n </button>\n <button mat-raised-button (click)=\"NavigateTo('ebokoppel')\" class=\"link\" [disabled]=\"IsActive('/ebokoppel')\">\n EBO Koppel\n </button>\n <button mat-raised-button (click)=\"NavigateTo('categories')\" class=\"link\" [disabled]=\"IsActive('/categories')\">\n Categories\n </button>\n </div>\n <div class=\"cell right-block\">\n <button mat-raised-button (click)=\"ResetCache()\" class=\"link\">\n {{ ResetCacheTitle }}\n </button>\n <button mat-raised-button (click)=\"NavigateTo('settings')\" class=\"link\" [disabled]=\"IsActive('/settings')\">\n Settings\n </button>\n <button mat-raised-button (click)=\"NavigateTo('translate')\" class=\"link\" [disabled]=\"IsActive('/translate')\">\n Translate\n </button>\n <button mat-raised-button (click)=\"NavigateTo('users')\" class=\"link\" [disabled]=\"IsActive('/users')\">\n Users\n </button>\n <button mat-raised-button (click)=\"LogOff()\" class=\"link\">\n Uitloggen\n </button>\n </div>\n </div>\n</div>\n", styles: ["app-beheer-nav .main-block{width:100%;display:table}app-beheer-nav .main-block .left-block{text-align:left}app-beheer-nav .main-block .right-block{text-align:right}app-beheer-nav .main-block .row{display:table-row}app-beheer-nav .main-block .cell{display:table-cell}app-beheer-nav .main-block .link{margin:5px}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}.full-width{width:100%}\n"], dependencies: [{ kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None });
42
+ BeheerNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerNavComponent, selector: "app-beheer-nav", ngImport: i0, template: "<div class=\"main-block\">\n <div class=\"row\">\n <div class=\"cell left-block\">\n <button mat-raised-button (click)=\"NavigateTo('searchproducts')\" class=\"link\" [disabled]=\"IsActive('/searchproducts')\">\n Zoeken\n </button>\n <button mat-raised-button (click)=\"NavigateTo('importsets')\" class=\"link\" [disabled]=\"IsActive('/importsets')\">\n Import\n </button>\n <button mat-raised-button (click)=\"NavigateTo('products')\" class=\"link\" [disabled]=\"IsActive('/products')\">\n Products\n </button>\n <button mat-raised-button (click)=\"NavigateTo('filters')\" class=\"link\" [disabled]=\"IsActive('/filters')\">\n Filters\n </button>\n <button mat-raised-button (click)=\"NavigateTo('ebokoppel')\" class=\"link\" [disabled]=\"IsActive('/ebokoppel')\">\n EBO Koppel\n </button>\n <button mat-raised-button (click)=\"NavigateTo('categories')\" class=\"link\" [disabled]=\"IsActive('/categories')\">\n Categories\n </button>\n <button mat-raised-button (click)=\"NavigateTo('deeplink')\" class=\"link\" [disabled]=\"IsActive('/deeplink')\">\n Deeplink\n </button>\n </div>\n <div class=\"cell right-block\">\n <button mat-raised-button (click)=\"ResetCache()\" class=\"link\">\n {{ ResetCacheTitle }}\n </button>\n <button mat-raised-button (click)=\"NavigateTo('settings')\" class=\"link\" [disabled]=\"IsActive('/settings')\">\n Settings\n </button>\n <button mat-raised-button (click)=\"NavigateTo('translate')\" class=\"link\" [disabled]=\"IsActive('/translate')\">\n Translate\n </button>\n <button mat-raised-button (click)=\"NavigateTo('users')\" class=\"link\" [disabled]=\"IsActive('/users')\">\n Users\n </button>\n <button mat-raised-button (click)=\"LogOff()\" class=\"link\">\n Uitloggen\n </button>\n </div>\n </div>\n</div>\n", styles: ["app-beheer-nav .main-block{width:100%;display:table}app-beheer-nav .main-block .left-block{text-align:left}app-beheer-nav .main-block .right-block{text-align:right}app-beheer-nav .main-block .row{display:table-row}app-beheer-nav .main-block .cell{display:table-cell}app-beheer-nav .main-block .link{margin:5px}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}.full-width{width:100%}\n"], dependencies: [{ kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None });
43
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerNavComponent, decorators: [{
44
44
  type: Component,
45
- args: [{ selector: 'app-beheer-nav', encapsulation: ViewEncapsulation.None, template: "<div class=\"main-block\">\n <div class=\"row\">\n <div class=\"cell left-block\">\n <button mat-raised-button (click)=\"NavigateTo('searchproducts')\" class=\"link\" [disabled]=\"IsActive('/searchproducts')\">\n Zoeken\n </button>\n <button mat-raised-button (click)=\"NavigateTo('importsets')\" class=\"link\" [disabled]=\"IsActive('/importsets')\">\n Import\n </button>\n <button mat-raised-button (click)=\"NavigateTo('products')\" class=\"link\" [disabled]=\"IsActive('/products')\">\n Products\n </button>\n <button mat-raised-button (click)=\"NavigateTo('filters')\" class=\"link\" [disabled]=\"IsActive('/filters')\">\n Filters\n </button>\n <button mat-raised-button (click)=\"NavigateTo('ebokoppel')\" class=\"link\" [disabled]=\"IsActive('/ebokoppel')\">\n EBO Koppel\n </button>\n <button mat-raised-button (click)=\"NavigateTo('categories')\" class=\"link\" [disabled]=\"IsActive('/categories')\">\n Categories\n </button>\n </div>\n <div class=\"cell right-block\">\n <button mat-raised-button (click)=\"ResetCache()\" class=\"link\">\n {{ ResetCacheTitle }}\n </button>\n <button mat-raised-button (click)=\"NavigateTo('settings')\" class=\"link\" [disabled]=\"IsActive('/settings')\">\n Settings\n </button>\n <button mat-raised-button (click)=\"NavigateTo('translate')\" class=\"link\" [disabled]=\"IsActive('/translate')\">\n Translate\n </button>\n <button mat-raised-button (click)=\"NavigateTo('users')\" class=\"link\" [disabled]=\"IsActive('/users')\">\n Users\n </button>\n <button mat-raised-button (click)=\"LogOff()\" class=\"link\">\n Uitloggen\n </button>\n </div>\n </div>\n</div>\n", styles: ["app-beheer-nav .main-block{width:100%;display:table}app-beheer-nav .main-block .left-block{text-align:left}app-beheer-nav .main-block .right-block{text-align:right}app-beheer-nav .main-block .row{display:table-row}app-beheer-nav .main-block .cell{display:table-cell}app-beheer-nav .main-block .link{margin:5px}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}.full-width{width:100%}\n"] }]
45
+ args: [{ selector: 'app-beheer-nav', encapsulation: ViewEncapsulation.None, template: "<div class=\"main-block\">\n <div class=\"row\">\n <div class=\"cell left-block\">\n <button mat-raised-button (click)=\"NavigateTo('searchproducts')\" class=\"link\" [disabled]=\"IsActive('/searchproducts')\">\n Zoeken\n </button>\n <button mat-raised-button (click)=\"NavigateTo('importsets')\" class=\"link\" [disabled]=\"IsActive('/importsets')\">\n Import\n </button>\n <button mat-raised-button (click)=\"NavigateTo('products')\" class=\"link\" [disabled]=\"IsActive('/products')\">\n Products\n </button>\n <button mat-raised-button (click)=\"NavigateTo('filters')\" class=\"link\" [disabled]=\"IsActive('/filters')\">\n Filters\n </button>\n <button mat-raised-button (click)=\"NavigateTo('ebokoppel')\" class=\"link\" [disabled]=\"IsActive('/ebokoppel')\">\n EBO Koppel\n </button>\n <button mat-raised-button (click)=\"NavigateTo('categories')\" class=\"link\" [disabled]=\"IsActive('/categories')\">\n Categories\n </button>\n <button mat-raised-button (click)=\"NavigateTo('deeplink')\" class=\"link\" [disabled]=\"IsActive('/deeplink')\">\n Deeplink\n </button>\n </div>\n <div class=\"cell right-block\">\n <button mat-raised-button (click)=\"ResetCache()\" class=\"link\">\n {{ ResetCacheTitle }}\n </button>\n <button mat-raised-button (click)=\"NavigateTo('settings')\" class=\"link\" [disabled]=\"IsActive('/settings')\">\n Settings\n </button>\n <button mat-raised-button (click)=\"NavigateTo('translate')\" class=\"link\" [disabled]=\"IsActive('/translate')\">\n Translate\n </button>\n <button mat-raised-button (click)=\"NavigateTo('users')\" class=\"link\" [disabled]=\"IsActive('/users')\">\n Users\n </button>\n <button mat-raised-button (click)=\"LogOff()\" class=\"link\">\n Uitloggen\n </button>\n </div>\n </div>\n</div>\n", styles: ["app-beheer-nav .main-block{width:100%;display:table}app-beheer-nav .main-block .left-block{text-align:left}app-beheer-nav .main-block .right-block{text-align:right}app-beheer-nav .main-block .row{display:table-row}app-beheer-nav .main-block .cell{display:table-cell}app-beheer-nav .main-block .link{margin:5px}body{background:url(/assets/bouwconnect-achtergrond.png) fixed}.full-width{width:100%}\n"] }]
46
46
  }], ctorParameters: function () { return [{ type: i1.AuthenticationService }, { type: i2.Router }, { type: i3.FabrikantenApiClient }]; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1uYXYvYmVoZWVyLW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1uYXYvYmVoZWVyLW5hdi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFXckUsTUFBTSxPQUFPLGtCQUFrQjtJQUk3QixZQUFtQixxQkFBNEMsRUFBVSxNQUFjLEVBQVUsb0JBQTBDO1FBQXhILDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUZwSSxvQkFBZSxHQUFXLGFBQWEsQ0FBQztJQUcvQyxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVk7UUFDMUIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQztZQUNyQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNyQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRztnQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDdkI7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsrR0FwQ1Usa0JBQWtCO21HQUFsQixrQkFBa0Isc0RDWC9CLHV4REF5Q0E7MkZEOUJhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxnQkFBZ0IsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlbkFwaUNsaWVudCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSdcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1uYXYnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItbmF2LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItbmF2LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVyTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIFJlc2V0Q2FjaGVUaXRsZTogc3RyaW5nID0gXCJSZXNldCBDYWNoZVwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgRmFicmlrYW50ZW5BcGlDbGllbnQ6IEZhYnJpa2FudGVuQXBpQ2xpZW50KSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBMb2dPZmYoKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5sb2dvdXQoKTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9iZWhlZXIvaW5sb2dnZW4nKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBOYXZpZ2F0ZVRvKG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2JlaGVlci8nICsgbmFtZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSXNBY3RpdmUobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYudG9Mb3dlckNhc2UoKS5pbmRleE9mKG5hbWUudG9Mb3dlckNhc2UoKSkgIT0gLTE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVzZXRDYWNoZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuUmVzZXRDYWNoZVRpdGxlID0gXCIuLi5cIjtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQucmVzZXRDYWNoZSgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuUmVzZXRDYWNoZVRpdGxlID0gXCJSZXNldCBDYWNoZVwiO1xyXG4gICAgICBhbGVydCgnY2FjaGUgcmVzZXQgc3VjY2VzcycpO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1haW4tYmxvY2tcIj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjZWxsIGxlZnQtYmxvY2tcIj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ3NlYXJjaHByb2R1Y3RzJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9zZWFyY2hwcm9kdWN0cycpXCI+XG4gICAgICAgIFpvZWtlblxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJOYXZpZ2F0ZVRvKCdpbXBvcnRzZXRzJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9pbXBvcnRzZXRzJylcIj5cbiAgICAgICAgSW1wb3J0XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ3Byb2R1Y3RzJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9wcm9kdWN0cycpXCI+XG4gICAgICAgIFByb2R1Y3RzXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ2ZpbHRlcnMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL2ZpbHRlcnMnKVwiPlxuICAgICAgICBGaWx0ZXJzXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ2Vib2tvcHBlbCcpXCIgY2xhc3M9XCJsaW5rXCIgW2Rpc2FibGVkXT1cIklzQWN0aXZlKCcvZWJva29wcGVsJylcIj5cbiAgICAgICAgRUJPIEtvcHBlbFxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJOYXZpZ2F0ZVRvKCdjYXRlZ29yaWVzJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9jYXRlZ29yaWVzJylcIj5cbiAgICAgICAgQ2F0ZWdvcmllc1xuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNlbGwgcmlnaHQtYmxvY2tcIj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlJlc2V0Q2FjaGUoKVwiIGNsYXNzPVwibGlua1wiPlxuICAgICAgICB7eyBSZXNldENhY2hlVGl0bGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygnc2V0dGluZ3MnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3NldHRpbmdzJylcIj5cbiAgICAgICAgU2V0dGluZ3NcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygndHJhbnNsYXRlJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy90cmFuc2xhdGUnKVwiPlxuICAgICAgICBUcmFuc2xhdGVcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygndXNlcnMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3VzZXJzJylcIj5cbiAgICAgICAgVXNlcnNcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTG9nT2ZmKClcIiBjbGFzcz1cImxpbmtcIj5cbiAgICAgICAgVWl0bG9nZ2VuXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1uYXYvYmVoZWVyLW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1uYXYvYmVoZWVyLW5hdi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFXckUsTUFBTSxPQUFPLGtCQUFrQjtJQUk3QixZQUFtQixxQkFBNEMsRUFBVSxNQUFjLEVBQVUsb0JBQTBDO1FBQXhILDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUZwSSxvQkFBZSxHQUFXLGFBQWEsQ0FBQztJQUcvQyxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVk7UUFDMUIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQztZQUNyQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNyQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRztnQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDdkI7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsrR0FwQ1Usa0JBQWtCO21HQUFsQixrQkFBa0Isc0RDWC9CLG03REE0Q0E7MkZEakNhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxnQkFBZ0IsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlbkFwaUNsaWVudCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSdcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1uYXYnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItbmF2LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItbmF2LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVyTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIFJlc2V0Q2FjaGVUaXRsZTogc3RyaW5nID0gXCJSZXNldCBDYWNoZVwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgRmFicmlrYW50ZW5BcGlDbGllbnQ6IEZhYnJpa2FudGVuQXBpQ2xpZW50KSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBMb2dPZmYoKTogdm9pZCB7XHJcbiAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5sb2dvdXQoKTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9iZWhlZXIvaW5sb2dnZW4nKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBOYXZpZ2F0ZVRvKG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2JlaGVlci8nICsgbmFtZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSXNBY3RpdmUobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYudG9Mb3dlckNhc2UoKS5pbmRleE9mKG5hbWUudG9Mb3dlckNhc2UoKSkgIT0gLTE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVzZXRDYWNoZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuUmVzZXRDYWNoZVRpdGxlID0gXCIuLi5cIjtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQucmVzZXRDYWNoZSgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuUmVzZXRDYWNoZVRpdGxlID0gXCJSZXNldCBDYWNoZVwiO1xyXG4gICAgICBhbGVydCgnY2FjaGUgcmVzZXQgc3VjY2VzcycpO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1haW4tYmxvY2tcIj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjZWxsIGxlZnQtYmxvY2tcIj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ3NlYXJjaHByb2R1Y3RzJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9zZWFyY2hwcm9kdWN0cycpXCI+XG4gICAgICAgIFpvZWtlblxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJOYXZpZ2F0ZVRvKCdpbXBvcnRzZXRzJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9pbXBvcnRzZXRzJylcIj5cbiAgICAgICAgSW1wb3J0XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ3Byb2R1Y3RzJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9wcm9kdWN0cycpXCI+XG4gICAgICAgIFByb2R1Y3RzXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ2ZpbHRlcnMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL2ZpbHRlcnMnKVwiPlxuICAgICAgICBGaWx0ZXJzXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5hdmlnYXRlVG8oJ2Vib2tvcHBlbCcpXCIgY2xhc3M9XCJsaW5rXCIgW2Rpc2FibGVkXT1cIklzQWN0aXZlKCcvZWJva29wcGVsJylcIj5cbiAgICAgICAgRUJPIEtvcHBlbFxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJOYXZpZ2F0ZVRvKCdjYXRlZ29yaWVzJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy9jYXRlZ29yaWVzJylcIj5cbiAgICAgICAgQ2F0ZWdvcmllc1xuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJOYXZpZ2F0ZVRvKCdkZWVwbGluaycpXCIgY2xhc3M9XCJsaW5rXCIgW2Rpc2FibGVkXT1cIklzQWN0aXZlKCcvZGVlcGxpbmsnKVwiPlxuICAgICAgICBEZWVwbGlua1xuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNlbGwgcmlnaHQtYmxvY2tcIj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlJlc2V0Q2FjaGUoKVwiIGNsYXNzPVwibGlua1wiPlxuICAgICAgICB7eyBSZXNldENhY2hlVGl0bGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygnc2V0dGluZ3MnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3NldHRpbmdzJylcIj5cbiAgICAgICAgU2V0dGluZ3NcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygndHJhbnNsYXRlJylcIiBjbGFzcz1cImxpbmtcIiBbZGlzYWJsZWRdPVwiSXNBY3RpdmUoJy90cmFuc2xhdGUnKVwiPlxuICAgICAgICBUcmFuc2xhdGVcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmF2aWdhdGVUbygndXNlcnMnKVwiIGNsYXNzPVwibGlua1wiIFtkaXNhYmxlZF09XCJJc0FjdGl2ZSgnL3VzZXJzJylcIj5cbiAgICAgICAgVXNlcnNcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTG9nT2ZmKClcIiBjbGFzcz1cImxpbmtcIj5cbiAgICAgICAgVWl0bG9nZ2VuXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -32,7 +32,7 @@ export class BeheerProductsKoppelFilteroptionDailogComponent {
32
32
  }
33
33
  ngOnInit() {
34
34
  this.LoadFilters();
35
- this.LoadOpties();
35
+ //this.LoadOpties();
36
36
  }
37
37
  handleKeyUpFilter(e) {
38
38
  if (e.keyCode === 13) {
@@ -112,7 +112,7 @@ export class BeheerProductsKoppelFilteroptionDailogComponent {
112
112
  this.dialogRef.close({ filter: this.FilterSelected, filteroption: null });
113
113
  }
114
114
  Loading() {
115
- return this.LoadingOpties || this.LoadingFilters;
115
+ return this.LoadingFilters;
116
116
  }
117
117
  LoadFilters() {
118
118
  this.LoadingFilters = true;
@@ -154,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
154
154
  type: Inject,
155
155
  args: [MAT_DIALOG_DATA]
156
156
  }] }, { type: i2.FiltersApiClient }, { type: i2.ProductsApiClient }, { type: i3.ProductsService }]; } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLWtvcHBlbC1maWx0ZXJvcHRpb24tZGFpbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy1rb3BwZWwtZmlsdGVyb3B0aW9uLWRhaWxvZy9iZWhlZXItcHJvZHVjdHMta29wcGVsLWZpbHRlcm9wdGlvbi1kYWlsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLWtvcHBlbC1maWx0ZXJvcHRpb24tZGFpbG9nL2JlaGVlci1wcm9kdWN0cy1rb3BwZWwtZmlsdGVyb3B0aW9uLWRhaWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBNkQseUJBQXlCLEVBQThCLG1CQUFtQixFQUF3Qiw2QkFBNkIsRUFBcUIsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPbFEsTUFBTSxPQUFPLCtDQUErQztJQWUxRCxZQUNTLFNBQXdFLEVBQy9DLElBQVMsRUFDakMsZ0JBQWtDLEVBQ2xDLGlCQUFvQyxFQUNwQyxlQUFnQztRQUpqQyxjQUFTLEdBQVQsU0FBUyxDQUErRDtRQUMvQyxTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsc0JBQWlCLEdBQWpCLGlC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QkFDdkI7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO1lBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLElBQUksSUFBSSxFQUFFO1lBQ3BELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBRTFCLElBQUksT0FBTyxHQUFHLElBQUksNkJBQTZCLEVBQUUsQ0FBQztZQUVsRCxPQUFPLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQ3pELE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7WUFDbkUsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBRWpDLHFJQUFxSTtZQUNySSxnREFBZ0Q7WUFDaEQsK0JBQStCO1lBQy9CLDJCQUEyQjtZQUMzQixpQkFBaUI7WUFDakIsS0FBSztTQUNOO0lBQ0gsQ0FBQzs7NElBN0tVLCtDQUErQyw4Q0FpQmhELGVBQWU7Z0lBakJkLCtDQUErQyxzRkNWNUQseXNIQWlHQTsyRkR2RmEsK0NBQStDO2tCQUwzRCxTQUFTOytCQUNFLGdEQUFnRDs7MEJBcUJ2RCxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcHJvZHVjdHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlcnNBcGlDbGllbnQsIEZpbHRlcnNWaWV3TW9kZWwsIEZpbHRlck9wdGlvblZpZXdNb2RlbCwgQ3JlYXRlRmlsdGVyT3B0aW9uUmVxdWVzdCwgQ3JlYXRlRmlsdGVyT3B0aW9uUmVzcG9uc2UsIENyZWF0ZUZpbHRlclJlcXVlc3QsIENyZWF0ZUZpbHRlclJlc3BvbnNlLCBDb25uZWN0RWlnZW5zY2hhcE9wdGllUmVxdWVzdCwgUHJvZHVjdHNBcGlDbGllbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYmVoZWVyLXByb2R1Y3RzLWtvcHBlbC1maWx0ZXJvcHRpb24tZGFpbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmVoZWVyLXByb2R1Y3RzLWtvcHBlbC1maWx0ZXJvcHRpb24tZGFpbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItcHJvZHVjdHMta29wcGVsLWZpbHRlcm9wdGlvbi1kYWlsb2cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVyUHJvZHVjdHNLb3BwZWxGaWx0ZXJvcHRpb25EYWlsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgRmlsdGVyc1ZpZXdNb2RlbDogRmlsdGVyc1ZpZXdNb2RlbDtcclxuXHJcbiAgcHVibGljIEZpbHRlck5hYW1OaWV1dzogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgRmlsdGVyT3B0aW9uTmFhbU5pZXV3OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBwdWJsaWMgTG9hZGluZ0ZpbHRlcnM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBMb2FkaW5nT3B0aWVzOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgRmlsdGVyU2VsZWN0ZWQ6IG51bWJlcjtcclxuICBwdWJsaWMgRmlsdGVyT3B0aW9uU2VsZWN0ZWQ6IG51bWJlcjtcclxuXHJcbiAgcHVibGljIEJDQkVpZ2Vuc2NoYXBPcHRpZUlkOiBudW1iZXI7XHJcbiAgcHVibGljIExvY2F0aW9uOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEJlaGVlclByb2R1Y3RzS29wcGVsRmlsdGVyb3B0aW9uRGFpbG9nQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxyXG4gICAgcHJpdmF0ZSBGaWx0ZXJzQXBpQ2xpZW50OiBGaWx0ZXJzQXBpQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBQcm9kdWN0c0FwaUNsaWVudDogUHJvZHVjdHNBcGlDbGllbnQsXHJcbiAgICBwcml2YXRlIFByb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLkJDQkVpZ2Vuc2NoYXBPcHRpZUlkID0gZGF0YS5iY2JlaWdlbnNjaGFwb3B0aWVpZDtcclxuICAgIHRoaXMuTG9jYXRpb24gPSBkYXRhLmxvY2F0aW9uO1xyXG4gICAgdGhpcy5GaWx0ZXJOYWFtTmlldXcgPSBkYXRhLnN1Z2dlc3RlZGZpbHRlcjtcclxuICAgIHRoaXMuRmlsdGVyT3B0aW9uTmFhbU5pZXV3ID0gZGF0YS5zdWdnZXN0ZWRvcHRpb247XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZEZpbHRlcnMoKTtcclxuICAgIHRoaXMuTG9hZE9wdGllcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUtleVVwRmlsdGVyKGU6IGFueSkge1xyXG4gICAgaWYgKGUua2V5Q29kZSA9PT0gMTMpIHtcclxuICAgICAgdGhpcy5OaWV1d0ZpbHRlclRvZXZvZWdlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUtleVVwRmlsdGVyT3B0aW9uKGU6IGFueSkge1xyXG4gICAgaWYgKGUua2V5Q29kZSA9PT0gMTMpIHtcclxuICAgICAgdGhpcy5OaWV1d0ZpbHRlck9wdGlvblRvZXZvZWdlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIE5pZXV3RmlsdGVyVG9ldm9lZ2VuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IHRydWU7XHJcblxyXG4gICAgdmFyIHJlcXVlc3RmaWx0ZXI6IENyZWF0ZUZpbHRlclJlcXVlc3QgPSBuZXcgQ3JlYXRlRmlsdGVyUmVxdWVzdCgpO1xyXG5cclxuICAgIHJlcXVlc3RmaWx0ZXIubmFtZSA9IHRoaXMuRmlsdGVyTmFhbU5pZXV3O1xyXG5cclxuICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5jcmVhdGVGaWx0ZXIocmVxdWVzdGZpbHRlcikuc3Vic2NyaWJlKChtb2RlbDogQ3JlYXRlRmlsdGVyUmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IGZhbHNlO1xyXG5cclxuICAgICAgdmFyIHJlcXVlc3RmaWx0ZXJvcHRpb24gPSBuZXcgQ3JlYXRlRmlsdGVyT3B0aW9uUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmVxdWVzdGZpbHRlcm9wdGlvbi5maWx0ZXJJZCA9IG1vZGVsLmlkO1xyXG4gICAgICByZXF1ZXN0ZmlsdGVyb3B0aW9uLm5hbWUgPSB0aGlzLkZpbHRlck9wdGlvbk5hYW1OaWV1dztcclxuXHJcbiAgICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5jcmVhdGVGaWx0ZXJPcHRpb24ocmVxdWVzdGZpbHRlcm9wdGlvbikuc3Vic2NyaWJlKChtb2RlbDogQ3JlYXRlRmlsdGVyT3B0aW9uUmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLkxvYWRpbmdGaWx0ZXJzID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHsgZmlsdGVyOiBudWxsLCBmaWx0ZXJvcHRpb246IG1vZGVsLmlkIH0pO1xyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIE5pZXV3RmlsdGVyT3B0aW9uVG9ldm9lZ2VuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IHRydWU7XHJcblxyXG4gICAgdmFyIHJlcXVlc3RmaWx0ZXJvcHRpb24gPSBuZXcgQ3JlYXRlRmlsdGVyT3B0aW9uUmVxdWVzdCgpO1xyXG5cclxuICAgIHJlcXVlc3RmaWx0ZXJvcHRpb24uZmlsdGVySWQgPSB0aGlzLkZpbHRlclNlbGVjdGVkO1xyXG4gICAgcmVxdWVzdGZpbHRlcm9wdGlvbi5uYW1lID0gdGhpcy5GaWx0ZXJPcHRpb25OYWFtTmlldXc7XHJcblxyXG4gICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LmNyZWF0ZUZpbHRlck9wdGlvbihyZXF1ZXN0ZmlsdGVyb3B0aW9uKS5zdWJzY3JpYmUoKG1vZGVsOiBDcmVhdGVGaWx0ZXJPcHRpb25SZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLkxvYWRpbmdGaWx0ZXJzID0gZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IGZpbHRlcjogbnVsbCwgZmlsdGVyb3B0aW9uOiBtb2RlbC5pZCB9KTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQmVzdGFhbmRUb2V2b2VnZW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IGZpbHRlcjogbnVsbCwgZmlsdGVyb3B0aW9uOiB0aGlzLkZpbHRlck9wdGlvblNlbGVjdGVkIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFNlbGVjdGVkRmlsdGVyc09wdGlvbnMoKTogQXJyYXk8RmlsdGVyT3B0aW9uVmlld01vZGVsPiB7XHJcbiAgICB2YXIgYXJyYXkgPSBuZXcgQXJyYXk8RmlsdGVyT3B0aW9uVmlld01vZGVsPigpO1xyXG5cclxuICAgIHZhciB0ZW1wYXJyYXkgPSB0aGlzLkZpbHRlcnNWaWV3TW9kZWw/LmZpbHRlclZpZXdNb2RlbHM7XHJcblxyXG4gICAgaWYgKHRlbXBhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVtcGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRlbXBhcnJheVtpXS5pZCA9PSB0aGlzLkZpbHRlclNlbGVjdGVkKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGVtcGFycmF5W2ldLmZpbHRlck9wdGlvblZpZXdNb2RlbHMgYXMgQXJyYXk8RmlsdGVyT3B0aW9uVmlld01vZGVsPjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgS29wcGVsTWFueU5hbWUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IGZpbHRlcjogdGhpcy5GaWx0ZXJTZWxlY3RlZCwgZmlsdGVyb3B0aW9uOiBudWxsIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5Mb2FkaW5nT3B0aWVzIHx8IHRoaXMuTG9hZGluZ0ZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIExvYWRGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LmdldEZpbHRlcnNWaWV3TW9kZWwoKS5zdWJzY3JpYmUoKG1vZGVsOiBGaWx0ZXJzVmlld01vZGVsKSA9PiB7XHJcbiAgICAgIHRoaXMuRmlsdGVyc1ZpZXdNb2RlbCA9IG1vZGVsO1xyXG4gICAgICB0aGlzLkxvYWRpbmdGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBMb2FkT3B0aWVzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLkxvYWRpbmdPcHRpZXMgPSB0cnVlO1xyXG5cclxuICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgQ29ubmVjdEVpZ2Vuc2NoYXBPcHRpZVJlcXVlc3QoKTtcclxuXHJcbiAgICAgIHJlcXVlc3QuYmNiRWlnZW5zY2hhcE9wdGllSWQgPSB0aGlzLkJDQkVpZ2Vuc2NoYXBPcHRpZUlkO1xyXG4gICAgICByZXF1ZXN0LmJjYlByb2R1Y3RJZCA9IHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwuaWQ7XHJcbiAgICAgIHJlcXVlc3QubG9jYXRpb24gPSB0aGlzLkxvY2F0aW9uO1xyXG5cclxuICAgICAgLy90aGlzLlByb2R1Y3RzQXBpQ2xpZW50LmNvbm5lY3RCQ0JFaWdlbnNjaGFwT3B0aWVGaWx0ZXJPcHRpb25QcmV2aWV3KHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IENvbm5lY3RFaWdlbnNjaGFwT3B0aWVSZXNwb25zZSkgPT4ge1xyXG4gICAgICAvLyAgdGhpcy5Db25uZWN0RWlnZW5zY2hhcE9wdGllUmVzcG9uc2UgPSBtb2RlbDtcclxuICAgICAgLy8gIHRoaXMuTG9hZGluZ09wdGllcyA9IGZhbHNlO1xyXG4gICAgICAvL30sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgLy8gIGFsZXJ0KGVycm9yKTtcclxuICAgICAgLy99KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIkxvYWRpbmcoKVwiPlxyXG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCIhTG9hZGluZygpXCI+XHJcbiAgPG1hdC10YWItZ3JvdXA+XHJcbiAgICA8bWF0LXRhYiBsYWJlbD1cIk5pZXV3ZSBmaWx0ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJhclwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5GaWx0ZXI8L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cIkZpbHRlck5hYW1OaWV1d1wiPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5PcHRpZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IChrZXl1cCk9XCJoYW5kbGVLZXlVcEZpbHRlcigkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJGaWx0ZXJPcHRpb25OYWFtTmlldXdcIj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJiYXIgdG9vbC1iYXJcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJOaWV1d0ZpbHRlclRvZXZvZWdlbigpXCI+VG9ldm9lZ2VuPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtdGFiPlxyXG4gICAgPG1hdC10YWIgbGFiZWw9XCJOaWV1d2Ugb3B0aWVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJhclwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5GaWx0ZXI8L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiRmlsdGVyU2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGZpbHRlciBvZiBGaWx0ZXJzVmlld01vZGVsLmZpbHRlclZpZXdNb2RlbHNcIiBbdmFsdWVdPVwiZmlsdGVyLmlkXCI+XHJcbiAgICAgICAgICAgICAge3tmaWx0ZXIubmFtZX19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+T3B0aWU8L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAoa2V5dXApPVwiaGFuZGxlS2V5VXBGaWx0ZXJPcHRpb24oJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiRmlsdGVyT3B0aW9uTmFhbU5pZXV3XCI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFyIHRvb2wtYmFyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmlldXdGaWx0ZXJPcHRpb25Ub2V2b2VnZW4oKVwiPlRvZXZvZWdlbjwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXRhYj5cclxuICAgIDxtYXQtdGFiIGxhYmVsPVwiQmVzdGFhbmRcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJiYXJcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+RmlsdGVyPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIkZpbHRlclNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgRmlsdGVyc1ZpZXdNb2RlbC5maWx0ZXJWaWV3TW9kZWxzXCIgW3ZhbHVlXT1cImZpbHRlci5pZFwiPlxyXG4gICAgICAgICAgICAgIHt7ZmlsdGVyLm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPk9wdGllPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIkZpbHRlck9wdGlvblNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBmaWx0ZXJvcHRpb24gb2YgR2V0U2VsZWN0ZWRGaWx0ZXJzT3B0aW9ucygpXCIgW3ZhbHVlXT1cImZpbHRlcm9wdGlvbi5pZFwiPlxyXG4gICAgICAgICAgICAgIHt7ZmlsdGVyb3B0aW9uLm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFyIHRvb2wtYmFyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQmVzdGFhbmRUb2V2b2VnZW4oKVwiPlRvZXZvZWdlbjwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXRhYj5cclxuICAgIDwhLS08bWF0LXRhYiBsYWJlbD1cIk1hbnkgTmFtZVwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPkZpbHRlcjwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiRmlsdGVyU2VsZWN0ZWRcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgRmlsdGVyc1ZpZXdNb2RlbC5maWx0ZXJWaWV3TW9kZWxzXCIgW3ZhbHVlXT1cImZpbHRlci5pZFwiPlxyXG4gICAgICAgICAgICB7e2ZpbHRlci5uYW1lfX1cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICA8YXBwLWJlaGVlci1jb25uZWN0LW1hbnluYW1lPjwvYXBwLWJlaGVlci1jb25uZWN0LW1hbnluYW1lPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImJhciB0b29sLWJhclwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIktvcHBlbE1hbnlOYW1lKClcIj5Lb3BwZWw8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC10YWI+LS0+XHJcbiAgPC9tYXQtdGFiLWdyb3VwPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwib3B0aW9ucy1jb250YWluZXJcIj5cclxuICAgIDwhLS08ZGl2ICpuZ0Zvcj1cImxldCBsb2NhdGlvbiBvZiBDb25uZWN0RWlnZW5zY2hhcE9wdGllUmVzcG9uc2UubG9jYXRpb25zXCI+XHJcbiAgICAgIDxiPnt7IGxvY2F0aW9uLmxvY2F0aW9uIH19PC9iPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlYm8gb2YgbG9jYXRpb24uZWJvc1wiPlxyXG4gICAgICAgIHt7IGVibyB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2Pi0tPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLWtvcHBlbC1maWx0ZXJvcHRpb24tZGFpbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy1rb3BwZWwtZmlsdGVyb3B0aW9uLWRhaWxvZy9iZWhlZXItcHJvZHVjdHMta29wcGVsLWZpbHRlcm9wdGlvbi1kYWlsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLWtvcHBlbC1maWx0ZXJvcHRpb24tZGFpbG9nL2JlaGVlci1wcm9kdWN0cy1rb3BwZWwtZmlsdGVyb3B0aW9uLWRhaWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBNkQseUJBQXlCLEVBQThCLG1CQUFtQixFQUF3Qiw2QkFBNkIsRUFBcUIsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPbFEsTUFBTSxPQUFPLCtDQUErQztJQWUxRCxZQUNTLFNBQXdFLEVBQy9DLElBQVMsRUFDakMsZ0JBQWtDLEVBQ2xDLGlCQUFvQyxFQUNwQyxlQUFnQztRQUpqQyxjQUFTLEdBQVQsU0FBUyxDQUErRDtRQUMvQyxTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsc0JBQWlCLEdBQWpCLGlC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LENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtZQUVELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixJQUFJLElBQUksRUFBRTtZQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUUxQixJQUFJLE9BQU8sR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUM7WUFFbEQsT0FBTyxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztZQUN6RCxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ25FLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUVqQyxxSUFBcUk7WUFDckksZ0RBQWdEO1lBQ2hELCtCQUErQjtZQUMvQiwyQkFBMkI7WUFDM0IsaUJBQWlCO1lBQ2pCLEtBQUs7U0FDTjtJQUNILENBQUM7OzRJQTdLVSwrQ0FBK0MsOENBaUJoRCxlQUFlO2dJQWpCZCwrQ0FBK0Msc0ZDVjVELHlzSEFpR0E7MkZEdkZhLCtDQUErQztrQkFMM0QsU0FBUzsrQkFDRSxnREFBZ0Q7OzBCQXFCdkQsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFByb2R1Y3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3Byb2R1Y3RzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWx0ZXJzQXBpQ2xpZW50LCBGaWx0ZXJzVmlld01vZGVsLCBGaWx0ZXJPcHRpb25WaWV3TW9kZWwsIENyZWF0ZUZpbHRlck9wdGlvblJlcXVlc3QsIENyZWF0ZUZpbHRlck9wdGlvblJlc3BvbnNlLCBDcmVhdGVGaWx0ZXJSZXF1ZXN0LCBDcmVhdGVGaWx0ZXJSZXNwb25zZSwgQ29ubmVjdEVpZ2Vuc2NoYXBPcHRpZVJlcXVlc3QsIFByb2R1Y3RzQXBpQ2xpZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1wcm9kdWN0cy1rb3BwZWwtZmlsdGVyb3B0aW9uLWRhaWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1wcm9kdWN0cy1rb3BwZWwtZmlsdGVyb3B0aW9uLWRhaWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmVoZWVyLXByb2R1Y3RzLWtvcHBlbC1maWx0ZXJvcHRpb24tZGFpbG9nLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJlaGVlclByb2R1Y3RzS29wcGVsRmlsdGVyb3B0aW9uRGFpbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHVibGljIEZpbHRlcnNWaWV3TW9kZWw6IEZpbHRlcnNWaWV3TW9kZWw7XHJcblxyXG4gIHB1YmxpYyBGaWx0ZXJOYWFtTmlldXc6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIEZpbHRlck9wdGlvbk5hYW1OaWV1dzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgcHVibGljIExvYWRpbmdGaWx0ZXJzOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgTG9hZGluZ09wdGllczogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIEZpbHRlclNlbGVjdGVkOiBudW1iZXI7XHJcbiAgcHVibGljIEZpbHRlck9wdGlvblNlbGVjdGVkOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBCQ0JFaWdlbnNjaGFwT3B0aWVJZDogbnVtYmVyO1xyXG4gIHB1YmxpYyBMb2NhdGlvbjogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxCZWhlZXJQcm9kdWN0c0tvcHBlbEZpbHRlcm9wdGlvbkRhaWxvZ0NvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuICAgIHByaXZhdGUgRmlsdGVyc0FwaUNsaWVudDogRmlsdGVyc0FwaUNsaWVudCxcclxuICAgIHByaXZhdGUgUHJvZHVjdHNBcGlDbGllbnQ6IFByb2R1Y3RzQXBpQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBQcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSkge1xyXG4gICAgdGhpcy5CQ0JFaWdlbnNjaGFwT3B0aWVJZCA9IGRhdGEuYmNiZWlnZW5zY2hhcG9wdGllaWQ7XHJcbiAgICB0aGlzLkxvY2F0aW9uID0gZGF0YS5sb2NhdGlvbjtcclxuICAgIHRoaXMuRmlsdGVyTmFhbU5pZXV3ID0gZGF0YS5zdWdnZXN0ZWRmaWx0ZXI7XHJcbiAgICB0aGlzLkZpbHRlck9wdGlvbk5hYW1OaWV1dyA9IGRhdGEuc3VnZ2VzdGVkb3B0aW9uO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkxvYWRGaWx0ZXJzKCk7XHJcbiAgICAvL3RoaXMuTG9hZE9wdGllcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUtleVVwRmlsdGVyKGU6IGFueSkge1xyXG4gICAgaWYgKGUua2V5Q29kZSA9PT0gMTMpIHtcclxuICAgICAgdGhpcy5OaWV1d0ZpbHRlclRvZXZvZWdlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUtleVVwRmlsdGVyT3B0aW9uKGU6IGFueSkge1xyXG4gICAgaWYgKGUua2V5Q29kZSA9PT0gMTMpIHtcclxuICAgICAgdGhpcy5OaWV1d0ZpbHRlck9wdGlvblRvZXZvZWdlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIE5pZXV3RmlsdGVyVG9ldm9lZ2VuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IHRydWU7XHJcblxyXG4gICAgdmFyIHJlcXVlc3RmaWx0ZXI6IENyZWF0ZUZpbHRlclJlcXVlc3QgPSBuZXcgQ3JlYXRlRmlsdGVyUmVxdWVzdCgpO1xyXG5cclxuICAgIHJlcXVlc3RmaWx0ZXIubmFtZSA9IHRoaXMuRmlsdGVyTmFhbU5pZXV3O1xyXG5cclxuICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5jcmVhdGVGaWx0ZXIocmVxdWVzdGZpbHRlcikuc3Vic2NyaWJlKChtb2RlbDogQ3JlYXRlRmlsdGVyUmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IGZhbHNlO1xyXG5cclxuICAgICAgdmFyIHJlcXVlc3RmaWx0ZXJvcHRpb24gPSBuZXcgQ3JlYXRlRmlsdGVyT3B0aW9uUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmVxdWVzdGZpbHRlcm9wdGlvbi5maWx0ZXJJZCA9IG1vZGVsLmlkO1xyXG4gICAgICByZXF1ZXN0ZmlsdGVyb3B0aW9uLm5hbWUgPSB0aGlzLkZpbHRlck9wdGlvbk5hYW1OaWV1dztcclxuXHJcbiAgICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5jcmVhdGVGaWx0ZXJPcHRpb24ocmVxdWVzdGZpbHRlcm9wdGlvbikuc3Vic2NyaWJlKChtb2RlbDogQ3JlYXRlRmlsdGVyT3B0aW9uUmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLkxvYWRpbmdGaWx0ZXJzID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHsgZmlsdGVyOiBudWxsLCBmaWx0ZXJvcHRpb246IG1vZGVsLmlkIH0pO1xyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIE5pZXV3RmlsdGVyT3B0aW9uVG9ldm9lZ2VuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IHRydWU7XHJcblxyXG4gICAgdmFyIHJlcXVlc3RmaWx0ZXJvcHRpb24gPSBuZXcgQ3JlYXRlRmlsdGVyT3B0aW9uUmVxdWVzdCgpO1xyXG5cclxuICAgIHJlcXVlc3RmaWx0ZXJvcHRpb24uZmlsdGVySWQgPSB0aGlzLkZpbHRlclNlbGVjdGVkO1xyXG4gICAgcmVxdWVzdGZpbHRlcm9wdGlvbi5uYW1lID0gdGhpcy5GaWx0ZXJPcHRpb25OYWFtTmlldXc7XHJcblxyXG4gICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LmNyZWF0ZUZpbHRlck9wdGlvbihyZXF1ZXN0ZmlsdGVyb3B0aW9uKS5zdWJzY3JpYmUoKG1vZGVsOiBDcmVhdGVGaWx0ZXJPcHRpb25SZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLkxvYWRpbmdGaWx0ZXJzID0gZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IGZpbHRlcjogbnVsbCwgZmlsdGVyb3B0aW9uOiBtb2RlbC5pZCB9KTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQmVzdGFhbmRUb2V2b2VnZW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IGZpbHRlcjogbnVsbCwgZmlsdGVyb3B0aW9uOiB0aGlzLkZpbHRlck9wdGlvblNlbGVjdGVkIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFNlbGVjdGVkRmlsdGVyc09wdGlvbnMoKTogQXJyYXk8RmlsdGVyT3B0aW9uVmlld01vZGVsPiB7XHJcbiAgICB2YXIgYXJyYXkgPSBuZXcgQXJyYXk8RmlsdGVyT3B0aW9uVmlld01vZGVsPigpO1xyXG5cclxuICAgIHZhciB0ZW1wYXJyYXkgPSB0aGlzLkZpbHRlcnNWaWV3TW9kZWw/LmZpbHRlclZpZXdNb2RlbHM7XHJcblxyXG4gICAgaWYgKHRlbXBhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVtcGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRlbXBhcnJheVtpXS5pZCA9PSB0aGlzLkZpbHRlclNlbGVjdGVkKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGVtcGFycmF5W2ldLmZpbHRlck9wdGlvblZpZXdNb2RlbHMgYXMgQXJyYXk8RmlsdGVyT3B0aW9uVmlld01vZGVsPjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgS29wcGVsTWFueU5hbWUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IGZpbHRlcjogdGhpcy5GaWx0ZXJTZWxlY3RlZCwgZmlsdGVyb3B0aW9uOiBudWxsIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5Mb2FkaW5nRmlsdGVycztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgTG9hZEZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLkxvYWRpbmdGaWx0ZXJzID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLkZpbHRlcnNBcGlDbGllbnQuZ2V0RmlsdGVyc1ZpZXdNb2RlbCgpLnN1YnNjcmliZSgobW9kZWw6IEZpbHRlcnNWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5GaWx0ZXJzVmlld01vZGVsID0gbW9kZWw7XHJcbiAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIExvYWRPcHRpZXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuTG9hZGluZ09wdGllcyA9IHRydWU7XHJcblxyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBDb25uZWN0RWlnZW5zY2hhcE9wdGllUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5iY2JFaWdlbnNjaGFwT3B0aWVJZCA9IHRoaXMuQkNCRWlnZW5zY2hhcE9wdGllSWQ7XHJcbiAgICAgIHJlcXVlc3QuYmNiUHJvZHVjdElkID0gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbC5pZDtcclxuICAgICAgcmVxdWVzdC5sb2NhdGlvbiA9IHRoaXMuTG9jYXRpb247XHJcblxyXG4gICAgICAvL3RoaXMuUHJvZHVjdHNBcGlDbGllbnQuY29ubmVjdEJDQkVpZ2Vuc2NoYXBPcHRpZUZpbHRlck9wdGlvblByZXZpZXcocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogQ29ubmVjdEVpZ2Vuc2NoYXBPcHRpZVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIC8vICB0aGlzLkNvbm5lY3RFaWdlbnNjaGFwT3B0aWVSZXNwb25zZSA9IG1vZGVsO1xyXG4gICAgICAvLyAgdGhpcy5Mb2FkaW5nT3B0aWVzID0gZmFsc2U7XHJcbiAgICAgIC8vfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAvLyAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICAvL30pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiTG9hZGluZygpXCI+XHJcbiAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cIiFMb2FkaW5nKClcIj5cclxuICA8bWF0LXRhYi1ncm91cD5cclxuICAgIDxtYXQtdGFiIGxhYmVsPVwiTmlldXdlIGZpbHRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFyXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPkZpbHRlcjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRmlsdGVyTmFhbU5pZXV3XCI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPk9wdGllPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgKGtleXVwKT1cImhhbmRsZUtleVVwRmlsdGVyKCRldmVudClcIiBbKG5nTW9kZWwpXT1cIkZpbHRlck9wdGlvbk5hYW1OaWV1d1wiPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImJhciB0b29sLWJhclwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIk5pZXV3RmlsdGVyVG9ldm9lZ2VuKClcIj5Ub2V2b2VnZW48L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC10YWI+XHJcbiAgICA8bWF0LXRhYiBsYWJlbD1cIk5pZXV3ZSBvcHRpZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFyXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPkZpbHRlcjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJGaWx0ZXJTZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIEZpbHRlcnNWaWV3TW9kZWwuZmlsdGVyVmlld01vZGVsc1wiIFt2YWx1ZV09XCJmaWx0ZXIuaWRcIj5cclxuICAgICAgICAgICAgICB7e2ZpbHRlci5uYW1lfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5PcHRpZTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IChrZXl1cCk9XCJoYW5kbGVLZXlVcEZpbHRlck9wdGlvbigkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJGaWx0ZXJPcHRpb25OYWFtTmlldXdcIj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJiYXIgdG9vbC1iYXJcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJOaWV1d0ZpbHRlck9wdGlvblRvZXZvZWdlbigpXCI+VG9ldm9lZ2VuPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtdGFiPlxyXG4gICAgPG1hdC10YWIgbGFiZWw9XCJCZXN0YWFuZFwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImJhclwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5GaWx0ZXI8L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiRmlsdGVyU2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGZpbHRlciBvZiBGaWx0ZXJzVmlld01vZGVsLmZpbHRlclZpZXdNb2RlbHNcIiBbdmFsdWVdPVwiZmlsdGVyLmlkXCI+XHJcbiAgICAgICAgICAgICAge3tmaWx0ZXIubmFtZX19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+T3B0aWU8L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiRmlsdGVyT3B0aW9uU2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGZpbHRlcm9wdGlvbiBvZiBHZXRTZWxlY3RlZEZpbHRlcnNPcHRpb25zKClcIiBbdmFsdWVdPVwiZmlsdGVyb3B0aW9uLmlkXCI+XHJcbiAgICAgICAgICAgICAge3tmaWx0ZXJvcHRpb24ubmFtZX19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJiYXIgdG9vbC1iYXJcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJCZXN0YWFuZFRvZXZvZWdlbigpXCI+VG9ldm9lZ2VuPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtdGFiPlxyXG4gICAgPCEtLTxtYXQtdGFiIGxhYmVsPVwiTWFueSBOYW1lXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+RmlsdGVyPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJGaWx0ZXJTZWxlY3RlZFwiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGZpbHRlciBvZiBGaWx0ZXJzVmlld01vZGVsLmZpbHRlclZpZXdNb2RlbHNcIiBbdmFsdWVdPVwiZmlsdGVyLmlkXCI+XHJcbiAgICAgICAgICAgIHt7ZmlsdGVyLm5hbWV9fVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgIDxhcHAtYmVoZWVyLWNvbm5lY3QtbWFueW5hbWU+PC9hcHAtYmVoZWVyLWNvbm5lY3QtbWFueW5hbWU+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFyIHRvb2wtYmFyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiS29wcGVsTWFueU5hbWUoKVwiPktvcHBlbDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXRhYj4tLT5cclxuICA8L21hdC10YWItZ3JvdXA+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJvcHRpb25zLWNvbnRhaW5lclwiPlxyXG4gICAgPCEtLTxkaXYgKm5nRm9yPVwibGV0IGxvY2F0aW9uIG9mIENvbm5lY3RFaWdlbnNjaGFwT3B0aWVSZXNwb25zZS5sb2NhdGlvbnNcIj5cclxuICAgICAgPGI+e3sgbG9jYXRpb24ubG9jYXRpb24gfX08L2I+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGVibyBvZiBsb2NhdGlvbi5lYm9zXCI+XHJcbiAgICAgICAge3sgZWJvIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+LS0+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -143,9 +143,9 @@ export class BeheerProductsComponent {
143
143
  }
144
144
  }
145
145
  BeheerProductsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerProductsComponent, deps: [{ token: i1.ProductsService }, { token: i2.ImportSetsService }, { token: i3.ImportApiClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
146
- BeheerProductsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerProductsComponent, selector: "app-beheer-products", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex\">\r\n <div class=\"displayflex\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n \r\n </div>\r\n\r\n <div>\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"flex-auto\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"CleanUp()\">\r\n CleanUp\r\n </button>\r\n </div>\r\n </div>\r\n \r\n\r\n \r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr (click)=\"SelectProduct(product)\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td>{{ product.id }}</td>\r\n <td>{{ product.name }}</td>\r\n <td>{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px);overflow:auto}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}.flex-auto{flex:auto}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i11.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i12.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i13.BeheerProductsProductComponent, selector: "app-beheer-products-product", inputs: ["ProductViewModel"] }, { kind: "component", type: i14.BeheerProductsBcbproductComponent, selector: "app-beheer-products-bcbproduct", inputs: ["BCBProductViewModel"] }] });
146
+ BeheerProductsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerProductsComponent, selector: "app-beheer-products", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"CleanUp()\">\r\n CleanUp\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr (click)=\"SelectProduct(product)\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td>{{ product.id }}</td>\r\n <td>{{ product.name }}</td>\r\n <td>{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.gap{gap:3px}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px);overflow:auto}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}.flex-auto{flex:auto}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i6.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i11.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i12.FabLoaderComponent, selector: "app-fab-loader" }, { kind: "component", type: i13.BeheerProductsProductComponent, selector: "app-beheer-products-product", inputs: ["ProductViewModel"] }, { kind: "component", type: i14.BeheerProductsBcbproductComponent, selector: "app-beheer-products-bcbproduct", inputs: ["BCBProductViewModel"] }] });
147
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerProductsComponent, decorators: [{
148
148
  type: Component,
149
- args: [{ selector: 'app-beheer-products', template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex\">\r\n <div class=\"displayflex\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n \r\n </div>\r\n\r\n <div>\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"flex-auto\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"CleanUp()\">\r\n CleanUp\r\n </button>\r\n </div>\r\n </div>\r\n \r\n\r\n \r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr (click)=\"SelectProduct(product)\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td>{{ product.id }}</td>\r\n <td>{{ product.name }}</td>\r\n <td>{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px);overflow:auto}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}.flex-auto{flex:auto}\n"] }]
149
+ args: [{ selector: 'app-beheer-products', template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"ProductsService.Loading() || ImportSetsService.LoadingImportSets\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n<div *ngIf=\"!ProductsService.Loading() && !ImportSetsService.LoadingImportSets\" class=\"main-block\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"displayflex gap\">\r\n <div class=\"displayflex flex-auto gap\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>Import set</mat-label>\r\n <mat-select [(ngModel)]=\"ImportSetsService.BCBImportSetSelected\">\r\n <mat-option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">\r\n {{importset.name}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <button mat-raised-button (click)=\"ProductsService.Reload(this.ChangeDetectorRef)\">\r\n Refresh\r\n </button>\r\n </div>\r\n\r\n <div class=\"displayflex gap\" style=\"text-align: right;\">\r\n <button mat-raised-button (click)=\"ResetImport()\">\r\n Reset Import\r\n </button>\r\n <button mat-raised-button (click)=\"Import()\">\r\n Import\r\n </button>\r\n <button mat-raised-button (click)=\"CleanUp()\">\r\n CleanUp\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div class=\"displayflex\" *ngIf=\"this.ProductsService.ProductsViewModel != undefined\">\r\n <div class=\"tree-block\">\r\n <div class=\"limiter\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"full-width\">\r\n <tr class=\"table-head\">\r\n <td></td>\r\n <td>Id</td>\r\n <td>Naam</td>\r\n <td>Variants</td>\r\n <td>Importset</td>\r\n </tr>\r\n <ng-container *ngFor=\"let product of this.ProductsService.ProductsViewModel.productViewModels\">\r\n <tr (click)=\"SelectProduct(product)\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.ProductViewModel == product, 'warning': !product.imported || !product.connected}\">\r\n <td><span class=\"importspan\">{{ GetImportStatus(product) }}</span></td>\r\n <td>{{ product.id }}</td>\r\n <td>{{ product.name }}</td>\r\n <td>{{ product.bcbProductViewModels.length }}</td>\r\n <td>\r\n <select [(ngModel)]=\"product.importSetId\" (change)=\"SaveProduct(product)\" class=\"full-width\">\r\n <option *ngFor=\"let importset of ImportSetsService.BCBImportSetsViewModel.bcbImportSetViewModels\" [value]=\"importset.id\">{{importset.name}}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"ShowBCBProducts(product)\">\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n <tr *ngFor=\"let bcbproduct of ProductsService.ProductViewModel.bcbProductViewModels\" class=\"table-row\" [ngClass]=\"{'selected' : ProductsService.BCBProductViewModel == bcbproduct, 'warning': !bcbproduct.imported || !bcbproduct.connected}\" (click)=\"SelectBCBProduct(bcbproduct)\">\r\n <td><span class=\"importspan\">{{ bcbproduct.importStatus }}</span></td>\r\n <td>{{ bcbproduct.id }}</td>\r\n <td colspan=\"3\">{{ bcbproduct.name }}</td>\r\n </tr>\r\n <tr>\r\n <td>&nbsp;</td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"limiter\">\r\n <app-beheer-products-product *ngIf=\"ProductsService.ProductViewModel != undefined && ProductsService.BCBProductViewModel == undefined\" [ProductViewModel]=\"ProductsService.ProductViewModel\"></app-beheer-products-product>\r\n <app-beheer-products-bcbproduct *ngIf=\"ProductsService.BCBProductViewModel != undefined\" [BCBProductViewModel]=\"ProductsService.BCBProductViewModel\"></app-beheer-products-bcbproduct>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".full-width{width:100%}.full-height{height:100%}.gap{gap:3px}.table-head td{font-weight:700;border-bottom:2px solid #000}.table-row td{border-bottom:1px solid #000;cursor:pointer}.warning{background-color:#f08080}.table-row:hover{background-color:#d3d3d3}.limiter{max-height:calc(100vh - 179px);overflow:auto}.selected{background-color:#add8e6!important}.importspan{margin-left:5px;font-weight:700}.main-block{padding:10px;height:calc(100vh - 66px);overflow:auto}.main-content{padding:5px;flex:auto;width:50%}.tree-block{padding:5px;flex:auto;width:50%;max-height:calc(100vh - 66px)}.example-tree-invisible{display:none}.example-tree ul,.example-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree .mat-nested-tree-node div[role=group]{padding-left:40px}.example-tree div[role=group]>.mat-tree-node{padding-left:40px}.displayflex{display:flex}.flex-auto{flex:auto}\n"] }]
150
150
  }], ctorParameters: function () { return [{ type: i1.ProductsService }, { type: i2.ImportSetsService }, { type: i3.ImportApiClient }, { type: i0.ChangeDetectorRef }]; } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1wcm9kdWN0cy9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJckUsT0FBTyxFQUErRSx1QkFBdUIsRUFBcUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQU96TixNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLFlBQW1CLGVBQWdDLEVBQzFDLGlCQUFvQyxFQUNuQyxlQUFnQyxFQUNqQyxpQkFBb0M7UUFIMUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbkMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFMdEMsMkJBQXNCLEdBQTRCLFNBQVMsQ0FBQztJQU9uRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDO1FBRXpFLElBQUksUUFBUSxJQUFJLElBQUksSUFBSSxRQUFRLENBQUMsTUFBTSxH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QkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0aW9uTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9kdWN0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW1wb3J0U2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pbXBvcnRzZXRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c0FwaUNsaWVudCwgUHJvZHVjdHNWaWV3TW9kZWwsIEJDQlByb2R1Y3RWaWV3TW9kZWwsIFByb2R1Y3RWaWV3TW9kZWwsIEJDQkltcG9ydFByb2R1Y3RSZXF1ZXN0LCBCQ0JJbXBvcnRQcm9kdWN0UmVzcG9uc2UsIEltcG9ydEFwaUNsaWVudCwgQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItcHJvZHVjdHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZWhlZXJQcm9kdWN0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICBwdWJsaWMgQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbD86IEJDQkltcG9ydFNldHNWaWV3TW9kZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBQcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSxcclxuICAgIHB1YmxpYyBJbXBvcnRTZXRzU2VydmljZTogSW1wb3J0U2V0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIEltcG9ydEFwaUNsaWVudDogSW1wb3J0QXBpQ2xpZW50LFxyXG4gICAgcHVibGljIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5JbXBvcnRTZXRzU2VydmljZS5Mb2FkSW1wb3J0U2V0cyh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBJbXBvcnQoKTogdm9pZCB7XHJcbiAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbD8ucHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgaWYgKHByb2R1Y3RzICE9IG51bGwgJiYgcHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2R1Y3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFyIGJjYnByb2R1Y3RzID0gcHJvZHVjdHNbaV0uYmNiUHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgICAgIGlmIChiY2Jwcm9kdWN0cyAhPSBudWxsKSB7XHJcbiAgICAgICAgICBwcm9kdWN0c1tpXS5pbXBvcnRTdGF0dXMgPSBcIjAvXCIgKyBiY2Jwcm9kdWN0cy5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBiY2Jwcm9kdWN0cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBiY2Jwcm9kdWN0c1tqXS5pbXBvcnRTdGF0dXMgPSBcIlhcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHZhciBiY2Jwcm9kdWN0cyA9IHByb2R1Y3RzWzBdLmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwgJiYgYmNicHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuSW1wb3J0QkNCUHJvZHVjdChiY2Jwcm9kdWN0c1swXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBJbXBvcnRCQ0JQcm9kdWN0KGJjYnByb2R1Y3Q6IEJDQlByb2R1Y3RWaWV3TW9kZWwpOiB2b2lkIHtcclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEJDQkltcG9ydFByb2R1Y3RSZXF1ZXN0KCk7XHJcblxyXG4gICAgcmVxdWVzdC5iY2JQcm9kdWN0SWQgPSBiY2Jwcm9kdWN0LmlkO1xyXG5cclxuICAgIHRoaXMuSW1wb3J0QXBpQ2xpZW50LmltcG9ydEJDQlByb2R1Y3QocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogQkNCSW1wb3J0UHJvZHVjdFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmICghbW9kZWwuc3VjY2Vzcykge1xyXG4gICAgICAgIGFsZXJ0KG1vZGVsLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGJjYnByb2R1Y3QuaW1wb3J0U3RhdHVzID0gXCJWXCI7XHJcblxyXG4gICAgICAgIHZhciBuZXh0ID0gdGhpcy5HZXROZXh0QkNCUHJvZHVjdChiY2Jwcm9kdWN0KTtcclxuXHJcbiAgICAgICAgaWYgKG5leHQuaW1wb3J0U3RhdHVzID09IFwiWFwiKSB7XHJcbiAgICAgICAgICB0aGlzLkltcG9ydEJDQlByb2R1Y3QobmV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUmVsb2FkKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBhbGVydChcImltcG9ydCBmYWlsZWQgZm9yIGlkOiBcIiArIGJjYnByb2R1Y3QuaWQpO1xyXG5cclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVzZXRJbXBvcnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5SZXNldEltcG9ydCgtMSwgLTEsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIENsZWFuVXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5DbGVhblVwKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0JDQlByb2R1Y3RzKHByb2R1Y3Q6IFByb2R1Y3RWaWV3TW9kZWwpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsID09IHByb2R1Y3QpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdFByb2R1Y3QocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCkge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWwgIT0gcHJvZHVjdCkge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsID0gcHJvZHVjdDtcclxuICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBTYXZlUHJvZHVjdChwcm9kdWN0OiBQcm9kdWN0Vmlld01vZGVsKSB7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5TYXZlUHJvZHVjdFZpZXdNb2RlbChwcm9kdWN0LCB0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RCQ0JQcm9kdWN0KGJjYnByb2R1Y3Q6IEJDQlByb2R1Y3RWaWV3TW9kZWwpIHtcclxuICAgIGlmICh0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IGJjYnByb2R1Y3QpIHtcclxuICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCA9IGJjYnByb2R1Y3Q7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRJbXBvcnRTdGF0dXMocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCk6IHN0cmluZyB7XHJcbiAgICB2YXIgdGV4dCA9IFwiXCI7XHJcbiAgICB2YXIgYWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgdmFyIGJjYnByb2R1Y3RzID0gcHJvZHVjdC5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuICAgIGlmIChiY2Jwcm9kdWN0cyAhPSBudWxsICYmIGJjYnByb2R1Y3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFyIGNvdW50ID0gMDtcclxuXHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmNicHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoYmNicHJvZHVjdHNbaV0uaW1wb3J0U3RhdHVzICE9IFwiXCIpIHtcclxuICAgICAgICAgIGFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgaWYgKGJjYnByb2R1Y3RzW2ldLmltcG9ydFN0YXR1cyAhPSBcIlhcIikge1xyXG4gICAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGFjdGl2ZSkge1xyXG4gICAgICAgIHRleHQgPSBjb3VudCArIFwiL1wiICsgYmNicHJvZHVjdHMubGVuZ3RoO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRleHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0TmV4dEJDQlByb2R1Y3QoYmNicHJvZHVjdDogQkNCUHJvZHVjdFZpZXdNb2RlbCk6IEJDQlByb2R1Y3RWaWV3TW9kZWwge1xyXG4gICAgdmFyIHByb2R1Y3RzID0gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUHJvZHVjdHNWaWV3TW9kZWw/LnByb2R1Y3RWaWV3TW9kZWxzO1xyXG4gICAgdmFyIG5leHQ6IEJDQlByb2R1Y3RWaWV3TW9kZWwgPSBiY2Jwcm9kdWN0O1xyXG4gICAgdmFyIGZvdW5kID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKHByb2R1Y3RzICE9IG51bGwgJiYgcHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2R1Y3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFyIGJjYnByb2R1Y3RzID0gcHJvZHVjdHNbaV0uYmNiUHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgICAgIGlmIChiY2Jwcm9kdWN0cyAhPSBudWxsKSB7XHJcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGJjYnByb2R1Y3RzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGlmIChmb3VuZCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBiY2Jwcm9kdWN0c1tqXTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGJjYnByb2R1Y3RzW2pdID09IGJjYnByb2R1Y3QpIHtcclxuICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV4dDtcclxuICB9XHJcbn1cclxuIiwiPGFwcC1iZWhlZXItbmF2PjwvYXBwLWJlaGVlci1uYXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiUHJvZHVjdHNTZXJ2aWNlLkxvYWRpbmcoKSB8fCBJbXBvcnRTZXRzU2VydmljZS5Mb2FkaW5nSW1wb3J0U2V0c1wiPlxyXG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cIiFQcm9kdWN0c1NlcnZpY2UuTG9hZGluZygpICYmICFJbXBvcnRTZXRzU2VydmljZS5Mb2FkaW5nSW1wb3J0U2V0c1wiIGNsYXNzPVwibWFpbi1ibG9ja1wiPlxyXG4gIDxtYXQtY2FyZD5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheWZsZXhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheWZsZXhcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPkltcG9ydCBzZXQ8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRTZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpbXBvcnRzZXQgb2YgSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbC5iY2JJbXBvcnRTZXRWaWV3TW9kZWxzXCIgW3ZhbHVlXT1cImltcG9ydHNldC5pZFwiPlxyXG4gICAgICAgICAgICAgICAge3tpbXBvcnRzZXQubmFtZX19XHJcbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICBcclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlByb2R1Y3RzU2VydmljZS5SZWxvYWQodGhpcy5DaGFuZ2VEZXRlY3RvclJlZilcIj5cclxuICAgICAgICAgICAgUmVmcmVzaFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWF1dG9cIiBzdHlsZT1cInRleHQtYWxpZ246IHJpZ2h0O1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVzZXRJbXBvcnQoKVwiPlxyXG4gICAgICAgICAgICBSZXNldCBJbXBvcnRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiSW1wb3J0KClcIj5cclxuICAgICAgICAgICAgSW1wb3J0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkNsZWFuVXAoKVwiPlxyXG4gICAgICAgICAgICBDbGVhblVwXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIFxyXG5cclxuICAgICAgXHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4XCIgKm5nSWY9XCJ0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbCAhPSB1bmRlZmluZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0cmVlLWJsb2NrXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsaW1pdGVyXCI+XHJcbiAgICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0YWJsZS1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQ+PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5JZDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+TmFhbTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+VmFyaWFudHM8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPkltcG9ydHNldDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RzVmlld01vZGVsLnByb2R1Y3RWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKGNsaWNrKT1cIlNlbGVjdFByb2R1Y3QocHJvZHVjdClcIiBjbGFzcz1cInRhYmxlLXJvd1wiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnIDogUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWwgPT0gcHJvZHVjdCwgJ3dhcm5pbmcnOiAhcHJvZHVjdC5pbXBvcnRlZCB8fCAhcHJvZHVjdC5jb25uZWN0ZWR9XCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz1cImltcG9ydHNwYW5cIj57eyBHZXRJbXBvcnRTdGF0dXMocHJvZHVjdCkgfX08L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7IHByb2R1Y3QuaWQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgcHJvZHVjdC5uYW1lIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7IHByb2R1Y3QuYmNiUHJvZHVjdFZpZXdNb2RlbHMubGVuZ3RoIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJwcm9kdWN0LmltcG9ydFNldElkXCIgKGNoYW5nZSk9XCJTYXZlUHJvZHVjdChwcm9kdWN0KVwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaW1wb3J0c2V0IG9mIEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldHNWaWV3TW9kZWwuYmNiSW1wb3J0U2V0Vmlld01vZGVsc1wiIFt2YWx1ZV09XCJpbXBvcnRzZXQuaWRcIj57e2ltcG9ydHNldC5uYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0JDQlByb2R1Y3RzKHByb2R1Y3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBiY2Jwcm9kdWN0IG9mIFByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsLmJjYlByb2R1Y3RWaWV3TW9kZWxzXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJyA6IFByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID09IGJjYnByb2R1Y3QsICd3YXJuaW5nJzogIWJjYnByb2R1Y3QuaW1wb3J0ZWQgfHwgIWJjYnByb2R1Y3QuY29ubmVjdGVkfVwiIChjbGljayk9XCJTZWxlY3RCQ0JQcm9kdWN0KGJjYnByb2R1Y3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPVwiaW1wb3J0c3BhblwiPnt7IGJjYnByb2R1Y3QuaW1wb3J0U3RhdHVzIH19PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGJjYnByb2R1Y3QuaWQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPnt7IGJjYnByb2R1Y3QubmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGltaXRlclwiPlxyXG4gICAgICAgIDxhcHAtYmVoZWVyLXByb2R1Y3RzLXByb2R1Y3QgKm5nSWY9XCJQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCAhPSB1bmRlZmluZWQgJiYgUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgPT0gdW5kZWZpbmVkXCIgW1Byb2R1Y3RWaWV3TW9kZWxdPVwiUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWxcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtcHJvZHVjdD5cclxuICAgICAgICA8YXBwLWJlaGVlci1wcm9kdWN0cy1iY2Jwcm9kdWN0ICpuZ0lmPVwiUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gdW5kZWZpbmVkXCIgW0JDQlByb2R1Y3RWaWV3TW9kZWxdPVwiUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWxcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtYmNicHJvZHVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXByb2R1Y3RzL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1wcm9kdWN0cy9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJckUsT0FBTyxFQUErRSx1QkFBdUIsRUFBcUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQU96TixNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLFlBQW1CLGVBQWdDLEVBQzFDLGlCQUFvQyxFQUNuQyxlQUFnQyxFQUNqQyxpQkFBb0M7UUFIMUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbkMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFMdEMsMkJBQXNCLEdBQTRCLFNBQVMsQ0FBQztJQU9uRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDO1FBRXpFLElBQUksUUFBUSxJQUFJLElBQUksSUFBSSxRQUFRLENBQUMsTUFBTSxH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QkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0aW9uTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9kdWN0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW1wb3J0U2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pbXBvcnRzZXRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c0FwaUNsaWVudCwgUHJvZHVjdHNWaWV3TW9kZWwsIEJDQlByb2R1Y3RWaWV3TW9kZWwsIFByb2R1Y3RWaWV3TW9kZWwsIEJDQkltcG9ydFByb2R1Y3RSZXF1ZXN0LCBCQ0JJbXBvcnRQcm9kdWN0UmVzcG9uc2UsIEltcG9ydEFwaUNsaWVudCwgQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItcHJvZHVjdHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItcHJvZHVjdHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1wcm9kdWN0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZWhlZXJQcm9kdWN0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICBwdWJsaWMgQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbD86IEJDQkltcG9ydFNldHNWaWV3TW9kZWwgPSB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBQcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSxcclxuICAgIHB1YmxpYyBJbXBvcnRTZXRzU2VydmljZTogSW1wb3J0U2V0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIEltcG9ydEFwaUNsaWVudDogSW1wb3J0QXBpQ2xpZW50LFxyXG4gICAgcHVibGljIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5JbXBvcnRTZXRzU2VydmljZS5Mb2FkSW1wb3J0U2V0cyh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBJbXBvcnQoKTogdm9pZCB7XHJcbiAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbD8ucHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgaWYgKHByb2R1Y3RzICE9IG51bGwgJiYgcHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2R1Y3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFyIGJjYnByb2R1Y3RzID0gcHJvZHVjdHNbaV0uYmNiUHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgICAgIGlmIChiY2Jwcm9kdWN0cyAhPSBudWxsKSB7XHJcbiAgICAgICAgICBwcm9kdWN0c1tpXS5pbXBvcnRTdGF0dXMgPSBcIjAvXCIgKyBiY2Jwcm9kdWN0cy5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBiY2Jwcm9kdWN0cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBiY2Jwcm9kdWN0c1tqXS5pbXBvcnRTdGF0dXMgPSBcIlhcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHZhciBiY2Jwcm9kdWN0cyA9IHByb2R1Y3RzWzBdLmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwgJiYgYmNicHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuSW1wb3J0QkNCUHJvZHVjdChiY2Jwcm9kdWN0c1swXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBJbXBvcnRCQ0JQcm9kdWN0KGJjYnByb2R1Y3Q6IEJDQlByb2R1Y3RWaWV3TW9kZWwpOiB2b2lkIHtcclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEJDQkltcG9ydFByb2R1Y3RSZXF1ZXN0KCk7XHJcblxyXG4gICAgcmVxdWVzdC5iY2JQcm9kdWN0SWQgPSBiY2Jwcm9kdWN0LmlkO1xyXG5cclxuICAgIHRoaXMuSW1wb3J0QXBpQ2xpZW50LmltcG9ydEJDQlByb2R1Y3QocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogQkNCSW1wb3J0UHJvZHVjdFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmICghbW9kZWwuc3VjY2Vzcykge1xyXG4gICAgICAgIGFsZXJ0KG1vZGVsLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGJjYnByb2R1Y3QuaW1wb3J0U3RhdHVzID0gXCJWXCI7XHJcblxyXG4gICAgICAgIHZhciBuZXh0ID0gdGhpcy5HZXROZXh0QkNCUHJvZHVjdChiY2Jwcm9kdWN0KTtcclxuXHJcbiAgICAgICAgaWYgKG5leHQuaW1wb3J0U3RhdHVzID09IFwiWFwiKSB7XHJcbiAgICAgICAgICB0aGlzLkltcG9ydEJDQlByb2R1Y3QobmV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUmVsb2FkKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBhbGVydChcImltcG9ydCBmYWlsZWQgZm9yIGlkOiBcIiArIGJjYnByb2R1Y3QuaWQpO1xyXG5cclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVzZXRJbXBvcnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5SZXNldEltcG9ydCgtMSwgLTEsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIENsZWFuVXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5DbGVhblVwKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0JDQlByb2R1Y3RzKHByb2R1Y3Q6IFByb2R1Y3RWaWV3TW9kZWwpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsID09IHByb2R1Y3QpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdFByb2R1Y3QocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCkge1xyXG4gICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWwgIT0gcHJvZHVjdCkge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsID0gcHJvZHVjdDtcclxuICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBTYXZlUHJvZHVjdChwcm9kdWN0OiBQcm9kdWN0Vmlld01vZGVsKSB7XHJcbiAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5TYXZlUHJvZHVjdFZpZXdNb2RlbChwcm9kdWN0LCB0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RCQ0JQcm9kdWN0KGJjYnByb2R1Y3Q6IEJDQlByb2R1Y3RWaWV3TW9kZWwpIHtcclxuICAgIGlmICh0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IGJjYnByb2R1Y3QpIHtcclxuICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCA9IGJjYnByb2R1Y3Q7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRJbXBvcnRTdGF0dXMocHJvZHVjdDogUHJvZHVjdFZpZXdNb2RlbCk6IHN0cmluZyB7XHJcbiAgICB2YXIgdGV4dCA9IFwiXCI7XHJcbiAgICB2YXIgYWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgdmFyIGJjYnByb2R1Y3RzID0gcHJvZHVjdC5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuICAgIGlmIChiY2Jwcm9kdWN0cyAhPSBudWxsICYmIGJjYnByb2R1Y3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFyIGNvdW50ID0gMDtcclxuXHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmNicHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoYmNicHJvZHVjdHNbaV0uaW1wb3J0U3RhdHVzICE9IFwiXCIpIHtcclxuICAgICAgICAgIGFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgaWYgKGJjYnByb2R1Y3RzW2ldLmltcG9ydFN0YXR1cyAhPSBcIlhcIikge1xyXG4gICAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGFjdGl2ZSkge1xyXG4gICAgICAgIHRleHQgPSBjb3VudCArIFwiL1wiICsgYmNicHJvZHVjdHMubGVuZ3RoO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRleHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0TmV4dEJDQlByb2R1Y3QoYmNicHJvZHVjdDogQkNCUHJvZHVjdFZpZXdNb2RlbCk6IEJDQlByb2R1Y3RWaWV3TW9kZWwge1xyXG4gICAgdmFyIHByb2R1Y3RzID0gdGhpcy5Qcm9kdWN0c1NlcnZpY2UuUHJvZHVjdHNWaWV3TW9kZWw/LnByb2R1Y3RWaWV3TW9kZWxzO1xyXG4gICAgdmFyIG5leHQ6IEJDQlByb2R1Y3RWaWV3TW9kZWwgPSBiY2Jwcm9kdWN0O1xyXG4gICAgdmFyIGZvdW5kID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKHByb2R1Y3RzICE9IG51bGwgJiYgcHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2R1Y3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdmFyIGJjYnByb2R1Y3RzID0gcHJvZHVjdHNbaV0uYmNiUHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgICAgIGlmIChiY2Jwcm9kdWN0cyAhPSBudWxsKSB7XHJcbiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGJjYnByb2R1Y3RzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGlmIChmb3VuZCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBiY2Jwcm9kdWN0c1tqXTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGJjYnByb2R1Y3RzW2pdID09IGJjYnByb2R1Y3QpIHtcclxuICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV4dDtcclxuICB9XHJcbn1cclxuIiwiPGFwcC1iZWhlZXItbmF2PjwvYXBwLWJlaGVlci1uYXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiUHJvZHVjdHNTZXJ2aWNlLkxvYWRpbmcoKSB8fCBJbXBvcnRTZXRzU2VydmljZS5Mb2FkaW5nSW1wb3J0U2V0c1wiPlxyXG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cIiFQcm9kdWN0c1NlcnZpY2UuTG9hZGluZygpICYmICFJbXBvcnRTZXRzU2VydmljZS5Mb2FkaW5nSW1wb3J0U2V0c1wiIGNsYXNzPVwibWFpbi1ibG9ja1wiPlxyXG4gIDxtYXQtY2FyZD5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheWZsZXggZ2FwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4IGZsZXgtYXV0byBnYXBcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPkltcG9ydCBzZXQ8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJJbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRTZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpbXBvcnRzZXQgb2YgSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbC5iY2JJbXBvcnRTZXRWaWV3TW9kZWxzXCIgW3ZhbHVlXT1cImltcG9ydHNldC5pZFwiPlxyXG4gICAgICAgICAgICAgICAge3tpbXBvcnRzZXQubmFtZX19XHJcbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlByb2R1Y3RzU2VydmljZS5SZWxvYWQodGhpcy5DaGFuZ2VEZXRlY3RvclJlZilcIj5cclxuICAgICAgICAgICAgUmVmcmVzaFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaXNwbGF5ZmxleCBnYXBcIiBzdHlsZT1cInRleHQtYWxpZ246IHJpZ2h0O1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVzZXRJbXBvcnQoKVwiPlxyXG4gICAgICAgICAgICBSZXNldCBJbXBvcnRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiSW1wb3J0KClcIj5cclxuICAgICAgICAgICAgSW1wb3J0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkNsZWFuVXAoKVwiPlxyXG4gICAgICAgICAgICBDbGVhblVwXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4XCIgKm5nSWY9XCJ0aGlzLlByb2R1Y3RzU2VydmljZS5Qcm9kdWN0c1ZpZXdNb2RlbCAhPSB1bmRlZmluZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0cmVlLWJsb2NrXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsaW1pdGVyXCI+XHJcbiAgICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0YWJsZS1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQ+PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5JZDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+TmFhbTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+VmFyaWFudHM8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPkltcG9ydHNldDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RzVmlld01vZGVsLnByb2R1Y3RWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKGNsaWNrKT1cIlNlbGVjdFByb2R1Y3QocHJvZHVjdClcIiBjbGFzcz1cInRhYmxlLXJvd1wiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnIDogUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWwgPT0gcHJvZHVjdCwgJ3dhcm5pbmcnOiAhcHJvZHVjdC5pbXBvcnRlZCB8fCAhcHJvZHVjdC5jb25uZWN0ZWR9XCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiBjbGFzcz1cImltcG9ydHNwYW5cIj57eyBHZXRJbXBvcnRTdGF0dXMocHJvZHVjdCkgfX08L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7IHByb2R1Y3QuaWQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+e3sgcHJvZHVjdC5uYW1lIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7IHByb2R1Y3QuYmNiUHJvZHVjdFZpZXdNb2RlbHMubGVuZ3RoIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJwcm9kdWN0LmltcG9ydFNldElkXCIgKGNoYW5nZSk9XCJTYXZlUHJvZHVjdChwcm9kdWN0KVwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaW1wb3J0c2V0IG9mIEltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldHNWaWV3TW9kZWwuYmNiSW1wb3J0U2V0Vmlld01vZGVsc1wiIFt2YWx1ZV09XCJpbXBvcnRzZXQuaWRcIj57e2ltcG9ydHNldC5uYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0JDQlByb2R1Y3RzKHByb2R1Y3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBiY2Jwcm9kdWN0IG9mIFByb2R1Y3RzU2VydmljZS5Qcm9kdWN0Vmlld01vZGVsLmJjYlByb2R1Y3RWaWV3TW9kZWxzXCIgY2xhc3M9XCJ0YWJsZS1yb3dcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJyA6IFByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsID09IGJjYnByb2R1Y3QsICd3YXJuaW5nJzogIWJjYnByb2R1Y3QuaW1wb3J0ZWQgfHwgIWJjYnByb2R1Y3QuY29ubmVjdGVkfVwiIChjbGljayk9XCJTZWxlY3RCQ0JQcm9kdWN0KGJjYnByb2R1Y3QpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPVwiaW1wb3J0c3BhblwiPnt7IGJjYnByb2R1Y3QuaW1wb3J0U3RhdHVzIH19PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPnt7IGJjYnByb2R1Y3QuaWQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPnt7IGJjYnByb2R1Y3QubmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+Jm5ic3A7PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGltaXRlclwiPlxyXG4gICAgICAgIDxhcHAtYmVoZWVyLXByb2R1Y3RzLXByb2R1Y3QgKm5nSWY9XCJQcm9kdWN0c1NlcnZpY2UuUHJvZHVjdFZpZXdNb2RlbCAhPSB1bmRlZmluZWQgJiYgUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgPT0gdW5kZWZpbmVkXCIgW1Byb2R1Y3RWaWV3TW9kZWxdPVwiUHJvZHVjdHNTZXJ2aWNlLlByb2R1Y3RWaWV3TW9kZWxcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtcHJvZHVjdD5cclxuICAgICAgICA8YXBwLWJlaGVlci1wcm9kdWN0cy1iY2Jwcm9kdWN0ICpuZ0lmPVwiUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gdW5kZWZpbmVkXCIgW0JDQlByb2R1Y3RWaWV3TW9kZWxdPVwiUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWxcIj48L2FwcC1iZWhlZXItcHJvZHVjdHMtYmNicHJvZHVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
@@ -19,7 +19,7 @@ export class FabCategoriesComponent {
19
19
  }
20
20
  }
21
21
  ngOnInit() {
22
- this.FabrikantenService.LoadFabrikantenViewModel(this.ChangeDetectorRef);
22
+ this.FabrikantenService.LoadFabrikantenViewModel(this.ChangeDetectorRef, null);
23
23
  this.TranslateService.LoadTranslations(this.ChangeDetectorRef);
24
24
  }
25
25
  }
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
29
29
  type: Component,
30
30
  args: [{ selector: 'fab-categories', template: "<div class=\"loader\" *ngIf=\"FabrikantenService.Loading\">\n <app-fab-loader></app-fab-loader>\n</div>\n\n<app-fab-header [showfiltermenubutton]=\"false\"></app-fab-header>\n\n<div *ngIf=\"FabrikantenService.GetFirstOpenCategoryLayer() != null\" class=\"main-block\">\n <fab-category-tile *ngFor=\"let category of FabrikantenService.GetFirstOpenCategoryLayer().categories\" [category]=\"category\"></fab-category-tile>\n</div>\n\n", styles: [".main-block{display:flex;flex-wrap:wrap;justify-content:center}.loader{position:absolute;width:100%;height:100%;justify-content:center;z-index:20;background-color:#ffffffb3;top:0;left:0}\n"] }]
31
31
  }], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.TranslateService }, { type: i3.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWNhdGVnb3JpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1jYXRlZ29yaWVzL2ZhYi1jYXRlZ29yaWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItY2F0ZWdvcmllcy9mYWItY2F0ZWdvcmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBVXJFLE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFDUyxrQkFBc0MsRUFDdEMsZ0JBQWtDLEVBQ2pDLGNBQThCLEVBQzlCLGlCQUFvQztRQUhyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNwRTtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNqRSxDQUFDOzttSEFqQlUsc0JBQXNCO3VHQUF0QixzQkFBc0Isc0RDVm5DLG1iQVVBOzJGREFhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZhYnJpa2FudGVuU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZhYnJpa2FudGVuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XHJcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmFiLWNhdGVnb3JpZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmFiLWNhdGVnb3JpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mYWItY2F0ZWdvcmllcy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZhYkNhdGVnb3JpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcbiAgICBwdWJsaWMgVHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIEFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuVHJhbnNsYXRlU2VydmljZS5Qcm9jZXNzUGFyYW1ldGVycyh0aGlzLkFjdGl2YXRlZFJvdXRlKTtcblxuICAgIGlmICghdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuU2hvd0NhdGVnb3JpZXMoKSkge1xuICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVzZXRBbGxDYXRlZ29yaWVzKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuTG9hZEZhYnJpa2FudGVuVmlld01vZGVsKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHRoaXMuVHJhbnNsYXRlU2VydmljZS5Mb2FkVHJhbnNsYXRpb25zKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJsb2FkZXJcIiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5Mb2FkaW5nXCI+XG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxuPC9kaXY+XG5cbjxhcHAtZmFiLWhlYWRlciBbc2hvd2ZpbHRlcm1lbnVidXR0b25dPVwiZmFsc2VcIj48L2FwcC1mYWItaGVhZGVyPlxuXG48ZGl2ICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkdldEZpcnN0T3BlbkNhdGVnb3J5TGF5ZXIoKSAhPSBudWxsXCIgY2xhc3M9XCJtYWluLWJsb2NrXCI+XG4gIDxmYWItY2F0ZWdvcnktdGlsZSAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2YgRmFicmlrYW50ZW5TZXJ2aWNlLkdldEZpcnN0T3BlbkNhdGVnb3J5TGF5ZXIoKS5jYXRlZ29yaWVzXCIgW2NhdGVnb3J5XT1cImNhdGVnb3J5XCI+PC9mYWItY2F0ZWdvcnktdGlsZT5cbjwvZGl2PlxuXG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWNhdGVnb3JpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1jYXRlZ29yaWVzL2ZhYi1jYXRlZ29yaWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItY2F0ZWdvcmllcy9mYWItY2F0ZWdvcmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBVXJFLE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFDUyxrQkFBc0MsRUFDdEMsZ0JBQWtDLEVBQ2pDLGNBQThCLEVBQzlCLGlCQUFvQztRQUhyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNwRTtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDakUsQ0FBQzs7bUhBakJVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHNEQ1ZuQyxtYkFVQTsyRkRBYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZhYi1jYXRlZ29yaWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLWNhdGVnb3JpZXMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGYWJDYXRlZ29yaWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2UsXG4gICAgcHVibGljIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBBY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuUHJvY2Vzc1BhcmFtZXRlcnModGhpcy5BY3RpdmF0ZWRSb3V0ZSk7XG5cbiAgICBpZiAoIXRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dDYXRlZ29yaWVzKCkpIHtcbiAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlJlc2V0QWxsQ2F0ZWdvcmllcyh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkxvYWRGYWJyaWthbnRlblZpZXdNb2RlbCh0aGlzLkNoYW5nZURldGVjdG9yUmVmLCBudWxsKTtcbiAgICB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuTG9hZFRyYW5zbGF0aW9ucyh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwibG9hZGVyXCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuTG9hZGluZ1wiPlxuICA8YXBwLWZhYi1sb2FkZXI+PC9hcHAtZmFiLWxvYWRlcj5cbjwvZGl2PlxuXG48YXBwLWZhYi1oZWFkZXIgW3Nob3dmaWx0ZXJtZW51YnV0dG9uXT1cImZhbHNlXCI+PC9hcHAtZmFiLWhlYWRlcj5cblxuPGRpdiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5HZXRGaXJzdE9wZW5DYXRlZ29yeUxheWVyKCkgIT0gbnVsbFwiIGNsYXNzPVwibWFpbi1ibG9ja1wiPlxuICA8ZmFiLWNhdGVnb3J5LXRpbGUgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIEZhYnJpa2FudGVuU2VydmljZS5HZXRGaXJzdE9wZW5DYXRlZ29yeUxheWVyKCkuY2F0ZWdvcmllc1wiIFtjYXRlZ29yeV09XCJjYXRlZ29yeVwiPjwvZmFiLWNhdGVnb3J5LXRpbGU+XG48L2Rpdj5cblxuIl19