UNPKG

stimulsoft-viewer-angular

Version:

The Viewer component is designed to view reports and dashboards in the web browser.

186 lines 19.2 kB
import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "./api.angular.service"; import * as i2 from "./api.dashboard.service"; import * as i3 from "./model.service"; export class ApiService { constructor(angularService, dashboardService, model) { this.angularService = angularService; this.dashboardService = dashboardService; this.model = model; this.EXPORT_FORMATS = ['Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff', 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp', 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz']; } get api() { return this.model.showDashboard ? this.dashboardService : this.angularService; } /** * The current page number */ get currentPage() { return this.api.currentPage; } set currentPage(value) { this.api.currentPage = value; } /** * The total pages count */ get pagesCount() { return this.api.pagesCount; } /** * The view mode, can be 'SinglePage', 'Continuous' & 'MultiplePages' */ get viewMode() { return this.api.viewMode; } set viewMode(value) { this.api.viewMode = value; } /** * The page zoom in percent * From 1 to 200 */ get zoom() { return this.api.zoom; } set zoom(value) { this.api.zoom = value; } /** * Zoom page in height */ zoomPageHeight() { this.api.zoomPageHeight(); } /** * Zoom page in width */ zoomPageWidth() { this.api.zoomPageWidth(); } /** * Print to PDF */ printPdf() { this.api.printPdf(); } /** * Print with preview */ printWithPreview() { this.api.printWithPreview(); } /** * Print without preview */ printWithoutPreview() { this.api.printWithoutPreview(); } /** * Show export form * * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff', * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp', * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz' */ showExportForm(format) { this.api.showExportForm(format); } /** * Show export form & email * * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff', * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp', * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz' */ showExportEmailForm(format) { this.api.showExportEmailForm(format); } /** * Export report/dashboard to selected format * Use default settings if not specified * * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff', * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp', * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz' * * @param settings The export settings */ export(format, settings) { this.api.export(format, settings); } /** * Refresh dashboard */ dashboardRefresh() { this.api.dashboardRefresh(); } /** * Reset all filters */ dashboardResetAllFilters() { this.api.dashboardResetAllFilters(); } /** * Export report/dashboard to seleted format & email * Use default settings if not specified * Use default email settings if not specified * * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff', * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp', * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz' * * @param settings The export settings * * @param email The email * * @param message The email message * * @param subject The email subject */ exportEmail(format, settings, email, subject, message) { this.api.exportEmail(format, settings, email, subject, message); } /** * Report or Dashboard */ get reportType() { return this.api.reportType; } /** * Search text in report * * @param text text to search * * @param matchCase * * @param matchWholeWord */ search(text, matchCase, matchWholeWord) { this.api.search(text, matchCase, matchWholeWord); } /** * Select next or previous search * * @param direction 'Next' or 'Previous' * */ selectSearchLabel(direction) { this.api.selectSearchLabel(direction); } /** * Hide search */ hideSearchLabels() { this.api.hideSearchLabels(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiService, deps: [{ token: i1.ApiAngularService }, { token: i2.ApiDashboardService }, { token: i3.ModelService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiService, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i1.ApiAngularService }, { type: i2.ApiDashboardService }, { type: i3.ModelService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdGltdWxzb2Z0LXZpZXdlci1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFNM0MsTUFBTSxPQUFPLFVBQVU7SUFNckIsWUFBb0IsY0FBaUMsRUFBVSxnQkFBcUMsRUFBVSxLQUFtQjtRQUE3RyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUoxSCxtQkFBYyxHQUFhLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXO1lBQzFJLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVO1lBQzNGLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUVnQyxDQUFDO0lBRXRJLElBQVksR0FBRztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUNoRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFdB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Q0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQWhNVSxVQUFVO21IQUFWLFVBQVU7OzRGQUFWLFVBQVU7a0JBRHRCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1vZGVsU2VydmljZSB9IGZyb20gJy4vbW9kZWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwaUFuZ3VsYXJTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuYW5ndWxhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4vYXBpLmRhc2hib2FyZC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFwaVNlcnZpY2UgaW1wbGVtZW50cyBBcGlJbnRlcmZhY2Uge1xyXG5cclxuICBwdWJsaWMgRVhQT1JUX0ZPUk1BVFM6IHN0cmluZ1tdID0gWydEb2N1bWVudCcsICdQZGYnLCAnWHBzJywgJ1Bvd2VyUG9pbnQnLCAnSHRtbCcsICdIdG1sNScsICdNaHQnLCAnVGV4dCcsICdSdGYnLCAnV29yZCcsICdPZHQnLCAnRXhjZWxCaWZmJyxcclxuICAgICdFeGNlbCcsICdFeGNlbFhtbCcsICdFeGNlbCcsICdPZHMnLCAnQ3N2JywgJ0RiZicsICdEaWYnLCAnU3lsaycsICdKc29uJywgJ1htbCcsICdJbWFnZUJtcCcsXHJcbiAgICAnSW1hZ2VHaWYnLCAnSW1hZ2VKcGVnJywgJ0ltYWdlUGN4JywgJ0ltYWdlUG5nJywgJ0ltYWdlVGlmZicsICdJbWFnZUVtZicsICdJbWFnZVN2ZycsICdJbWFnZVN2Z3onXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmd1bGFyU2VydmljZTogQXBpQW5ndWxhclNlcnZpY2UsIHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogQXBpRGFzaGJvYXJkU2VydmljZSwgcHJpdmF0ZSBtb2RlbDogTW9kZWxTZXJ2aWNlKSB7IH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgYXBpKCk6IEFwaUludGVyZmFjZSB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbC5zaG93RGFzaGJvYXJkID8gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlIDogdGhpcy5hbmd1bGFyU2VydmljZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBjdXJyZW50UGFnZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpLmN1cnJlbnRQYWdlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBjdXJyZW50UGFnZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmFwaS5jdXJyZW50UGFnZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHRvdGFsIHBhZ2VzIGNvdW50XHJcbiAgICovXHJcbiAgcHVibGljIGdldCBwYWdlc0NvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpLnBhZ2VzQ291bnQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgdmlldyBtb2RlLCBjYW4gYmUgJ1NpbmdsZVBhZ2UnLCAnQ29udGludW91cycgJiAnTXVsdGlwbGVQYWdlcydcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IHZpZXdNb2RlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGkudmlld01vZGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHZpZXdNb2RlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYXBpLnZpZXdNb2RlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgcGFnZSB6b29tIGluIHBlcmNlbnRcclxuICAgKiBGcm9tIDEgdG8gMjAwXHJcbiAgICovXHJcbiAgcHVibGljIGdldCB6b29tKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGkuem9vbTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgem9vbSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmFwaS56b29tID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBab29tIHBhZ2UgaW4gaGVpZ2h0XHJcbiAgICovXHJcbiAgcHVibGljIHpvb21QYWdlSGVpZ2h0KCkge1xyXG4gICAgdGhpcy5hcGkuem9vbVBhZ2VIZWlnaHQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFpvb20gcGFnZSBpbiB3aWR0aFxyXG4gICAqL1xyXG4gIHB1YmxpYyB6b29tUGFnZVdpZHRoKCkge1xyXG4gICAgdGhpcy5hcGkuem9vbVBhZ2VXaWR0aCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJpbnQgdG8gUERGXHJcbiAgICovXHJcbiAgcHVibGljIHByaW50UGRmKCkge1xyXG4gICAgdGhpcy5hcGkucHJpbnRQZGYoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByaW50IHdpdGggcHJldmlld1xyXG4gICAqL1xyXG4gIHB1YmxpYyBwcmludFdpdGhQcmV2aWV3KCkge1xyXG4gICAgdGhpcy5hcGkucHJpbnRXaXRoUHJldmlldygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJpbnQgd2l0aG91dCBwcmV2aWV3XHJcbiAgICovXHJcbiAgcHVibGljIHByaW50V2l0aG91dFByZXZpZXcoKSB7XHJcbiAgICB0aGlzLmFwaS5wcmludFdpdGhvdXRQcmV2aWV3KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG93IGV4cG9ydCBmb3JtXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZm9ybWF0IFRoZSBmb3JtYXQgdG8gZXhwb3J0LCBjYW4gYmUgJ0RvY3VtZW50JywgJ1BkZicsICdYcHMnLCAnUG93ZXJQb2ludCcsICdIdG1sJywgJ0h0bWw1JywgJ01odCcsICdUZXh0JywgJ1J0ZicsICdXb3JkJywgJ09kdCcsICdFeGNlbEJpZmYnLFxyXG4gICAqICdFeGNlbCcsICdFeGNlbFhtbCcsICdFeGNlbCcsICdPZHMnLCAnQ3N2JywgJ0RiZicsICdEaWYnLCAnU3lsaycsICdKc29uJywgJ1htbCcsICdJbWFnZUJtcCcsXHJcbiAgICogJ0ltYWdlR2lmJywgJ0ltYWdlSnBlZycsICdJbWFnZVBjeCcsICdJbWFnZVBuZycsICdJbWFnZVRpZmYnLCAnSW1hZ2VFbWYnLCAnSW1hZ2VTdmcnLCAnSW1hZ2VTdmd6J1xyXG4gICAqL1xyXG4gIHB1YmxpYyBzaG93RXhwb3J0Rm9ybShmb3JtYXQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5hcGkuc2hvd0V4cG9ydEZvcm0oZm9ybWF0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cgZXhwb3J0IGZvcm0gJiBlbWFpbFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZvcm1hdCBUaGUgZm9ybWF0IHRvIGV4cG9ydCwgY2FuIGJlICdEb2N1bWVudCcsICdQZGYnLCAnWHBzJywgJ1Bvd2VyUG9pbnQnLCAnSHRtbCcsICdIdG1sNScsICdNaHQnLCAnVGV4dCcsICdSdGYnLCAnV29yZCcsICdPZHQnLCAnRXhjZWxCaWZmJyxcclxuICAgKiAnRXhjZWwnLCAnRXhjZWxYbWwnLCAnRXhjZWwnLCAnT2RzJywgJ0NzdicsICdEYmYnLCAnRGlmJywgJ1N5bGsnLCAnSnNvbicsICdYbWwnLCAnSW1hZ2VCbXAnLFxyXG4gICAqICdJbWFnZUdpZicsICdJbWFnZUpwZWcnLCAnSW1hZ2VQY3gnLCAnSW1hZ2VQbmcnLCAnSW1hZ2VUaWZmJywgJ0ltYWdlRW1mJywgJ0ltYWdlU3ZnJywgJ0ltYWdlU3ZneidcclxuICAgKi9cclxuICBwdWJsaWMgc2hvd0V4cG9ydEVtYWlsRm9ybShmb3JtYXQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5hcGkuc2hvd0V4cG9ydEVtYWlsRm9ybShmb3JtYXQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhwb3J0IHJlcG9ydC9kYXNoYm9hcmQgdG8gc2VsZWN0ZWQgZm9ybWF0XHJcbiAgICogVXNlIGRlZmF1bHQgc2V0dGluZ3MgaWYgbm90IHNwZWNpZmllZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZvcm1hdCBUaGUgZm9ybWF0IHRvIGV4cG9ydCwgY2FuIGJlICdEb2N1bWVudCcsICdQZGYnLCAnWHBzJywgJ1Bvd2VyUG9pbnQnLCAnSHRtbCcsICdIdG1sNScsICdNaHQnLCAnVGV4dCcsICdSdGYnLCAnV29yZCcsICdPZHQnLCAnRXhjZWxCaWZmJyxcclxuICAgKiAnRXhjZWwnLCAnRXhjZWxYbWwnLCAnRXhjZWwnLCAnT2RzJywgJ0NzdicsICdEYmYnLCAnRGlmJywgJ1N5bGsnLCAnSnNvbicsICdYbWwnLCAnSW1hZ2VCbXAnLFxyXG4gICAqICdJbWFnZUdpZicsICdJbWFnZUpwZWcnLCAnSW1hZ2VQY3gnLCAnSW1hZ2VQbmcnLCAnSW1hZ2VUaWZmJywgJ0ltYWdlRW1mJywgJ0ltYWdlU3ZnJywgJ0ltYWdlU3ZneidcclxuICAgKlxyXG4gICAqIEBwYXJhbSBzZXR0aW5ncyBUaGUgZXhwb3J0IHNldHRpbmdzXHJcbiAgICovXHJcbiAgcHVibGljIGV4cG9ydChmb3JtYXQ6IHN0cmluZywgc2V0dGluZ3M/OiBhbnkpIHtcclxuICAgIHRoaXMuYXBpLmV4cG9ydChmb3JtYXQsIHNldHRpbmdzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlZnJlc2ggZGFzaGJvYXJkXHJcbiAgICovXHJcbiAgcHVibGljIGRhc2hib2FyZFJlZnJlc2goKSB7XHJcbiAgICB0aGlzLmFwaS5kYXNoYm9hcmRSZWZyZXNoKClcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVzZXQgYWxsIGZpbHRlcnNcclxuICAgKi9cclxuICBwdWJsaWMgZGFzaGJvYXJkUmVzZXRBbGxGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5hcGkuZGFzaGJvYXJkUmVzZXRBbGxGaWx0ZXJzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeHBvcnQgcmVwb3J0L2Rhc2hib2FyZCB0byBzZWxldGVkIGZvcm1hdCAmIGVtYWlsXHJcbiAgICogVXNlIGRlZmF1bHQgc2V0dGluZ3MgaWYgbm90IHNwZWNpZmllZFxyXG4gICAqIFVzZSBkZWZhdWx0IGVtYWlsIHNldHRpbmdzIGlmIG5vdCBzcGVjaWZpZWRcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmb3JtYXQgVGhlIGZvcm1hdCB0byBleHBvcnQsIGNhbiBiZSAnRG9jdW1lbnQnLCAnUGRmJywgJ1hwcycsICdQb3dlclBvaW50JywgJ0h0bWwnLCAnSHRtbDUnLCAnTWh0JywgJ1RleHQnLCAnUnRmJywgJ1dvcmQnLCAnT2R0JywgJ0V4Y2VsQmlmZicsXHJcbiAgICogJ0V4Y2VsJywgJ0V4Y2VsWG1sJywgJ0V4Y2VsJywgJ09kcycsICdDc3YnLCAnRGJmJywgJ0RpZicsICdTeWxrJywgJ0pzb24nLCAnWG1sJywgJ0ltYWdlQm1wJyxcclxuICAgKiAnSW1hZ2VHaWYnLCAnSW1hZ2VKcGVnJywgJ0ltYWdlUGN4JywgJ0ltYWdlUG5nJywgJ0ltYWdlVGlmZicsICdJbWFnZUVtZicsICdJbWFnZVN2ZycsICdJbWFnZVN2Z3onXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc2V0dGluZ3MgVGhlIGV4cG9ydCBzZXR0aW5nc1xyXG4gICAqXHJcbiAgICogQHBhcmFtIGVtYWlsIFRoZSBlbWFpbFxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIGVtYWlsIG1lc3NhZ2VcclxuICAgKlxyXG4gICAqIEBwYXJhbSBzdWJqZWN0IFRoZSBlbWFpbCBzdWJqZWN0XHJcbiAgICovXHJcbiAgcHVibGljIGV4cG9ydEVtYWlsKGZvcm1hdDogc3RyaW5nLCBzZXR0aW5ncz86IGFueSwgZW1haWw/OiBzdHJpbmcsIHN1YmplY3Q/OiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYXBpLmV4cG9ydEVtYWlsKGZvcm1hdCwgc2V0dGluZ3MsIGVtYWlsLCBzdWJqZWN0LCBtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlcG9ydCBvciBEYXNoYm9hcmRcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IHJlcG9ydFR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmFwaS5yZXBvcnRUeXBlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIHRleHQgaW4gcmVwb3J0XHJcbiAgICpcclxuICAgKiBAcGFyYW0gdGV4dCB0ZXh0IHRvIHNlYXJjaFxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1hdGNoQ2FzZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1hdGNoV2hvbGVXb3JkXHJcbiAgICovXHJcbiAgcHVibGljIHNlYXJjaCh0ZXh0OiBzdHJpbmcsIG1hdGNoQ2FzZTogYm9vbGVhbiwgbWF0Y2hXaG9sZVdvcmQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuYXBpLnNlYXJjaCh0ZXh0LCBtYXRjaENhc2UsIG1hdGNoV2hvbGVXb3JkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2VsZWN0IG5leHQgb3IgcHJldmlvdXMgc2VhcmNoXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZGlyZWN0aW9uICdOZXh0JyBvciAnUHJldmlvdXMnXHJcbiAgICpcclxuICAgKi9cclxuICBwdWJsaWMgc2VsZWN0U2VhcmNoTGFiZWwoZGlyZWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYXBpLnNlbGVjdFNlYXJjaExhYmVsKGRpcmVjdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIaWRlIHNlYXJjaFxyXG4gICAqL1xyXG4gIHB1YmxpYyBoaWRlU2VhcmNoTGFiZWxzKCkge1xyXG4gICAgdGhpcy5hcGkuaGlkZVNlYXJjaExhYmVscygpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcGlJbnRlcmZhY2Uge1xyXG4gIGN1cnJlbnRQYWdlOiBudW1iZXI7XHJcbiAgcGFnZXNDb3VudDogbnVtYmVyO1xyXG4gIHZpZXdNb2RlOiBzdHJpbmc7XHJcbiAgem9vbTogbnVtYmVyO1xyXG5cclxuICB6b29tUGFnZUhlaWdodCgpO1xyXG4gIHpvb21QYWdlV2lkdGgoKTtcclxuICBwcmludFBkZigpO1xyXG4gIHByaW50V2l0aFByZXZpZXcoKTtcclxuICBwcmludFdpdGhvdXRQcmV2aWV3KCk7XHJcbiAgc2hvd0V4cG9ydEZvcm0oZm9ybWF0OiBzdHJpbmcpO1xyXG4gIHNob3dFeHBvcnRFbWFpbEZvcm0oZm9ybWF0OiBzdHJpbmcpO1xyXG4gIGV4cG9ydChmb3JtYXQ6IHN0cmluZywgc2V0dGluZ3M/OiBhbnkpO1xyXG4gIGV4cG9ydEVtYWlsKGZvcm1hdDogc3RyaW5nLCBzZXR0aW5ncz86IGFueSwgZW1haWw/OiBzdHJpbmcsIHN1YmplY3Q/OiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcpO1xyXG4gIHNlYXJjaCh0ZXh0OiBzdHJpbmcsIG1hdGNoQ2FzZTogYm9vbGVhbiwgbWF0Y2hXaG9sZVdvcmQ6IGJvb2xlYW4pO1xyXG4gIHNlbGVjdFNlYXJjaExhYmVsKGRpcmVjdGlvbik7XHJcbiAgaGlkZVNlYXJjaExhYmVscygpO1xyXG5cclxuICAvKipcclxuICAgKiBSZWZyZXNoIGRhc2hib2FyZFxyXG4gICAqL1xyXG4gIGRhc2hib2FyZFJlZnJlc2goKTtcclxuXHJcbiAgZGFzaGJvYXJkUmVzZXRBbGxGaWx0ZXJzKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlcG9ydCBvciBEYXNoYm9hcmRcclxuICAgKi9cclxuICBnZXQgcmVwb3J0VHlwZSgpOiBzdHJpbmc7XHJcbn1cclxuIl19