@net7/boilerplate-muruca 5.2.2 → 5.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/esm2022/lib/components/advanced-result/advanced-result.mjs +3 -3
  2. package/esm2022/lib/components/form/form.mjs +3 -3
  3. package/esm2022/lib/components/form-wrapper-accordion/form-wrapper-accordion.mjs +3 -3
  4. package/esm2022/lib/components/gallery/gallery.mjs +5 -5
  5. package/esm2022/lib/components/metadata-dynamic/metadata-dynamic.mjs +3 -3
  6. package/esm2022/lib/components/metadata-with-readmore/metadata-with-readmore.mjs +3 -3
  7. package/esm2022/lib/components/read-more/read-more.mjs +3 -3
  8. package/esm2022/lib/components/resource-modal/resource-modal.mjs +3 -3
  9. package/esm2022/lib/components/search-page-description/search-page-description.mjs +3 -3
  10. package/esm2022/lib/data-sources/static-metadata.ds.mjs +11 -5
  11. package/esm2022/lib/event-handlers/gallery.eh.mjs +3 -1
  12. package/esm2022/lib/guards/dynamic-path.guard.mjs +3 -3
  13. package/esm2022/lib/guards/locale-dependencies.guard.mjs +3 -3
  14. package/esm2022/lib/layouts/advanced-results-layout/advanced-results-layout.mjs +3 -3
  15. package/esm2022/lib/layouts/advanced-search-layout/advanced-search-layout.mjs +3 -3
  16. package/esm2022/lib/layouts/home-layout/home-layout.mjs +3 -3
  17. package/esm2022/lib/layouts/itinerary-layout/itinerary-layout.mjs +3 -3
  18. package/esm2022/lib/layouts/map-layout/map-layout.mjs +3 -3
  19. package/esm2022/lib/layouts/posts-layout/posts-layout.mjs +3 -3
  20. package/esm2022/lib/layouts/resource-layout/resource-layout.eh.mjs +9 -9
  21. package/esm2022/lib/layouts/resource-layout/resource-layout.mjs +3 -3
  22. package/esm2022/lib/layouts/search-facets-layout/search-facets-layout.mjs +3 -3
  23. package/esm2022/lib/layouts/search-layout/search-layout.mjs +3 -3
  24. package/esm2022/lib/layouts/static-layout/static-layout.mjs +3 -3
  25. package/esm2022/lib/layouts/timeline-layout/timeline-layout.ds.mjs +5 -2
  26. package/esm2022/lib/layouts/timeline-layout/timeline-layout.mjs +23 -6
  27. package/esm2022/lib/n7-boilerplate-muruca.module.mjs +4 -4
  28. package/esm2022/lib/pipes/keep-html.pipe.mjs +3 -3
  29. package/esm2022/lib/services/footer.service.mjs +3 -3
  30. package/esm2022/lib/services/layout-state.service.mjs +3 -3
  31. package/esm2022/lib/services/locale.service.mjs +3 -3
  32. package/esm2022/lib/services/menu.service.mjs +3 -3
  33. package/esm2022/lib/services/resource-modal.service.mjs +3 -3
  34. package/esm2022/lib/services/search.service.mjs +3 -3
  35. package/esm2022/lib/services/translations-loader.service.mjs +3 -3
  36. package/fesm2022/net7-boilerplate-muruca.mjs +157 -132
  37. package/fesm2022/net7-boilerplate-muruca.mjs.map +1 -1
  38. package/lib/components/gallery/gallery.d.ts +4 -4
  39. package/lib/layouts/timeline-layout/timeline-layout.d.ts +1 -0
  40. package/lib/layouts/timeline-layout/timeline-layout.ds.d.ts +1 -0
  41. package/package.json +1 -1
  42. package/src/lib/styles/muruca/components/_gallery.scss +1 -1
  43. package/src/lib/styles/muruca/components/_wp-content.scss +45 -15
  44. package/src/lib/styles/muruca/layouts/_timeline.scss +2 -1
@@ -55,10 +55,10 @@ export class MrSearchLayoutComponent extends AbstractLayout {
55
55
  ngOnDestroy() {
56
56
  this.onDestroy();
57
57
  }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrSearchLayoutComponent, deps: [{ token: i1.LayoutsConfigurationService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i1.CommunicationService }, { token: i1.ConfigurationService }, { token: i3.MrSearchService }, { token: i4.MrLayoutStateService }, { token: i1.MainStateService }, { token: i5.MrResourceModalService }, { token: i6.MrLocaleService }], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: MrSearchLayoutComponent, selector: "mr-search-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-search mr-layout\"\n *ngIf=\"lb.dataSource\">\n <section class=\"mr-layout__maxwidth mr-side-margin\">\n\n <div class=\"mr-search__title\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-page-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-title'].emit\">\n </n7-inner-title>\n </div>\n\n <div *ngIf=\"lb.dataSource.showDescription\" class=\"mr-search__description\">\n <mr-search-page-description\n [data]=\"lb.widgets['mr-search-page-description'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-description'].emit\">\n </mr-search-page-description>\n </div>\n \n <div class=\"mr-search__results-content\">\n <aside class=\"mr-facets\"\n [ngStyle]=\"{\n width: lb.dataSource.pageConfig['facetsWidthPercentage'] ? lb.dataSource.pageConfig['facetsWidthPercentage'] + '%' : ''\n }\">\n <div class=\"scroll-ref\">&nbsp;</div>\n <div class=\"mr-facets__contents\">\n <h2 class=\"mr-facets__title\" \n *ngIf=\"lb.dataSource.pageConfig['facetsTitle']\">\n {{ lb.dataSource.pageConfig['facetsTitle'] }}\n </h2>\n <mr-search-facets-layout \n [searchService]=\"lb.dataSource.searchService\">\n </mr-search-facets-layout>\n </div>\n </aside>\n <div class=\"mr-search__results-wrapper\">\n <div class=\"mr-search__results-info\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-results-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-results-title'].emit\">\n </n7-inner-title>\n </div>\n \n <div *ngIf=\"(\n lb.dataSource.pageConfig['filtersTitle'] && \n lb.widgets['mr-search-tags'].ds.hasFilters\n )\" \n class=\"mr-active-filters\">\n <span class=\"mr-active-filters__label\">{{ lb.dataSource.pageConfig['filtersTitle'] }}</span>\n <div class=\"mr-active-filters__tags-wrapper\">\n <n7-tag *ngFor=\"let tag of (lb.widgets['mr-search-tags'].ds.out$ | async)\"\n [data]=\"tag\"\n [emit]=\"lb.widgets['mr-search-tags'].emit\">\n </n7-tag>\n </div>\n </div>\n\n <main class=\"mr-search__results\">\n <!-- SEARCH RESULTS -->\n <ng-container [ngSwitch]=\"layoutState.get$('results') | async\">\n \n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-search__results-loading n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3,4,5,6,7,8,9]\" [data]=\"{\n blocks: [\n { classes: 'search-result-placeholder-title' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' }\n ]\n }\"></n7-content-placeholder>\n </div>\n </ng-container>\n \n <!-- success: items > 0 -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <div class=\"n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <ng-container *ngIf=\"!lb.dataSource.pageConfig?.advancedResults\">\n <n7-item-preview *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </n7-item-preview>\n </ng-container>\n <ng-container *ngIf=\"lb.dataSource.pageConfig?.advancedResults\">\n <mr-advanced-result\n *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </mr-advanced-result>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- empty: items === 0 -->\n <ng-container *ngSwitchCase=\"'EMPTY'\">\n <div class=\"mr-search__results-fallback\">\n <p class=\"mr-search__results-fallback-string\">\n {{ lb.dataSource.pageConfig.fallback.text }}\n </p>\n <button class=\"n7-btn mr-search__results-fallback-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.fallback.button }}\n </button>\n </div>\n </ng-container>\n\n <!-- error: request problem -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <p class=\"mr-search__results-ko-string\">\n {{ lb.dataSource.pageConfig.ko.text }}\n </p>\n <button class=\"n7-btn mr-search__results-ko-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.ko.button }}\n </button>\n </ng-container>\n \n </ng-container>\n </main> \n <n7-smart-pagination\n *ngIf=\"(layoutState.get$('results') | async) === 'SUCCESS'\"\n [data]=\"lb.widgets['n7-smart-pagination'].ds.out$ | async\"\n [emit]=\"lb.widgets['n7-smart-pagination'].emit\">\n </n7-smart-pagination>\n </div>\n </div>\n\n </section>\n</div>", dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i8.ContentPlaceholderComponent, selector: "n7-content-placeholder", inputs: ["data"] }, { kind: "component", type: i8.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { kind: "component", type: i8.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { kind: "component", type: i8.TagComponent, selector: "n7-tag", inputs: ["data", "emit"] }, { kind: "component", type: i1.SmartPaginationComponent, selector: "n7-smart-pagination", inputs: ["data", "emit"] }, { kind: "component", type: i9.MrSearchFacetsLayoutComponent, selector: "mr-search-facets-layout", inputs: ["searchService"] }, { kind: "component", type: i10.MrSearchPageDescriptionComponent, selector: "mr-search-page-description", inputs: ["data", "emit"] }, { kind: "component", type: i11.MrAdvancedResultComponent, selector: "mr-advanced-result", inputs: ["data", "emit"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }] }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrSearchLayoutComponent, deps: [{ token: i1.LayoutsConfigurationService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i1.CommunicationService }, { token: i1.ConfigurationService }, { token: i3.MrSearchService }, { token: i4.MrLayoutStateService }, { token: i1.MainStateService }, { token: i5.MrResourceModalService }, { token: i6.MrLocaleService }], target: i0.ɵɵFactoryTarget.Component }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrSearchLayoutComponent, selector: "mr-search-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-search mr-layout\"\n *ngIf=\"lb.dataSource\">\n <section class=\"mr-layout__maxwidth mr-side-margin\">\n\n <div class=\"mr-search__title\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-page-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-title'].emit\">\n </n7-inner-title>\n </div>\n\n <div *ngIf=\"lb.dataSource.showDescription\" class=\"mr-search__description\">\n <mr-search-page-description\n [data]=\"lb.widgets['mr-search-page-description'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-description'].emit\">\n </mr-search-page-description>\n </div>\n \n <div class=\"mr-search__results-content\">\n <aside class=\"mr-facets\"\n [ngStyle]=\"{\n width: lb.dataSource.pageConfig['facetsWidthPercentage'] ? lb.dataSource.pageConfig['facetsWidthPercentage'] + '%' : ''\n }\">\n <div class=\"scroll-ref\">&nbsp;</div>\n <div class=\"mr-facets__contents\">\n <h2 class=\"mr-facets__title\" \n *ngIf=\"lb.dataSource.pageConfig['facetsTitle']\">\n {{ lb.dataSource.pageConfig['facetsTitle'] }}\n </h2>\n <mr-search-facets-layout \n [searchService]=\"lb.dataSource.searchService\">\n </mr-search-facets-layout>\n </div>\n </aside>\n <div class=\"mr-search__results-wrapper\">\n <div class=\"mr-search__results-info\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-results-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-results-title'].emit\">\n </n7-inner-title>\n </div>\n \n <div *ngIf=\"(\n lb.dataSource.pageConfig['filtersTitle'] && \n lb.widgets['mr-search-tags'].ds.hasFilters\n )\" \n class=\"mr-active-filters\">\n <span class=\"mr-active-filters__label\">{{ lb.dataSource.pageConfig['filtersTitle'] }}</span>\n <div class=\"mr-active-filters__tags-wrapper\">\n <n7-tag *ngFor=\"let tag of (lb.widgets['mr-search-tags'].ds.out$ | async)\"\n [data]=\"tag\"\n [emit]=\"lb.widgets['mr-search-tags'].emit\">\n </n7-tag>\n </div>\n </div>\n\n <main class=\"mr-search__results\">\n <!-- SEARCH RESULTS -->\n <ng-container [ngSwitch]=\"layoutState.get$('results') | async\">\n \n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-search__results-loading n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3,4,5,6,7,8,9]\" [data]=\"{\n blocks: [\n { classes: 'search-result-placeholder-title' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' }\n ]\n }\"></n7-content-placeholder>\n </div>\n </ng-container>\n \n <!-- success: items > 0 -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <div class=\"n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <ng-container *ngIf=\"!lb.dataSource.pageConfig?.advancedResults\">\n <n7-item-preview *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </n7-item-preview>\n </ng-container>\n <ng-container *ngIf=\"lb.dataSource.pageConfig?.advancedResults\">\n <mr-advanced-result\n *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </mr-advanced-result>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- empty: items === 0 -->\n <ng-container *ngSwitchCase=\"'EMPTY'\">\n <div class=\"mr-search__results-fallback\">\n <p class=\"mr-search__results-fallback-string\">\n {{ lb.dataSource.pageConfig.fallback.text }}\n </p>\n <button class=\"n7-btn mr-search__results-fallback-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.fallback.button }}\n </button>\n </div>\n </ng-container>\n\n <!-- error: request problem -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <p class=\"mr-search__results-ko-string\">\n {{ lb.dataSource.pageConfig.ko.text }}\n </p>\n <button class=\"n7-btn mr-search__results-ko-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.ko.button }}\n </button>\n </ng-container>\n \n </ng-container>\n </main> \n <n7-smart-pagination\n *ngIf=\"(layoutState.get$('results') | async) === 'SUCCESS'\"\n [data]=\"lb.widgets['n7-smart-pagination'].ds.out$ | async\"\n [emit]=\"lb.widgets['n7-smart-pagination'].emit\">\n </n7-smart-pagination>\n </div>\n </div>\n\n </section>\n</div>", dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i8.ContentPlaceholderComponent, selector: "n7-content-placeholder", inputs: ["data"] }, { kind: "component", type: i8.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { kind: "component", type: i8.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { kind: "component", type: i8.TagComponent, selector: "n7-tag", inputs: ["data", "emit"] }, { kind: "component", type: i1.SmartPaginationComponent, selector: "n7-smart-pagination", inputs: ["data", "emit"] }, { kind: "component", type: i9.MrSearchFacetsLayoutComponent, selector: "mr-search-facets-layout", inputs: ["searchService"] }, { kind: "component", type: i10.MrSearchPageDescriptionComponent, selector: "mr-search-page-description", inputs: ["data", "emit"] }, { kind: "component", type: i11.MrAdvancedResultComponent, selector: "mr-advanced-result", inputs: ["data", "emit"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }] }); }
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrSearchLayoutComponent, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrSearchLayoutComponent, decorators: [{
62
62
  type: Component,
63
63
  args: [{ selector: 'mr-search-layout', template: "<div class=\"mr-search mr-layout\"\n *ngIf=\"lb.dataSource\">\n <section class=\"mr-layout__maxwidth mr-side-margin\">\n\n <div class=\"mr-search__title\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-page-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-title'].emit\">\n </n7-inner-title>\n </div>\n\n <div *ngIf=\"lb.dataSource.showDescription\" class=\"mr-search__description\">\n <mr-search-page-description\n [data]=\"lb.widgets['mr-search-page-description'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-description'].emit\">\n </mr-search-page-description>\n </div>\n \n <div class=\"mr-search__results-content\">\n <aside class=\"mr-facets\"\n [ngStyle]=\"{\n width: lb.dataSource.pageConfig['facetsWidthPercentage'] ? lb.dataSource.pageConfig['facetsWidthPercentage'] + '%' : ''\n }\">\n <div class=\"scroll-ref\">&nbsp;</div>\n <div class=\"mr-facets__contents\">\n <h2 class=\"mr-facets__title\" \n *ngIf=\"lb.dataSource.pageConfig['facetsTitle']\">\n {{ lb.dataSource.pageConfig['facetsTitle'] }}\n </h2>\n <mr-search-facets-layout \n [searchService]=\"lb.dataSource.searchService\">\n </mr-search-facets-layout>\n </div>\n </aside>\n <div class=\"mr-search__results-wrapper\">\n <div class=\"mr-search__results-info\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-results-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-results-title'].emit\">\n </n7-inner-title>\n </div>\n \n <div *ngIf=\"(\n lb.dataSource.pageConfig['filtersTitle'] && \n lb.widgets['mr-search-tags'].ds.hasFilters\n )\" \n class=\"mr-active-filters\">\n <span class=\"mr-active-filters__label\">{{ lb.dataSource.pageConfig['filtersTitle'] }}</span>\n <div class=\"mr-active-filters__tags-wrapper\">\n <n7-tag *ngFor=\"let tag of (lb.widgets['mr-search-tags'].ds.out$ | async)\"\n [data]=\"tag\"\n [emit]=\"lb.widgets['mr-search-tags'].emit\">\n </n7-tag>\n </div>\n </div>\n\n <main class=\"mr-search__results\">\n <!-- SEARCH RESULTS -->\n <ng-container [ngSwitch]=\"layoutState.get$('results') | async\">\n \n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-search__results-loading n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3,4,5,6,7,8,9]\" [data]=\"{\n blocks: [\n { classes: 'search-result-placeholder-title' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' }\n ]\n }\"></n7-content-placeholder>\n </div>\n </ng-container>\n \n <!-- success: items > 0 -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <div class=\"n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <ng-container *ngIf=\"!lb.dataSource.pageConfig?.advancedResults\">\n <n7-item-preview *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </n7-item-preview>\n </ng-container>\n <ng-container *ngIf=\"lb.dataSource.pageConfig?.advancedResults\">\n <mr-advanced-result\n *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </mr-advanced-result>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- empty: items === 0 -->\n <ng-container *ngSwitchCase=\"'EMPTY'\">\n <div class=\"mr-search__results-fallback\">\n <p class=\"mr-search__results-fallback-string\">\n {{ lb.dataSource.pageConfig.fallback.text }}\n </p>\n <button class=\"n7-btn mr-search__results-fallback-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.fallback.button }}\n </button>\n </div>\n </ng-container>\n\n <!-- error: request problem -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <p class=\"mr-search__results-ko-string\">\n {{ lb.dataSource.pageConfig.ko.text }}\n </p>\n <button class=\"n7-btn mr-search__results-ko-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.ko.button }}\n </button>\n </ng-container>\n \n </ng-container>\n </main> \n <n7-smart-pagination\n *ngIf=\"(layoutState.get$('results') | async) === 'SUCCESS'\"\n [data]=\"lb.widgets['n7-smart-pagination'].ds.out$ | async\"\n [emit]=\"lb.widgets['n7-smart-pagination'].emit\">\n </n7-smart-pagination>\n </div>\n </div>\n\n </section>\n</div>" }]
64
64
  }], ctorParameters: () => [{ type: i1.LayoutsConfigurationService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i1.CommunicationService }, { type: i1.ConfigurationService }, { type: i3.MrSearchService }, { type: i4.MrLayoutStateService }, { type: i1.MainStateService }, { type: i5.MrResourceModalService }, { type: i6.MrLocaleService }] });
