UNPKG

stimulsoft-viewer-angular

Version:
687 lines (663 loc) 81.6 kB
import { Component, Input, ViewChild } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "../services/model.service"; import * as i2 from "../services/export.service"; import * as i3 from "../services/helper.service"; import * as i4 from "./form.service"; import * as i5 from "../menu/menu.service"; import * as i6 from "../services/collections.service"; import * as i7 from "../services/controller.service"; import * as i8 from "@angular/common"; import * as i9 from "../controls/button.component"; import * as i10 from "../controls/text-box.componet"; import * as i11 from "../controls/checkbox.component"; import * as i12 from "./base-form.component"; import * as i13 from "./group-panel.component"; import * as i14 from "../controls/radio-button.components"; import * as i15 from "../controls/drop-down-list-for-export-form.component"; export class ExportFormComponent { constructor(model, exportService, helper, formService, menuService, collections, controller) { this.model = model; this.exportService = exportService; this.helper = helper; this.formService = formService; this.menuService = menuService; this.collections = collections; this.controller = controller; this.PROPERTY_ALIAS = { ImageFormatForHtml: 'ImageFormat', EncodingTextOrCsvFile: 'Encoding', ExportModeRtf: 'ExportMode', EncodingDifFile: 'Encoding', EncodingDbfFile: 'CodePage' }; this.formVisible = false; this.disabledComponents = {}; } ngOnChanges(changes) { if (this.baseForm && this.formService?.form?.name === this.baseForm.name) { setTimeout(() => this.updateDisabledComponents()); } } ngOnInit() { } action() { this.formService.closeForm(this.baseForm.name); if (this.model.options.exports.storeExportSettings) { this.helper.setCookie('StimulsoftWebViewerExportSettings' + this.exportService.getCommonExportFormat(), JSON.stringify(this.exportService.exportSettings)); } this.exportService.postExport(); } updateDisabledComponents() { ['StandardPdfFonts', 'EmbeddedFonts', 'UseUnicode'].forEach(n => this.disabledComponents[n] = (this.exportService.exportSettings.PdfACompliance === true)); this.disabledComponents.ImageQuality = this.exportService.exportSettings.ImageCompressionMethod && this.exportService.exportSettings.ImageCompressionMethod !== 'Jpeg'; this.disabledComponents.ExportObjectFormatting = this.exportService.exportSettings.DataExportMode === 'AllBands'; this.disabledComponents.UseOnePageHeaderAndFooter = this.exportService.exportSettings.DataExportMode != 'AllBands'; this.disabledComponents.EncodingDifFile = this.exportService.exportSettings.UseDefaultSystemEncoding; this.disabledComponents.TiffCompressionScheme = this.exportService.exportSettings.ImageType !== 'Tiff'; this.disabledComponents.UseDigitalSignature = !this.exportService.exportSettings.UseDigitalSignature || !(this.model.pdfSecurityCertificates?.length > 0); this.disabledComponents.RemoveEmptySpaceAtBottom = this.exportService.exportSettings.UsePageHeadersAndFooters; if (this.exportService.exportSettings.ImageType != null) { const ifComponent = this.exportService.exportFormSettings.components.find(c => c.name === 'ImageFormat'); if (ifComponent != null) { ifComponent.items = this.collections.getImageFormatItems(this.exportService.exportSettings.ImageType === 'Emf'); } } this.disabledComponents.DitheringType = this.exportService.exportSettings.ImageFormat !== 'Monochrome'; if (this.saveReportMdc) { this.saveReportMdc.click(); } if (this.pagesRangeAll && !this.exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled) { this.pagesRangeAll.click(); } if (this.pageRangeCurrentPage && this.exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled) { this.pageRangeCurrentPage.click(); } if (this.exportService.exportSettings.CompressToArchive === true) { this.exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled = false; } if (this.exportService.exportSettings.CompressToArchive === false) { this.exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled = true; } } componentAction(comp, value) { let property = this.PROPERTY_ALIAS[comp.name] || comp.name; switch (property) { case 'EmbeddedFonts': case 'UseUnicode': if (value) { this.exportService.exportSettings.StandardPdfFonts = false; } break; case 'StandardPdfFonts': if (value) { this.exportService.exportSettings.EmbeddedFonts = false; this.exportService.exportSettings.UseUnicode = false; } break; case 'ImageType': this.exportService.export('Image' + value, true); break; case 'DataType': case 'HtmlType': this.exportService.export(value, true); break; case 'ExcelType': const exportFormat = value === 'ExcelBinary' ? 'Excel' : value; this.exportService.export(exportFormat, true); break; case 'UseDigitalSignature': if (!(value === true || value === false)) { property = 'CertificateThumbprint'; } if (value === true && this.collections.getPdfSecurityCertificatesItems().length == 0) { value = false; this.controller.showError('Warning', 'Certificate Not Found!'); } break; case 'UsePageHeadersAndFooters': if (value === true) { this.exportService.exportSettings.RemoveEmptySpaceAtBottom = true; } break; } this.exportService.exportSettings[property] = value; this.updateDisabledComponents(); } getValue(comp, component) { const property = this.PROPERTY_ALIAS[comp.name] || comp.name; switch (property) { case 'Zoom2': return this.exportService.exportSettings[property].toString(); case 'UseDigitalSignature': if (component == 'dropDownList') { return this.exportService.exportSettings['CertificateThumbprint']; } default: return this.exportService.exportSettings[property]; } } changeVisibility(state) { this.formVisible = state === 'visible'; if (state === 'hidden' && this.exportFormSettings?.groups?.savingReportGroup) { this.helper.setCookie('StimulsoftWebViewerExportSettingsOpeningGroups', JSON.stringify({ SavingReportGroup: this.exportFormSettings.groups.savingReportGroup.opened, PageRangeGroup: this.exportFormSettings.groups.pageRangeGroup.opened, SettingsGroup: this.exportFormSettings.groups.settingsGroup.opened })); } if (state === 'visible') { this.updateDisabledComponents(); } } showMenu(comp, button) { let menuName = 'documentSecurityMenu'; if (comp.name === 'DocumentSecurityButton') { this.menuService.addMenu({ type: menuName, name: menuName, items: [], parent: button.button, itemStyleName: 'stiJsViewerMenuStandartItem', menuStyleName: 'stiJsViewerDropdownMenu', state: '' }); } else { menuName = this.menuService.VERTICAL_MENU_NAME; this.menuService.addMenu({ type: 'buttonMenu', name: menuName, items: this.collections.getPdfSecurityCertificatesItems(), parent: button.button, itemStyleName: 'stiJsViewerMenuStandartItem', menuStyleName: 'stiJsViewerDropdownMenu', state: '' }); } setTimeout(() => { this.menuService.showMenu(menuName); }); } getTextBoxType(name) { if (name === 'SaveReportPassword' || name === 'PasswordInputUser' || name === 'PasswordInputOwner') { return this.formVisible ? 'password' : ''; } return null; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExportFormComponent, deps: [{ token: i1.ModelService }, { token: i2.ExportService }, { token: i3.HelperService }, { token: i4.FormService }, { token: i5.MenuService }, { token: i6.CollectionsService }, { token: i7.ControllerService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExportFormComponent, selector: "sti-export-form", inputs: { exportFormSettings: "exportFormSettings" }, viewQueries: [{ propertyName: "baseForm", first: true, predicate: ["baseForm"], descendants: true }, { propertyName: "saveReportMdc", first: true, predicate: ["saveReportMdc"], descendants: true }, { propertyName: "pagesRangeAll", first: true, predicate: ["pagesRangeAll"], descendants: true }, { propertyName: "pageRangeCurrentPage", first: true, predicate: ["pageRangeCurrentPage"], descendants: true }], usesOnChanges: true, ngImport: i0, template: ` <sti-base-form #baseForm [fontFamily]="model.options.toolbar.fontFamily" [color]="model.options.toolbar.fontColor" [fontSize]="'12px'" [containerPadding]="'3px'" [name]="'exportForm'" [caption]="model.loc('ExportFormTitle')" [defaultTop]="150" (changeVisibility)="changeVisibility($event)" (action)="action()"> <table class="stiJsViewerClearAllStyles" cellpadding="0" cellspacing="0" [style.width]="'100%'"> <tbody> <tr *ngIf="exportFormSettings?.groups.savingReportGroup.visible" class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-group-panel [caption]="model.loc('SavingReport')" [width]="390" [margin]="'4px'" [innerPadding]="'4px 0 4px 0'" [opened]="exportFormSettings.groups.savingReportGroup.opened" (action)="exportFormSettings.groups.savingReportGroup.opened=$event"> <table class="stiJsViewerClearAllStyles" cellpadding="0" cellspacing="0" [style.width]="'100%'"> <tbody> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-radio-button #saveReportMdc [name]="baseForm.name + 'SaveReportMdc'" [groupName]="baseForm.name + 'SavingReportGroup'" [caption]="model.loc('SaveReportMdc')" [margin]="'6px 8px 3px 8px'" [checked]="true" (action)="exportService.exportSettings.Format = 'Mdc'"> </sti-radio-button> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-radio-button [name]="baseForm.name + 'SaveReportMdz'" [groupName]="baseForm.name + 'SavingReportGroup'" [caption]="model.loc('SaveReportMdz')" [margin]="'3px 8px 3px 8px'" (action)="exportService.exportSettings.Format = 'Mdz'"> </sti-radio-button> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-radio-button [name]="baseForm.name + 'SaveReportMdx'" [groupName]="baseForm.name + 'SavingReportGroup'" [caption]="model.loc('SaveReportMdx')" [margin]="'3px 8px 0px 8px'" (action)="exportService.exportSettings.Format = 'Mdx'"> </sti-radio-button> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" [style.padding]="'0px 8px'" [style.minWidth.px]="150" [attr.title]="model.loc('PasswordSaveReportTooltip')"> {{model.loc('PasswordSaveReport')}} </td> <td> <sti-text-box [width]="140" [tooltip]="model.loc('PasswordSaveReportTooltip')" [margin]="'4px 8px 0px 8px'" [type]="getTextBoxType('SaveReportPassword')" [enabled]="exportService.exportSettings.Format == 'Mdx'" (onchange)="exportService.exportSettings.Password = $event.value"> </sti-text-box> </td> </tr> </tbody> </table> </sti-group-panel> </td> </tr> <tr *ngIf="exportFormSettings?.groups.pageRangeGroup.visible" class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-group-panel [caption]="model.loc('PagesRange')" [width]="390" [margin]="'4px'" [innerPadding]="'4px 0 4px 0'" [opened]="exportFormSettings.groups.pageRangeGroup.opened" (action)="exportFormSettings.groups.pageRangeGroup.opened=$event"> <table class="stiJsViewerClearAllStyles" cellpadding="0" cellspacing="0" [style.width]="'100%'"> <tbody> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-radio-button #pagesRangeAll [name]="baseForm.name + 'PagesRangeAll'" [groupName]="baseForm.name + 'PageRangeGroup'" [caption]="model.loc('PagesRangeAll')" [tooltip]="model.loc('PagesRangeAllTooltip')" [margin]="'6px 8px 6px 8px'" [checked]="!exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled" [enabled]="!exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled" (action)="exportService.exportSettings.PageRange = 'All'"> </sti-radio-button> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-radio-button #pageRangeCurrentPage [name]="baseForm.name + 'PageRangeCurrentPage'" [groupName]="baseForm.name + 'PageRangeGroup'" [caption]="model.loc('PagesRangeCurrentPage')" [tooltip]="model.loc('PagesRangeCurrentPageTooltip')" [margin]="'0px 8px 4px 8px'" [checked]="exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled" (action)="exportService.exportSettings.PageRange = (model.reportParams.pageNumber + 1).toString()"> </sti-radio-button> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-radio-button [name]="baseForm.name + 'PageRangePages'" [groupName]="baseForm.name + 'PageRangeGroup'" [caption]="model.loc('PagesRangePages')" [tooltip]="model.loc('PagesRangePagesTooltip')" [margin]="'0px 8px 0px 8px'" [paddingLeftLastCell]="'60px'" (action)="exportService.exportSettings.PageRange = pagesRange.element.nativeElement.value"> <sti-text-box #pagesRange [width]="130" [tooltip]="model.loc('PagesRangePagesTooltip')" [margin]="'0px 0px 0px 30px'" (onchange)="exportService.exportSettings.PageRange = $event.value" (onblur)="exportService.exportSettings.PageRange = $event.value"> </sti-text-box> </sti-radio-button> </td> </tr> </tbody> </table> </sti-group-panel> </td> </tr> <tr *ngIf="exportFormSettings?.groups.settingsGroup.visible"class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-group-panel [caption]="model.loc('SettingsGroup')" [opened]="exportFormSettings.groups.settingsGroup.opened" [width]="390" [margin]="'4px'" [innerPadding]="'4px 0 4px 0'" (action)="exportFormSettings.groups.settingsGroup.opened=$event"> <table class="stiJsViewerClearAllStyles" cellpadding="0" cellspacing="0" [style.width]="'100%'"> <tbody> <tr *ngFor="let comp of exportFormSettings.components"> <td *ngIf="comp.label != null" [style.padding]="'0px 8px'" [style.minWidth.px]="150" [attr.title]="comp.tooltip"> {{comp.label}} </td> <td *ngIf="comp.name == 'UseDigitalSignature'"> <sti-check-box [tooltip]="comp.tooltip" [margin]="comp.margin" [captionText]="comp.caption" [isChecked]="getValue(comp)" (action)="componentAction(comp, $event)"> </sti-check-box> </td> <td [attr.colSpan]="comp.label != null || comp.name == 'DocumentSecurityButton' || comp.name == 'UseDigitalSignature' ? 1 : 2"> <sti-drop-down-list-for-export-form *ngIf="comp.type == 'DropDownListForExportForm'" [width]="comp.width" [items]="comp.items" [key]="getValue(comp, 'dropDownList')" [margin]="comp.margin" [verticalAlign]="comp.name == 'ImageQuality' || comp.name == 'ImageResolution' ? 'middle' : null" [styleDisplay]="comp.name == 'ImageQuality' || comp.name == 'ImageResolution' ? 'inline-block' : null" [enabled]="!disabledComponents[comp.name]" (action)="componentAction(comp, $event.key)"> </sti-drop-down-list-for-export-form> <div *ngIf="comp.name == 'ImageQuality' || comp.name == 'ImageResolution'" [style.display]="'inline-block'"> {{comp.name == 'ImageQuality' ? '%' : 'dpi'}} </div> <sti-text-box *ngIf="comp.type == 'TextBox'" [width]="comp.width" [tooltip]="comp.tooltip" [margin]="comp.margin" [type]="getTextBoxType(comp.name)" [enabled]="!comp.disabled" [value]="getValue(comp)" [enabled]="!disabledComponents[comp.name]" (onchange)="componentAction(comp, $event.value)"> </sti-text-box> <sti-check-box *ngIf="comp.type == 'CheckBox' || comp.type == 'DigitalSignature'" [tooltip]="comp.tooltip" [margin]="comp.margin" [captionText]="comp.caption" [isChecked]="getValue(comp)" [isEnabled]="!disabledComponents[comp.name]" (action)="componentAction(comp, $event)"> </sti-check-box> </td> <td *ngIf="comp.name == 'DocumentSecurityButton'"> <sti-button #button [width]="comp.width" [arrow]="'Down'" [minWidth]="'163px'" [captionAlign]="'center'" [display]="'inline-block'" [styleName]="'stiJsViewerFormButton'" [margin]="'2px 8px'" [innerTableWidth]="'100%'" [captionWidth]="'100%'" [caption]="comp.name == 'DocumentSecurityButton' ? comp.caption : ''" [enabled]="!disabledComponents[comp.name + 'Button']" (action)="showMenu(comp, button)"> </sti-button> </td> </tr> </tbody> </table> </sti-group-panel> </td> </tr> <tr *ngIf="model.options.exports.showOpenAfterExport && exportFormSettings?.openAfterExport && !exportService.sendMail" class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-check-box [captionText]="model.loc('OpenAfterExport')" [tooltip]="model.loc('OpenAfterExportTooltip')" [margin]="'4px 8px 4px 8px'" [isChecked]="exportService.exportSettings.OpenAfterExport" (action)="exportService.exportSettings.OpenAfterExport = $event"> </sti-check-box> </td> </tr> </tbody> </table> </sti-base-form> `, isInline: true, dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i9.ButtonComponent, selector: "sti-button", inputs: ["caption", "caption2", "captionAlign", "captionPadding", "captionPaddingLeft", "captionWhiteSpace", "captionOverflow", "captionTextOverflow", "captionWidth", "captionMaxWidth", "captionLineHeight", "imageName", "arrow", "arrowMarginTop", "margin", "height", "selected", "minWidth", "innerTableWidth", "menuItems", "actionName", "tooltip", "imageCellTextAlign", "imageCellWidth", "imageCellPadding", "imageSizesWidth", "imageSizesHeight", "imageMargin", "width", "display", "closeButton", "resourceButton", "styleColors", "boxSizing", "navagationPanelTooltip", "cursor", "fontSize", "helpLink", "borderColor", "styleName", "enabled"], outputs: ["action", "closeButtonAction"] }, { kind: "component", type: i10.TextBoxComponent, selector: "sti-text-box", inputs: ["width", "actionLostFocus", "tooltip", "enabled", "value", "margin", "focusOnCreate", "maxLength", "color", "type", "padding", "border", "variable", "textAlign", "autocomplete", "readOnly"], outputs: ["action", "onchange", "onblur"] }, { kind: "component", type: i11.CheckboxComponent, selector: "sti-check-box", inputs: ["isEnabled", "isChecked", "indeterminate", "captionText", "tooltip", "margin", "width", "styleColors", "imageBlockParentWidth", "nullable"], outputs: ["action"] }, { kind: "component", type: i12.BaseFormComponent, selector: "sti-base-form", inputs: ["level", "caption", "helpUrl", "fontFamily", "color", "fontSize", "containerPadding", "name", "defaultTop", "showCancel", "showButtons", "showSeparator"], outputs: ["changeVisibility", "action"] }, { kind: "component", type: i13.GroupPanelComponent, selector: "sti-group-panel", inputs: ["width", "caption", "innerPadding", "opened", "margin"], outputs: ["action"] }, { kind: "component", type: i14.RadioButtonComponent, selector: "sti-radio-button", inputs: ["groupName", "name", "enabled", "checked", "tooltip", "caption", "margin", "paddingLeftLastCell"], outputs: ["action"] }, { kind: "component", type: i15.DropDownListForExportFormComponent, selector: "sti-drop-down-list-for-export-form", inputs: ["items", "width", "key", "margin", "enabled", "styleDisplay", "verticalAlign"], outputs: ["action"] }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExportFormComponent, decorators: [{ type: Component, args: [{ selector: 'sti-export-form', template: ` <sti-base-form #baseForm [fontFamily]="model.options.toolbar.fontFamily" [color]="model.options.toolbar.fontColor" [fontSize]="'12px'" [containerPadding]="'3px'" [name]="'exportForm'" [caption]="model.loc('ExportFormTitle')" [defaultTop]="150" (changeVisibility)="changeVisibility($event)" (action)="action()"> <table class="stiJsViewerClearAllStyles" cellpadding="0" cellspacing="0" [style.width]="'100%'"> <tbody> <tr *ngIf="exportFormSettings?.groups.savingReportGroup.visible" class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-group-panel [caption]="model.loc('SavingReport')" [width]="390" [margin]="'4px'" [innerPadding]="'4px 0 4px 0'" [opened]="exportFormSettings.groups.savingReportGroup.opened" (action)="exportFormSettings.groups.savingReportGroup.opened=$event"> <table class="stiJsViewerClearAllStyles" cellpadding="0" cellspacing="0" [style.width]="'100%'"> <tbody> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-radio-button #saveReportMdc [name]="baseForm.name + 'SaveReportMdc'" [groupName]="baseForm.name + 'SavingReportGroup'" [caption]="model.loc('SaveReportMdc')" [margin]="'6px 8px 3px 8px'" [checked]="true" (action)="exportService.exportSettings.Format = 'Mdc'"> </sti-radio-button> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-radio-button [name]="baseForm.name + 'SaveReportMdz'" [groupName]="baseForm.name + 'SavingReportGroup'" [caption]="model.loc('SaveReportMdz')" [margin]="'3px 8px 3px 8px'" (action)="exportService.exportSettings.Format = 'Mdz'"> </sti-radio-button> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-radio-button [name]="baseForm.name + 'SaveReportMdx'" [groupName]="baseForm.name + 'SavingReportGroup'" [caption]="model.loc('SaveReportMdx')" [margin]="'3px 8px 0px 8px'" (action)="exportService.exportSettings.Format = 'Mdx'"> </sti-radio-button> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" [style.padding]="'0px 8px'" [style.minWidth.px]="150" [attr.title]="model.loc('PasswordSaveReportTooltip')"> {{model.loc('PasswordSaveReport')}} </td> <td> <sti-text-box [width]="140" [tooltip]="model.loc('PasswordSaveReportTooltip')" [margin]="'4px 8px 0px 8px'" [type]="getTextBoxType('SaveReportPassword')" [enabled]="exportService.exportSettings.Format == 'Mdx'" (onchange)="exportService.exportSettings.Password = $event.value"> </sti-text-box> </td> </tr> </tbody> </table> </sti-group-panel> </td> </tr> <tr *ngIf="exportFormSettings?.groups.pageRangeGroup.visible" class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-group-panel [caption]="model.loc('PagesRange')" [width]="390" [margin]="'4px'" [innerPadding]="'4px 0 4px 0'" [opened]="exportFormSettings.groups.pageRangeGroup.opened" (action)="exportFormSettings.groups.pageRangeGroup.opened=$event"> <table class="stiJsViewerClearAllStyles" cellpadding="0" cellspacing="0" [style.width]="'100%'"> <tbody> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-radio-button #pagesRangeAll [name]="baseForm.name + 'PagesRangeAll'" [groupName]="baseForm.name + 'PageRangeGroup'" [caption]="model.loc('PagesRangeAll')" [tooltip]="model.loc('PagesRangeAllTooltip')" [margin]="'6px 8px 6px 8px'" [checked]="!exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled" [enabled]="!exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled" (action)="exportService.exportSettings.PageRange = 'All'"> </sti-radio-button> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-radio-button #pageRangeCurrentPage [name]="baseForm.name + 'PageRangeCurrentPage'" [groupName]="baseForm.name + 'PageRangeGroup'" [caption]="model.loc('PagesRangeCurrentPage')" [tooltip]="model.loc('PagesRangeCurrentPageTooltip')" [margin]="'0px 8px 4px 8px'" [checked]="exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled" (action)="exportService.exportSettings.PageRange = (model.reportParams.pageNumber + 1).toString()"> </sti-radio-button> </td> </tr> <tr class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-radio-button [name]="baseForm.name + 'PageRangePages'" [groupName]="baseForm.name + 'PageRangeGroup'" [caption]="model.loc('PagesRangePages')" [tooltip]="model.loc('PagesRangePagesTooltip')" [margin]="'0px 8px 0px 8px'" [paddingLeftLastCell]="'60px'" (action)="exportService.exportSettings.PageRange = pagesRange.element.nativeElement.value"> <sti-text-box #pagesRange [width]="130" [tooltip]="model.loc('PagesRangePagesTooltip')" [margin]="'0px 0px 0px 30px'" (onchange)="exportService.exportSettings.PageRange = $event.value" (onblur)="exportService.exportSettings.PageRange = $event.value"> </sti-text-box> </sti-radio-button> </td> </tr> </tbody> </table> </sti-group-panel> </td> </tr> <tr *ngIf="exportFormSettings?.groups.settingsGroup.visible"class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-group-panel [caption]="model.loc('SettingsGroup')" [opened]="exportFormSettings.groups.settingsGroup.opened" [width]="390" [margin]="'4px'" [innerPadding]="'4px 0 4px 0'" (action)="exportFormSettings.groups.settingsGroup.opened=$event"> <table class="stiJsViewerClearAllStyles" cellpadding="0" cellspacing="0" [style.width]="'100%'"> <tbody> <tr *ngFor="let comp of exportFormSettings.components"> <td *ngIf="comp.label != null" [style.padding]="'0px 8px'" [style.minWidth.px]="150" [attr.title]="comp.tooltip"> {{comp.label}} </td> <td *ngIf="comp.name == 'UseDigitalSignature'"> <sti-check-box [tooltip]="comp.tooltip" [margin]="comp.margin" [captionText]="comp.caption" [isChecked]="getValue(comp)" (action)="componentAction(comp, $event)"> </sti-check-box> </td> <td [attr.colSpan]="comp.label != null || comp.name == 'DocumentSecurityButton' || comp.name == 'UseDigitalSignature' ? 1 : 2"> <sti-drop-down-list-for-export-form *ngIf="comp.type == 'DropDownListForExportForm'" [width]="comp.width" [items]="comp.items" [key]="getValue(comp, 'dropDownList')" [margin]="comp.margin" [verticalAlign]="comp.name == 'ImageQuality' || comp.name == 'ImageResolution' ? 'middle' : null" [styleDisplay]="comp.name == 'ImageQuality' || comp.name == 'ImageResolution' ? 'inline-block' : null" [enabled]="!disabledComponents[comp.name]" (action)="componentAction(comp, $event.key)"> </sti-drop-down-list-for-export-form> <div *ngIf="comp.name == 'ImageQuality' || comp.name == 'ImageResolution'" [style.display]="'inline-block'"> {{comp.name == 'ImageQuality' ? '%' : 'dpi'}} </div> <sti-text-box *ngIf="comp.type == 'TextBox'" [width]="comp.width" [tooltip]="comp.tooltip" [margin]="comp.margin" [type]="getTextBoxType(comp.name)" [enabled]="!comp.disabled" [value]="getValue(comp)" [enabled]="!disabledComponents[comp.name]" (onchange)="componentAction(comp, $event.value)"> </sti-text-box> <sti-check-box *ngIf="comp.type == 'CheckBox' || comp.type == 'DigitalSignature'" [tooltip]="comp.tooltip" [margin]="comp.margin" [captionText]="comp.caption" [isChecked]="getValue(comp)" [isEnabled]="!disabledComponents[comp.name]" (action)="componentAction(comp, $event)"> </sti-check-box> </td> <td *ngIf="comp.name == 'DocumentSecurityButton'"> <sti-button #button [width]="comp.width" [arrow]="'Down'" [minWidth]="'163px'" [captionAlign]="'center'" [display]="'inline-block'" [styleName]="'stiJsViewerFormButton'" [margin]="'2px 8px'" [innerTableWidth]="'100%'" [captionWidth]="'100%'" [caption]="comp.name == 'DocumentSecurityButton' ? comp.caption : ''" [enabled]="!disabledComponents[comp.name + 'Button']" (action)="showMenu(comp, button)"> </sti-button> </td> </tr> </tbody> </table> </sti-group-panel> </td> </tr> <tr *ngIf="model.options.exports.showOpenAfterExport && exportFormSettings?.openAfterExport && !exportService.sendMail" class="stiJsViewerClearAllStyles"> <td class="stiJsViewerClearAllStyles" colspan="2"> <sti-check-box [captionText]="model.loc('OpenAfterExport')" [tooltip]="model.loc('OpenAfterExportTooltip')" [margin]="'4px 8px 4px 8px'" [isChecked]="exportService.exportSettings.OpenAfterExport" (action)="exportService.exportSettings.OpenAfterExport = $event"> </sti-check-box> </td> </tr> </tbody> </table> </sti-base-form> ` }] }], ctorParameters: () => [{ type: i1.ModelService }, { type: i2.ExportService }, { type: i3.HelperService }, { type: i4.FormService }, { type: i5.MenuService }, { type: i6.CollectionsService }, { type: i7.ControllerService }], propDecorators: { baseForm: [{ type: ViewChild, args: ['baseForm'] }], saveReportMdc: [{ type: ViewChild, args: ['saveReportMdc'] }], pagesRangeAll: [{ type: ViewChild, args: ['pagesRangeAll'] }], pageRangeCurrentPage: [{ type: ViewChild, args: ['pageRangeCurrentPage'] }], exportFormSettings: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RpbXVsc29mdC12aWV3ZXItYW5ndWxhci9zcmMvbGliL2Zvcm1zL2V4cG9ydC1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb1EvRSxNQUFNLE9BQU8sbUJBQW1CO0lBb0I5QixZQUFtQixLQUFtQixFQUFTLGFBQTRCLEVBQVMsTUFBcUIsRUFBUyxXQUF3QixFQUNqSSxXQUF3QixFQUFTLFdBQStCLEVBQVMsVUFBNkI7UUFENUYsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ2pJLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFuQnZHLG1CQUFjLEdBQUc7WUFDdkIsa0JBQWtCLEVBQUUsYUFBYTtZQUNqQyxxQkFBcUIsRUFBRSxVQUFVO1lBQ2pDLGFBQWEsRUFBRSxZQUFZO1lBQzNCLGVBQWUsRUFBRSxVQUFVO1lBQzNCLGVBQWUsRUFBRSxVQUFVO1NBQzVCLENBQUM7UUFTRixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQix1QkFBa0IsR0FBUSxFQUFFLENBQUM7SUFHc0YsQ0FBQztJQUVwSCxXQUFXLENBQUMsT0FBOEM7UUFDeEQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxLQUFLLENBQUM7SUFFZCxNQUFNO1FBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLG1DQUFtQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUM3SixDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTNKLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsc0JBQXNCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEtBQUssTUFBTSxDQUFDO1FBRXZLLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEtBQUssVUFBVSxDQUFDO1FBQ2pILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxjQUFjLElBQUksVUFBVSxDQUFDO1FBRW5ILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUM7UUFFckcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUM7UUFFdkcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRTFKLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQztRQUU5RyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN4RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxDQUFDO1lBQ3pHLElBQUksV0FBVyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN4QixXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ2xILENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEtBQUssWUFBWSxDQUFDO1FBRXZHLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUFDLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNoRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3RHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDL0UsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1FBQzlFLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQXFCLEVBQUUsS0FBVztRQUNoRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRTNELFFBQVEsUUFBUSxFQUFFLENBQUM7WUFDakIsS0FBSyxlQUFlLENBQUM7WUFDckIsS0FBSyxZQUFZO2dCQUNmLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO2dCQUM3RCxDQUFDO2dCQUNELE1BQU07WUFFUixLQUFLLGtCQUFrQjtnQkFDckIsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDVixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO29CQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2dCQUN2RCxDQUFDO2dCQUNELE1BQU07WUFFUixLQUFLLFdBQVc7Z0JBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDakQsTUFBTTtZQUVSLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssVUFBVTtnQkFDYixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU07WUFFUixLQUFLLFdBQVc7Z0JBQ2QsTUFBTSxZQUFZLEdBQUcsS0FBSyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDOUMsTUFBTTtZQUVSLEtBQUsscUJBQXFCO2dCQUN4QixJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUN6QyxRQUFRLEdBQUcsdUJBQXVCLENBQUM7Z0JBQ3JDLENBQUM7Z0JBQ0QsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ3JGLEtBQUssR0FBRyxLQUFLLENBQUM7b0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLHdCQUF3QixDQUFDLENBQUM7Z0JBQ2pFLENBQUM7Z0JBQ0QsTUFBTTtZQUVSLEtBQUssMEJBQTBCO2dCQUM3QixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO2dCQUNwRSxDQUFDO2dCQUNELE1BQU07UUFDVixDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBRXBELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBcUIsRUFBRSxTQUFrQjtRQUNoRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzdELFFBQVEsUUFBUSxFQUFFLENBQUM7WUFDakIsS0FBSyxPQUFPO2dCQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFaEUsS0FBSyxxQkFBcUI7Z0JBQ3hCLElBQUksU0FBUyxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUNoQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ3BFLENBQUM7WUFDSDtnQkFDRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssS0FBSyxTQUFTLENBQUM7UUFFdkMsSUFBSSxLQUFLLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztZQUM3RSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxnREFBZ0QsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNyRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE1BQU07Z0JBQzFFLGNBQWMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNO2dCQUNwRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTTthQUNuRSxDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFDRCxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFxQixFQUFFLE1BQXVCO1FBQ3JELElBQUksUUFBUSxHQUFHLHNCQUFzQixDQUFDO1FBQ3RDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyx3QkFBd0IsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO2dCQUN2QixJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07Z0JBQ2hFLGFBQWEsRUFBRSw2QkFBNkIsRUFBRSxhQUFhLEVBQUUseUJBQXlCO2dCQUN0RixLQUFLLEVBQUUsRUFBRTthQUNWLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUM7WUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZCLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQywrQkFBK0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtnQkFDcEgsYUFBYSxFQUFFLDZCQUE2QixFQUFFLGFBQWEsRUFBRSx5QkFBeUI7Z0JBQ3RGLEtBQUssRUFBRSxFQUFFO2FBQ1YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBWTtRQUN6QixJQUFJLElBQUksS0FBSyxvQkFBb0IsSUFBSSxJQUFJLEtBQUssbUJBQW1CLElBQUksSUFBSSxLQUFLLG9CQUFvQixFQUFFLENBQUM7WUFDbkcsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQWxNVSxtQkFBbUI7bUdBQW5CLG1CQUFtQix5aEJBclBwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrUFQ7OzRGQUdVLG1CQUFtQjtrQkF2UC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O