UNPKG

ngx-extended-pdf-viewer

Version:

Embedding PDF files in your Angular application. Highly configurable viewer including the toolbar, sidebar, and all the features you're used to.

202 lines (187 loc) 13.8 kB
import { DOCUMENT } from '@angular/common'; import { Component, Inject, Input, Renderer2 } from '@angular/core'; export class DynamicCssComponent { constructor(renderer, document) { this.renderer = renderer; this.document = document; this.zoom = 1.0; this.width = 100; this.xs = 490; this.sm = 560; this.md = 610; this.lg = 660; this.xl = 740; this.xxl = 830; } get style() { return ` @media all and (max-width: ${this.xl}px) { #toolbarViewerMiddle { display: table; margin: auto; left: auto; position: inherit; transform: none; } } @media all and (max-width: 840px) { #sidebarContent { background-color: rgba(0, 0, 0, 0.7); } html[dir='ltr'] #outerContainer.sidebarOpen #viewerContainer { left: 0px !important; } html[dir='rtl'] #outerContainer.sidebarOpen #viewerContainer { right: 0px !important; } #outerContainer .hiddenLargeView, #outerContainer .hiddenMediumView { display: inherit; } #outerContainer .visibleLargeView, #outerContainer .visibleMediumView { display: none; } } @media all and (max-width: ${this.lg}px) { .toolbarButtonSpacer { width: 15px; } #outerContainer .hiddenLargeView { display: none; } #outerContainer .visibleLargeView { display: inherit; } } @media all and (max-width: ${this.md}px) { .toolbarButtonSpacer { display: none; } #outerContainer .hiddenMediumView { display: none; } #outerContainer .visibleMediumView { display: inherit; } } @media all and (max-width: ${this.sm}px) { #outerContainer .hiddenSmallView, #outerContainer .hiddenSmallView * { display: none; } #outerContainer .visibleSmallView { display: inherit; } .toolbarButtonSpacer { width: 0; } html[dir='ltr'] .findbar { left: 38px; } html[dir='rtl'] .findbar { right: 38px; } } @media all and (max-width: ${this.xs}px) { #scaleSelectContainer { display: none; } } #outerContainer .visibleXLView, #outerContainer .visibleXXLView, #outerContainer .visibleTinyView { display: none; } #outerContainer .hiddenXLView, #outerContainer .hiddenXXLView { display: unset; } @media all and (max-width: ${this.xl}px) { #outerContainer .hiddenXLView { display: none; } #outerContainer .visibleXLView { display: inherit; } #toolbarViewerMiddle { -webkit-transform: translateX(-36%); transform: translateX(-36%); display: unset; margin: unset; left: 50%; position: absolute; } } @media all and (max-width: ${this.xxl}px) { #outerContainer .hiddenXXLView { display: none; } #outerContainer .visibleXXLView { display: inherit; } } @media all and (max-width: ${this.md}px) { #toolbarViewerMiddle { -webkit-transform: translateX(-26%); transform: translateX(-26%); } } @media all and (max-width: ${this.xs}px) { #outerContainer .hiddenTinyView, #outerContainer .hiddenTinyView * { display: none; } #outerContainer .visibleTinyView { display: inherit; } } `; } ngOnInit() { this.injectStyle(); } ngOnChanges() { const fullWith = this.document.body.clientWidth; const partialViewScale = fullWith / this.width; const scaleFactor = partialViewScale * (this.zoom ? this.zoom : 1); this.xs = scaleFactor * 490; this.sm = scaleFactor * 560; this.md = scaleFactor * 610; this.lg = scaleFactor * 660; this.xl = scaleFactor * 740; this.xxl = scaleFactor * 830; const styles = this.document.getElementById('pdf-dynamic-css'); if (styles) { styles.innerHTML = this.style; } } injectStyle() { const styles = this.document.createElement('STYLE'); styles.id = 'pdf-dynamic-css'; styles.innerHTML = this.style; this.renderer.appendChild(this.document.head, styles); } ngOnDestroy() { const styles = this.document.getElementById('pdf-dynamic-css'); if (styles && styles.parentElement) { styles.parentElement.removeChild(styles); } } } DynamicCssComponent.decorators = [ { type: Component, args: [{ selector: 'pdf-dynamic-css', template: "", styles: [""] },] } ]; DynamicCssComponent.ctorParameters = () => [ { type: Renderer2 }, { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] } ]; DynamicCssComponent.propDecorators = { zoom: [{ type: Input }], width: [{ type: Input }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXIvc3JjL2xpYi9keW5hbWljLWNzcy9keW5hbWljLWNzcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZ0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT2xHLE1BQU0sT0FBTyxtQkFBbUI7SUFnSzlCLFlBQW9CLFFBQW1CLEVBQTRCLFFBQWE7UUFBNUQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUE0QixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBOUp6RSxTQUFJLEdBQUcsR0FBRyxDQUFDO1FBR1gsVUFBSyxHQUFHLEdBQUcsQ0FBQztRQUVaLE9BQUUsR0FBRyxHQUFHLENBQUM7UUFFVCxPQUFFLEdBQUcsR0FBRyxDQUFDO1FBRVQsT0FBRSxHQUFHLEdBQUcsQ0FBQztRQUVULE9BQUUsR0FBRyxHQUFHLENBQUM7UUFFVCxPQUFFLEdBQUcsR0FBRyxDQUFDO1FBRVQsUUFBRyxHQUFHLEdBQUcsQ0FBQztJQStJa0UsQ0FBQztJQTdJcEYsSUFBVyxLQUFLO1FBQ2QsT0FBTzs2QkFDa0IsSUFBSSxDQUFDLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzZCQWdDUCxJQUFJLENBQUMsRUFBRTs7Ozs7Ozs7Ozs7Ozs2QkFhUCxJQUFJLENBQUMsRUFBRTs7Ozs7Ozs7Ozs7OzZCQVlQLElBQUksQ0FBQyxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzZCQW1CUCxJQUFJLENBQUMsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7NkJBaUJQLElBQUksQ0FBQyxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7NkJBa0JQLElBQUksQ0FBQyxHQUFHOzs7Ozs7Ozs7NkJBU1IsSUFBSSxDQUFDLEVBQUU7Ozs7Ozs7NkJBT1AsSUFBSSxDQUFDLEVBQUU7Ozs7Ozs7OztHQVNqQyxDQUFDO0lBQ0osQ0FBQztJQUlDLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUMvQyxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxFQUFFLEdBQUcsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsRUFBRSxHQUFHLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDNUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQzVCLElBQUksQ0FBQyxFQUFFLEdBQUcsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsRUFBRSxHQUFHLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBRTdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0QsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQXFCLENBQUM7UUFDeEUsTUFBTSxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztRQUM5QixNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLFdBQVc7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQWdCLENBQUM7UUFDOUUsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUNqQyxNQUFNLENBQUMsYUFBcUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDOzs7WUF6TUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLFlBQTJDOzthQUU1Qzs7O1lBTmdFLFNBQVM7NENBdUs5QixNQUFNLFNBQUMsUUFBUTs7O21CQS9KeEQsS0FBSztvQkFHTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRmLWR5bmFtaWMtY3NzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtY3NzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1jc3MuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNDc3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIHpvb20gPSAxLjA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHdpZHRoID0gMTAwO1xuXG4gIHB1YmxpYyB4cyA9IDQ5MDtcblxuICBwdWJsaWMgc20gPSA1NjA7XG5cbiAgcHVibGljIG1kID0gNjEwO1xuXG4gIHB1YmxpYyBsZyA9IDY2MDtcblxuICBwdWJsaWMgeGwgPSA3NDA7XG5cbiAgcHVibGljIHh4bCA9IDgzMDtcblxuICBwdWJsaWMgZ2V0IHN0eWxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICR7dGhpcy54bH1weCkge1xuICAjdG9vbGJhclZpZXdlck1pZGRsZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDg0MHB4KSB7XG4gICNzaWRlYmFyQ29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICB9XG5cbiAgaHRtbFtkaXI9J2x0ciddICNvdXRlckNvbnRhaW5lci5zaWRlYmFyT3BlbiAjdmlld2VyQ29udGFpbmVyIHtcbiAgICBsZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgfVxuICBodG1sW2Rpcj0ncnRsJ10gI291dGVyQ29udGFpbmVyLnNpZGViYXJPcGVuICN2aWV3ZXJDb250YWluZXIge1xuICAgIHJpZ2h0OiAwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gICNvdXRlckNvbnRhaW5lciAuaGlkZGVuTGFyZ2VWaWV3LFxuICAjb3V0ZXJDb250YWluZXIgLmhpZGRlbk1lZGl1bVZpZXcge1xuICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gIH1cbiAgI291dGVyQ29udGFpbmVyIC52aXNpYmxlTGFyZ2VWaWV3LFxuICAjb3V0ZXJDb250YWluZXIgLnZpc2libGVNZWRpdW1WaWV3IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICR7dGhpcy5sZ31weCkge1xuICAudG9vbGJhckJ1dHRvblNwYWNlciB7XG4gICAgd2lkdGg6IDE1cHg7XG4gIH1cblxuICAjb3V0ZXJDb250YWluZXIgLmhpZGRlbkxhcmdlVmlldyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjb3V0ZXJDb250YWluZXIgLnZpc2libGVMYXJnZVZpZXcge1xuICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogJHt0aGlzLm1kfXB4KSB7XG4gIC50b29sYmFyQnV0dG9uU3BhY2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNvdXRlckNvbnRhaW5lciAuaGlkZGVuTWVkaXVtVmlldyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjb3V0ZXJDb250YWluZXIgLnZpc2libGVNZWRpdW1WaWV3IHtcbiAgICBkaXNwbGF5OiBpbmhlcml0O1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICR7dGhpcy5zbX1weCkge1xuICAjb3V0ZXJDb250YWluZXIgLmhpZGRlblNtYWxsVmlldyxcbiAgI291dGVyQ29udGFpbmVyIC5oaWRkZW5TbWFsbFZpZXcgKiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjb3V0ZXJDb250YWluZXIgLnZpc2libGVTbWFsbFZpZXcge1xuICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gIH1cbiAgLnRvb2xiYXJCdXR0b25TcGFjZXIge1xuICAgIHdpZHRoOiAwO1xuICB9XG4gIGh0bWxbZGlyPSdsdHInXSAuZmluZGJhciB7XG4gICAgbGVmdDogMzhweDtcbiAgfVxuICBodG1sW2Rpcj0ncnRsJ10gLmZpbmRiYXIge1xuICAgIHJpZ2h0OiAzOHB4O1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICR7dGhpcy54c31weCkge1xuICAjc2NhbGVTZWxlY3RDb250YWluZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuI291dGVyQ29udGFpbmVyIC52aXNpYmxlWExWaWV3LFxuI291dGVyQ29udGFpbmVyIC52aXNpYmxlWFhMVmlldyxcbiNvdXRlckNvbnRhaW5lciAudmlzaWJsZVRpbnlWaWV3IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI291dGVyQ29udGFpbmVyIC5oaWRkZW5YTFZpZXcsXG4jb3V0ZXJDb250YWluZXIgLmhpZGRlblhYTFZpZXcge1xuICBkaXNwbGF5OiB1bnNldDtcbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogJHt0aGlzLnhsfXB4KSB7XG4gICNvdXRlckNvbnRhaW5lciAuaGlkZGVuWExWaWV3IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNvdXRlckNvbnRhaW5lciAudmlzaWJsZVhMVmlldyB7XG4gICAgZGlzcGxheTogaW5oZXJpdDtcbiAgfVxuXG4gICN0b29sYmFyVmlld2VyTWlkZGxlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzYlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTM2JSk7XG4gICAgZGlzcGxheTogdW5zZXQ7XG4gICAgbWFyZ2luOiB1bnNldDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICR7dGhpcy54eGx9cHgpIHtcbiAgI291dGVyQ29udGFpbmVyIC5oaWRkZW5YWExWaWV3IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNvdXRlckNvbnRhaW5lciAudmlzaWJsZVhYTFZpZXcge1xuICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogJHt0aGlzLm1kfXB4KSB7XG4gICN0b29sYmFyVmlld2VyTWlkZGxlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjYlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI2JSk7XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogJHt0aGlzLnhzfXB4KSB7XG4gICNvdXRlckNvbnRhaW5lciAuaGlkZGVuVGlueVZpZXcsXG4gICNvdXRlckNvbnRhaW5lciAuaGlkZGVuVGlueVZpZXcgKiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjb3V0ZXJDb250YWluZXIgLnZpc2libGVUaW55VmlldyB7XG4gICAgZGlzcGxheTogaW5oZXJpdDtcbiAgfVxufVxuICBgO1xufVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55KSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5qZWN0U3R5bGUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGNvbnN0IGZ1bGxXaXRoID0gdGhpcy5kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IHBhcnRpYWxWaWV3U2NhbGUgPSBmdWxsV2l0aCAvIHRoaXMud2lkdGg7XG4gICAgY29uc3Qgc2NhbGVGYWN0b3IgPSBwYXJ0aWFsVmlld1NjYWxlICogKHRoaXMuem9vbSA/IHRoaXMuem9vbSA6IDEpO1xuXG4gICAgdGhpcy54cyA9IHNjYWxlRmFjdG9yICogNDkwO1xuICAgIHRoaXMuc20gPSBzY2FsZUZhY3RvciAqIDU2MDtcbiAgICB0aGlzLm1kID0gc2NhbGVGYWN0b3IgKiA2MTA7XG4gICAgdGhpcy5sZyA9IHNjYWxlRmFjdG9yICogNjYwO1xuICAgIHRoaXMueGwgPSBzY2FsZUZhY3RvciAqIDc0MDtcbiAgICB0aGlzLnh4bCA9IHNjYWxlRmFjdG9yICogODMwO1xuXG4gICAgY29uc3Qgc3R5bGVzID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGRmLWR5bmFtaWMtY3NzJyk7XG4gICAgaWYgKHN0eWxlcykge1xuICAgICAgc3R5bGVzLmlubmVySFRNTCA9IHRoaXMuc3R5bGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbmplY3RTdHlsZSgpIHtcbiAgICBjb25zdCBzdHlsZXMgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ1NUWUxFJykgYXMgSFRNTFN0eWxlRWxlbWVudDtcbiAgICBzdHlsZXMuaWQgPSAncGRmLWR5bmFtaWMtY3NzJztcbiAgICBzdHlsZXMuaW5uZXJIVE1MID0gdGhpcy5zdHlsZTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuaGVhZCwgc3R5bGVzKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICBjb25zdCBzdHlsZXMgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwZGYtZHluYW1pYy1jc3MnKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoc3R5bGVzICYmIHN0eWxlcy5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAoc3R5bGVzLnBhcmVudEVsZW1lbnQgYXMgYW55KS5yZW1vdmVDaGlsZChzdHlsZXMpO1xuICAgIH1cbiAgfVxufVxuIl19