@@ -41,10 +41,10 @@ export class MrStaticLayoutComponent extends AbstractLayout {
41
41
  ngOnDestroy() {
42
42
  this.onDestroy();
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrStaticLayoutComponent, deps: [{ token: i1.CommunicationService }, { token: i1.ConfigurationService }, { token: i1.MainStateService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.MrLayoutStateService }, { token: i1.LayoutsConfigurationService }], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: MrStaticLayoutComponent, selector: "mr-static-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-static mr-layout\"\n *ngIf=\"lb.dataSource\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- STATIC LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <div class=\"mr-static__top\">\n <h1 class=\"mr-static__title mr-generated-title-WP\">{{lb.dataSource.title}}</h1>\n <div class=\"mr-static__metadata\">\n <n7-metadata-viewer \n [data]=\"lb.widgets['mr-static-metadata'].ds.out$ | async\">\n </n7-metadata-viewer>\n </div>\n </div>\n \n <div class=\"mr-static__content mr-wp-content\" [innerHTML]=\"lb.dataSource.content | keepHtml\"></div>\n </ng-container>\n \n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i5.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { kind: "component", type: i5.MetadataViewerComponent, selector: "n7-metadata-viewer", inputs: ["data", "emit"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.EscapeHtmlPipe, name: "keepHtml" }] }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrStaticLayoutComponent, deps: [{ token: i1.CommunicationService }, { token: i1.ConfigurationService }, { token: i1.MainStateService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.MrLayoutStateService }, { token: i1.LayoutsConfigurationService }], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrStaticLayoutComponent, selector: "mr-static-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-static mr-layout\"\n *ngIf=\"lb.dataSource\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- STATIC LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <div class=\"mr-static__top\">\n <h1 class=\"mr-static__title mr-generated-title-WP\">{{lb.dataSource.title}}</h1>\n <div class=\"mr-static__metadata\">\n <n7-metadata-viewer \n [data]=\"lb.widgets['mr-static-metadata'].ds.out$ | async\">\n </n7-metadata-viewer>\n </div>\n </div>\n \n <div class=\"mr-static__content mr-wp-content\" [innerHTML]=\"lb.dataSource.content | keepHtml\"></div>\n </ng-container>\n \n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i5.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { kind: "component", type: i5.MetadataViewerComponent, selector: "n7-metadata-viewer", inputs: ["data", "emit"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.EscapeHtmlPipe, name: "keepHtml" }] }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrStaticLayoutComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrStaticLayoutComponent, decorators: [{
48
48
  type: Component,
49
49
  args: [{ selector: 'mr-static-layout', template: "<div class=\"mr-static mr-layout\"\n *ngIf=\"lb.dataSource\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- STATIC LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <div class=\"mr-static__top\">\n <h1 class=\"mr-static__title mr-generated-title-WP\">{{lb.dataSource.title}}</h1>\n <div class=\"mr-static__metadata\">\n <n7-metadata-viewer \n [data]=\"lb.widgets['mr-static-metadata'].ds.out$ | async\">\n </n7-metadata-viewer>\n </div>\n </div>\n \n <div class=\"mr-static__content mr-wp-content\" [innerHTML]=\"lb.dataSource.content | keepHtml\"></div>\n </ng-container>\n \n </ng-container>\n</div>\n" }]
50
50
  }], ctorParameters: () => [{ type: i1.CommunicationService }, { type: i1.ConfigurationService }, { type: i1.MainStateService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.MrLayoutStateService }, { type: i1.LayoutsConfigurationService }] });
@@ -14,6 +14,7 @@ export class MrTimelineLayoutDS extends LayoutDataSource {
14
14
  this.defaultDescription = '';
15
15
  this.eventDescription = '';
16
16
  this.hasMap = false;
17
+ this.hasGallery = false;
17
18
  this.timelineListener$ = new Subject();
18
19
  }
19
20
  onInit(payload) {
@@ -145,7 +146,9 @@ export class MrTimelineLayoutDS extends LayoutDataSource {
145
146
  }
146
147
  });
147
148
  if (gallery) {
148
- this.collectionGalleryData = gallery;
149
+ // this.collectionGalleryData = gallery;
150
+ this.hasGallery = true;
151
+ this.one('mr-gallery').update(gallery);
149
152
  }
150
153
  else {
151
154
  this.collectionGalleryData = undefined;
@@ -194,4 +197,4 @@ export class MrTimelineLayoutDS extends LayoutDataSource {
194
197
  });
195
198
  }
196
199
  }
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtbGF5b3V0LmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvbGF5b3V0cy90aW1lbGluZS1sYXlvdXQvdGltZWxpbmUtbGF5b3V0LmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTdkMsT0FBTyx1QkFBdUIsQ0FBQztBQUcvQixPQUFPLFdBQVcsTUFBTSw0QkFBNEIsQ0FBQztBQUVyRCxrRUFBa0U7QUFFbEUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQUF4RDs7UUFtQlMsWUFBTyxHQUFHO1lBQ2YsZUFBZSxFQUFFLElBQUk7WUFDckIsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBRUssdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBSXhCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUl0QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBTWYsc0JBQWlCLEdBQXNCLElBQUksT0FBTyxFQUFFLENBQUM7SUFzTzlELENBQUM7SUFuTUMsTUFBTSxDQUFDLE9BQU87UUFDWixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQzND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Q3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGF5b3V0RGF0YVNvdXJjZSwgX3QgfSBmcm9tICdAbmV0Ny9jb3JlJztcbmltcG9ydCB7IEFuY2hvciwgSXRlbVByZXZpZXdEYXRhLCBUaW1lbGluZURhdGEgfSBmcm9tICdAbmV0Ny9jb21wb25lbnRzJztcbmltcG9ydCB7IFRpbWVsaW5lIH0gZnJvbSAndmlzLXRpbWVsaW5lJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gIENvbW11bmljYXRpb25TZXJ2aWNlLFxuICBNYWluU3RhdGVTZXJ2aWNlLFxufSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1yTGF5b3V0U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0ICdsZWFmbGV0Lm1hcmtlcmNsdXN0ZXInO1xuaW1wb3J0IHsgR2V0UmVzb3VyY2VSZXNwb25zZSB9IGZyb20gJy4vdGltZWxpbmUtbGF5b3V0LnR5cGVzJztcbmltcG9ydCB7IE1yTG9jYWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2FsZS5zZXJ2aWNlJztcbmltcG9ydCBsaW5rc0hlbHBlciBmcm9tICcuLi8uLi9oZWxwZXJzL2xpbmtzLWhlbHBlcic7XG5cbi8vIGRlbW8gcGFnZTogaHR0cDovL2xvY2FsaG9zdDo0MjAwL3RpbWVsaW5lLzI5OTIvbWlzc2lvbmUtdmVuZXppYVxuXG5leHBvcnQgY2xhc3MgTXJUaW1lbGluZUxheW91dERTIGV4dGVuZHMgTGF5b3V0RGF0YVNvdXJjZSB7XG4gIHByaXZhdGUgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvblNlcnZpY2U7XG5cbiAgcHJpdmF0ZSBjb21tdW5pY2F0aW9uOiBDb21tdW5pY2F0aW9uU2VydmljZTtcblxuICBwcml2YXRlIG1haW5TdGF0ZTogTWFpblN0YXRlU2VydmljZTtcblxuICBwcml2YXRlIGxheW91dFN0YXRlOiBNckxheW91dFN0YXRlU2VydmljZTtcblxuICBwcml2YXRlIHJvdXRlcjogUm91dGVyO1xuXG4gIHByaXZhdGUgY29uZmlnSWQ6IHN0cmluZztcblxuICBwcml2YXRlIHBhZ2VDb25maWc7XG5cbiAgcHJpdmF0ZSBsb2NhbGVTZXJ2aWNlOiBNckxvY2FsZVNlcnZpY2U7XG5cbiAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb247XG5cbiAgcHVibGljIGxvYWRpbmcgPSB7XG4gICAgcmVzb3VyY2VEZXRhaWxzOiB0cnVlLFxuICAgIHRpbWVsaW5lOiB0cnVlLFxuICB9O1xuXG4gIHB1YmxpYyBkZWZhdWx0RGVzY3JpcHRpb24gPSAnJztcblxuICBwdWJsaWMgZXZlbnRIZWFkZXI6IHN0cmluZztcblxuICBwdWJsaWMgZXZlbnREZXNjcmlwdGlvbiA9ICcnO1xuXG4gIHB1YmxpYyB0aW1lbGluZURhdGE6IFRpbWVsaW5lRGF0YTtcblxuICBwdWJsaWMgaGFzTWFwID0gZmFsc2U7XG5cbiAgcHVibGljIHJvdXRlO1xuXG4gIHB1YmxpYyBtYXBIZWFkZXI7XG5cbiAgcHVibGljIHRpbWVsaW5lTGlzdGVuZXIkOiBTdWJqZWN0PFRpbWVsaW5lPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIGJpYmxpb2dyYXBoeURhdGE6IHtcbiAgICBoZWFkZXI6IHsgdGl0bGU6IHN0cmluZyB9O1xuICAgIGl0ZW1zOiB7XG4gICAgICBwYXlsb2FkPzoge1xuICAgICAgICBhY3Rpb246IHN0cmluZztcbiAgICAgICAgaWQ6IG51bWJlcjtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgfTtcbiAgICAgIHRleHQ/OiBzdHJpbmc7XG4gICAgfVtdO1xuICB9O1xuXG4gIHB1YmxpYyBjb2xsZWN0aW9uV29ya3NEYXRhOiB7XG4gICAgaGVhZGVyOiB7IHRpdGxlOiBzdHJpbmcgfTtcbiAgICBpdGVtczogSXRlbVByZXZpZXdEYXRhW107XG4gIH07XG5cbiAgcHVibGljIGNvbGxlY3Rpb25XaXRuZXNzRGF0YToge1xuICAgIGhlYWRlcjogeyB0aXRsZTogc3RyaW5nIH07XG4gICAgaXRlbXM6IEl0ZW1QcmV2aWV3RGF0YVtdO1xuICB9O1xuXG4gIHB1YmxpYyBjb2xsZWN0aW9uQm9va3NEYXRhOiB7XG4gICAgaGVhZGVyOiB7IHRpdGxlOiBzdHJpbmcgfTtcbiAgICBpdGVtczogSXRlbVByZXZpZXdEYXRhW107XG4gIH07XG5cbiAgcHVibGljIGNvbGxlY3Rpb25EYXRhOiBhbnk7XG5cbiAgcHVibGljIGNvbGxlY3Rpb25HYWxsZXJ5RGF0YTtcblxuICBwdWJsaWMgZXZlbnRUaXRsZTogc3RyaW5nO1xuXG4gIG9uSW5pdChwYXlsb2FkKSB7XG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gcGF5bG9hZC5jb25maWd1cmF0aW9uO1xuICAgIHRoaXMuY29tbXVuaWNhdGlvbiA9IHBheWxvYWQuY29tbXVuaWNhdGlvbjtcbiAgICB0aGlzLnJvdXRlID0gcGF5bG9hZC5yb3V0ZTtcbiAgICB0aGlzLnJvdXRlciA9IHBheWxvYWQucm91dGVyO1xuICAgIHRoaXMubG9jYWxlU2VydmljZSA9IHBheWxvYWQubG9jYWxlU2VydmljZTtcbiAgICB0aGlzLmxvY2F0aW9uID0gcGF5bG9hZC5sb2NhdGlvbjtcblxuICAgIHRoaXMuY29uZmlnSWQgPSBwYXlsb2FkLmNvbmZpZ0lkO1xuICAgIHRoaXMucGFnZUNvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQodGhpcy5jb25maWdJZCkgfHwge307XG5cbiAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0TG9jYWxlKCk7XG5cbiAgICAvLyB1cGRhdGUgdGhlIHRpbWVsaW5lXG4gICAgdGhpcy5sb2FkaW5nLnRpbWVsaW5lID0gdHJ1ZTtcbiAgICB0aGlzLmNvbW11bmljYXRpb25cbiAgICAgIC5yZXF1ZXN0JCgndGltZWxpbmUnLCB7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIHVybFBhcmFtczogbG9jYWxlID8gYD9sb2NhbGU9JHtsb2NhbGV9YCA6ICcnLFxuICAgICAgICBvbkVycm9yOiAoZSkgPT4gY29uc29sZS5lcnJvcihlKSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKChkKSA9PiB7XG4gICAgICAgIHRoaXMudGltZWxpbmVEYXRhID0gZDtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnRpbWVsaW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25lKCdtci10aW1lbGluZScpLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICAgIGxpYk9wdGlvbnM6IHRoaXMucGFnZUNvbmZpZy5saWJPcHRpb25zLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbmUoJ21yLXRpbWVsaW5lJykudXBkYXRlKGQpO1xuICAgICAgICB0aGlzLmxvYWRpbmcudGltZWxpbmUgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIHRoaXMuZ2V0V2lkZ2V0RGF0YVNvdXJjZSgnbXItdGltZWxpbmUnKVxuICAgICAgLnRpbWVsaW5lTG9hZGVkJC5waXBlKGZpcnN0KCkpXG4gICAgICAuc3Vic2NyaWJlKCh0aW1lbGluZTogVGltZWxpbmUpID0+IHtcbiAgICAgICAgdGhpcy50aW1lbGluZUxpc3RlbmVyJC5uZXh0KHRpbWVsaW5lKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBkZXNjcmlwdGlvblxuICAgIHRoaXMuY29tbXVuaWNhdGlvblxuICAgICAgLnJlcXVlc3QkKCd0aW1lbGluZURlc2NyaXB0aW9uJywge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICB1cmxQYXJhbXM6IGxvY2FsZSA/IGA/bG9jYWxlPSR7bG9jYWxlfWAgOiAnJyxcbiAgICAgICAgb25FcnJvcjogKGUpID0+IGNvbnNvbGUuZXJyb3IoZSksXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoZCkgPT4ge1xuICAgICAgICB0aGlzLmRlZmF1bHREZXNjcmlwdGlvbiA9IGQudGV4dDtcbiAgICAgICAgdGhpcy5sb2FkRGVmYXVsdHMoZmFsc2UpO1xuICAgICAgfSk7XG5cbiAgICAvLyBzZXQgbWFwIGhlYWRlclxuICAgIHRoaXMubWFwSGVhZGVyID0gX3QodGhpcy5wYWdlQ29uZmlnLm1hcEhlYWRlcik7XG4gIH1cblxuICBsb2FkRGVmYXVsdHMobmF2aWdhdGU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCB0aW1lbGluZUluc3RhbmNlID0gdGhpcy5nZXRXaWRnZXREYXRhU291cmNlKCdtci10aW1lbGluZScpXG4gICAgICAudGltZWxpbmUgYXMgVGltZWxpbmU7XG4gICAgaWYgKHRpbWVsaW5lSW5zdGFuY2UpIHtcbiAgICAgIHRpbWVsaW5lSW5zdGFuY2Uuc2V0U2VsZWN0aW9uKFtdKTtcbiAgICB9XG4gICAgdGhpcy5ldmVudERlc2NyaXB0aW9uID0gdGhpcy5kZWZhdWx0RGVzY3JpcHRpb247XG4gICAgdGhpcy5ldmVudEhlYWRlciA9ICcnO1xuICAgIHRoaXMuaGFzTWFwID0gZmFsc2U7XG4gICAgdGhpcy5iaWJsaW9ncmFwaHlEYXRhID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY29sbGVjdGlvbldpdG5lc3NEYXRhID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY29sbGVjdGlvbldvcmtzRGF0YSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmNvbGxlY3Rpb25Cb29rc0RhdGEgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5jb2xsZWN0aW9uR2FsbGVyeURhdGEgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5jb2xsZWN0aW9uRGF0YSA9IFtdO1xuICAgIGlmIChuYXZpZ2F0ZSkge1xuICAgICAgY29uc3QgaHJlZiA9IHRoaXMubG9jYWxlU2VydmljZS5nZXRMaW5rQnlSb3V0ZUlkKCd0aW1lbGluZScpO1xuICAgICAgdGhpcy5sb2NhdGlvbi5nbyhocmVmKTtcbiAgICB9XG4gICAgdGhpcy5vbmUoJ21yLXllYXItaGVhZGVyJykudXBkYXRlKHtcbiAgICAgIHRpdGxlOiB7IG1haW46IHsgdGV4dDogX3QodGhpcy5wYWdlQ29uZmlnLnRpdGxlKSB9IH0sXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVQYWdlRGV0YWlscyhpZCkge1xuICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGUoKTtcbiAgICB0aGlzLmNvbW11bmljYXRpb25cbiAgICAgIC5yZXF1ZXN0JCgncmVzb3VyY2UnLCB7XG4gICAgICAgIG9uRXJyb3I6IChlKSA9PiBjb25zb2xlLmVycm9yKGUpLFxuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgdXJsUGFyYW1zOiBsb2NhbGUgPyBgP2xvY2FsZT0ke2xvY2FsZX1gIDogJycsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHR5cGU6ICd2aWV3cy90aW1lLWV2ZW50cycsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBHZXRSZXNvdXJjZVJlc3BvbnNlKSA9PiB7XG4gICAgICAgIC8vIGFueVxuICAgICAgICBpZiAoIXJlcyB8fCByZXMgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICAgIFwiY29sbGVjdGlvbi1iaWJsaW9ncmFwaHlcIjogYmliRGF0YSxcbiAgICAgICAgICBcImNvbGxlY3Rpb24tcGxhY2VzXCI6IHBsYWNlc0RhdGEsXG4gICAgICAgICAgZ2FsbGVyeSxcbiAgICAgICAgICBoZWFkZXIsXG4gICAgICAgICAgLyogZXNsaW50LWVuYWJsZSAqL1xuICAgICAgICB9ID0gcmVzLnNlY3Rpb25zO1xuXG4gICAgICAgIGlmIChyZXMuc2VjdGlvbnNbJ2NvbGxlY3Rpb24tYmlibGlvZ3JhcGh5J10pIHtcbiAgICAgICAgICBkZWxldGUgcmVzLnNlY3Rpb25zWydjb2xsZWN0aW9uLWJpYmxpb2dyYXBoeSddO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXMuc2VjdGlvbnNbJ2NvbGxlY3Rpb24tcGxhY2VzJ10pIHtcbiAgICAgICAgICBkZWxldGUgcmVzLnNlY3Rpb25zWydjb2xsZWN0aW9uLXBsYWNlcyddO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gW107XG4gICAgICAgIE9iamVjdC5rZXlzKHJlcy5zZWN0aW9ucykuZm9yRWFjaCgoY29sbGVjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChTdHJpbmcoY29sbGVjdGlvbikuc3RhcnRzV2l0aCgnY29sbGVjdGlvbi0nKSkge1xuICAgICAgICAgICAgaWYgKHJlcy5zZWN0aW9uc1tjb2xsZWN0aW9uXS5pdGVtcykge1xuICAgICAgICAgICAgICBjb2xsZWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICBpdGVtczogcmVzLnNlY3Rpb25zW2NvbGxlY3Rpb25dLml0ZW1zLm1hcChcbiAgICAgICAgICAgICAgICAgIChpdGVtOiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGxpbms6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICByb3V0ZUlkPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM/OiBvYmplY3Q7XG4gICAgICAgICAgICAgICAgICAgIHNsdWc/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICB9KTogSXRlbVByZXZpZXdEYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFuY2hvcjogQW5jaG9yO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5yb3V0ZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGVMaW5rID0gdGhpcy5sb2NhbGVTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAuZ2V0TGlua0J5Um91dGVJZChpdGVtLnJvdXRlSWQsIGl0ZW0uaWQsIGl0ZW0uc2x1Zyk7XG4gICAgICAgICAgICAgICAgICAgICAgYW5jaG9yID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZjogcm91dGVMaW5rLFxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IGl0ZW0ucGFyYW1zIHx8IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLmxpbmspIHtcbiAgICAgICAgICAgICAgICAgICAgICBhbmNob3IgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmOiBsaW5rc0hlbHBlci5nZXRSb3V0ZXJMaW5rKGl0ZW0ubGluayksXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogbGlua3NIZWxwZXIuZ2V0UXVlcnlQYXJhbXMoaXRlbS5saW5rKSxcbiAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgYW5jaG9yXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHJlcy5zZWN0aW9uc1tjb2xsZWN0aW9uXS5oZWFkZXIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb2xsZWN0aW9uRGF0YSA9IGNvbGxlY3Rpb25zO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGdhbGxlcnkpIHtcbiAgICAgICAgICB0aGlzLmNvbGxlY3Rpb25HYWxsZXJ5RGF0YSA9IGdhbGxlcnk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb2xsZWN0aW9uR2FsbGVyeURhdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhlYWRlcikge1xuICAgICAgICAgIHRoaXMuZXZlbnREZXNjcmlwdGlvbiA9IGhlYWRlci5jb250ZW50O1xuICAgICAgICAgIHRoaXMuZXZlbnRIZWFkZXIgPSByZXMudGl0bGU7XG4gICAgICAgICAgdGhpcy5vbmUoJ21yLXllYXItaGVhZGVyJykudXBkYXRlKHtcbiAgICAgICAgICAgIHRpdGxlOiB7IG1haW46IHsgdGV4dDogaGVhZGVyLnRpdGxlIH0gfSxcbiAgICAgICAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgICAgICAgYnV0dG9uczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgICAgICAgICAgaWNvbjogJ243LWljb24tY2xvc2UnLFxuICAgICAgICAgICAgICAgICAgYW5jaG9yOiB7XG4gICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6ICdjbG9zZWJ1dHRvbicsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwbGFjZXNEYXRhKSB7XG4gICAgICAgICAgdGhpcy5oYXNNYXAgPSB0cnVlO1xuICAgICAgICAgIHRoaXMub25lKCdtci1tYXAnKS51cGRhdGUocGxhY2VzRGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYXNNYXAgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYmliRGF0YSkge1xuICAgICAgICAgIHRoaXMuYmlibGlvZ3JhcGh5RGF0YSA9IHtcbiAgICAgICAgICAgIGhlYWRlcjogYmliRGF0YS5oZWFkZXIsXG4gICAgICAgICAgICBpdGVtczogYmliRGF0YS5pdGVtcy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgICAgICAgIHBheWxvYWQ6IGl0ZW0ucGF5bG9hZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgY2xhc3NlczogJ21yLWl0ZW0tcHJldmlldy1iaWJsaW9ncmFwaHknLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5iaWJsaW9ncmFwaHlEYXRhID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGluZy5yZXNvdXJjZURldGFpbHMgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtbGF5b3V0LmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvbGF5b3V0cy90aW1lbGluZS1sYXlvdXQvdGltZWxpbmUtbGF5b3V0LmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTdkMsT0FBTyx1QkFBdUIsQ0FBQztBQUcvQixPQUFPLFdBQVcsTUFBTSw0QkFBNEIsQ0FBQztBQUVyRCxrRUFBa0U7QUFFbEUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQUF4RDs7UUFtQlMsWUFBTyxHQUFHO1lBQ2YsZUFBZSxFQUFFLElBQUk7WUFDckIsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBRUssdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBSXhCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUl0QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYsZUFBVSxHQUFHLEtBQUssQ0FBQztRQU1uQixzQkFBaUIsR0FBc0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQXdPOUQsQ0FBQztJQXJNQyxNQUFNLENBQUMsT0FBTztRQUNaLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBRWpDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFOUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUU5QyxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhO2FBQ2YsUUFBUSxDQUFDLFVBQVUsRUFBRTtZQUNwQixNQUFNLEVBQUUsS0FBSztZQUNiLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNqQyxDQUFDO2FBQ0QsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQ3BDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVU7YUFDdkMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQzthQUNwQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQzdCLFNBQVMsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUwseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxhQUFhO2FBQ2YsUUFBUSxDQUFDLHFCQUFxQixFQUFFO1lBQy9CLE1BQU0sRUFBRSxLQUFLO1lBQ2IsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ2pDLENBQUM7YUFDRCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFTCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWlCO1FBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQzthQUM3RCxRQUFvQixDQUFDO1FBQ3hCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztRQUNyQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ2hDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFO1NBQ3JELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFFO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWE7YUFDZixRQUFRLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDaEMsTUFBTSxFQUFFLE1BQU07WUFDZCxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVDLE1BQU0sRUFBRTtnQkFDTixFQUFFO2dCQUNGLElBQUksRUFBRSxtQkFBbUI7YUFDMUI7U0FDRixDQUFDO2FBQ0QsU0FBUyxDQUFDLENBQUMsR0FBd0IsRUFBRSxFQUFFO1lBQ3RDLE1BQU07WUFDTixJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJO2dCQUFFLE9BQU87WUFFaEMsTUFBTTtZQUNKLG9CQUFvQjtZQUNwQix5QkFBeUIsRUFBRSxPQUFPLEVBQ2xDLG1CQUFtQixFQUFFLFVBQVUsRUFDL0IsT0FBTyxFQUNQLE1BQU07WUFDTixtQkFBbUI7Y0FDcEIsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBRWpCLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7Z0JBQzVDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFDRCxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMzQyxDQUFDO1lBQ0QsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUMvQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztvQkFDakQsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNuQyxXQUFXLENBQUMsSUFBSSxDQUFDOzRCQUNmLEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQ3ZDLENBQUMsSUFRQSxFQUFtQixFQUFFO2dDQUNwQixJQUFJLE1BQWMsQ0FBQztnQ0FDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7b0NBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhO3lDQUNqQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29DQUN0RCxNQUFNLEdBQUc7d0NBQ1AsSUFBSSxFQUFFLFNBQVM7d0NBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSTtxQ0FDakMsQ0FBQztnQ0FDSixDQUFDO3FDQUFNLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO29DQUNyQixNQUFNLEdBQUc7d0NBQ1AsSUFBSSxFQUFFLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt3Q0FDMUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztxQ0FDbkQsQ0FBQztnQ0FDSixDQUFDO2dDQUNELE9BQU87b0NBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO29DQUNqQixNQUFNO2lDQUNQLENBQUM7NEJBQ0osQ0FBQyxDQUNGOzRCQUNELE1BQU0sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU07eUJBQ3hDLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLHdDQUF3QztnQkFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO1lBQ3pDLENBQUM7WUFDRCxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUM7b0JBQ2hDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ3ZDLE9BQU8sRUFBRTt3QkFDUCxPQUFPLEVBQUU7NEJBQ1A7Z0NBQ0UsSUFBSSxFQUFFLEVBQUU7Z0NBQ1IsSUFBSSxFQUFFLGVBQWU7Z0NBQ3JCLE1BQU0sRUFBRTtvQ0FDTixPQUFPLEVBQUUsYUFBYTtpQ0FDdkI7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUN0QixDQUFDO1lBQ0QsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsZ0JBQWdCLEdBQUc7b0JBQ3RCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtvQkFDdEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUNsQyxHQUFHLElBQUk7d0JBQ1AsTUFBTSxFQUFFOzRCQUNOLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzt5QkFDdEI7d0JBQ0QsT0FBTyxFQUFFLDhCQUE4QjtxQkFDeEMsQ0FBQyxDQUFDO2lCQUNKLENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztZQUNwQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGF5b3V0RGF0YVNvdXJjZSwgX3QgfSBmcm9tICdAbmV0Ny9jb3JlJztcbmltcG9ydCB7IEFuY2hvciwgSXRlbVByZXZpZXdEYXRhLCBUaW1lbGluZURhdGEgfSBmcm9tICdAbmV0Ny9jb21wb25lbnRzJztcbmltcG9ydCB7IFRpbWVsaW5lIH0gZnJvbSAndmlzLXRpbWVsaW5lJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gIENvbW11bmljYXRpb25TZXJ2aWNlLFxuICBNYWluU3RhdGVTZXJ2aWNlLFxufSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1yTGF5b3V0U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0ICdsZWFmbGV0Lm1hcmtlcmNsdXN0ZXInO1xuaW1wb3J0IHsgR2V0UmVzb3VyY2VSZXNwb25zZSB9IGZyb20gJy4vdGltZWxpbmUtbGF5b3V0LnR5cGVzJztcbmltcG9ydCB7IE1yTG9jYWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2FsZS5zZXJ2aWNlJztcbmltcG9ydCBsaW5rc0hlbHBlciBmcm9tICcuLi8uLi9oZWxwZXJzL2xpbmtzLWhlbHBlcic7XG5cbi8vIGRlbW8gcGFnZTogaHR0cDovL2xvY2FsaG9zdDo0MjAwL3RpbWVsaW5lLzI5OTIvbWlzc2lvbmUtdmVuZXppYVxuXG5leHBvcnQgY2xhc3MgTXJUaW1lbGluZUxheW91dERTIGV4dGVuZHMgTGF5b3V0RGF0YVNvdXJjZSB7XG4gIHByaXZhdGUgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvblNlcnZpY2U7XG5cbiAgcHJpdmF0ZSBjb21tdW5pY2F0aW9uOiBDb21tdW5pY2F0aW9uU2VydmljZTtcblxuICBwcml2YXRlIG1haW5TdGF0ZTogTWFpblN0YXRlU2VydmljZTtcblxuICBwcml2YXRlIGxheW91dFN0YXRlOiBNckxheW91dFN0YXRlU2VydmljZTtcblxuICBwcml2YXRlIHJvdXRlcjogUm91dGVyO1xuXG4gIHByaXZhdGUgY29uZmlnSWQ6IHN0cmluZztcblxuICBwcml2YXRlIHBhZ2VDb25maWc7XG5cbiAgcHJpdmF0ZSBsb2NhbGVTZXJ2aWNlOiBNckxvY2FsZVNlcnZpY2U7XG5cbiAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb247XG5cbiAgcHVibGljIGxvYWRpbmcgPSB7XG4gICAgcmVzb3VyY2VEZXRhaWxzOiB0cnVlLFxuICAgIHRpbWVsaW5lOiB0cnVlLFxuICB9O1xuXG4gIHB1YmxpYyBkZWZhdWx0RGVzY3JpcHRpb24gPSAnJztcblxuICBwdWJsaWMgZXZlbnRIZWFkZXI6IHN0cmluZztcblxuICBwdWJsaWMgZXZlbnREZXNjcmlwdGlvbiA9ICcnO1xuXG4gIHB1YmxpYyB0aW1lbGluZURhdGE6IFRpbWVsaW5lRGF0YTtcblxuICBwdWJsaWMgaGFzTWFwID0gZmFsc2U7XG5cbiAgcHVibGljIGhhc0dhbGxlcnkgPSBmYWxzZTtcblxuICBwdWJsaWMgcm91dGU7XG5cbiAgcHVibGljIG1hcEhlYWRlcjtcblxuICBwdWJsaWMgdGltZWxpbmVMaXN0ZW5lciQ6IFN1YmplY3Q8VGltZWxpbmU+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgYmlibGlvZ3JhcGh5RGF0YToge1xuICAgIGhlYWRlcjogeyB0aXRsZTogc3RyaW5nIH07XG4gICAgaXRlbXM6IHtcbiAgICAgIHBheWxvYWQ/OiB7XG4gICAgICAgIGFjdGlvbjogc3RyaW5nO1xuICAgICAgICBpZDogbnVtYmVyO1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgdGV4dD86IHN0cmluZztcbiAgICB9W107XG4gIH07XG5cbiAgcHVibGljIGNvbGxlY3Rpb25Xb3Jrc0RhdGE6IHtcbiAgICBoZWFkZXI6IHsgdGl0bGU6IHN0cmluZyB9O1xuICAgIGl0ZW1zOiBJdGVtUHJldmlld0RhdGFbXTtcbiAgfTtcblxuICBwdWJsaWMgY29sbGVjdGlvbldpdG5lc3NEYXRhOiB7XG4gICAgaGVhZGVyOiB7IHRpdGxlOiBzdHJpbmcgfTtcbiAgICBpdGVtczogSXRlbVByZXZpZXdEYXRhW107XG4gIH07XG5cbiAgcHVibGljIGNvbGxlY3Rpb25Cb29rc0RhdGE6IHtcbiAgICBoZWFkZXI6IHsgdGl0bGU6IHN0cmluZyB9O1xuICAgIGl0ZW1zOiBJdGVtUHJldmlld0RhdGFbXTtcbiAgfTtcblxuICBwdWJsaWMgY29sbGVjdGlvbkRhdGE6IGFueTtcblxuICBwdWJsaWMgY29sbGVjdGlvbkdhbGxlcnlEYXRhO1xuXG4gIHB1YmxpYyBldmVudFRpdGxlOiBzdHJpbmc7XG5cbiAgb25Jbml0KHBheWxvYWQpIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBwYXlsb2FkLmNvbmZpZ3VyYXRpb247XG4gICAgdGhpcy5jb21tdW5pY2F0aW9uID0gcGF5bG9hZC5jb21tdW5pY2F0aW9uO1xuICAgIHRoaXMucm91dGUgPSBwYXlsb2FkLnJvdXRlO1xuICAgIHRoaXMucm91dGVyID0gcGF5bG9hZC5yb3V0ZXI7XG4gICAgdGhpcy5sb2NhbGVTZXJ2aWNlID0gcGF5bG9hZC5sb2NhbGVTZXJ2aWNlO1xuICAgIHRoaXMubG9jYXRpb24gPSBwYXlsb2FkLmxvY2F0aW9uO1xuXG4gICAgdGhpcy5jb25maWdJZCA9IHBheWxvYWQuY29uZmlnSWQ7XG4gICAgdGhpcy5wYWdlQ29uZmlnID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCh0aGlzLmNvbmZpZ0lkKSB8fCB7fTtcblxuICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGUoKTtcblxuICAgIC8vIHVwZGF0ZSB0aGUgdGltZWxpbmVcbiAgICB0aGlzLmxvYWRpbmcudGltZWxpbmUgPSB0cnVlO1xuICAgIHRoaXMuY29tbXVuaWNhdGlvblxuICAgICAgLnJlcXVlc3QkKCd0aW1lbGluZScsIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgdXJsUGFyYW1zOiBsb2NhbGUgPyBgP2xvY2FsZT0ke2xvY2FsZX1gIDogJycsXG4gICAgICAgIG9uRXJyb3I6IChlKSA9PiBjb25zb2xlLmVycm9yKGUpLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKGQpID0+IHtcbiAgICAgICAgdGhpcy50aW1lbGluZURhdGEgPSBkO1xuICAgICAgICB0aGlzLmxvYWRpbmcudGltZWxpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vbmUoJ21yLXRpbWVsaW5lJykudXBkYXRlT3B0aW9ucyh7XG4gICAgICAgICAgbGliT3B0aW9uczogdGhpcy5wYWdlQ29uZmlnLmxpYk9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uZSgnbXItdGltZWxpbmUnKS51cGRhdGUoZCk7XG4gICAgICAgIHRoaXMubG9hZGluZy50aW1lbGluZSA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgdGhpcy5nZXRXaWRnZXREYXRhU291cmNlKCdtci10aW1lbGluZScpXG4gICAgICAudGltZWxpbmVMb2FkZWQkLnBpcGUoZmlyc3QoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHRpbWVsaW5lOiBUaW1lbGluZSkgPT4ge1xuICAgICAgICB0aGlzLnRpbWVsaW5lTGlzdGVuZXIkLm5leHQodGltZWxpbmUpO1xuICAgICAgfSk7XG5cbiAgICAvLyB1cGRhdGUgdGhlIGRlc2NyaXB0aW9uXG4gICAgdGhpcy5jb21tdW5pY2F0aW9uXG4gICAgICAucmVxdWVzdCQoJ3RpbWVsaW5lRGVzY3JpcHRpb24nLCB7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIHVybFBhcmFtczogbG9jYWxlID8gYD9sb2NhbGU9JHtsb2NhbGV9YCA6ICcnLFxuICAgICAgICBvbkVycm9yOiAoZSkgPT4gY29uc29sZS5lcnJvcihlKSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKChkKSA9PiB7XG4gICAgICAgIHRoaXMuZGVmYXVsdERlc2NyaXB0aW9uID0gZC50ZXh0O1xuICAgICAgICB0aGlzLmxvYWREZWZhdWx0cyhmYWxzZSk7XG4gICAgICB9KTtcblxuICAgIC8vIHNldCBtYXAgaGVhZGVyXG4gICAgdGhpcy5tYXBIZWFkZXIgPSBfdCh0aGlzLnBhZ2VDb25maWcubWFwSGVhZGVyKTtcbiAgfVxuXG4gIGxvYWREZWZhdWx0cyhuYXZpZ2F0ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IHRpbWVsaW5lSW5zdGFuY2UgPSB0aGlzLmdldFdpZGdldERhdGFTb3VyY2UoJ21yLXRpbWVsaW5lJylcbiAgICAgIC50aW1lbGluZSBhcyBUaW1lbGluZTtcbiAgICBpZiAodGltZWxpbmVJbnN0YW5jZSkge1xuICAgICAgdGltZWxpbmVJbnN0YW5jZS5zZXRTZWxlY3Rpb24oW10pO1xuICAgIH1cbiAgICB0aGlzLmV2ZW50RGVzY3JpcHRpb24gPSB0aGlzLmRlZmF1bHREZXNjcmlwdGlvbjtcbiAgICB0aGlzLmV2ZW50SGVhZGVyID0gJyc7XG4gICAgdGhpcy5oYXNNYXAgPSBmYWxzZTtcbiAgICB0aGlzLmJpYmxpb2dyYXBoeURhdGEgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5jb2xsZWN0aW9uV2l0bmVzc0RhdGEgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5jb2xsZWN0aW9uV29ya3NEYXRhID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY29sbGVjdGlvbkJvb2tzRGF0YSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmNvbGxlY3Rpb25HYWxsZXJ5RGF0YSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmNvbGxlY3Rpb25EYXRhID0gW107XG4gICAgaWYgKG5hdmlnYXRlKSB7XG4gICAgICBjb25zdCBocmVmID0gdGhpcy5sb2NhbGVTZXJ2aWNlLmdldExpbmtCeVJvdXRlSWQoJ3RpbWVsaW5lJyk7XG4gICAgICB0aGlzLmxvY2F0aW9uLmdvKGhyZWYpO1xuICAgIH1cbiAgICB0aGlzLm9uZSgnbXIteWVhci1oZWFkZXInKS51cGRhdGUoe1xuICAgICAgdGl0bGU6IHsgbWFpbjogeyB0ZXh0OiBfdCh0aGlzLnBhZ2VDb25maWcudGl0bGUpIH0gfSxcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVBhZ2VEZXRhaWxzKGlkKSB7XG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZSgpO1xuICAgIHRoaXMuY29tbXVuaWNhdGlvblxuICAgICAgLnJlcXVlc3QkKCdyZXNvdXJjZScsIHtcbiAgICAgICAgb25FcnJvcjogKGUpID0+IGNvbnNvbGUuZXJyb3IoZSksXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICB1cmxQYXJhbXM6IGxvY2FsZSA/IGA/bG9jYWxlPSR7bG9jYWxlfWAgOiAnJyxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgdHlwZTogJ3ZpZXdzL3RpbWUtZXZlbnRzJyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IEdldFJlc291cmNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgLy8gYW55XG4gICAgICAgIGlmICghcmVzIHx8IHJlcyA9PSBudWxsKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgICAgICAgXCJjb2xsZWN0aW9uLWJpYmxpb2dyYXBoeVwiOiBiaWJEYXRhLFxuICAgICAgICAgIFwiY29sbGVjdGlvbi1wbGFjZXNcIjogcGxhY2VzRGF0YSxcbiAgICAgICAgICBnYWxsZXJ5LFxuICAgICAgICAgIGhlYWRlcixcbiAgICAgICAgICAvKiBlc2xpbnQtZW5hYmxlICovXG4gICAgICAgIH0gPSByZXMuc2VjdGlvbnM7XG5cbiAgICAgICAgaWYgKHJlcy5zZWN0aW9uc1snY29sbGVjdGlvbi1iaWJsaW9ncmFwaHknXSkge1xuICAgICAgICAgIGRlbGV0ZSByZXMuc2VjdGlvbnNbJ2NvbGxlY3Rpb24tYmlibGlvZ3JhcGh5J107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcy5zZWN0aW9uc1snY29sbGVjdGlvbi1wbGFjZXMnXSkge1xuICAgICAgICAgIGRlbGV0ZSByZXMuc2VjdGlvbnNbJ2NvbGxlY3Rpb24tcGxhY2VzJ107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBbXTtcbiAgICAgICAgT2JqZWN0LmtleXMocmVzLnNlY3Rpb25zKS5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKFN0cmluZyhjb2xsZWN0aW9uKS5zdGFydHNXaXRoKCdjb2xsZWN0aW9uLScpKSB7XG4gICAgICAgICAgICBpZiAocmVzLnNlY3Rpb25zW2NvbGxlY3Rpb25dLml0ZW1zKSB7XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGl0ZW1zOiByZXMuc2VjdGlvbnNbY29sbGVjdGlvbl0uaXRlbXMubWFwKFxuICAgICAgICAgICAgICAgICAgKGl0ZW06IHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgbGluazogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlSWQ/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcz86IG9iamVjdDtcbiAgICAgICAgICAgICAgICAgICAgc2x1Zz86IHN0cmluZztcbiAgICAgICAgICAgICAgICAgIH0pOiBJdGVtUHJldmlld0RhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgYW5jaG9yOiBBbmNob3I7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLnJvdXRlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0ZUxpbmsgPSB0aGlzLmxvY2FsZVNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRMaW5rQnlSb3V0ZUlkKGl0ZW0ucm91dGVJZCwgaXRlbS5pZCwgaXRlbS5zbHVnKTtcbiAgICAgICAgICAgICAgICAgICAgICBhbmNob3IgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmOiByb3V0ZUxpbmssXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogaXRlbS5wYXJhbXMgfHwgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0ubGluaykge1xuICAgICAgICAgICAgICAgICAgICAgIGFuY2hvciA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY6IGxpbmtzSGVscGVyLmdldFJvdXRlckxpbmsoaXRlbS5saW5rKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBsaW5rc0hlbHBlci5nZXRRdWVyeVBhcmFtcyhpdGVtLmxpbmspLFxuICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICBhbmNob3JcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogcmVzLnNlY3Rpb25zW2NvbGxlY3Rpb25dLmhlYWRlcixcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNvbGxlY3Rpb25EYXRhID0gY29sbGVjdGlvbnM7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZ2FsbGVyeSkge1xuICAgICAgICAgIC8vIHRoaXMuY29sbGVjdGlvbkdhbGxlcnlEYXRhID0gZ2FsbGVyeTtcbiAgICAgICAgICB0aGlzLmhhc0dhbGxlcnkgPSB0cnVlO1xuICAgICAgICAgIHRoaXMub25lKCdtci1nYWxsZXJ5JykudXBkYXRlKGdhbGxlcnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29sbGVjdGlvbkdhbGxlcnlEYXRhID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGVzY3JpcHRpb24gPSBoZWFkZXIuY29udGVudDtcbiAgICAgICAgICB0aGlzLmV2ZW50SGVhZGVyID0gcmVzLnRpdGxlO1xuICAgICAgICAgIHRoaXMub25lKCdtci15ZWFyLWhlYWRlcicpLnVwZGF0ZSh7XG4gICAgICAgICAgICB0aXRsZTogeyBtYWluOiB7IHRleHQ6IGhlYWRlci50aXRsZSB9IH0sXG4gICAgICAgICAgICBhY3Rpb25zOiB7XG4gICAgICAgICAgICAgIGJ1dHRvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgICAgICAgIGljb246ICduNy1pY29uLWNsb3NlJyxcbiAgICAgICAgICAgICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiAnY2xvc2VidXR0b24nLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGxhY2VzRGF0YSkge1xuICAgICAgICAgIHRoaXMuaGFzTWFwID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLm9uZSgnbXItbWFwJykudXBkYXRlKHBsYWNlc0RhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaGFzTWFwID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJpYkRhdGEpIHtcbiAgICAgICAgICB0aGlzLmJpYmxpb2dyYXBoeURhdGEgPSB7XG4gICAgICAgICAgICBoZWFkZXI6IGJpYkRhdGEuaGVhZGVyLFxuICAgICAgICAgICAgaXRlbXM6IGJpYkRhdGEuaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICBhbmNob3I6IHtcbiAgICAgICAgICAgICAgICBwYXlsb2FkOiBpdGVtLnBheWxvYWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGNsYXNzZXM6ICdtci1pdGVtLXByZXZpZXctYmlibGlvZ3JhcGh5JyxcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYmlibGlvZ3JhcGh5RGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRpbmcucmVzb3VyY2VEZXRhaWxzID0gZmFsc2U7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,6 +1,8 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { AbstractLayout } from '@net7/boilerplate-common';
3
3
  import { MrTimelineLayoutConfig as config } from './timeline-layout.config';
4
+ import { MrGalleryDS } from '../../data-sources/gallery.ds';
5
+ import { MrGalleryEH } from '../../event-handlers/gallery.eh';
4
6
  import * as i0 from "@angular/core";
5
7
  import * as i1 from "@net7/boilerplate-common";
6
8
  import * as i2 from "@angular/router";
@@ -9,6 +11,13 @@ import * as i4 from "../../services/resource-modal.service";
9
11
  import * as i5 from "../../services/locale.service";
10
12
  import * as i6 from "@angular/common";
11
13
  import * as i7 from "@net7/components";
14
+ import * as i8 from "../../components/gallery/gallery";
15
+ const DATASOURCE_MAP = {
16
+ gallery: MrGalleryDS
17
+ };
18
+ const EVENTHANDLER_MAP = {
19
+ gallery: MrGalleryEH
20
+ };
12
21
  export class MrTimelineLayoutComponent extends AbstractLayout {
13
22
  constructor(layoutsConfiguration, route, router, configuration, communication, mainState, layoutState, modalService, localeService, location) {
14
23
  super(layoutsConfiguration.get('MrTimelineLayoutConfig') || config);
@@ -39,19 +48,27 @@ export class MrTimelineLayoutComponent extends AbstractLayout {
39
48
  }
40
49
  ngOnInit() {
41
50
  this.route.data.subscribe((data) => {
42
- this.configId = data.configId;
43
51
  this.layoutState.add('content');
52
+ this.configId = data.configId;
53
+ this.loadWidgets();
44
54
  this.onInit();
45
55
  });
46
56
  }
47
57
  ngOnDestroy() {
48
58
  this.onDestroy();
49
59
  }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrTimelineLayoutComponent, deps: [{ token: i1.LayoutsConfigurationService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i1.ConfigurationService }, { token: i1.CommunicationService }, { token: i1.MainStateService }, { token: i3.MrLayoutStateService }, { token: i4.MrResourceModalService }, { token: i5.MrLocaleService }, { token: i6.Location }], target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: MrTimelineLayoutComponent, selector: "mr-timeline-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-timeline mr-layout\" *ngIf=\"lb.dataSource\">\n <div class=\"mr-timeline__timeline\">\n <div\n class=\"mr-timeline__timeline-loading\"\n *ngIf=\"lb.dataSource.loading.timeline\">\n <n7-loader></n7-loader>\n </div>\n <n7-timeline\n [data]=\"lb.widgets['mr-timeline'].ds.out$ | async\"\n *ngIf=\"!lb.dataSource.loading.timeline\"\n >\n </n7-timeline>\n </div>\n\n <div class=\"mr-timeline__page mr-side-margin\">\n <!-- Result header -->\n <div class=\"mr-timeline__page-header\">\n <p\n class=\"mr-timeline__date\"\n *ngIf=\"!lb.dataSource.loading.resourceDetails\"\n >\n {{lb.dataSource.eventHeader}}\n </p>\n <div class=\"mr-timeline__title\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-year-header'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-year-header'].emit\"\n >\n </n7-inner-title>\n </div>\n </div>\n <!-- END // Result header -->\n\n <div class=\"mr-timeline__content\">\n <!-- DESCRIZIONE -->\n <div *ngIf=\"lb.dataSource.eventDescription\" class=\"mr-content-block mr-content-block-description\">\n <p [innerHTML]=\"lb.dataSource.eventDescription\"></p>\n <p></p>\n </div>\n\n <ng-container *ngIf=\"!lb.dataSource.loading.resourceDetails\">\n <!-- GALLERIA -->\n <div *ngIf=\"lb.dataSource.collectionGalleryData && lb.dataSource.collectionGalleryData.length\" \n class=\"mr-content-block timeline-gallery__container n7-grid-4\">\n <ng-container *ngFor=\"let image of lb.dataSource.collectionGalleryData\">\n <figure class=\"timeline-gallery__image-container\">\n <a [href]=\"image.image\" class=\"timeline-gallery__image\">\n <img [src]=\"image.thumbnail\" alt=\"image.title\" />\n <figcaption class=\"timeline-gallery__description-text\">{{ image.title }}</figcaption>\n </a>\n </figure>\n </ng-container>\n </div>\n\n\n <!-- MAPPA -->\n <div\n class=\"mr-content-block mr-content-block-map\"\n *ngIf=\"lb.dataSource.hasMap\"\n >\n <h3 class=\"mr-content-block__title\" *ngIf=\"lb.dataSource.mapHeader\">\n {{ lb.dataSource.mapHeader }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets['mr-map'].ds.out$ | async\"></n7-map>\n </div>\n </div>\n\n <!-- BIBLIOGRAFIA -->\n <ng-container *ngIf=\"lb.dataSource.bibliographyData as biblio\">\n <ng-container *ngIf=\"biblio.items && biblio.items.length > 0\">\n <div class=\"mr-content-block mr-content-block-collection\">\n <h3 class=\"mr-content-block__title\">{{ biblio.header.title }}</h3>\n <div class=\"mr-content-block__content n7-grid-1\">\n <ng-container *ngFor=\"let item of biblio.items\">\n <div class=\"mr-timeline__collection-content\">\n <n7-item-preview\n [emit]=\"lb.eventHandler.itemPreviewEmit\"\n [data]=\"item\"\n >\n </n7-item-preview>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n <!-- COLLECTIONS -->\n <ng-container *ngFor=\"let coll of lb.dataSource.collectionData\">\n <ng-container *ngIf=\"coll.items && coll.items.length > 0\">\n <div class=\"mr-content-block-collection mr-content-block\">\n <h3 class=\"mr-content-block__title\">{{ coll.header.title }}</h3>\n <div class=\"mr-content-block__content n7-grid-3\">\n <n7-item-preview *ngFor=\"let item of coll.items\" [data]=\"item\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { kind: "component", type: i7.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { kind: "component", type: i7.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { kind: "component", type: i7.MapComponent, selector: "n7-map", inputs: ["data", "emit"] }, { kind: "component", type: i7.TimelineComponent, selector: "n7-timeline", inputs: ["data", "emit"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
60
+ loadWidgets() {
61
+ this.widgets.push({
62
+ id: 'mr-gallery',
63
+ dataSource: DATASOURCE_MAP.gallery,
64
+ eventHandler: EVENTHANDLER_MAP.gallery
65
+ });
66
+ }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrTimelineLayoutComponent, deps: [{ token: i1.LayoutsConfigurationService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i1.ConfigurationService }, { token: i1.CommunicationService }, { token: i1.MainStateService }, { token: i3.MrLayoutStateService }, { token: i4.MrResourceModalService }, { token: i5.MrLocaleService }, { token: i6.Location }], target: i0.ɵɵFactoryTarget.Component }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrTimelineLayoutComponent, selector: "mr-timeline-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-timeline mr-layout\" *ngIf=\"lb.dataSource\">\n <div class=\"mr-timeline__timeline\">\n <div\n class=\"mr-timeline__timeline-loading\"\n *ngIf=\"lb.dataSource.loading.timeline\">\n <n7-loader></n7-loader>\n </div>\n <n7-timeline\n [data]=\"lb.widgets['mr-timeline'].ds.out$ | async\"\n *ngIf=\"!lb.dataSource.loading.timeline\"\n >\n </n7-timeline>\n </div>\n\n <div class=\"mr-timeline__page mr-side-margin\">\n <!-- Result header -->\n <div class=\"mr-timeline__page-header\">\n <p\n class=\"mr-timeline__date\"\n *ngIf=\"!lb.dataSource.loading.resourceDetails\"\n >\n {{lb.dataSource.eventHeader}}\n </p>\n <div class=\"mr-timeline__title\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-year-header'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-year-header'].emit\"\n >\n </n7-inner-title>\n </div>\n </div>\n <!-- END // Result header -->\n\n <div class=\"mr-timeline__content\">\n <!-- DESCRIZIONE -->\n <div *ngIf=\"lb.dataSource.eventDescription\" class=\"mr-content-block mr-content-block-description\">\n <p [innerHTML]=\"lb.dataSource.eventDescription\"></p>\n <p></p>\n </div>\n\n <ng-container *ngIf=\"!lb.dataSource.loading.resourceDetails\">\n <!-- GALLERIA -->\n <mr-gallery *ngIf=\"lb.dataSource.hasGallery\" \n [grid]=\"4\" \n [data]=\"lb.widgets['mr-gallery'].ds.out$ | async\" \n [emit]=\"lb.widgets['mr-gallery'].emit\">\n </mr-gallery>\n\n <!-- MAPPA -->\n <div\n class=\"mr-content-block mr-content-block-map\"\n *ngIf=\"lb.dataSource.hasMap\"\n >\n <h3 class=\"mr-content-block__title\" *ngIf=\"lb.dataSource.mapHeader\">\n {{ lb.dataSource.mapHeader }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets['mr-map'].ds.out$ | async\"></n7-map>\n </div>\n </div>\n\n <!-- BIBLIOGRAFIA -->\n <ng-container *ngIf=\"lb.dataSource.bibliographyData as biblio\">\n <ng-container *ngIf=\"biblio.items && biblio.items.length > 0\">\n <div class=\"mr-content-block mr-content-block-collection\">\n <h3 class=\"mr-content-block__title\">{{ biblio.header.title }}</h3>\n <div class=\"mr-content-block__content n7-grid-1\">\n <ng-container *ngFor=\"let item of biblio.items\">\n <div class=\"mr-timeline__collection-content\">\n <n7-item-preview\n [emit]=\"lb.eventHandler.itemPreviewEmit\"\n [data]=\"item\"\n >\n </n7-item-preview>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n <!-- COLLECTIONS -->\n <ng-container *ngFor=\"let coll of lb.dataSource.collectionData\">\n <ng-container *ngIf=\"coll.items && coll.items.length > 0\">\n <div class=\"mr-content-block-collection mr-content-block\">\n <h3 class=\"mr-content-block__title\">{{ coll.header.title }}</h3>\n <div class=\"mr-content-block__content n7-grid-3\">\n <n7-item-preview *ngFor=\"let item of coll.items\" [data]=\"item\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { kind: "component", type: i7.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { kind: "component", type: i7.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { kind: "component", type: i7.MapComponent, selector: "n7-map", inputs: ["data", "emit"] }, { kind: "component", type: i7.TimelineComponent, selector: "n7-timeline", inputs: ["data", "emit"] }, { kind: "component", type: i8.MrGalleryComponent, selector: "mr-gallery", inputs: ["data", "emit", "grid"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
52
69
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrTimelineLayoutComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrTimelineLayoutComponent, decorators: [{
54
71
  type: Component,
55
- args: [{ selector: 'mr-timeline-layout', template: "<div class=\"mr-timeline mr-layout\" *ngIf=\"lb.dataSource\">\n <div class=\"mr-timeline__timeline\">\n <div\n class=\"mr-timeline__timeline-loading\"\n *ngIf=\"lb.dataSource.loading.timeline\">\n <n7-loader></n7-loader>\n </div>\n <n7-timeline\n [data]=\"lb.widgets['mr-timeline'].ds.out$ | async\"\n *ngIf=\"!lb.dataSource.loading.timeline\"\n >\n </n7-timeline>\n </div>\n\n <div class=\"mr-timeline__page mr-side-margin\">\n <!-- Result header -->\n <div class=\"mr-timeline__page-header\">\n <p\n class=\"mr-timeline__date\"\n *ngIf=\"!lb.dataSource.loading.resourceDetails\"\n >\n {{lb.dataSource.eventHeader}}\n </p>\n <div class=\"mr-timeline__title\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-year-header'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-year-header'].emit\"\n >\n </n7-inner-title>\n </div>\n </div>\n <!-- END // Result header -->\n\n <div class=\"mr-timeline__content\">\n <!-- DESCRIZIONE -->\n <div *ngIf=\"lb.dataSource.eventDescription\" class=\"mr-content-block mr-content-block-description\">\n <p [innerHTML]=\"lb.dataSource.eventDescription\"></p>\n <p></p>\n </div>\n\n <ng-container *ngIf=\"!lb.dataSource.loading.resourceDetails\">\n <!-- GALLERIA -->\n <div *ngIf=\"lb.dataSource.collectionGalleryData && lb.dataSource.collectionGalleryData.length\" \n class=\"mr-content-block timeline-gallery__container n7-grid-4\">\n <ng-container *ngFor=\"let image of lb.dataSource.collectionGalleryData\">\n <figure class=\"timeline-gallery__image-container\">\n <a [href]=\"image.image\" class=\"timeline-gallery__image\">\n <img [src]=\"image.thumbnail\" alt=\"image.title\" />\n <figcaption class=\"timeline-gallery__description-text\">{{ image.title }}</figcaption>\n </a>\n </figure>\n </ng-container>\n </div>\n\n\n <!-- MAPPA -->\n <div\n class=\"mr-content-block mr-content-block-map\"\n *ngIf=\"lb.dataSource.hasMap\"\n >\n <h3 class=\"mr-content-block__title\" *ngIf=\"lb.dataSource.mapHeader\">\n {{ lb.dataSource.mapHeader }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets['mr-map'].ds.out$ | async\"></n7-map>\n </div>\n </div>\n\n <!-- BIBLIOGRAFIA -->\n <ng-container *ngIf=\"lb.dataSource.bibliographyData as biblio\">\n <ng-container *ngIf=\"biblio.items && biblio.items.length > 0\">\n <div class=\"mr-content-block mr-content-block-collection\">\n <h3 class=\"mr-content-block__title\">{{ biblio.header.title }}</h3>\n <div class=\"mr-content-block__content n7-grid-1\">\n <ng-container *ngFor=\"let item of biblio.items\">\n <div class=\"mr-timeline__collection-content\">\n <n7-item-preview\n [emit]=\"lb.eventHandler.itemPreviewEmit\"\n [data]=\"item\"\n >\n </n7-item-preview>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n <!-- COLLECTIONS -->\n <ng-container *ngFor=\"let coll of lb.dataSource.collectionData\">\n <ng-container *ngIf=\"coll.items && coll.items.length > 0\">\n <div class=\"mr-content-block-collection mr-content-block\">\n <h3 class=\"mr-content-block__title\">{{ coll.header.title }}</h3>\n <div class=\"mr-content-block__content n7-grid-3\">\n <n7-item-preview *ngFor=\"let item of coll.items\" [data]=\"item\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
72
+ args: [{ selector: 'mr-timeline-layout', template: "<div class=\"mr-timeline mr-layout\" *ngIf=\"lb.dataSource\">\n <div class=\"mr-timeline__timeline\">\n <div\n class=\"mr-timeline__timeline-loading\"\n *ngIf=\"lb.dataSource.loading.timeline\">\n <n7-loader></n7-loader>\n </div>\n <n7-timeline\n [data]=\"lb.widgets['mr-timeline'].ds.out$ | async\"\n *ngIf=\"!lb.dataSource.loading.timeline\"\n >\n </n7-timeline>\n </div>\n\n <div class=\"mr-timeline__page mr-side-margin\">\n <!-- Result header -->\n <div class=\"mr-timeline__page-header\">\n <p\n class=\"mr-timeline__date\"\n *ngIf=\"!lb.dataSource.loading.resourceDetails\"\n >\n {{lb.dataSource.eventHeader}}\n </p>\n <div class=\"mr-timeline__title\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-year-header'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-year-header'].emit\"\n >\n </n7-inner-title>\n </div>\n </div>\n <!-- END // Result header -->\n\n <div class=\"mr-timeline__content\">\n <!-- DESCRIZIONE -->\n <div *ngIf=\"lb.dataSource.eventDescription\" class=\"mr-content-block mr-content-block-description\">\n <p [innerHTML]=\"lb.dataSource.eventDescription\"></p>\n <p></p>\n </div>\n\n <ng-container *ngIf=\"!lb.dataSource.loading.resourceDetails\">\n <!-- GALLERIA -->\n <mr-gallery *ngIf=\"lb.dataSource.hasGallery\" \n [grid]=\"4\" \n [data]=\"lb.widgets['mr-gallery'].ds.out$ | async\" \n [emit]=\"lb.widgets['mr-gallery'].emit\">\n </mr-gallery>\n\n <!-- MAPPA -->\n <div\n class=\"mr-content-block mr-content-block-map\"\n *ngIf=\"lb.dataSource.hasMap\"\n >\n <h3 class=\"mr-content-block__title\" *ngIf=\"lb.dataSource.mapHeader\">\n {{ lb.dataSource.mapHeader }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets['mr-map'].ds.out$ | async\"></n7-map>\n </div>\n </div>\n\n <!-- BIBLIOGRAFIA -->\n <ng-container *ngIf=\"lb.dataSource.bibliographyData as biblio\">\n <ng-container *ngIf=\"biblio.items && biblio.items.length > 0\">\n <div class=\"mr-content-block mr-content-block-collection\">\n <h3 class=\"mr-content-block__title\">{{ biblio.header.title }}</h3>\n <div class=\"mr-content-block__content n7-grid-1\">\n <ng-container *ngFor=\"let item of biblio.items\">\n <div class=\"mr-timeline__collection-content\">\n <n7-item-preview\n [emit]=\"lb.eventHandler.itemPreviewEmit\"\n [data]=\"item\"\n >\n </n7-item-preview>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n <!-- COLLECTIONS -->\n <ng-container *ngFor=\"let coll of lb.dataSource.collectionData\">\n <ng-container *ngIf=\"coll.items && coll.items.length > 0\">\n <div class=\"mr-content-block-collection mr-content-block\">\n <h3 class=\"mr-content-block__title\">{{ coll.header.title }}</h3>\n <div class=\"mr-content-block__content n7-grid-3\">\n <n7-item-preview *ngFor=\"let item of coll.items\" [data]=\"item\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
56
73
  }], ctorParameters: () => [{ type: i1.LayoutsConfigurationService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i1.ConfigurationService }, { type: i1.CommunicationService }, { type: i1.MainStateService }, { type: i3.MrLayoutStateService }, { type: i4.MrResourceModalService }, { type: i5.MrLocaleService }, { type: i6.Location }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtbGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvbGF5b3V0cy90aW1lbGluZS1sYXlvdXQvdGltZWxpbmUtbGF5b3V0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvbGF5b3V0cy90aW1lbGluZS1sYXlvdXQvdGltZWxpbmUtbGF5b3V0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUNMLGNBQWMsRUFLZixNQUFNLDBCQUEwQixDQUFDO0FBSWxDLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7O0FBTzVFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxjQUFjO0lBRzNELFlBQ0Usb0JBQWlELEVBQ3pDLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCxhQUFtQyxFQUNuQyxhQUFtQyxFQUNuQyxTQUEyQixFQUM1QixXQUFpQyxFQUNqQyxZQUFvQyxFQUNwQyxhQUE4QixFQUM5QixRQUFrQjtRQUV6QixLQUFLLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLElBQUksTUFBTSxDQUFDLENBQUM7UUFWNUQsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUF3QjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUczQixDQUFDO0lBRVMsV0FBVztRQUNuQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1NBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDOytHQTVDVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixpRkNuQnRDLHNnSUF3R0E7OzRGRHJGYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBYnN0cmFjdExheW91dCxcbiAgQ29tbXVuaWNhdGlvblNlcnZpY2UsXG4gIExheW91dHNDb25maWd1cmF0aW9uU2VydmljZSxcbiAgQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gIE1haW5TdGF0ZVNlcnZpY2Vcbn0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1yUmVzb3VyY2VNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXNvdXJjZS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE1yTGF5b3V0U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTXJUaW1lbGluZUxheW91dENvbmZpZyBhcyBjb25maWcgfSBmcm9tICcuL3RpbWVsaW5lLWxheW91dC5jb25maWcnO1xuaW1wb3J0IHsgTXJMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtci10aW1lbGluZS1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZWxpbmUtbGF5b3V0Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNclRpbWVsaW5lTGF5b3V0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RMYXlvdXQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY29uZmlnSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBsYXlvdXRzQ29uZmlndXJhdGlvbjogTGF5b3V0c0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW11bmljYXRpb246IENvbW11bmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbWFpblN0YXRlOiBNYWluU3RhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBsYXlvdXRTdGF0ZTogTXJMYXlvdXRTdGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIG1vZGFsU2VydmljZTogTXJSZXNvdXJjZU1vZGFsU2VydmljZSxcbiAgICBwdWJsaWMgbG9jYWxlU2VydmljZTogTXJMb2NhbGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBsb2NhdGlvbjogTG9jYXRpb24sXG4gICkge1xuICAgIHN1cGVyKGxheW91dHNDb25maWd1cmF0aW9uLmdldCgnTXJUaW1lbGluZUxheW91dENvbmZpZycpIHx8IGNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdFBheWxvYWQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZ0lkOiB0aGlzLmNvbmZpZ0lkLFxuICAgICAgbWFpblN0YXRlOiB0aGlzLm1haW5TdGF0ZSxcbiAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgIGNvbW11bmljYXRpb246IHRoaXMuY29tbXVuaWNhdGlvbixcbiAgICAgIGxheW91dFN0YXRlOiB0aGlzLmxheW91dFN0YXRlLFxuICAgICAgbW9kYWxTZXJ2aWNlOiB0aGlzLm1vZGFsU2VydmljZSxcbiAgICAgIHJvdXRlOiB0aGlzLnJvdXRlLFxuICAgICAgcm91dGVyOiB0aGlzLnJvdXRlcixcbiAgICAgIGxvY2FsZVNlcnZpY2U6IHRoaXMubG9jYWxlU2VydmljZSxcbiAgICAgIGxvY2F0aW9uOiB0aGlzLmxvY2F0aW9uLFxuICAgICAgb3B0aW9uczogdGhpcy5jb25maWcub3B0aW9ucyB8fCB7fVxuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJvdXRlLmRhdGEuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmNvbmZpZ0lkID0gZGF0YS5jb25maWdJZDtcbiAgICAgIHRoaXMubGF5b3V0U3RhdGUuYWRkKCdjb250ZW50Jyk7XG4gICAgICB0aGlzLm9uSW5pdCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vbkRlc3Ryb3koKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1yLXRpbWVsaW5lIG1yLWxheW91dFwiICpuZ0lmPVwibGIuZGF0YVNvdXJjZVwiPlxuICA8ZGl2IGNsYXNzPVwibXItdGltZWxpbmVfX3RpbWVsaW5lXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtci10aW1lbGluZV9fdGltZWxpbmUtbG9hZGluZ1wiXG4gICAgICAqbmdJZj1cImxiLmRhdGFTb3VyY2UubG9hZGluZy50aW1lbGluZVwiPlxuICAgICAgICA8bjctbG9hZGVyPjwvbjctbG9hZGVyPlxuICAgIDwvZGl2PlxuICAgIDxuNy10aW1lbGluZVxuICAgICAgW2RhdGFdPVwibGIud2lkZ2V0c1snbXItdGltZWxpbmUnXS5kcy5vdXQkIHwgYXN5bmNcIlxuICAgICAgKm5nSWY9XCIhbGIuZGF0YVNvdXJjZS5sb2FkaW5nLnRpbWVsaW5lXCJcbiAgICA+XG4gICAgPC9uNy10aW1lbGluZT5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1yLXRpbWVsaW5lX19wYWdlIG1yLXNpZGUtbWFyZ2luXCI+XG4gICAgPCEtLSBSZXN1bHQgaGVhZGVyIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtci10aW1lbGluZV9fcGFnZS1oZWFkZXJcIj5cbiAgICAgIDxwXG4gICAgICAgIGNsYXNzPVwibXItdGltZWxpbmVfX2RhdGVcIlxuICAgICAgICAqbmdJZj1cIiFsYi5kYXRhU291cmNlLmxvYWRpbmcucmVzb3VyY2VEZXRhaWxzXCJcbiAgICAgID5cbiAgICAgICAge3tsYi5kYXRhU291cmNlLmV2ZW50SGVhZGVyfX1cbiAgICAgIDwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJtci10aW1lbGluZV9fdGl0bGVcIj5cbiAgICAgICAgPG43LWlubmVyLXRpdGxlXG4gICAgICAgICAgW2RhdGFdPVwibGIud2lkZ2V0c1snbXIteWVhci1oZWFkZXInXS5kcy5vdXQkIHwgYXN5bmNcIlxuICAgICAgICAgIFtlbWl0XT1cImxiLndpZGdldHNbJ21yLXllYXItaGVhZGVyJ10uZW1pdFwiXG4gICAgICAgID5cbiAgICAgICAgPC9uNy1pbm5lci10aXRsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gRU5EIC8vIFJlc3VsdCBoZWFkZXIgLS0+XG5cbiAgICA8ZGl2IGNsYXNzPVwibXItdGltZWxpbmVfX2NvbnRlbnRcIj5cbiAgICAgIDwhLS0gREVTQ1JJWklPTkUgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5ldmVudERlc2NyaXB0aW9uXCIgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrIG1yLWNvbnRlbnQtYmxvY2stZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPHAgW2lubmVySFRNTF09XCJsYi5kYXRhU291cmNlLmV2ZW50RGVzY3JpcHRpb25cIj48L3A+XG4gICAgICAgIDxwPjwvcD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxiLmRhdGFTb3VyY2UubG9hZGluZy5yZXNvdXJjZURldGFpbHNcIj5cbiAgICAgICAgPCEtLSBHQUxMRVJJQSAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImxiLmRhdGFTb3VyY2UuY29sbGVjdGlvbkdhbGxlcnlEYXRhICYmIGxiLmRhdGFTb3VyY2UuY29sbGVjdGlvbkdhbGxlcnlEYXRhLmxlbmd0aFwiIFxuICAgICAgICAgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrIHRpbWVsaW5lLWdhbGxlcnlfX2NvbnRhaW5lciBuNy1ncmlkLTRcIj5cbiAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgbGIuZGF0YVNvdXJjZS5jb2xsZWN0aW9uR2FsbGVyeURhdGFcIj5cbiAgICAgICAgICAgICA8ZmlndXJlIGNsYXNzPVwidGltZWxpbmUtZ2FsbGVyeV9faW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICA8YSBbaHJlZl09XCJpbWFnZS5pbWFnZVwiIGNsYXNzPVwidGltZWxpbmUtZ2FsbGVyeV9faW1hZ2VcIj5cbiAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlLnRodW1ibmFpbFwiIGFsdD1cImltYWdlLnRpdGxlXCIgLz5cbiAgICAgICAgICAgICAgICAgPGZpZ2NhcHRpb24gY2xhc3M9XCJ0aW1lbGluZS1nYWxsZXJ5X19kZXNjcmlwdGlvbi10ZXh0XCI+e3sgaW1hZ2UudGl0bGUgfX08L2ZpZ2NhcHRpb24+XG4gICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDwvZmlndXJlPlxuICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPCEtLSBNQVBQQSAtLT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibXItY29udGVudC1ibG9jayBtci1jb250ZW50LWJsb2NrLW1hcFwiXG4gICAgICAgICAgKm5nSWY9XCJsYi5kYXRhU291cmNlLmhhc01hcFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrX190aXRsZVwiICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5tYXBIZWFkZXJcIj5cbiAgICAgICAgICAgIHt7IGxiLmRhdGFTb3VyY2UubWFwSGVhZGVyIH19XG4gICAgICAgICAgPC9oMz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9ja19fY29udGVudFwiPlxuICAgICAgICAgICAgPG43LW1hcCBbZGF0YV09XCJsYi53aWRnZXRzWydtci1tYXAnXS5kcy5vdXQkIHwgYXN5bmNcIj48L243LW1hcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBCSUJMSU9HUkFGSUEgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYi5kYXRhU291cmNlLmJpYmxpb2dyYXBoeURhdGEgYXMgYmlibGlvXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJpYmxpby5pdGVtcyAmJiBiaWJsaW8uaXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2sgbXItY29udGVudC1ibG9jay1jb2xsZWN0aW9uXCI+XG4gICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2tfX3RpdGxlXCI+e3sgYmlibGlvLmhlYWRlci50aXRsZSB9fTwvaDM+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrX19jb250ZW50IG43LWdyaWQtMVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYmlibGlvLml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItdGltZWxpbmVfX2NvbGxlY3Rpb24tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8bjctaXRlbS1wcmV2aWV3XG4gICAgICAgICAgICAgICAgICAgICAgW2VtaXRdPVwibGIuZXZlbnRIYW5kbGVyLml0ZW1QcmV2aWV3RW1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9uNy1pdGVtLXByZXZpZXc+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBDT0xMRUNUSU9OUyAgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbGwgb2YgbGIuZGF0YVNvdXJjZS5jb2xsZWN0aW9uRGF0YVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2xsLml0ZW1zICYmIGNvbGwuaXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2stY29sbGVjdGlvbiBtci1jb250ZW50LWJsb2NrXCI+XG4gICAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2tfX3RpdGxlXCI+e3sgY29sbC5oZWFkZXIudGl0bGUgfX08L2gzPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9ja19fY29udGVudCBuNy1ncmlkLTNcIj5cbiAgICAgICAgICAgICAgICA8bjctaXRlbS1wcmV2aWV3ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbGwuaXRlbXNcIiBbZGF0YV09XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgPC9uNy1pdGVtLXByZXZpZXc+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtbGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvbGF5b3V0cy90aW1lbGluZS1sYXlvdXQvdGltZWxpbmUtbGF5b3V0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtbXVydWNhL3NyYy9saWIvbGF5b3V0cy90aW1lbGluZS1sYXlvdXQvdGltZWxpbmUtbGF5b3V0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUNMLGNBQWMsRUFLZixNQUFNLDBCQUEwQixDQUFDO0FBSWxDLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7O0FBRTlELE1BQU0sY0FBYyxHQUFHO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0NBQ3JCLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLE9BQU8sRUFBRSxXQUFXO0NBQ3JCLENBQUM7QUFNRixNQUFNLE9BQU8seUJBQTBCLFNBQVEsY0FBYztJQUczRCxZQUNFLG9CQUFpRCxFQUN6QyxLQUFxQixFQUNyQixNQUFjLEVBQ2QsYUFBbUMsRUFDbkMsYUFBbUMsRUFDbkMsU0FBMkIsRUFDNUIsV0FBaUMsRUFDakMsWUFBb0MsRUFDcEMsYUFBOEIsRUFDOUIsUUFBa0I7UUFFekIsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDO1FBVjVELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBd0I7UUFDcEMsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFHM0IsQ0FBQztJQUVTLFdBQVc7UUFDbkIsT0FBTztZQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtTQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDOUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsRUFBRSxFQUFFLFlBQVk7WUFDaEIsVUFBVSxFQUFFLGNBQWMsQ0FBQyxPQUFPO1lBQ2xDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPO1NBQ3ZDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBckRVLHlCQUF5QjttR0FBekIseUJBQXlCLGlGQzdCdEMsdWpIQWlHQTs7NEZEcEVhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFic3RyYWN0TGF5b3V0LFxuICBDb21tdW5pY2F0aW9uU2VydmljZSxcbiAgTGF5b3V0c0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgTWFpblN0YXRlU2VydmljZVxufSBmcm9tICdAbmV0Ny9ib2lsZXJwbGF0ZS1jb21tb24nO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTXJSZXNvdXJjZU1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc291cmNlLW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTXJMYXlvdXRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sYXlvdXQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBNclRpbWVsaW5lTGF5b3V0Q29uZmlnIGFzIGNvbmZpZyB9IGZyb20gJy4vdGltZWxpbmUtbGF5b3V0LmNvbmZpZyc7XG5pbXBvcnQgeyBNckxvY2FsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyBNckdhbGxlcnlEUyB9IGZyb20gJy4uLy4uL2RhdGEtc291cmNlcy9nYWxsZXJ5LmRzJztcbmltcG9ydCB7IE1yR2FsbGVyeUVIIH0gZnJvbSAnLi4vLi4vZXZlbnQtaGFuZGxlcnMvZ2FsbGVyeS5laCc7XG5cbmNvbnN0IERBVEFTT1VSQ0VfTUFQID0ge1xuICBnYWxsZXJ5OiBNckdhbGxlcnlEU1xufTtcblxuY29uc3QgRVZFTlRIQU5ETEVSX01BUCA9IHtcbiAgZ2FsbGVyeTogTXJHYWxsZXJ5RUhcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21yLXRpbWVsaW5lLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lbGluZS1sYXlvdXQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE1yVGltZWxpbmVMYXlvdXRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdExheW91dCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBjb25maWdJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxheW91dHNDb25maWd1cmF0aW9uOiBMYXlvdXRzQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY29tbXVuaWNhdGlvbjogQ29tbXVuaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYWluU3RhdGU6IE1haW5TdGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIGxheW91dFN0YXRlOiBNckxheW91dFN0YXRlU2VydmljZSxcbiAgICBwdWJsaWMgbW9kYWxTZXJ2aWNlOiBNclJlc291cmNlTW9kYWxTZXJ2aWNlLFxuICAgIHB1YmxpYyBsb2NhbGVTZXJ2aWNlOiBNckxvY2FsZVNlcnZpY2UsXG4gICAgcHVibGljIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgKSB7XG4gICAgc3VwZXIobGF5b3V0c0NvbmZpZ3VyYXRpb24uZ2V0KCdNclRpbWVsaW5lTGF5b3V0Q29uZmlnJykgfHwgY29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0UGF5bG9hZCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29uZmlnSWQ6IHRoaXMuY29uZmlnSWQsXG4gICAgICBtYWluU3RhdGU6IHRoaXMubWFpblN0YXRlLFxuICAgICAgY29uZmlndXJhdGlvbjogdGhpcy5jb25maWd1cmF0aW9uLFxuICAgICAgY29tbXVuaWNhdGlvbjogdGhpcy5jb21tdW5pY2F0aW9uLFxuICAgICAgbGF5b3V0U3RhdGU6IHRoaXMubGF5b3V0U3RhdGUsXG4gICAgICBtb2RhbFNlcnZpY2U6IHRoaXMubW9kYWxTZXJ2aWNlLFxuICAgICAgcm91dGU6IHRoaXMucm91dGUsXG4gICAgICByb3V0ZXI6IHRoaXMucm91dGVyLFxuICAgICAgbG9jYWxlU2VydmljZTogdGhpcy5sb2NhbGVTZXJ2aWNlLFxuICAgICAgbG9jYXRpb246IHRoaXMubG9jYXRpb24sXG4gICAgICBvcHRpb25zOiB0aGlzLmNvbmZpZy5vcHRpb25zIHx8IHt9XG4gICAgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucm91dGUuZGF0YS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMubGF5b3V0U3RhdGUuYWRkKCdjb250ZW50Jyk7XG4gICAgICB0aGlzLmNvbmZpZ0lkID0gZGF0YS5jb25maWdJZDtcbiAgICAgIHRoaXMubG9hZFdpZGdldHMoKTtcbiAgICAgIHRoaXMub25Jbml0KCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICB9XG5cbiAgbG9hZFdpZGdldHMoKSB7XG4gICAgdGhpcy53aWRnZXRzLnB1c2goe1xuICAgICAgaWQ6ICdtci1nYWxsZXJ5JyxcbiAgICAgIGRhdGFTb3VyY2U6IERBVEFTT1VSQ0VfTUFQLmdhbGxlcnksXG4gICAgICBldmVudEhhbmRsZXI6IEVWRU5USEFORExFUl9NQVAuZ2FsbGVyeVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibXItdGltZWxpbmUgbXItbGF5b3V0XCIgKm5nSWY9XCJsYi5kYXRhU291cmNlXCI+XG4gIDxkaXYgY2xhc3M9XCJtci10aW1lbGluZV9fdGltZWxpbmVcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm1yLXRpbWVsaW5lX190aW1lbGluZS1sb2FkaW5nXCJcbiAgICAgICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5sb2FkaW5nLnRpbWVsaW5lXCI+XG4gICAgICAgIDxuNy1sb2FkZXI+PC9uNy1sb2FkZXI+XG4gICAgPC9kaXY+XG4gICAgPG43LXRpbWVsaW5lXG4gICAgICBbZGF0YV09XCJsYi53aWRnZXRzWydtci10aW1lbGluZSddLmRzLm91dCQgfCBhc3luY1wiXG4gICAgICAqbmdJZj1cIiFsYi5kYXRhU291cmNlLmxvYWRpbmcudGltZWxpbmVcIlxuICAgID5cbiAgICA8L243LXRpbWVsaW5lPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibXItdGltZWxpbmVfX3BhZ2UgbXItc2lkZS1tYXJnaW5cIj5cbiAgICA8IS0tIFJlc3VsdCBoZWFkZXIgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1yLXRpbWVsaW5lX19wYWdlLWhlYWRlclwiPlxuICAgICAgPHBcbiAgICAgICAgY2xhc3M9XCJtci10aW1lbGluZV9fZGF0ZVwiXG4gICAgICAgICpuZ0lmPVwiIWxiLmRhdGFTb3VyY2UubG9hZGluZy5yZXNvdXJjZURldGFpbHNcIlxuICAgICAgPlxuICAgICAgICB7e2xiLmRhdGFTb3VyY2UuZXZlbnRIZWFkZXJ9fVxuICAgICAgPC9wPlxuICAgICAgPGRpdiBjbGFzcz1cIm1yLXRpbWVsaW5lX190aXRsZVwiPlxuICAgICAgICA8bjctaW5uZXItdGl0bGVcbiAgICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzWydtci15ZWFyLWhlYWRlciddLmRzLm91dCQgfCBhc3luY1wiXG4gICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1snbXIteWVhci1oZWFkZXInXS5lbWl0XCJcbiAgICAgICAgPlxuICAgICAgICA8L243LWlubmVyLXRpdGxlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBFTkQgLy8gUmVzdWx0IGhlYWRlciAtLT5cblxuICAgIDxkaXYgY2xhc3M9XCJtci10aW1lbGluZV9fY29udGVudFwiPlxuICAgICAgPCEtLSBERVNDUklaSU9ORSAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJsYi5kYXRhU291cmNlLmV2ZW50RGVzY3JpcHRpb25cIiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2sgbXItY29udGVudC1ibG9jay1kZXNjcmlwdGlvblwiPlxuICAgICAgICA8cCBbaW5uZXJIVE1MXT1cImxiLmRhdGFTb3VyY2UuZXZlbnREZXNjcmlwdGlvblwiPjwvcD5cbiAgICAgICAgPHA+PC9wPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGIuZGF0YVNvdXJjZS5sb2FkaW5nLnJlc291cmNlRGV0YWlsc1wiPlxuICAgICAgICA8IS0tIEdBTExFUklBIC0tPlxuICAgICAgICA8bXItZ2FsbGVyeSAqbmdJZj1cImxiLmRhdGFTb3VyY2UuaGFzR2FsbGVyeVwiIFxuICAgICAgICAgIFtncmlkXT1cIjRcIiBcbiAgICAgICAgICBbZGF0YV09XCJsYi53aWRnZXRzWydtci1nYWxsZXJ5J10uZHMub3V0JCB8IGFzeW5jXCIgXG4gICAgICAgICAgW2VtaXRdPVwibGIud2lkZ2V0c1snbXItZ2FsbGVyeSddLmVtaXRcIj5cbiAgICAgICAgPC9tci1nYWxsZXJ5PlxuXG4gICAgICAgIDwhLS0gTUFQUEEgLS0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2sgbXItY29udGVudC1ibG9jay1tYXBcIlxuICAgICAgICAgICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5oYXNNYXBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGgzIGNsYXNzPVwibXItY29udGVudC1ibG9ja19fdGl0bGVcIiAqbmdJZj1cImxiLmRhdGFTb3VyY2UubWFwSGVhZGVyXCI+XG4gICAgICAgICAgICB7eyBsYi5kYXRhU291cmNlLm1hcEhlYWRlciB9fVxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2tfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuNy1tYXAgW2RhdGFdPVwibGIud2lkZ2V0c1snbXItbWFwJ10uZHMub3V0JCB8IGFzeW5jXCI+PC9uNy1tYXA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQklCTElPR1JBRklBIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGIuZGF0YVNvdXJjZS5iaWJsaW9ncmFwaHlEYXRhIGFzIGJpYmxpb1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJiaWJsaW8uaXRlbXMgJiYgYmlibGlvLml0ZW1zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrIG1yLWNvbnRlbnQtYmxvY2stY29sbGVjdGlvblwiPlxuICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrX190aXRsZVwiPnt7IGJpYmxpby5oZWFkZXIudGl0bGUgfX08L2gzPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItY29udGVudC1ibG9ja19fY29udGVudCBuNy1ncmlkLTFcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGJpYmxpby5pdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLXRpbWVsaW5lX19jb2xsZWN0aW9uLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG43LWl0ZW0tcHJldmlld1xuICAgICAgICAgICAgICAgICAgICAgIFtlbWl0XT1cImxiLmV2ZW50SGFuZGxlci5pdGVtUHJldmlld0VtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvbjctaXRlbS1wcmV2aWV3PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gQ09MTEVDVElPTlMgIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2xsIG9mIGxiLmRhdGFTb3VyY2UuY29sbGVjdGlvbkRhdGFcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sbC5pdGVtcyAmJiBjb2xsLml0ZW1zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrLWNvbGxlY3Rpb24gbXItY29udGVudC1ibG9ja1wiPlxuICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtci1jb250ZW50LWJsb2NrX190aXRsZVwiPnt7IGNvbGwuaGVhZGVyLnRpdGxlIH19PC9oMz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLWNvbnRlbnQtYmxvY2tfX2NvbnRlbnQgbjctZ3JpZC0zXCI+XG4gICAgICAgICAgICAgICAgPG43LWl0ZW0tcHJldmlldyAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2xsLml0ZW1zXCIgW2RhdGFdPVwiaXRlbVwiPlxuICAgICAgICAgICAgICAgIDwvbjctaXRlbS1wcmV2aWV3PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -79,8 +79,8 @@ export class N7BoilerplateMurucaModule {
79
79
  }
80
80
  });
81
81
  }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: N7BoilerplateMurucaModule, deps: [{ token: i1.MrLocaleService }, { token: i2.MainStateService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.NgModule }); }
83
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: N7BoilerplateMurucaModule, declarations: [EscapeHtmlPipe,
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: N7BoilerplateMurucaModule, deps: [{ token: i1.MrLocaleService }, { token: i2.MainStateService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.NgModule }); }
83
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: N7BoilerplateMurucaModule, declarations: [EscapeHtmlPipe,
84
84
  // Layout components
85
85
  MrAdvancedResultsLayoutComponent,
86
86
  MrAdvancedSearchLayoutComponent,
@@ -127,7 +127,7 @@ export class N7BoilerplateMurucaModule {
127
127
  MrGalleryComponent,
128
128
  MrAdvancedResultComponent,
129
129
  MrMetadataDynamicComponent] }); }
130
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: N7BoilerplateMurucaModule, providers: [
130
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: N7BoilerplateMurucaModule, providers: [
131
131
  MrSearchService,
132
132
  MrLayoutStateService,
133
133
  MrResourceModalService,
@@ -136,7 +136,7 @@ export class N7BoilerplateMurucaModule {
136
136
  DvComponentsLibModule,
137
137
  N7BoilerplateCommonModule] }); }
138
138
  }
139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: N7BoilerplateMurucaModule, decorators: [{
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: N7BoilerplateMurucaModule, decorators: [{
140
140
  type: NgModule,
141
141
  args: [{
142
142
  declarations: [
@@ -8,10 +8,10 @@ export class EscapeHtmlPipe {
8
8
  transform(content) {
9
9
  return this.sanitizer.bypassSecurityTrustHtml(content);
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: EscapeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
12
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: EscapeHtmlPipe, name: "keepHtml", pure: false }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EscapeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
12
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: EscapeHtmlPipe, name: "keepHtml", pure: false }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: EscapeHtmlPipe, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EscapeHtmlPipe, decorators: [{
15
15
  type: Pipe,
16
16
  args: [{ name: 'keepHtml', pure: false }]
17
17
  }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
@@ -39,10 +39,10 @@ export class MrFooterService {
39
39
  this.mainState.update('footer', response);
40
40
  }
41
41
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrFooterService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigurationService }, { token: i2.MainStateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrFooterService, providedIn: 'root' }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrFooterService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigurationService }, { token: i2.MainStateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
43
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrFooterService, providedIn: 'root' }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrFooterService, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrFooterService, decorators: [{
46
46
  type: Injectable,
47
47
  args: [{
48
48
  providedIn: 'root',
@@ -33,10 +33,10 @@ export class MrLayoutStateService {
33
33
  }
34
34
  this.stateContainers[id].next(newState);
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrLayoutStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrLayoutStateService }); }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrLayoutStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrLayoutStateService }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrLayoutStateService, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrLayoutStateService, decorators: [{
40
40
  type: Injectable
41
41
  }] });
42
42
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1tdXJ1Y2Evc3JjL2xpYi9zZXJ2aWNlcy9sYXlvdXQtc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRXJDLE1BQU0sQ0FBTixJQUFZLFdBTVg7QUFORCxXQUFZLFdBQVc7SUFDckIsNEJBQWEsQ0FBQTtJQUNiLGtDQUFtQixDQUFBO0lBQ25CLGtDQUFtQixDQUFBO0lBQ25CLDhCQUFlLENBQUE7SUFDZiw4QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFOVyxXQUFXLEtBQVgsV0FBVyxRQU10QjtBQUdELE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFFVSxvQkFBZSxHQUVuQixFQUFFLENBQUM7S0F3QlI7SUF0QkMsR0FBRyxDQUFDLEVBQXFCO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2hELGdCQUFnQjtZQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxDQUFDLEVBQVU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sS0FBSyxDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEVBQVUsRUFBRSxRQUFxQjtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sS0FBSyxDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBMUJVLG9CQUFvQjttSEFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZW51bSBMYXlvdXRTdGF0ZSB7XG4gIElETEUgPSAnSURMRScsXG4gIExPQURJTkcgPSAnTE9BRElORycsXG4gIFNVQ0NFU1MgPSAnU1VDQ0VTUycsXG4gIEVNUFRZID0gJ0VNUFRZJyxcbiAgRVJST1IgPSAnRVJST1InLFxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTXJMYXlvdXRTdGF0ZVNlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRlQ29udGFpbmVyczoge1xuICAgIFtrZXk6IHN0cmluZ106IFJlcGxheVN1YmplY3Q8TGF5b3V0U3RhdGU+O1xuICB9ID0ge307XG5cbiAgYWRkKGlkOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIGNvbnN0IGlkcyA9IEFycmF5LmlzQXJyYXkoaWQpID8gaWQgOiBbaWRdO1xuICAgIGlkcy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIHRoaXMuc3RhdGVDb250YWluZXJzW2tleV0gPSBuZXcgUmVwbGF5U3ViamVjdCgpO1xuICAgICAgLy8gaW5pdGlhbCBzdGF0ZVxuICAgICAgdGhpcy5zdGF0ZUNvbnRhaW5lcnNba2V5XS5uZXh0KExheW91dFN0YXRlLklETEUpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0JChpZDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnN0YXRlQ29udGFpbmVyc1tpZF0pIHtcbiAgICAgIHRocm93IEVycm9yKGBMYXlvdXQgc3RhdGUgaWQgJyR7aWR9JyBkb2VzIG5vdCBleGlzdHNgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVDb250YWluZXJzW2lkXTtcbiAgfVxuXG4gIHNldChpZDogc3RyaW5nLCBuZXdTdGF0ZTogTGF5b3V0U3RhdGUpIHtcbiAgICBpZiAoIXRoaXMuc3RhdGVDb250YWluZXJzW2lkXSkge1xuICAgICAgdGhyb3cgRXJyb3IoYExheW91dCBzdGF0ZSBpZCAnJHtpZH0nIGRvZXMgbm90IGV4aXN0c2ApO1xuICAgIH1cbiAgICB0aGlzLnN0YXRlQ29udGFpbmVyc1tpZF0ubmV4dChuZXdTdGF0ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -58,10 +58,10 @@ export class MrLocaleService {
58
58
  this.resourceConfig = null;
59
59
  });
60
60
  }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrLocaleService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
62
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrLocaleService }); }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrLocaleService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
62
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrLocaleService }); }
63
63
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrLocaleService, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrLocaleService, decorators: [{
65
65
  type: Injectable
66
66
  }], ctorParameters: () => [{ type: i1.Router }] });
67
67
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1tdXJ1Y2Evc3JjL2xpYi9zZXJ2aWNlcy9sb2NhbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBVSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVTdDLE1BQU0sT0FBTyxlQUFlO0lBUzFCLFlBQ1UsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFMaEIsbUJBQWMsR0FBeUIsSUFBSSxDQUFDO1FBRTdDLGFBQVEsR0FBd0QsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQXNCM0YsZUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFaEMsY0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFOUIsWUFBTyxHQUFHLENBQUMsTUFBYyxFQUFFLE9BQWUsRUFBRSxFQUFXLEVBQUUsSUFBYSxFQUFFLEVBQUU7WUFDeEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3JELE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNuRixPQUFPLE9BQU8sS0FBSyxjQUFjLElBQUksTUFBTSxLQUFLLGtCQUFrQixDQUFDO1lBQ3JFLENBQUMsQ0FBQyxDQUFD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QUM7WUFFSCx5QkFBeUI7WUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTNCVSxlQUFlO21IQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlc1JlY29nbml6ZWQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCB0eXBlIExvY2FsZVJlc291cmNlQ29uZmlnID0ge1xuICBbbG9jYWxlOiBzdHJpbmddOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gIH07XG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTXJMb2NhbGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByb3V0ZUlkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBsb2NhbGU6IHN0cmluZztcblxuICBwcml2YXRlIHJlc291cmNlQ29uZmlnOiBMb2NhbGVSZXNvdXJjZUNvbmZpZyA9IG51bGw7XG5cbiAgcHVibGljIGNoYW5nZWQkOiBSZXBsYXlTdWJqZWN0PHsgcm91dGVJZDogc3RyaW5nOyBsb2NhbGU6IHN0cmluZzsgfT4gPSBuZXcgUmVwbGF5U3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIFJvdXRlc1JlY29nbml6ZWQpLFxuICAgICAgbWFwKChldmVudDogUm91dGVzUmVjb2duaXplZCkgPT4gZXZlbnQuc3RhdGUucm9vdC5maXJzdENoaWxkLmRhdGEpXG4gICAgKS5zdWJzY3JpYmUoKHsgcm91dGVJZCwgbG9jYWxlIH0pID0+IHtcbiAgICAgIHRoaXMucm91dGVJZCA9IHJvdXRlSWQ7XG4gICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcblxuICAgICAgdGhpcy5jaGFuZ2VkJC5uZXh0KHtcbiAgICAgICAgcm91dGVJZDogdGhpcy5yb3V0ZUlkLFxuICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlXG4gICAgICB9KTtcblxuICAgICAgLy8gcmVtb3ZlIHByZXZpb3VzIGNvbmZpZ1xuICAgICAgdGhpcy5yZXNvdXJjZUNvbmZpZyA9IG51bGw7XG4gICAgfSk7XG4gIH1cblxuICBnZXRSb3V0ZUlkID0gKCkgPT4gdGhpcy5yb3V0ZUlkO1xuXG4gIGdldExvY2FsZSA9ICgpID0+IHRoaXMubG9jYWxlO1xuXG4gIGdldExpbmsgPSAobG9jYWxlOiBzdHJpbmcsIHJvdXRlSWQ6IHN0cmluZywgaWQ/OiBzdHJpbmcsIHNsdWc/OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCByb3V0ZUNvbmZpZyA9IHRoaXMucm91dGVyLmNvbmZpZy5maW5kKChjb25maWcpID0+IHtcbiAgICAgIGNvbnN0IHsgcm91dGVJZDogY3VycmVudFJvdXRlSWQsIGxvY2FsZTogY3VycmVudFJvdXRlTG9jYWxlIH0gPSBjb25maWc/LmRhdGEgfHwge307XG4gICAgICByZXR1cm4gcm91dGVJZCA9PT0gY3VycmVudFJvdXRlSWQgJiYgbG9jYWxlID09PSBjdXJyZW50Um91dGVMb2NhbGU7XG4gICAgfSk7XG4gICAgaWYgKHR5cGVvZiByb3V0ZUNvbmZpZz8ucGF0aCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlTG9jYWxlQ29uZmlnID0gdGhpcy5yZXNvdXJjZUNvbmZpZyAmJiB0aGlzLnJlc291cmNlQ29uZmlnW2xvY2FsZV1cbiAgICAgICAgPyB0aGlzLnJlc291cmNlQ29uZmlnW2xvY2FsZV1cbiAgICAgICAgOiB7IGlkOiBudWxsLCBzbHVnOiBudWxsIH07XG4gICAgICBsZXQgaWRQYXJhbSA9ICcnO1xuICAgICAgbGV0IHNsdWdQYXJhbSA9ICcnO1xuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIGlkUGFyYW0gPSBgLyR7aWR9YDtcbiAgICAgIH0gZWxzZSBpZiAocmVzb3VyY2VMb2NhbGVDb25maWcuaWQpIHtcbiAgICAgICAgaWRQYXJhbSA9IGAvJHtyZXNvdXJjZUxvY2FsZUNvbmZpZy5pZH1gO1xuICAgICAgfVxuICAgICAgaWYgKHNsdWcpIHtcbiAgICAgICAgc2x1Z1BhcmFtID0gYC8ke3NsdWd9YDtcbiAgICAgIH0gZWxzZSBpZiAocmVzb3VyY2VMb2NhbGVDb25maWcuc2x1Zykge1xuICAgICAgICBzbHVnUGFyYW0gPSBgLyR7cmVzb3VyY2VMb2NhbGVDb25maWcuc2x1Z31gO1xuICAgICAgfVxuICAgICAgY29uc3QgaHJlZiA9IHJvdXRlQ29uZmlnLnBhdGhcbiAgICAgICAgLnJlcGxhY2UoJy86aWQnLCBpZFBhcmFtKVxuICAgICAgICAucmVwbGFjZSgnLzpzbHVnJywgc2x1Z1BhcmFtKTtcbiAgICAgIHJldHVybiBocmVmLmluZGV4T2YoJy8nKSA9PT0gMCA/IGAke2hyZWZ9YCA6IGAvJHtocmVmfWA7XG4gICAgfVxuICAgIGNvbnNvbGUud2FybignTG9jYWxlU2VydmljZSBsaW5rIG5vdCBmb3VuZCcsIGxvY2FsZSwgcm91dGVJZCk7XG4gICAgcmV0dXJuICcnO1xuICB9O1xuXG4gIGdldExpbmtCeUxvY2FsZSA9IChcbiAgICBsb2NhbGU6IHN0cmluZyxcbiAgICBpZD86IHN0cmluZyxcbiAgICBzbHVnPzogc3RyaW5nXG4gICkgPT4gdGhpcy5nZXRMaW5rKGxvY2FsZSwgdGhpcy5yb3V0ZUlkLCBpZCwgc2x1Zyk7XG5cbiAgZ2V0TGlua0J5Um91dGVJZCA9IChcbiAgICByb3V0ZUlkOiBzdHJpbmcsXG4gICAgaWQ/OiBzdHJpbmcsXG4gICAgc2x1Zz86IHN0cmluZ1xuICApID0+IHRoaXMuZ2V0TGluayh0aGlzLmxvY2FsZSwgcm91dGVJZCwgaWQsIHNsdWcpO1xuXG4gIHNldFJlc291cmNlQ29uZmlnID0gKGNvbmZpZzogTG9jYWxlUmVzb3VyY2VDb25maWcpID0+IHtcbiAgICB0aGlzLnJlc291cmNlQ29uZmlnID0gY29uZmlnO1xuICB9O1xufVxuIl19
@@ -94,10 +94,10 @@ export class MrMenuService {
94
94
  }
95
95
  return href;
96
96
  }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrMenuService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigurationService }, { token: i3.MrLocaleService }], target: i0.ɵɵFactoryTarget.Injectable }); }
98
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrMenuService, providedIn: 'root' }); }
97
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrMenuService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigurationService }, { token: i3.MrLocaleService }], target: i0.ɵɵFactoryTarget.Injectable }); }
98
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrMenuService, providedIn: 'root' }); }
99
99
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrMenuService, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrMenuService, decorators: [{
101
101
  type: Injectable,
102
102
  args: [{
103
103
  providedIn: 'root',
@@ -44,10 +44,10 @@ export class MrResourceModalService {
44
44
  }
45
45
  });
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrResourceModalService, deps: [{ token: i1.ConfigurationService }, { token: i1.CommunicationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
48
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrResourceModalService }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrResourceModalService, deps: [{ token: i1.ConfigurationService }, { token: i1.CommunicationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
48
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrResourceModalService }); }
49
49
  }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MrResourceModalService, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrResourceModalService, decorators: [{
51
51
  type: Injectable
52
52
  }], ctorParameters: () => [{ type: i1.ConfigurationService }, { type: i1.CommunicationService }] });
53
53
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtbW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLW11cnVjYS9zcmMvbGliL3NlcnZpY2VzL3Jlc291cmNlLW1vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQVloQyxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLFlBQ1UsYUFBbUMsRUFDbkMsYUFBbUM7UUFEbkMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUo3QyxXQUFNLEdBQXdCLElBQUksT0FBTyxFQUFFLENBQUM7UUFNMUMsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksQ0FBQyxVQUEyQixFQUFFLFFBQWdCO1FBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEUsbUJBQW1CO1FBQ25CLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzlELEdBQUcsT0FBTztnQkFDVixLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7YUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzVDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0NBQW9DLFVBQVUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBMkI7UUFDbEQsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDN0MsT0FBTztZQUNQLE1BQU0sRUFBRSxNQUFNO1lBQ2QsTUFBTSxFQUFFO2dCQUNOLEVBQUU7Z0JBQ0YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNqQixRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNwQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBOUNVLHNCQUFzQjttSEFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgX3QgfSBmcm9tICdAbmV0Ny9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlLCBDb21tdW5pY2F0aW9uU2VydmljZSB9IGZyb20gJ0BuZXQ3L2JvaWxlcnBsYXRlLWNvbW1vbic7XG5cbmV4cG9ydCB0eXBlIE1vZGFsU3RhdHVzID0gJ0xPQURJTkcnIHwgJ0VSUk9SJyB8ICdTVUNDRVNTJyB8ICdFTVBUWScgfCAnSURMRSc7XG5cbmV4cG9ydCB0eXBlIE1vZGFsU3RhdGUgPSB7XG4gIHN0YXR1czogTW9kYWxTdGF0dXM7XG4gIHJlc3BvbnNlPzogYW55O1xuICBjb25maWc/OiBhbnk7XG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTXJSZXNvdXJjZU1vZGFsU2VydmljZSB7XG4gIHN0YXRlJDogU3ViamVjdDxNb2RhbFN0YXRlPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW11bmljYXRpb246IENvbW11bmljYXRpb25TZXJ2aWNlLFxuICApIHtcbiAgICAvLyBkZWZhdWx0IHN0YXRlXG4gICAgdGhpcy5zdGF0ZSQubmV4dCh7IHN0YXR1czogJ0lETEUnIH0pO1xuICB9XG5cbiAgb3BlbihyZXNvdXJjZUlkOiBzdHJpbmcgfCBudW1iZXIsIGNvbmZpZ0lkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0YXRlJC5uZXh0KHsgc3RhdHVzOiAnTE9BRElORycgfSk7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWd1cmF0aW9uLmdldChgcmVzb3VyY2UtbW9kYWwtJHtjb25maWdJZH1gKTtcbiAgICAvLyBhZGQgdHJhbnNsYXRpb25zXG4gICAgWyd0b3AnLCAnY29udGVudCddLmZvckVhY2goKHR5cGUpID0+IHtcbiAgICAgIGNvbmZpZy5zZWN0aW9uc1t0eXBlXSA9IGNvbmZpZy5zZWN0aW9uc1t0eXBlXS5tYXAoKHNlY3Rpb24pID0+ICh7XG4gICAgICAgIC4uLnNlY3Rpb24sXG4gICAgICAgIHRpdGxlOiBfdChzZWN0aW9uLnRpdGxlKVxuICAgICAgfSkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5wYWdlUmVxdWVzdCQocmVzb3VyY2VJZCwgY29uZmlnLCAoZXJyKSA9PiB7XG4gICAgICBjb25zb2xlLndhcm4oYEVycm9yIGxvYWRpbmcgcmVzb3VyY2UgbW9kYWwgZm9yICR7cmVzb3VyY2VJZH1gLCBlcnIubWVzc2FnZSk7XG4gICAgICB0aGlzLnN0YXRlJC5uZXh0KHsgc3RhdHVzOiAnRVJST1InIH0pO1xuICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuc3RhdGUkLm5leHQoeyByZXNwb25zZSwgY29uZmlnLCBzdGF0dXM6ICdTVUNDRVNTJywgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLnN0YXRlJC5uZXh0KHsgc3RhdHVzOiAnSURMRScgfSk7XG4gIH1cblxuICBwYWdlUmVxdWVzdCQoaWQsIGNvbmZpZywgb25FcnJvcjogKGVycjogYW55KSA9PiB2b2lkKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB7IHRvcCwgY29udGVudCB9ID0gY29uZmlnLnNlY3Rpb25zO1xuICAgIGNvbnN0IHNlY3Rpb25zID0gdG9wLmNvbmNhdChjb250ZW50KTtcbiAgICByZXR1cm4gdGhpcy5jb21tdW5pY2F0aW9uLnJlcXVlc3QkKCdyZXNvdXJjZScsIHtcbiAgICAgIG9uRXJyb3IsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBpZCxcbiAgICAgICAgdHlwZTogY29uZmlnLnR5cGUsXG4gICAgICAgIHNlY3Rpb25zOiBzZWN0aW9ucy5tYXAoKHMpID0+IHMuaWQpLFxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=