{"version":3,"file":"stimulsoft-viewer-angular.mjs","sources":["../../../projects/stimulsoft-viewer-angular/src/lib/services/objects.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/model.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/animation.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/helper.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/file.saver.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/http-client.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/styles.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/page.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/mouse.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/menu.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/forms/form.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/full-screen.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/controller.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/collections.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/export.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/mail.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/find.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/api.angular.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/dashboard-proxy.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/api.dashboard.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/api.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/print.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/dashboard.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/tooltip.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/md5.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/drill-down.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/interactions.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/radio-button.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/editable-fields.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/services/toolbar.service.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/button.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/toolbar-separator.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/checkbox.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/parameters/parameter-checkbox.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/text-box.componet.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/page-control.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/toolbar-dop.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/toolbar.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/page.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/report-panel.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/meni-item.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/parameters/parameter-text-box.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/parameters/parameter-button.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/parameter-menu-item.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/parameter-menu-separator.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/parameter-menu-edit-list.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/text-block.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/parameters/parameter-find.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/parameter-menu-not-edit-list.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/parameter-menu-for-value.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/parameter-menu-for-range.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/drop-down-list.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/date-picker-day-button.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/date-picker-menu.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/vertical-menu-item.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/vertical-menu.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/double-date-picker-menu.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/drop-down-list-for-export-form.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/document-security-menu.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/digital-signature-menu.component copy.ts","../../../projects/stimulsoft-viewer-angular/src/lib/menu/menu.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/tooltip.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/find-panel.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/bookmarks-panel.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/form-button.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/parameters/parameter.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/interactions-panel.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/forms/base-form.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/forms/group-panel.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/radio-button.components.ts","../../../projects/stimulsoft-viewer-angular/src/lib/forms/export-form.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/text-area.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/forms/send-email-form.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/drill-down-panel.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/open-dialog.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/forms/password-form.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/forms/error-message-form.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/resources-panel.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/progress.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/navigate-panel.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/about-panel.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/center-text.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/forms/notification-form.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/controls/dashboard-panel-button.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/components/dashboards-panel.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/stimulsoft-viewer-angular.component.ts","../../../projects/stimulsoft-viewer-angular/src/lib/stimulsoft-viewer-angular.module.ts","../../../projects/stimulsoft-viewer-angular/src/public-api.ts","../../../projects/stimulsoft-viewer-angular/src/stimulsoft-viewer-angular.ts"],"sourcesContent":["import { MenuItem } from '../menu/meni-item.component';\r\nimport { ElementRef, Injectable, Optional } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { PageService } from './page.service';\r\n\r\nexport class ComponentDescription {\r\n  constructor(public type: string, public caption?: string, public img?: string, public action?: string,\r\n    public tooltip?: boolean, public arrow?: string, public menuItems?: MenuItem[], public margin?: string, public selected?: boolean) {\r\n    this.selected = false;\r\n  }\r\n}\r\n\r\n\r\nexport class ViewerEvent {\r\n  constructor(public name: string, public value?: any, public bookmarkPage?: number, public bookmarkAnchor?: string, public componentGuid?: string) { }\r\n}\r\n\r\nexport class ControlClass {\r\n  public toolbar: ControlProps = new ControlProps();\r\n  public reportPanel: ControlProps = new ControlProps();\r\n  public drillDownPanel: ControlProps = new ControlProps();\r\n  public findPanel: ControlProps = new ControlProps();\r\n  public resourcesPanel: ControlProps = new ControlProps();\r\n  public bookmarksPanel: ControlProps = new ControlProps();\r\n  public navigatePanel: ControlProps = new ControlProps();\r\n  public parametersPanel: ControlProps = new ControlProps();\r\n  public dashboardsPanel: ControlProps = new ControlProps();\r\n  public viewer: ControlProps = new ControlProps();\r\n  public tooltip: ControlProps = new ControlProps();\r\n  public aboutPanel: ControlProps = new ControlProps();\r\n\r\n  public bookmarksLabel: any;\r\n\r\n  constructor() { }\r\n\r\n  public get head(): HTMLHeadElement {\r\n    return document.getElementsByTagName('head')[0];\r\n  }\r\n}\r\n\r\nexport class ControlProps {\r\n  private _visible = false;\r\n  private subject = new Subject<any>();\r\n\r\n  public enabled = true;\r\n\r\n  public layout: Rectangle = new Rectangle();\r\n  constructor(public pageService?: PageService, public el?: ElementRef) { }\r\n\r\n  public get offsetHeight(): number {\r\n    return this.el?.nativeElement.offsetHeight || 0;\r\n  }\r\n\r\n  public get offsetWidth(): number {\r\n    return this.el?.nativeElement.offsetWidth || 0;\r\n  }\r\n\r\n  public set visible(value: boolean) {\r\n    this._visible = value;\r\n    this.subject.next(value);\r\n    this.pageService?.calculateLayout();\r\n  }\r\n\r\n  public get visible(): boolean {\r\n    return this._visible;\r\n  }\r\n\r\n  public getVisibility(): Observable<any> {\r\n    return this.subject.asObservable();\r\n  }\r\n\r\n  public get exists(): boolean {\r\n    return this.el != null;\r\n  }\r\n}\r\n\r\nexport class Rectangle {\r\n\r\n  private _top: number = 0;\r\n\r\n  public set top(value: number) {\r\n    this._top = value;\r\n  }\r\n\r\n  public get top(): number {\r\n    return this._top;\r\n  }\r\n\r\n  constructor(public width: number = 0, public height: number = 0, public left: number = 0,\r\n    public bottom: number = 0, public right: number = 0) { }\r\n}\r\n\r\nexport class BookmarkNode {\r\n\r\n  constructor(public name?: string, public url?: string, public page?: number, public compunentGuid?: string, public nodes?: BookmarkNode[],\r\n    public open?: boolean, public selected?: boolean) { }\r\n\r\n}\r\n\r\nexport class InteractionParams {\r\n\r\n  constructor(public action?: string, public drillDownParameters?: any, public drillDownGuid?: string, public dashboardDrillDownGuid?: string,\r\n    public variables?: any, public sortingParameters?: any, public collapsingParameters?: any, public isBindingVariable?: true) { }\r\n}\r\n\r\nexport class InteractionObject {\r\n  constructor(public paramsVariables: any[], public countColumns: any[], public countInColumn: any[]) { }\r\n}\r\n\r\nexport class Variable {\r\n  constructor(public name?: string, public alias?: string, public description?: string, public basicType?: string, public type?: string,\r\n    public allowUserValues?: boolean, public dateTimeType?: string, public items?: Variable[], public key?: any, public value?: any,\r\n    public keyTo?: any, public isChecked: boolean = true, public focusOnCreate?: boolean, public visible: boolean = true, public binding?: boolean,\r\n    public isNull?: boolean, public isFirstInitialization?: boolean, public checkedStates?: boolean[], public isChanged?: boolean,\r\n    public allowNullableString?: boolean) { }\r\n}\r\n\r\nexport class DateTimeObject {\r\n  constructor(public year?: number, public month?: number, public day?: number, public hours?: number, public minutes?: number, public seconds?: number) { }\r\n}\r\n\r\nexport class Item {\r\n  constructor(public name?: string, public caption?: string, public imageName?: string, public key?: any, public haveSubMenu?: boolean, public imageSizes?: any,\r\n    public selected?: boolean, public type?: string) { }\r\n}\r\n\r\nexport class Message {\r\n  constructor(public action: string, public data?: any, public subAction?: string) { }\r\n}\r\n\r\nexport class Form {\r\n  constructor(public name: string, public left: number, public top: number, public isMooving = false, public level?: number,\r\n    public formData?: any) { }\r\n}\r\n\r\nexport class ExportFormSettings {\r\n  constructor(public components: ExportComponent[], public cSettings?: any, public openAfterExport?: boolean, public groups?: any,\r\n    public update?: boolean) { }\r\n}\r\n\r\nexport class ExportGroup {\r\n  constructor(public opened: boolean) { }\r\n}\r\n\r\nexport class ExportComponent {\r\n  constructor(public name: string, public type: string, public margin: string, public label?: string, public tooltip?: string,\r\n    public caption?: string, public checked?: boolean, public width?: number, public disabled?: boolean, public items?: Item[],\r\n    public key?: any) { }\r\n}\r\n\r\n\r\nexport class DrillDown {\r\n  constructor(public caption: string, public selected: boolean = false, public reportParams: any,\r\n    public visible: boolean) { }\r\n}\r\n\r\nexport class ErrorMessage {\r\n  constructor(public error: string, public type: any) { }\r\n}\r\n\r\nexport class Resource {\r\n  constructor(public name: string, public type: string, public alias: string, public id?: string) { }\r\n}\r\n\r\nexport class NotificationFormOptions {\r\n  constructor(public image?: string, public message?: string, public description?: string, public buttonCaption?: string,\r\n    public cancelAction?: any, public action?: any) { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ControlClass, DrillDown, ErrorMessage, InteractionObject, BookmarkNode, Form, NotificationFormOptions } from './objects';\r\n\r\n@Injectable()\r\nexport class ModelService {\r\n  private _options: any;\r\n  private _reportParams: any = {};\r\n  private _imagesForBookmark: any;\r\n\r\n  public requestUrl: string;\r\n  public action: string;\r\n  public properties: any;\r\n  public showDashboard = false;\r\n  public proxyData: any;\r\n\r\n  public localization: any;\r\n  public controls: ControlClass = new ControlClass();\r\n  public pages: any[] = [];\r\n  public months: string[] = [];\r\n  public dayOfWeek: string[] = [];\r\n  public dateRanges: string[] = [];\r\n  public encodingData: any[] = [];\r\n  public pdfSecurityCertificates: any[] = [];\r\n  public paperSizes: string[] = [];\r\n  public viewerSize: any;\r\n  public drillDownButtons: DrillDown[] = [];\r\n  public openDialogFileMask: string;\r\n  public images: any;\r\n  public errorMessage: ErrorMessage;\r\n  public httpError: any;\r\n  public interactions: InteractionObject;\r\n  public nodes: BookmarkNode[];\r\n  public navigateNode: BookmarkNode;\r\n  public fullScreenOptions: any;\r\n  public showProgress = false;\r\n  public timerAutoUpdateCache: any;\r\n  public refreshReportTimer: any;\r\n  public toolbarHideTimer: any;\r\n  public form: Form;\r\n  public notificationFormOptions: NotificationFormOptions;\r\n  public postParametersFunction: any;\r\n  public dashboards: string;\r\n\r\n\r\n  constructor() { }\r\n\r\n  public get reportParams() {\r\n    return this._reportParams;\r\n  }\r\n\r\n  public set reportParams(parameters: any) {\r\n    this._reportParams.pagesArray = parameters.pagesArray;\r\n\r\n    // Apply new report parameters, if not update current page\r\n    if (parameters.action && parameters.action !== 'GetPages') {\r\n      this.reportParams.type = parameters.reportType;\r\n      this.reportParams.drillDownGuid = parameters.drillDownGuid;\r\n      this.reportParams.dashboardDrillDownGuid = parameters.dashboardDrillDownGuid;\r\n      this.reportParams.pagesCount = parameters.pagesCount;\r\n      if (parameters.pageNumber != null) { this.reportParams.pageNumber = parameters.pageNumber; }\r\n      this.reportParams.zoom = parameters.zoom;\r\n      this.reportParams.viewMode = parameters.viewMode;\r\n      this.reportParams.reportFileName = parameters.reportFileName;\r\n      this.reportParams.collapsingStates = parameters.collapsingStates;\r\n      if (parameters.bookmarksContent) { this.reportParams.bookmarksContent = parameters.bookmarksContent; }\r\n      if (parameters.resources) { this.reportParams.resources = parameters.resources; }\r\n      this.reportParams.isCompilationMode = parameters.isCompilationMode;\r\n      if (parameters.variablesValues) { this.reportParams.variablesValues = parameters.variablesValues; }\r\n      if (parameters.parametersDateFormat) { this.options.appearance.parametersPanelDateFormat = parameters.parametersDateFormat; }\r\n      if (parameters.tableOfContentsPointers) this.reportParams.tableOfContentsPointers = parameters.tableOfContentsPointers;\r\n      this.reportParams.isEditableReport = parameters.isEditableReport;\r\n      if (parameters.userValues) { this.options.userValues = parameters.userValues; }\r\n      this.reportParams.dashboards = parameters.dashboards;\r\n      this.reportParams.previewSettings = parameters.previewSettings;\r\n    }\r\n  }\r\n\r\n  public setReportParams(parameters: any) {\r\n    this._reportParams = parameters;\r\n  }\r\n\r\n  public getReportParams() {\r\n    return this.copyObject(this._reportParams);\r\n  }\r\n\r\n  public copyObject(o: any): any {\r\n    if (!o || 'object' !== typeof o) {\r\n      return o;\r\n    }\r\n    const c = 'function' === typeof o.pop ? [] : {};\r\n    let p;\r\n    let v;\r\n    for (p in o) {\r\n      if (o.hasOwnProperty(p) && p !== 'pagesArray') {\r\n        v = o[p];\r\n        if (v && 'object' === typeof v) {\r\n          c[p] = this.copyObject(v);\r\n        } else {\r\n          c[p] = v;\r\n        }\r\n      }\r\n    }\r\n    return c;\r\n  }\r\n\r\n  public set options(data: any) {\r\n    this._options = this.toLower(data.options);\r\n    if (data.jsOptions) {\r\n      for (const key in data.jsOptions) {\r\n        if (data.jsOptions.hasOwnProperty(key)) {\r\n          this._options[key] = data.jsOptions[key];\r\n        }\r\n      }\r\n    }\r\n\r\n    if (data.defaultSettings?.StiExcelExportSettings?.ExcelType != null) {\r\n      let excelType = data.defaultSettings.StiExcelExportSettings.ExcelType;\r\n      if (excelType == 'Excel2007') {\r\n        excelType = 'Excel';\r\n      } else if (excelType == 'ExcelBinary') {\r\n        excelType = 'ExcelBiff';\r\n      }\r\n      data.defaultSettings.StiExcelExportSettings.ExcelType = excelType;\r\n    }\r\n\r\n    this._options.exports.defaultSettings = data.defaultSettings;\r\n    this.localization = data.loc;\r\n    this.months = data.months;\r\n    this.dayOfWeek = data.dayOfWeek;\r\n    this.images = data.images;\r\n    this.dateRanges = data.dateRanges;\r\n    this.paperSizes = data.paperSizes;\r\n    this.encodingData = data.encodingData;\r\n    this.pdfSecurityCertificates = data.pdfSecurityCertificates;\r\n    this.clearViewerState();\r\n    this.setupOptions();\r\n  }\r\n\r\n  public get options() {\r\n    return this._options;\r\n  }\r\n\r\n  public loc(attr: string): string {\r\n    return this.localization[attr] ?? attr;\r\n  }\r\n\r\n  public img(name: string): string {\r\n    if (name != null && name.length > 0 && !this.images[name]) {\r\n      //console.warn(`Image: ${name} not found`);\r\n    }\r\n    return this.images[name] ?? '';\r\n  }\r\n\r\n  private toLower(obj: any): any {\r\n    const result = {};\r\n    Object.keys(obj).forEach(key => {\r\n      result[key.substr(0, 1).toLowerCase() + key.substr(1)] = (typeof (obj[key]) === 'object' && obj[key] !== null) ? this.toLower(obj[key]) : obj[key];\r\n    });\r\n    return result;\r\n  }\r\n\r\n  public clear() {\r\n    this._options = undefined;\r\n    this._reportParams = {};\r\n    this._imagesForBookmark = undefined;\r\n    this.pages = [];\r\n    this.form = null;\r\n  }\r\n\r\n  public clearViewerState() {\r\n    this.reportParams = {};\r\n    this.reportParams.type = 'Auto';\r\n    this.reportParams.pageNumber = 0;\r\n    this.reportParams.originalPageNumber = 0;\r\n    this.reportParams.drillDownGuid = null;\r\n    this.reportParams.dashboardDrillDownGuid = null;\r\n    this.reportParams.collapsingStates = null;\r\n    this.reportParams.bookmarksContent = null;\r\n    this.reportParams.editableParameters = null;\r\n    this.reportParams.resources = null;\r\n    this.reportParams.drillDownParameters = [];\r\n    this.reportParams.elementName = null;\r\n    this.reportParams.variablesValues = null;\r\n    this.reportParams.tableOfContentsPointers = [];\r\n    this.reportParams.isEditableReport = false;\r\n\r\n    //this.options.viewerId = this.newToken();\r\n    this.options.clientGuid = this.newToken();\r\n    this.options.paramsVariables = null;\r\n    this.options.multiFilterStates = null;\r\n    this.options.isParametersReceived = false;\r\n    this.options.drillDownInProgress = false;\r\n    this.options.displayModeFromReport = null;\r\n    this.options.currentParameterWidth = null;\r\n    this.options.currentParameterAlignment = \"Left\";\r\n    // this.controls.mainPanel.style.background = '';\r\n    // this.tableElementGridStates = {};\r\n\r\n    // Restore current page number, if reload current report\r\n    if (this.reportParams.prevPageNumber) {\r\n      this.reportParams.pageNumber = this.reportParams.prevPageNumber;\r\n      delete this.reportParams.prevPageNumber;\r\n    }\r\n\r\n    this.fullScreenOptions = null;\r\n    this.drillDownButtons = [];\r\n    this.controls.parametersPanel.visible = false;\r\n    this.controls.bookmarksPanel.visible = false;\r\n    this.interactions = null;\r\n    /*\r\n    this.controls.drillDownPanel.visible = false;\r\n    this.controls.findPanel.visible = false;\r\n    this.controls.parametersPanel.visible = false;\r\n    this.controls.resourcesPanel.visible = false;*/\r\n  }\r\n\r\n  public style(value: string): string {\r\n    return value !== '' && value != null ? value : '';\r\n  }\r\n\r\n  public createPostParameters(data?: any, asObject: boolean = true, useOptions: boolean = true): any {\r\n    let params: any;\r\n\r\n    // Object params\r\n    const postParams = {\r\n      stiweb_component: 'Viewer',\r\n      stiweb_imagesScalingFactor: this.getImagesScalingFactor()\r\n    };\r\n\r\n    if (this.properties) {\r\n      postParams['properties'] = this.encode(JSON.stringify(this.properties));\r\n    }\r\n\r\n    if (this.options && useOptions) {\r\n      params = {\r\n        viewerId: this.options.viewerId,\r\n        routes: this.options.routes,\r\n        formValues: this.options.formValues,\r\n        clientGuid: this.options.clientGuid,\r\n        drillDownGuid: this.reportParams.drillDownGuid,\r\n        dashboardDrillDownGuid: this.reportParams.dashboardDrillDownGuid,\r\n        cacheMode: this.options.server.cacheMode,\r\n        cacheTimeout: this.options.server.cacheTimeout,\r\n        cacheItemPriority: this.options.server.cacheItemPriority,\r\n        pageNumber: this.reportParams.pageNumber,\r\n        originalPageNumber: this.reportParams.originalPageNumber,\r\n        reportType: this.reportParams.type,\r\n        zoom: (this.reportParams.zoom && this.reportParams.zoom > 0) ? this.reportParams.zoom : (this.options?.toolbar?.zoom > 0 ? this.options?.toolbar?.zoom : 100),\r\n        viewMode: this.reportParams.viewMode || this.options.toolbar.viewMode,\r\n        multiPageWidthCount: this.reportParams.multiPageWidthCount,\r\n        multiPageHeightCount: this.reportParams.multiPageHeightCount,\r\n        multiPageContainerWidth: this.reportParams.multiPageContainerWidth,\r\n        multiPageContainerHeight: this.reportParams.multiPageContainerHeight,\r\n        multiPageMargins: this.reportParams.multiPageMargins,\r\n        showBookmarks: this.options.toolbar.showBookmarksButton,\r\n        openLinksWindow: this.options.appearance.openLinksWindow,\r\n        chartRenderType: this.options.appearance.chartRenderType,\r\n        reportDisplayMode: (this.options.displayModeFromReport || this.options.appearance.reportDisplayMode),\r\n        drillDownParameters: this.reportParams.drillDownParameters,\r\n        editableParameters: this.reportParams.editableParameters,\r\n        useRelativeUrls: this.options.server.useRelativeUrls,\r\n        passQueryParametersForResources: this.options.server.passQueryParametersForResources,\r\n        passQueryParametersToReport: this.options.server.passQueryParametersToReport,\r\n        version: this.options.shortProductVersion,\r\n        reportDesignerMode: this.options.reportDesignerMode,\r\n        imagesQuality: this.options.appearance.imagesQuality,\r\n        parametersPanelSortDataItems: this.options.appearance.parametersPanelSortDataItems,\r\n        combineReportPages: this.options.appearance.combineReportPages,\r\n        isAngular: true,\r\n        CSPNonce: this.options.cSPNonce,\r\n        allowAutoUpdateCookies: this.options.server.allowAutoUpdateCookies\r\n      };\r\n\r\n      if (this.options.server.useLocalizedCache && this.options.localization) {\r\n        params['useLocalizedCache'] = true;\r\n        params['localization'] = this.options.localization;\r\n      }\r\n\r\n      if (this.options.userValues) {\r\n        params['userValues'] = this.options.userValues;\r\n      }\r\n\r\n    } else {\r\n      params = {};\r\n    }\r\n\r\n    if (data) {\r\n      Object.keys(data).forEach(key => params[key] = data[key]);\r\n    }\r\n\r\n    // Object params\r\n    if (params.action) {\r\n      postParams['stiweb_action'] = params.action;\r\n      delete params.action;\r\n    }\r\n\r\n    if (data?.viewerRequestUrl) {\r\n      postParams['stiweb_viewerRequestUrl'] = data.viewerRequestUrl;\r\n    }\r\n\r\n    if (params.base64Data) {\r\n      postParams['stiweb_data'] = params.base64Data;\r\n      delete params.base64Data;\r\n    }\r\n\r\n    if (this.options && useOptions) {\r\n      // Params\r\n      const jsonParams = JSON.stringify(params);\r\n      if (this.options.server.useCompression) {\r\n        // postParams['stiweb_packed_parameters'] = StiGZipHelper.pack(jsonParams);\r\n        postParams['stiweb_parameters'] = this.encode(jsonParams);\r\n      } else {\r\n        postParams['stiweb_parameters'] = this.encode(jsonParams);\r\n      }\r\n    }\r\n\r\n    if (this.postParametersFunction) {\r\n      let postParamsF = this.postParametersFunction(data);\r\n      if (postParamsF) {\r\n        Object.keys(postParamsF).forEach(key => postParams[key] = postParamsF[key]);\r\n      }\r\n    }\r\n\r\n    if (asObject) { return postParams; }\r\n  }\r\n\r\n  private newToken(): string {\r\n    const a = '1234567890abcdefghijklmnopqrstuvwxyz'.split('');\r\n    const b = [];\r\n    const length = 32;\r\n    b[0] = \"s\";\r\n    for (let i = 1; i < length; i++) {\r\n      const j = (Math.random() * (a.length - 1)).toFixed(0);\r\n      b[i] = a[j];\r\n    }\r\n    return b.join('');\r\n  }\r\n\r\n  private setupOptions() {\r\n    if (!this.options.exports.showExportToPowerPoint && !this.options.exports.showExportToPdf && !this.options.exports.showExportToXps &&\r\n      !this.options.exports.showExportToOpenDocumentWriter && !this.options.exports.showExportToOpenDocumentCalc && !this.options.exports.showExportToText &&\r\n      !this.options.exports.showExportToRtf && !this.options.exports.showExportToWord && !this.options.exports.showExportToCsv && !this.options.exports.showExportToJson &&\r\n      !this.options.exports.showExportToDbf && !this.options.exports.showExportToXml && !this.options.exports.showExportToDif && !this.options.exports.showExportToSylk &&\r\n      !this.options.exports.showExportToExcelBiff && !this.options.exports.showExportToExcel && !this.options.exports.showExportToExcelXml && !this.options.exports.showExportToHtml &&\r\n      !this.options.exports.showExportToHtml5 && !this.options.exports.showExportToMht && !this.options.exports.showExportToImageBmp && !this.options.exports.showExportToImageGif &&\r\n      !this.options.exports.showExportToImageJpeg && !this.options.exports.showExportToImageMetafile && !this.options.exports.showExportToImagePcx &&\r\n      !this.options.exports.showExportToImagePng && !this.options.exports.showExportToImageTiff && !this.options.exports.showExportToImageSvg && !this.options.exports.showExportToImageSvgz) {\r\n      if (!this.options.exports.showExportToDocument) {\r\n        this.options.toolbar.showSaveButton = false;\r\n      }\r\n      this.options.toolbar.showSendEmailButton = false;\r\n    }\r\n    // Options\r\n    this.options.isTouchDevice = this.options.appearance.interfaceType === 'Auto'\r\n      ? this.isTouchDevice() && this.isMobileDevice()\r\n      : this.options.appearance.interfaceType === 'Touch';\r\n    this.options.isMobileDevice = this.options.appearance.interfaceType === 'Auto' && !this.options.reportDesignerMode\r\n      ? this.isTouchDevice() && this.isMobileDevice()\r\n      : this.options.appearance.interfaceType === 'Mobile';\r\n\r\n    if (this.options.isMobileDevice) {\r\n      this.initializeMobile();\r\n    } else {\r\n      this.options.toolbar.showPinToolbarButton = false;\r\n    }\r\n\r\n    this.options.menuAnimDuration = 150;\r\n    this.options.formAnimDuration = 200;\r\n    this.options.scrollDuration = 350;\r\n    this.options.menuHideDelay = 250;\r\n\r\n    this.options.server.timeoutAutoUpdateCache = 180000;\r\n    this.options.toolbar.backgroundColor = this.getHTMLColor(this.options.toolbar.backgroundColor);\r\n    this.options.toolbar.borderColor = this.getHTMLColor(this.options.toolbar.borderColor);\r\n    this.options.toolbar.fontColor = this.getHTMLColor(this.options.toolbar.fontColor);\r\n    this.options.appearance.pageBorderColor = this.getHTMLColor(this.options.appearance.pageBorderColor);\r\n    this.options.parametersValues = {};\r\n    this.options.parameterRowHeight = this.options.isTouchDevice ? 35 : 30;\r\n\r\n    // First Day Of Week\r\n    if (this.options.appearance.datePickerFirstDayOfWeek === 'Sunday') {\r\n      this.dayOfWeek.splice(6, 1);\r\n      this.dayOfWeek.splice(0, 0, 'Sunday');\r\n    }\r\n\r\n    if (this.options?.toolbar?.zoom === -1 || this.options?.toolbar?.zoom === -2) {\r\n      this.reportParams.autoZoom = this.options?.toolbar?.zoom;\r\n    }\r\n\r\n    // Actions\r\n    if (!this.options.actions.getReport) { this.options.actions.getReport = this.options.actions.viewerEvent; }\r\n    if (!this.options.actions.printReport) { this.options.actions.printReport = this.options.actions.viewerEvent; }\r\n    if (!this.options.actions.openReport) { this.options.actions.openReport = this.options.actions.viewerEvent; }\r\n    if (!this.options.actions.exportReport) { this.options.actions.exportReport = this.options.actions.viewerEvent; }\r\n    if (!this.options.actions.interaction) { this.options.actions.interaction = this.options.actions.viewerEvent; }\r\n\r\n    if (!(window.File && window.FileReader && window.FileList && window.Blob)) { this.options.toolbar.showOpenButton = false; }\r\n\r\n    // Render JsViewer styles into HEAD\r\n    if (this.options.requestResourcesUrl || this.options.appearance.customStylesUrl) {\r\n      const viewerStyles = document.createElement('link');\r\n      viewerStyles.setAttribute('type', 'text/css');\r\n      viewerStyles.setAttribute('rel', 'stylesheet');\r\n      viewerStyles.setAttribute('href', this.options.appearance.customStylesUrl || this.getResourceUrl('styles'));\r\n      this.controls.head.appendChild(viewerStyles);\r\n    }\r\n\r\n    this.options.viewerId = this.options.viewerId || this.newToken();\r\n  }\r\n\r\n  public pagesNavigationIsActive(): boolean {\r\n    return (this.options.appearance.fullScreenMode || this.options.appearance.scrollbarsMode) && this.reportParams.viewMode === 'Continuous';\r\n  }\r\n\r\n  get imagesForBookmark(): any {\r\n    if (!this._imagesForBookmark) {\r\n      const names = ['root', 'folder', 'folderOpen', 'node', 'empty', 'line', 'join', 'joinBottom', 'plus', 'plusBottom', 'minus', 'minusBottom'];\r\n      const imagesForBookmarks = {};\r\n      names.forEach(name => imagesForBookmarks[name] = this.images['Bookmarks' + name + '.png']);\r\n      this._imagesForBookmark = imagesForBookmarks;\r\n    }\r\n    return this._imagesForBookmark;\r\n  }\r\n\r\n  public isTouchDevice() {\r\n    return ('ontouchstart' in document.documentElement);\r\n  }\r\n\r\n  public isMobileDevice() {\r\n    return /iPhone|iPad|iPod|Macintosh|Android|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n  }\r\n\r\n  public initializeMobile() {\r\n    let isViewPortExist = false;\r\n    const metas: any = this.controls.head.getElementsByTagName('meta');\r\n    for (const meta of metas) {\r\n      if (meta.name && meta.name.toLowerCase() === 'viewport') {\r\n        isViewPortExist = true;\r\n        break;\r\n      }\r\n    }\r\n\r\n    if (!isViewPortExist) {\r\n      const viewPortTag = document.createElement('meta');\r\n      viewPortTag.id = 'viewport';\r\n      viewPortTag.name = 'viewport';\r\n      viewPortTag.content = 'initial-scale=1.0,width=device-width,user-scalable=0';\r\n      this.controls.head.appendChild(viewPortTag);\r\n    }\r\n\r\n    this.options.appearance.fullScreenMode = true;\r\n    this.options.appearance.scrollbarsMode = true;\r\n    this.options.appearance.currentParametersPanelPosition = 'Left';\r\n    this.options.appearance.parametersPanelPosition = 'Left';\r\n    this.options.appearance.parametersPanelColumnsCount = 1;\r\n    this.options.toolbar.displayMode = 'Separated';\r\n    this.options.toolbar.viewMode = 'SinglePage';\r\n    this.options.toolbar.showZoomButton = false;\r\n    const defaultZoom = this.options.toolbar.zoom === -2 ? -2 : -1; // PageWidth or PageHeight\r\n    this.options.toolbar.zoom = this.reportParams.zoom = defaultZoom;\r\n    this.options.toolbar.showButtonCaptions = false;\r\n    this.options.toolbar.showOpenButton = false;\r\n    this.options.toolbar.showFindButton = false;\r\n    this.options.toolbar.showEditorButton = false;\r\n    this.options.toolbar.showFullScreenButton = false;\r\n    this.options.toolbar.showAboutButton = false;\r\n    this.options.toolbar.showViewModeButton = false;\r\n  }\r\n\r\n  public getImagesScalingFactor() {\r\n    const wnd: any = window;\r\n    const devicePixelRatio = window.devicePixelRatio || (wnd.deviceXDPI && wnd.logicalXDPI ? wnd.deviceXDPI / wnd.logicalXDPI : 1);\r\n    if (!devicePixelRatio || devicePixelRatio <= 1) {\r\n      return '1';\r\n    } else {\r\n      return devicePixelRatio.toString();\r\n    }\r\n  }\r\n\r\n  public getHTMLColor(color: any) {\r\n    if (color.indexOf(',') > 0 && color.indexOf('rgb') < 0) {\r\n      return `rgb(${color})`;\r\n    }\r\n    return color;\r\n  }\r\n\r\n  public getResourceUrl(resourceParameter: string) {\r\n    let url = this.getActionRequestUrl(this.options.requestResourcesUrl, this.options.actions.viewerEvent);\r\n    url += url.indexOf('?') > 0 ? '&' : '?';\r\n    url += 'stiweb_component=Viewer&stiweb_action=Resource&stiweb_data=' + resourceParameter + '&stiweb_theme=' + this.options.theme;\r\n    url += '&stiweb_cachemode=' + (this.options.server.useCacheForResources\r\n      ? this.options.server.cacheMode === 'ObjectSession' || this.options.server.cacheMode === 'StringSession'\r\n        ? 'session'\r\n        : 'cache'\r\n      : 'none');\r\n    url += '&stiweb_version=' + this.options.shortProductVersion;\r\n\r\n    return url;\r\n  }\r\n\r\n  public getActionRequestUrl(requestUrl: string, action?: string) {\r\n    if (!action) {\r\n      return requestUrl;\r\n    }\r\n\r\n    if (action.indexOf('?') < 0) {\r\n      return requestUrl.replace('{action}', action);\r\n    }\r\n\r\n    const query = action.substring(action.indexOf('?') + 1);\r\n    action = action.substring(0, action.indexOf('?'));\r\n\r\n    return requestUrl.replace('{action}', action) + (requestUrl.indexOf('?') > 0 ? '&' : '?') + query;\r\n  }\r\n\r\n  _keyStr: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n\r\n  public encode(input) {\r\n\r\n    // Decode from UTF-8 text\r\n    if (typeof unescape != 'undefined') {\r\n      input = unescape(encodeURIComponent(input));\r\n    }\r\n    else {\r\n      input = input.replace(/\\r\\n/g, \"\\n\");\r\n      var utftext = \"\";\r\n      for (var n = 0; n < input.length; n++) {\r\n        var c = input.charCodeAt(n);\r\n\r\n        if (c < 128) {\r\n          utftext += String.fromCharCode(c);\r\n        }\r\n        else if ((c > 127) && (c < 2048)) {\r\n          utftext += String.fromCharCode((c >> 6) | 192);\r\n          utftext += String.fromCharCode((c & 63) | 128);\r\n        }\r\n        else {\r\n          utftext += String.fromCharCode((c >> 12) | 224);\r\n          utftext += String.fromCharCode(((c >> 6) & 63) | 128);\r\n          utftext += String.fromCharCode((c & 63) | 128);\r\n        }\r\n      }\r\n\r\n      input = utftext;\r\n    }\r\n\r\n    // Encode to Base64 string\r\n    if (typeof window.btoa != 'undefined') return window.btoa(input);\r\n\r\n    var output = \"\";\r\n    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\r\n    var i = 0;\r\n\r\n    while (i < input.length) {\r\n      chr1 = input.charCodeAt(i++);\r\n      chr2 = input.charCodeAt(i++);\r\n      chr3 = input.charCodeAt(i++);\r\n\r\n      enc1 = chr1 >> 2;\r\n      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\r\n      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\r\n      enc4 = chr3 & 63;\r\n\r\n      if (isNaN(chr2)) enc3 = enc4 = 64;\r\n      else if (isNaN(chr3)) enc4 = 64;\r\n\r\n      output = output +\r\n        this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +\r\n        this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);\r\n    }\r\n\r\n    return output;\r\n  }\r\n\r\n  public decode(input) {\r\n    var output = \"\";\r\n\r\n    // Decode from Base64 string\r\n    if (typeof window.atob != 'undefined') {\r\n      output = window.atob(input);\r\n    }\r\n    else {\r\n      var chr1, chr2, chr3;\r\n      var enc1, enc2, enc3, enc4;\r\n      var i = 0;\r\n\r\n      input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\r\n      while (i < input.length) {\r\n        enc1 = this._keyStr.indexOf(input.charAt(i++));\r\n        enc2 = this._keyStr.indexOf(input.charAt(i++));\r\n        enc3 = this._keyStr.indexOf(input.charAt(i++));\r\n        enc4 = this._keyStr.indexOf(input.charAt(i++));\r\n\r\n        chr1 = (enc1 << 2) | (enc2 >> 4);\r\n        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\r\n        chr3 = ((enc3 & 3) << 6) | enc4;\r\n\r\n        output = output + String.fromCharCode(chr1);\r\n\r\n        if (enc3 != 64) {\r\n          output = output + String.fromCharCode(chr2);\r\n        }\r\n        if (enc4 != 64) {\r\n          output = output + String.fromCharCode(chr3);\r\n        }\r\n      }\r\n    }\r\n\r\n    // Encode to UTF-8 string\r\n    if (typeof escape != 'undefined') return decodeURIComponent(escape(output));\r\n\r\n    var string = \"\";\r\n    var i = 0;\r\n    var c = 0;\r\n    var c1 = 0\r\n    var c2 = 0;\r\n    var c3 = 0;\r\n\r\n    while (i < output.length) {\r\n      c = output.charCodeAt(i);\r\n\r\n      if (c < 128) {\r\n        string += String.fromCharCode(c);\r\n        i++;\r\n      }\r\n      else if ((c > 191) && (c < 224)) {\r\n        c2 = output.charCodeAt(i + 1);\r\n        string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\r\n        i += 2;\r\n      }\r\n      else {\r\n        c2 = output.charCodeAt(i + 1);\r\n        c3 = output.charCodeAt(i + 2);\r\n        string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n        i += 3;\r\n      }\r\n    }\r\n\r\n    return string;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\n\r\n@Injectable()\r\nexport class AnimationService {\r\n  constructor(private model: ModelService) { }\r\n\r\n  public showAnimationForScroll(reportPanel, finishScrollTop, endTime, completeFunction) {\r\n    if (!reportPanel) {\r\n      return;\r\n    }\r\n    let currentScrollTop = 0;\r\n    if (this.model.options.appearance.scrollbarsMode) {\r\n      currentScrollTop = reportPanel.scrollTop;\r\n    } else {\r\n      currentScrollTop = document.documentElement.scrollTop;\r\n      if (currentScrollTop === 0) {\r\n        currentScrollTop = document.getElementsByTagName('BODY')[0].scrollTop;\r\n      }\r\n    }\r\n\r\n    clearTimeout(reportPanel.animationTimer);\r\n    const d = new Date();\r\n    const t = d.getTime();\r\n    let step = Math.round((finishScrollTop - currentScrollTop) / ((Math.abs(endTime - t) + 1) / 30));\r\n\r\n    // Last step\r\n    if (Math.abs(step) > Math.abs(finishScrollTop - currentScrollTop)) {\r\n      step = finishScrollTop - currentScrollTop;\r\n    }\r\n\r\n    currentScrollTop += step;\r\n    let resultScrollTop: number;\r\n\r\n    if (t < endTime) {\r\n      resultScrollTop = currentScrollTop;\r\n      reportPanel.animationTimer = setTimeout(() => {\r\n        this.showAnimationForScroll(reportPanel, finishScrollTop, endTime, completeFunction);\r\n      }, 30);\r\n    } else {\r\n      resultScrollTop = finishScrollTop;\r\n      if (completeFunction) {\r\n        completeFunction();\r\n      }\r\n    }\r\n\r\n    if (this.model.options.appearance.scrollbarsMode) {\r\n      reportPanel.scrollTop = resultScrollTop;\r\n    } else {\r\n      window.scrollTo(0, resultScrollTop);\r\n    }\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { AnimationService } from './animation.service';\r\nimport { DateTimeObject } from './objects';\r\nimport { MenuItem } from '../menu/meni-item.component';\r\n\r\n@Injectable()\r\nexport class HelperService {\r\n\r\n  constructor(private model: ModelService, private animationService: AnimationService) { }\r\n\r\n  public val(value: string, def?: string): string {\r\n    return value != null && value.trim() !== '' ? value : (def || '');\r\n  }\r\n\r\n  public findPosY(obj: any, mainClassName?: string, noScroll?: boolean) {\r\n    let curtop = noScroll ? 0 : this.getScrollYOffset(obj, mainClassName);\r\n    if (obj.offsetParent) {\r\n      while (obj.className !== mainClassName) {\r\n        curtop += obj.offsetTop;\r\n        if (!obj.offsetParent) {\r\n          break;\r\n        }\r\n        obj = obj.offsetParent;\r\n      }\r\n    } else if (obj.y) {\r\n      curtop += obj.y;\r\n    }\r\n    return curtop;\r\n  }\r\n\r\n  public getScrollYOffset(obj: any, mainClassName: string): number {\r\n    let scrolltop = 0;\r\n    if (obj.parentElement) {\r\n      while (obj.className !== mainClassName) {\r\n        if ('scrollTop' in obj) {\r\n          scrolltop -= obj.scrollTop;\r\n        }\r\n        if (!obj.parentElement) {\r\n          break;\r\n        }\r\n        obj = obj.parentElement;\r\n      }\r\n    }\r\n\r\n    return scrolltop;\r\n  }\r\n\r\n  public findPosX(obj: any, mainClassName: string, noScroll?: boolean) {\r\n    let curleft = noScroll ? 0 : this.getScrollXOffset(obj, mainClassName);\r\n    if (obj.offsetParent) {\r\n      while (obj.className !== mainClassName) {\r\n        curleft += obj.offsetLeft;\r\n        if (!obj.offsetParent) {\r\n          break;\r\n        }\r\n        obj = obj.offsetParent;\r\n      }\r\n    } else if (obj.x) {\r\n      curleft += obj.x;\r\n    }\r\n    return curleft;\r\n  }\r\n\r\n  public getScrollXOffset(obj: any, mainClassName: string) {\r\n    let scrollleft = 0;\r\n    if (obj.parentElement) {\r\n      while (obj.className !== mainClassName) {\r\n        if ('scrollLeft' in obj) {\r\n          scrollleft -= obj.scrollLeft;\r\n        }\r\n        if (!obj.parentElement) {\r\n          break;\r\n        }\r\n        obj = obj.parentElement;\r\n      }\r\n    }\r\n\r\n    return scrollleft;\r\n  }\r\n\r\n  public showHelpWindow(url: string) {\r\n    let helpLanguage = 'en';\r\n    switch (this.model.options.cultureName) {\r\n      case 'ru': helpLanguage = 'ru';\r\n      // case 'de': helpLanguage = 'de';\r\n    }\r\n    this.openNewWindow('https://www.stimulsoft.com/' + helpLanguage + '/documentation/online/' + url);\r\n  }\r\n\r\n  public openNewWindow(url: string, name?: string, specs?: string) {\r\n    return window.open(url, name, specs);\r\n  }\r\n\r\n  public scrollToAnchor(anchorName: string, componentGuid?: string) {\r\n    let aHyperlinks = this.model.controls.reportPanel.el.nativeElement.getElementsByTagName(\"a\");\r\n    const identicalAnchors = [];\r\n    if (anchorName) {\r\n      anchorName = anchorName.replace(/!!#92/g, '\\\\');\r\n    }\r\n\r\n    if (componentGuid) {\r\n      for (let i = 0; i < aHyperlinks.length; i++) {\r\n        if (aHyperlinks[i].getAttribute('guid') === componentGuid) {\r\n          identicalAnchors.push(aHyperlinks[i]);\r\n        }\r\n      }\r\n    }\r\n\r\n    if (identicalAnchors.length === 0) {\r\n      let guidIndex = anchorName.indexOf(\"#GUID#\");\r\n\r\n      if (identicalAnchors.length == 0) {\r\n        let aHyperlinks = this.model.controls.reportPanel.el.nativeElement.getElementsByTagName(\"a\");\r\n        for (var i = 0; i < aHyperlinks.length; i++) {\r\n          if (aHyperlinks[i].name && ((guidIndex >= 0 && (aHyperlinks[i].name.indexOf(anchorName.substring(guidIndex + 6)) >= 0 || anchorName.substring(0, guidIndex) == aHyperlinks[i].name)) || aHyperlinks[i].name == anchorName))\r\n            identicalAnchors.push(aHyperlinks[i]);\r\n        }\r\n      }\r\n    }\r\n\r\n    if (identicalAnchors.length > 0) {\r\n      const anchor = identicalAnchors[0];\r\n      const anchorParent = anchor.parentElement || anchor;\r\n      let anchorHeight = anchorParent.offsetHeight;\r\n      const anchorOffsetTop = anchorParent.offsetTop;\r\n\r\n      identicalAnchors.forEach((identicalAnchor) => {\r\n        const nextAnchorParent = identicalAnchor.parentElement || identicalAnchor;\r\n        if (nextAnchorParent.offsetTop > anchorOffsetTop) {\r\n          anchorHeight = Math.max(anchorHeight, nextAnchorParent.offsetTop - anchorOffsetTop + nextAnchorParent.offsetHeight);\r\n        }\r\n      });\r\n\r\n      const date = new Date();\r\n      const endTime = date.getTime() + this.model.options.scrollDuration;\r\n      const targetTop = this.findPosY(anchor, this.model.options.appearance.scrollbarsMode ? 'stiJsViewerReportPanel' : null, true) - anchorParent.offsetHeight * 2;\r\n\r\n      this.animationService.showAnimationForScroll(this.model.controls.reportPanel.el.nativeElement, targetTop, endTime, () => {\r\n        const page = this.getPageFromAnchorElement(anchor);\r\n        const anchorParentTopPos = this.findPosY(anchorParent, 'stiJsViewerReportPanel', true);\r\n        const pageTopPos = page ? this.findPosY(page, 'stiJsViewerReportPanel', true) : anchorParentTopPos;\r\n\r\n        this.removeBookmarksLabel();\r\n\r\n        const label = document.createElement('div');\r\n        this.model.controls.bookmarksLabel = label;\r\n        label.className = 'stiJsViewerBookmarksLabel';\r\n\r\n        const labelMargin = 20 * (this.model.reportParams.zoom / 100);\r\n        const labelWidth = page ? page.offsetWidth - labelMargin - 6 : anchorParent.offsetWidth;\r\n        const labelHeight = anchorHeight - 2;\r\n        label.style.width = labelWidth + 'px';\r\n        label.style.height = labelHeight + 'px';\r\n\r\n        const margins = page.pageAttributes.margins?.replace('px', '').split(' ');\r\n        const pageLeftMargin = page.pageAttributes.margins ? this.strToInt(margins[3]) : 0;\r\n        const pageTopMargin = page.pageAttributes.margins ? this.strToInt(margins[0]) : 0;\r\n        label.style.marginLeft = (labelMargin / 2 - pageLeftMargin) + 'px';\r\n        label.style.marginTop = (anchorParentTopPos - pageTopPos - pageTopMargin - (this.model.reportParams.zoom / 100) - 1) + 'px';\r\n\r\n        page.insertBefore(label, page.childNodes[0]);\r\n      });\r\n    }\r\n  }\r\n\r\n  public removeBookmarksLabel() {\r\n    if (this.model.controls.bookmarksLabel) {\r\n      this.model.controls.bookmarksLabel.parentElement.removeChild(this.model.controls.bookmarksLabel);\r\n      this.model.controls.bookmarksLabel = null;\r\n    }\r\n  }\r\n\r\n  public getPageFromAnchorElement(anchorElement: any) {\r\n    let obj = anchorElement;\r\n    while (obj.parentElement) {\r\n      if (obj.className && obj.className.indexOf('stiJsViewerPage') === 0) {\r\n        return obj;\r\n      }\r\n      obj = obj.parentElement;\r\n    }\r\n    return obj;\r\n  }\r\n\r\n  public strToInt(value: any): number {\r\n    const result = parseInt(value, 10);\r\n    return result || 0;\r\n  }\r\n\r\n  public strToDouble(value: any): number {\r\n    if (value === null) {\r\n      return null;\r\n    }\r\n    const result = parseFloat(value.toString().replace(',', '.').trim());\r\n    return result || 0;\r\n  }\r\n\r\n  public copyObject(o: any): any {\r\n    if (!o || 'object' !== typeof o) {\r\n      return o;\r\n    }\r\n    const c = 'function' === typeof o.pop ? [] : {};\r\n    let p;\r\n    let v;\r\n    for (p in o) {\r\n      if (o.hasOwnProperty(p)) {\r\n        v = o[p];\r\n        if (v && 'object' === typeof v) {\r\n          c[p] = this.copyObject(v);\r\n        } else {\r\n          c[p] = v;\r\n        }\r\n      }\r\n    }\r\n    return c;\r\n  }\r\n\r\n  public getCountObjects(objectArray: any): number {\r\n    let count = 0;\r\n    if (objectArray) {\r\n      for (const singleObject in objectArray) {\r\n        count++;\r\n      }\r\n    }\r\n    return count;\r\n  }\r\n\r\n  public replaceMonths(value: string): string {\r\n    for (let i = 1; i <= 12; i++) {\r\n      let enName = '';\r\n      let locName = '';\r\n      switch (i) {\r\n        case 1:\r\n          enName = 'January';\r\n          locName = this.model.loc('MonthJanuary');\r\n          break;\r\n\r\n        case 2:\r\n          enName = 'February';\r\n          locName = this.model.loc('MonthFebruary');\r\n          break;\r\n\r\n        case 3:\r\n          enName = 'March';\r\n          locName = this.model.loc('MonthMarch');\r\n          break;\r\n\r\n        case 4:\r\n          enName = 'April';\r\n          locName = this.model.loc('MonthApril');\r\n          break;\r\n\r\n        case 5:\r\n          enName = 'May';\r\n          locName = this.model.loc('MonthMay');\r\n          break;\r\n\r\n        case 6:\r\n          enName = 'June';\r\n          locName = this.model.loc('MonthJune');\r\n          break;\r\n\r\n        case 7:\r\n          enName = 'July';\r\n          locName = this.model.loc('MonthJuly');\r\n          break;\r\n\r\n        case 8:\r\n          enName = 'August';\r\n          locName = this.model.loc('MonthAugust');\r\n          break;\r\n\r\n        case 9:\r\n          enName = 'September';\r\n          locName = this.model.loc('MonthSeptember');\r\n          break;\r\n\r\n        case 10:\r\n          enName = 'October';\r\n          locName = this.model.loc('MonthOctober');\r\n          break;\r\n\r\n        case 11:\r\n          enName = 'November';\r\n          locName = this.model.loc('MonthNovember');\r\n          break;\r\n\r\n        case 12:\r\n          enName = 'December';\r\n          locName = this.model.loc('MonthDecember');\r\n          break;\r\n      }\r\n\r\n      const enShortName = enName.substring(0, 3);\r\n      const locShortName = locName.substring(0, 3);\r\n      value = value.replace(enName, i as any).replace(enName.toLowerCase(), i as any).replace(enShortName, i as any).replace(enShortName.toLowerCase(), i as any);\r\n      value = value.replace(locName, i as any).replace(locName.toLowerCase(), i as any).replace(locShortName, i as any).replace(locShortName.toLowerCase(), i as any);\r\n\r\n    }\r\n\r\n    return value;\r\n  }\r\n\r\n  getDate(dateTimeObj: DateTimeObject): Date {\r\n    return new Date(dateTimeObj.year, dateTimeObj.month - 1, dateTimeObj.day, dateTimeObj.hours, dateTimeObj.minutes, dateTimeObj.seconds);\r\n  }\r\n\r\n  public getDateTimeObject(date?: Date) {\r\n    if (!date) { date = new Date(); }\r\n    const dateTimeObject: DateTimeObject = new DateTimeObject();\r\n    dateTimeObject.year = date.getFullYear();\r\n    dateTimeObject.month = date.getMonth() + 1;\r\n    dateTimeObject.day = date.getDate();\r\n    dateTimeObject.hours = date.getHours();\r\n    dateTimeObject.minutes = date.getMinutes();\r\n    dateTimeObject.seconds = date.getSeconds();\r\n\r\n    return dateTimeObject;\r\n  }\r\n\r\n  public getDateTimeFromString(value: string, format: string): any {\r\n    const charIsDigit = (ch: string) => {\r\n      return ('0123456789'.indexOf(ch) >= 0);\r\n    };\r\n\r\n    if (!value) {\r\n      return new Date();\r\n    }\r\n    value = this.replaceMonths(value);\r\n\r\n    let dateTime = new Date();\r\n\r\n    // If the date format is not specified, then deserializator for getting date and time is applied\r\n    if (format === null) {\r\n      format = 'dd.MM.yyyy hh:mm:ss';\r\n    }\r\n    // Otherwise the format is parsed. Now only numeric date and time formats are supported\r\n\r\n    let year = 1970;\r\n    let month = 1;\r\n    let day = 1;\r\n    let hour = 0;\r\n    let minute = 0;\r\n    let second = 0;\r\n    let millisecond = 0;\r\n\r\n    let char = '';\r\n    let pos = 0;\r\n    const values = [];\r\n\r\n    // Parse date and time into separate numeric values\r\n    while (pos < value.length) {\r\n      char = value.charAt(pos);\r\n      if (charIsDigit(char)) {\r\n        values.push(char);\r\n        pos++;\r\n\r\n        while (pos < value.length && charIsDigit(value.charAt(pos))) {\r\n          values[values.length - 1] += value.charAt(pos);\r\n          pos++;\r\n        }\r\n\r\n        values[values.length - 1] = this.strToInt(values[values.length - 1]);\r\n      }\r\n\r\n      pos++;\r\n    }\r\n\r\n    pos = 0;\r\n    let charCount = 0;\r\n    let index = -1;\r\n    let is12hour = false;\r\n\r\n    // Parsing format and replacement of appropriate values of date and time\r\n    while (pos < format.length) {\r\n      char = format.charAt(pos);\r\n      charCount = 0;\r\n\r\n      if (char === 'Y' || char === 'y' || char === 'M' || char === 'd' || char === 'h' || char === 'H' ||\r\n        char === 'm' || char === 's' || char === 'f' || char === 'F' || char === 't' || char === 'z') {\r\n        index++;\r\n\r\n        while (pos < format.length && format.charAt(pos) === char) {\r\n          pos++;\r\n          charCount++;\r\n        }\r\n      }\r\n\r\n      switch (char) {\r\n        case 'Y': // full year\r\n          year = values[index];\r\n          break;\r\n\r\n        case 'y': // year\r\n          if (values[index] < 1000) {\r\n            year = 2000 + values[index];\r\n          } else {\r\n            year = values[index];\r\n          }\r\n          break;\r\n\r\n        case 'M': // month\r\n          month = values[index];\r\n          break;\r\n\r\n        case 'd': // day\r\n          day = values[index];\r\n          break;\r\n\r\n        case 'h': // (hour 12)\r\n          is12hour = true;\r\n          hour = values[index];\r\n          break;\r\n\r\n        case 'H': // (hour 24)\r\n          hour = values[index];\r\n          break;\r\n\r\n        case 'm': // minute\r\n          minute = values[index];\r\n          break;\r\n\r\n        case 's': // second\r\n          second = values[index];\r\n          break;\r\n\r\n        case 'f': // second fraction\r\n        case 'F': // second fraction, trailing zeroes are trimmed\r\n          millisecond = values[index];\r\n          break;\r\n\r\n        case 't': // PM or AM\r\n          if (value.toLowerCase().indexOf('am') >= 0 && hour === 12) { hour = 0; }\r\n          if (value.toLowerCase().indexOf('pm') >= 0 && hour < 12) { hour += 12; }\r\n          break;\r\n\r\n        default:\r\n          pos++;\r\n          break;\r\n      }\r\n    }\r\n\r\n    dateTime = new Date(year || new Date().getFullYear(), month - 1 || 0, day || 1, hour || 0, minute || 0, second, millisecond || 0);\r\n\r\n    if (!dateTime || isNaN(dateTime as any)) {\r\n      return new Date();\r\n    }\r\n\r\n    return dateTime;\r\n  }\r\n\r\n  public getStringDateTime(object, dateTimeType) {\r\n    if (dateTimeType === 'Date') {\r\n      object.hours = 0;\r\n      object.minutes = 0;\r\n      object.seconds = 0;\r\n    }\r\n    return object.month + '/' + object.day + '/' + object.year + ' ' +\r\n      (object.hours > 12 ? object.hours - 12 : object.hours) + ':' + object.minutes + ':' + object.seconds + ' ' +\r\n      (object.hours < 12 ? 'AM' : 'PM');\r\n  }\r\n\r\n  public dateTimeObjectToString(dateTimeObject, typeDateTimeObject?) {\r\n    const date = new Date(dateTimeObject.year, dateTimeObject.month - 1, dateTimeObject.day, dateTimeObject.hours, dateTimeObject.minutes, dateTimeObject.seconds);\r\n\r\n    if (this.model.options.appearance.parametersPanelDateFormat !== '') {\r\n      return this.formatDate(date, this.model.options.appearance.parametersPanelDateFormat);\r\n    }\r\n\r\n    return this.dateToLocaleString(date, typeDateTimeObject);\r\n  }\r\n\r\n  public dateToLocaleString(date, dateTimeType?): string {\r\n    const timeString = date.toLocaleTimeString();\r\n    const isAmericanFormat = timeString.toLowerCase().indexOf('am') >= 0 || timeString.toLowerCase().indexOf('pm') >= 0;\r\n    let formatDate = isAmericanFormat ? 'MM/dd/yyyy' : 'dd.MM.yyyy';\r\n\r\n    const yyyy = date.getFullYear();\r\n    const yy = yyyy.toString().substring(2);\r\n    const M = date.getMonth() + 1;\r\n    const MM = M < 10 ? '0' + M : M;\r\n    const d = date.getDate();\r\n    const dd = d < 10 ? '0' + d : d;\r\n\r\n    formatDate = formatDate.replace(/yyyy/i, yyyy);\r\n    formatDate = formatDate.replace(/yy/i, yy);\r\n    formatDate = formatDate.replace(/MM/i, MM);\r\n    formatDate = formatDate.replace(/M/i, M);\r\n    formatDate = formatDate.replace(/dd/i, dd);\r\n    formatDate = formatDate.replace(/d/i, d);\r\n\r\n    let h = date.getHours();\r\n    let tt = '';\r\n\r\n    if (isAmericanFormat) {\r\n      tt = h < 12 ? ' AM' : ' PM';\r\n      h = h > 12 ? h - 12 : h;\r\n      if (h === 0) {\r\n        h = 12;\r\n      }\r\n    } else {\r\n      h = h < 10 ? '0' + h : h;\r\n    }\r\n\r\n    let m = date.getMinutes();\r\n    m = m < 10 ? '0' + m : m;\r\n    let s = date.getSeconds();\r\n    s = s < 10 ? '0' + s : s;\r\n\r\n    const formatTime = h + ':' + m + ':' + s + tt;\r\n\r\n    if (dateTimeType === 'Time') {\r\n      return formatTime;\r\n    }\r\n    if (dateTimeType === 'Date') {\r\n      return formatDate;\r\n    }\r\n\r\n    return formatDate + ' ' + formatTime;\r\n  }\r\n\r\n  public formatDate(formatDate, formatString: string): string {\r\n    const yyyy = formatDate.getFullYear();\r\n    const yy = yyyy.toString().substring(2);\r\n    const m = formatDate.getMonth() + 1;\r\n    const mm = m < 10 ? '0' + m : m;\r\n    const d = formatDate.getDate();\r\n    const dd = d < 10 ? '0' + d : d;\r\n\r\n    const h = formatDate.getHours();\r\n    const hh = h < 10 ? '0' + h : h;\r\n    const h12 = h > 12 ? h - 12 : (h > 0 ? h : 12);\r\n    const hh12 = h12 < 10 ? '0' + h12 : h12;\r\n    const n = formatDate.getMinutes();\r\n    const nn = n < 10 ? '0' + n : n;\r\n    const s = formatDate.getSeconds();\r\n    const ss = s < 10 ? '0' + s : s;\r\n    const tt = h < 12 ? 'AM' : 'PM';\r\n\r\n    formatString = formatString.replace(/yyyy/gi, yyyy);\r\n    formatString = formatString.replace(/yy/gi, yy);\r\n    formatString = formatString.replace(/Y/, yyyy);\r\n    formatString = formatString.replace(/MM/g, mm);\r\n    formatString = formatString.replace(/M/g, m);\r\n    formatString = formatString.replace(/dd/g, dd);\r\n    formatString = formatString.replace(/d/g, d);\r\n    formatString = formatString.replace(/hh/g, hh12);\r\n    formatString = formatString.replace(/h/g, h12);\r\n    formatString = formatString.replace(/HH/g, hh);\r\n    formatString = formatString.replace(/H/g, h);\r\n    formatString = formatString.replace(/mm/g, nn);\r\n    formatString = formatString.replace(/m/g, n);\r\n    formatString = formatString.replace(/ss/g, ss);\r\n    formatString = formatString.replace(/s/g, s);\r\n    formatString = formatString.replace(/tt/gi, tt);\r\n    formatString = formatString.replace(/t/gi, tt.substr(0, 1));\r\n\r\n    return formatString;\r\n  }\r\n\r\n  public getStringKey(key: string, params): string {\r\n    if (key === null) {\r\n      return '';\r\n    }\r\n\r\n    return ((params.type === 'DateTime') ? this.dateTimeObjectToString(key, params.dateTimeType) : key);\r\n  }\r\n\r\n  public stringToTime(timeStr: string) {\r\n    const timeArray = timeStr.split(':');\r\n    const time = { hours: 0, minutes: 0, seconds: 0 };\r\n\r\n    time.hours = this.strToInt(timeArray[0]);\r\n    if (timeArray.length > 1) { time.minutes = this.strToInt(timeArray[1]); }\r\n    if (timeArray.length > 2) { time.seconds = this.strToInt(timeArray[2]); }\r\n    if (time.hours < 0) { time.hours = 0; }\r\n    if (time.minutes < 0) { time.minutes = 0; }\r\n    if (time.seconds < 0) { time.seconds = 0; }\r\n\r\n    if (time.hours > 23) { time.hours = 23; }\r\n    if (time.minutes > 59) { time.minutes = 59; }\r\n    if (time.seconds > 59) { time.seconds = 59; }\r\n\r\n    return time;\r\n  }\r\n\r\n  public newGuid() {\r\n    const chars = '0123456789abcdefghijklmnopqrstuvwxyz'.split('');\r\n    const uuid = [];\r\n    const rnd = Math.random;\r\n    let r;\r\n    uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';\r\n    uuid[14] = '4';\r\n\r\n    for (let i = 0; i < 36; i++) {\r\n      if (!uuid[i]) {\r\n        r = 0 | rnd() * 16;\r\n        uuid[i] = chars[(i === 19) ? (r & 0x3) | 0x8 : r & 0xf];\r\n      }\r\n    }\r\n\r\n    return uuid.join('');\r\n  }\r\n\r\n  public getCountDaysOfMonth(year: number, month: number): number {\r\n    const countDaysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n    let count = countDaysInMonth[month];\r\n\r\n    if (month === 1) {\r\n      if (year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)) {\r\n        count = 29;\r\n      } else {\r\n        count = 28;\r\n      }\r\n    }\r\n    return count;\r\n  }\r\n\r\n  public setObjectToCenter(object: any, defaultTop?: number): any {\r\n    const leftPos = (this.model.viewerSize.width / 2 - object.offsetWidth / 2);\r\n    const topPos = this.model.options.appearance.fullScreenMode ? (this.model.viewerSize.height / 2 - object.offsetHeight / 2) : (defaultTop ? defaultTop : 250);\r\n    return { left: Math.max(leftPos, 0), top: Math.max(topPos, 0) };\r\n  }\r\n\r\n  public checkCloudAuthorization(action): boolean {\r\n    return true;\r\n  }\r\n\r\n  private getCookie_(name: string): string {\r\n    const cookie = ' ' + document.cookie;\r\n    const search = ' ' + name + '=';\r\n    let setStr = null;\r\n    let offset = 0;\r\n    let end = 0;\r\n    if (cookie.length > 0) {\r\n      offset = cookie.indexOf(search);\r\n      if (offset !== -1) {\r\n        offset += search.length;\r\n        end = cookie.indexOf(';', offset);\r\n        if (end === -1) {\r\n          end = cookie.length;\r\n        }\r\n        setStr = unescape(cookie.substring(offset, end));\r\n      }\r\n    }\r\n    return setStr;\r\n  }\r\n\r\n  public getCookie(name: string): string {\r\n    if (this.model.options.standaloneJsMode || typeof localStorage === 'undefined' || name.indexOf('sti_') == 0 || name.indexOf('login') == 0) {\r\n      return this.getCookie_(name);\r\n    }\r\n\r\n    let value = localStorage.getItem(name);\r\n    if (value != null) {\r\n      return value;\r\n    } else {\r\n      value = this.getCookie_(name);\r\n      if (value != null) {\r\n        this.removeCookie(name);\r\n        localStorage.setItem(name, value);\r\n      }\r\n      return value;\r\n    }\r\n  }\r\n\r\n  public removeCookie(name: string) {\r\n    document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/';\r\n  }\r\n\r\n  public setCookie(name: string, value, path?, domain?, secure?, expires?) {\r\n    if (this.model.options.standaloneJsMode || typeof localStorage === 'undefined' || name.indexOf('sti_') === 0 || name.indexOf('login') === 0) {\r\n      // save to cookies\r\n      if (value && typeof (value) === 'string' && value.length >= 4096) { return; }\r\n      const pathName = location.pathname;\r\n      const expDate = new Date();\r\n      expDate.setTime(expDate.getTime() + (365 * 24 * 3600 * 1000));\r\n      document.cookie = name + '=' + escape(value) +\r\n        '; expires=' + (expires || expDate['toGMTString']()) +\r\n        ((path) ? '; path=' + path : '; path=/') +\r\n        ((domain) ? '; domain=' + domain : '') +\r\n        ((secure) ? '; secure' : '');\r\n    } else {\r\n      // save to localstorage\r\n      localStorage.setItem(name, value);\r\n    }\r\n  }\r\n\r\n  public getNavigatorName(): string {\r\n    if (!navigator) { return 'Unknown'; }\r\n    const userAgent = navigator.userAgent;\r\n\r\n    if (userAgent.indexOf('Edge') >= 0) { return 'Edge'; }\r\n    if (userAgent.indexOf('MSIE') >= 0 || userAgent.indexOf('Trident') >= 0) { return 'MSIE'; }\r\n    if (userAgent.indexOf('Gecko') >= 0) {\r\n      if (userAgent.indexOf('Chrome') >= 0) { return 'Chrome'; }\r\n      if (userAgent.indexOf('Safari') >= 0) { return 'Safari'; }\r\n      return 'Mozilla';\r\n    }\r\n    if (userAgent.indexOf('Opera') >= 0) { return 'Opera'; }\r\n  }\r\n\r\n  public isTouchDevice(): boolean {\r\n    return ('ontouchstart' in document.documentElement);\r\n  }\r\n\r\n  public isMobileDevice(): boolean {\r\n    return /iPhone|iPad|iPod|Macintosh|Android|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n  }\r\n\r\n  public getHumanFileSize(value: number, decimals: number): string {\r\n    const i = Math.floor(Math.log(value) / Math.log(1024));\r\n    return ((value / Math.pow(1024, i)).toFixed(decimals)) + ' ' + ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'][i];\r\n  }\r\n\r\n  getZoomMenuItems(): any {\r\n    const items: MenuItem[] = [{ name: 'Zoom25', caption: '25%', img: '' },\r\n    { name: 'Zoom50', caption: '50%', img: '' },\r\n    { name: 'Zoom75', caption: '75%', img: '' },\r\n    { name: 'Zoom100', caption: '100%', img: '' },\r\n    { name: 'Zoom150', caption: '150%', img: '' },\r\n    { name: 'Zoom200', caption: '200%', img: '' }];\r\n\r\n    if (this.model.options.toolbar.displayMode !== 'Separated') {\r\n      items.push({ type: 'separator' });\r\n      items.push({ name: 'ZoomOnePage', caption: this.model.loc('ZoomOnePage'), img: 'ZoomOnePage.png' });\r\n      items.push({ name: 'ZoomPageWidth', caption: this.model.loc('ZoomPageWidth'), img: 'ZoomPageWidth.png' });\r\n    }\r\n    return items;\r\n  }\r\n\r\n  public get helpLinks(): any {\r\n    return {\r\n      Print: 'user-manual/index.html?viewer_reports.htm#toolbar',\r\n      Save: 'user-manual/index.html?viewer_reports.htm#toolbar',\r\n      SendEmail: 'user-manual/index.html?viewer_reports.htm#toolbar',\r\n      Bookmarks: 'user-manual/index.html?viewer_reports.htm#toolbar',\r\n      Parameters: 'user-manual/index.html?viewer_reports.htm#toolbar',\r\n      FirstPage: 'user-manual/index.html?viewer_reports.htm#statusbar',\r\n      PrevPage: 'user-manual/index.html?viewer_reports.htm#statusbar',\r\n      NextPage: 'user-manual/index.html?viewer_reports.htm#statusbar',\r\n      LastPage: 'user-manual/index.html?viewer_reports.htm#statusbar',\r\n      FullScreen: 'user-manual/index.html?viewer_reports.htm#toolbar',\r\n      Zoom: 'user-manual/index.html?viewer_reports.htm#statusbar',\r\n      ViewMode: 'user-manual/index.html?viewer_reports.htm#displayingmode',\r\n      Editor: 'user-manual/index.html?viewer_reports.htm#toolbar',\r\n      Find: 'user-manual/index.html?viewer_reports.htm#searchpanel',\r\n      DashboardToolbar: 'user-manual/index.html?viewer_dashboards.htm#controlbuttonsofthedashboard',\r\n      DashboardElementToolbar: 'user-manual/index.html?viewer_dashboards.htm#elementcontrols',\r\n      DashboardExport: 'user-manual/index.html?exports_dashboards.htm',\r\n      DashboardPdfExport: 'user-manual/index.html?exports_dashboards.htm#pdfexportsettings',\r\n      DashboardExcelExport: 'user-manual/index.html?exports_dashboards.htm#excelexportsettings',\r\n      DashboardImageExport: 'user-manual/index.html?exports_dashboards.htm#imageexportsettings',\r\n      DashboardDataExport: 'user-manual/index.html?exports_dashboards.htm#exportsettingsofdata'\r\n    };\r\n  }\r\n\r\n  public getBackText(withoutBrackets?: boolean): string {\r\n    const backText = String.fromCharCode(84) + 'r' + String.fromCharCode(105) + 'a';\r\n    if (withoutBrackets) {\r\n      return backText + String.fromCharCode(108);\r\n    }\r\n    return String.fromCharCode(91) + backText + String.fromCharCode(108) + String.fromCharCode(93);\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class FileSaverService {\r\n\r\n  private _global = typeof window === 'object' && window.window === window\r\n    ? window : typeof self === 'object' && self.self === self\r\n      ? self : /*typeof global === 'object' && global.global === global\r\n        ? global\r\n        : */this;\r\n\r\n  // Detect WebView inside a native macOS app by ruling out all browsers\r\n  // We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\r\n  // https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\r\n  private isMacOSWebView = this._global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)\r\n\r\n  constructor() {\r\n    this._global.saveAs = this.saveAs.saveAs = this.saveAs\r\n\r\n    /*if (typeof module !== 'undefined') {\r\n      module.exports = this.saveAs;\r\n    }*/\r\n  }\r\n\r\n  public bom(blob, opts) {\r\n    if (typeof opts === 'undefined') opts = { autoBom: false }\r\n    else if (typeof opts !== 'object') {\r\n      console.warn('Deprecated: Expected third argument to be a object')\r\n      opts = { autoBom: !opts }\r\n    }\r\n\r\n    // prepend BOM for UTF-8 XML and text/* types (including HTML)\r\n    // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\r\n    if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\r\n      return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })\r\n    }\r\n    return blob\r\n  }\r\n\r\n  public download(url, name, opts) {\r\n    let xhr = new XMLHttpRequest()\r\n    xhr.open('GET', url)\r\n    xhr.responseType = 'blob'\r\n    let this_ = this;\r\n    xhr.onload = function () {\r\n      this_.saveAs(xhr.response, name, opts)\r\n    }\r\n    xhr.onerror = function () {\r\n      console.error('could not download file')\r\n    }\r\n    xhr.send()\r\n  }\r\n\r\n  public corsEnabled(url) {\r\n    let xhr = new XMLHttpRequest()\r\n    // use sync to avoid popup blocker\r\n    xhr.open('HEAD', url, false)\r\n    try {\r\n      xhr.send()\r\n    } catch (e) { }\r\n    return xhr.status >= 200 && xhr.status <= 299\r\n  }\r\n\r\n  // `a.click()` doesn't work for all browsers (#465)\r\n  public click(node) {\r\n    try {\r\n      node.dispatchEvent(new MouseEvent('click'))\r\n    } catch (e) {\r\n      let evt = document.createEvent('MouseEvents')\r\n      evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\r\n        20, false, false, false, false, 0, null)\r\n      node.dispatchEvent(evt)\r\n    }\r\n  }\r\n\r\n\r\n  public saveAs = this._global.saveAs || (\r\n    // probably in some web worker\r\n    (typeof window !== 'object' || window !== this._global)\r\n      ? function saveAs() { }\r\n\r\n      // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\r\n      : ('download' in HTMLAnchorElement.prototype && !this.isMacOSWebView)\r\n        ? function saveAs(blob, name, opts) {\r\n          let URL = this._global.URL || this._global.webkitURL\r\n          let a = document.createElement('a')\r\n          name = name || blob.name || 'download'\r\n\r\n          a.download = name\r\n          a.rel = 'noopener' // tabnabbing\r\n\r\n          // TODO: detect chrome extensions & packaged apps\r\n          // a.target = '_blank'\r\n\r\n          if (typeof blob === 'string') {\r\n            // Support regular links\r\n            a.href = blob\r\n            if (a.origin !== location.origin) {\r\n              this.corsEnabled(a.href)\r\n                ? this.download(blob, name, opts)\r\n                : this.click(a, a.target = '_blank')\r\n            } else {\r\n              this.click(a)\r\n            }\r\n          } else {\r\n            // Support blobs\r\n            a.href = URL.createObjectURL(blob)\r\n            let this_ = this;\r\n            setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s\r\n            setTimeout(function () { this_.click(a) }, 0)\r\n          }\r\n        }\r\n\r\n        // Use msSaveOrOpenBlob as a second approach\r\n        : 'msSaveOrOpenBlob' in navigator\r\n          ? function saveAs(blob, name, opts) {\r\n            name = name || blob.name || 'download'\r\n\r\n            if (typeof blob === 'string') {\r\n              if (this.corsEnabled(blob)) {\r\n                this.download(blob, name, opts)\r\n              } else {\r\n                let a = document.createElement('a')\r\n                a.href = blob\r\n                a.target = '_blank';\r\n                let this_ = this\r\n                setTimeout(function () { this_.click(a) })\r\n              }\r\n            } else {\r\n              (navigator as any).msSaveOrOpenBlob(this.bom(blob, opts), name)\r\n            }\r\n          }\r\n\r\n          // Fallback to using FileReader and a popup\r\n          : function saveAs(blob, name, opts, popup) {\r\n            // Open a popup immediately do go around popup blocker\r\n            // Mostly only available on user interaction and the fileReader is async so...\r\n            popup = popup || open('', '_blank')\r\n            if (popup) {\r\n              popup.document.title =\r\n                popup.document.body.innerText = 'downloading...'\r\n            }\r\n\r\n            if (typeof blob === 'string') return this.download(blob, name, opts)\r\n\r\n            let force = blob.type === 'application/octet-stream'\r\n            let isSafari = /constructor/i.test(this._global.HTMLElement) || this._global.safari\r\n            let isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\r\n\r\n            if ((isChromeIOS || (force && isSafari) || this.isMacOSWebView) && typeof FileReader !== 'undefined') {\r\n              // Safari doesn't allow downloading of blob URLs\r\n              let reader = new FileReader()\r\n              reader.onloadend = function () {\r\n                let url = reader.result as any;\r\n                url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')\r\n                if (popup) popup.location.href = url\r\n                else location = url\r\n                popup = null // reverse-tabnabbing #460\r\n              }\r\n              reader.readAsDataURL(blob)\r\n            } else {\r\n              let URL = this._global.URL || this._global.webkitURL\r\n              let url = URL.createObjectURL(blob)\r\n              if (popup) popup.location = url\r\n              else location.href = url\r\n              popup = null // reverse-tabnabbing #460\r\n              setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s\r\n            }\r\n          }\r\n  )\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { EMPTY, Observable, throwError } from 'rxjs';\r\nimport { catchError, timeout } from 'rxjs/operators';\r\nimport { ModelService } from './model.service';\r\nimport { HelperService } from './helper.service';\r\nimport { FileSaverService } from './file.saver.service';\r\n\r\n@Injectable()\r\nexport class StiHttpClientService {\r\n\r\n  constructor(private httpClient: HttpClient, public model: ModelService, private helper: HelperService, private fileSaver: FileSaverService) { }\r\n\r\n  public post(url: string, data: any, responseType: string = 'json'): Observable<any> {\r\n    const model = this.model;\r\n    model.showProgress = true;\r\n    const reqTimeout = this.model.options?.server?.requestTimeout > 0 ? this.model.options?.server?.requestTimeout * 1000 : 1000 * 1000;\r\n\r\n    if (responseType === 'json') {\r\n      return this.httpClient.post(url, this.getFormData(data)).pipe(\r\n        // retry(3),\r\n        timeout(reqTimeout),\r\n\r\n        catchError((error: any) => {\r\n          model.httpError = error;\r\n          model.showProgress = false;\r\n          console.error(error);\r\n          console.error(`url: ${url}, reqTimeout: ${reqTimeout}, responseType: ${responseType}`);\r\n          console.error(data);\r\n          this.model.controls.navigatePanel.enabled = true;\r\n          this.model.controls.toolbar.enabled = true;\r\n          if (error?.error?.text != null && error.error.text.startsWith('<?xml')) {\r\n            alert(error.error.text.replace(/<.+?>/gi, ''));\r\n          }\r\n\r\n          return throwError('Something bad happened; please try again later.');\r\n        }));\r\n    } else {\r\n      return this.httpClient.post(url, this.getFormData(data), { responseType: 'text' }).pipe(\r\n        // retry(3),\r\n        timeout(reqTimeout),\r\n        catchError((error: any) => {\r\n          model.httpError = error;\r\n          model.showProgress = false;\r\n          console.error(error);\r\n          console.error(`url: ${url}, reqTimeout: ${reqTimeout}, responseType: ${responseType}`);\r\n          console.error(data);\r\n          this.model.controls.navigatePanel.enabled = true;\r\n          this.model.controls.toolbar.enabled = true;\r\n          if (error?.error?.text != null && error.error.text.startsWith('<?xml')) {\r\n            alert(error.error.text.replace(/<.+?>/gi, ''));\r\n          }\r\n          return throwError('Something bad happened; please try again later.');\r\n        }));\r\n    }\r\n  }\r\n\r\n  private getFormData(data: any): FormData {\r\n    const formData: FormData = new FormData();\r\n    Object.keys(data).forEach(key => formData.append(key, data[key]));\r\n    return formData;\r\n  }\r\n\r\n  private getParams(data: any): HttpParams {\r\n    let params = new HttpParams();\r\n    Object.keys(data).forEach(key => params = params.set(key, data[key]));\r\n    return params;\r\n  }\r\n\r\n  public getData(url, data): Observable<any> {\r\n    return this.httpClient.post(url, this.getFormData(data), { responseType: 'blob' }).pipe(\r\n      catchError((error: any) => {\r\n        console.error(error);\r\n        return EMPTY;\r\n      }));\r\n  }\r\n\r\n  public postForm(url: string, data: any, doc: any, postOnlyData: boolean = false, retrieveFileName: boolean = true) {\r\n    if (!this.model.options.replaceHtmlFormWithRequest) {\r\n      this.postForm2(url, data, doc, postOnlyData);\r\n    } else {\r\n      const params = postOnlyData ? data : this.model.createPostParameters(data, true);\r\n      if (retrieveFileName) {\r\n        data.onlyFileName = true;\r\n        this.post(url, this.model.createPostParameters(data)).subscribe((resp) => {\r\n          this.model.showProgress = false;\r\n          this.model.controls.navigatePanel.enabled = true;\r\n          this.model.controls.toolbar.enabled = true;\r\n\r\n          let fileName = resp.fileName;\r\n          delete data.onlyFileName;\r\n\r\n          this.showData(url, params, doc, fileName);\r\n        });\r\n      } else {\r\n        this.showData(url, params, doc, null);\r\n      }\r\n    }\r\n  }\r\n\r\n  public showData(url: string, params: any, doc: any, fileName: string) {\r\n    this.getData(url, params).subscribe((data) => {\r\n      if (doc) {\r\n        if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {\r\n          (window.navigator as any).msSaveOrOpenBlob(data);\r\n        } else {\r\n          var fileURL = URL.createObjectURL(data);\r\n          window.open(fileURL, '_blank');\r\n        }\r\n      } else {\r\n        this.fileSaver.saveAs(data, fileName);\r\n      }\r\n    });\r\n  }\r\n\r\n  public postForm2(url: string, data: any, doc: any, postOnlyData: boolean = false) {\r\n    if (!doc) { doc = document; }\r\n    const form = doc.createElement('FORM');\r\n    form.setAttribute('method', 'POST');\r\n    form.setAttribute('action', url);\r\n\r\n    const params = postOnlyData ? data : this.model.createPostParameters(data, true);\r\n\r\n    Object.keys(params).forEach(key => {\r\n      const paramsField = doc.createElement('INPUT');\r\n      paramsField.setAttribute('type', 'hidden');\r\n      paramsField.setAttribute('name', key);\r\n      paramsField.setAttribute('value', params[key]);\r\n      form.appendChild(paramsField);\r\n    });\r\n\r\n    if (this.model.options.jsDesigner) {\r\n      this.model.options.jsDesigner.options.ignoreBeforeUnload = true;\r\n    }\r\n\r\n    doc.body.appendChild(form);\r\n    form.submit();\r\n    doc.body.removeChild(form);\r\n\r\n    setTimeout(() => {\r\n      if (this.model.options.jsDesigner) {\r\n        this.model.options.jsDesigner.options.ignoreBeforeUnload = false;\r\n      }\r\n    }, 500);\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\n\r\n@Injectable()\r\nexport class StylesService {\r\n  private pagesCss = {};\r\n\r\n  constructor(private model: ModelService) { }\r\n\r\n  public setupStyle(style: string, id: string) {\r\n    if (this.pagesCss[id] == null) {\r\n      this.pagesCss[id] = document.createElement('STYLE');\r\n      this.pagesCss[id].id = this.model.options?.viewerId + 'Styles';\r\n      this.pagesCss[id].setAttribute('type', 'text/css');\r\n      if (this.model?.options?.cSPNonce) {\r\n        this.pagesCss[id].setAttribute('nonce', this.model.options.cSPNonce);\r\n      }\r\n      this.model.controls.head.appendChild(this.pagesCss[id]);\r\n    }\r\n    if (this.pagesCss[id].styleSheet) {\r\n      this.pagesCss[id].styleSheet.cssText = style;\r\n    } else {\r\n      this.pagesCss[id].innerHTML = style;\r\n    }\r\n  }\r\n\r\n  public addCustomFontStyles(customFonts: any[]) {\r\n    if (!customFonts) { return; }\r\n\r\n    let existsStyles: any = [];\r\n    try {\r\n      existsStyles = document.getElementsByTagName('head')[0].getElementsByTagName('style');\r\n    } catch (e) { }\r\n\r\n    customFonts.forEach((customFont: any) => {\r\n      if (customFont.contentForCss && customFont.originalFontFamily) {\r\n        const style = document.createElement('style');\r\n        style.innerHTML = `@font-face {\\r\\nfont-family: '${customFont.originalFontFamily}';\\r\\n src: url(${customFont.contentForCss});\\r\\n }`;\r\n\r\n        let existsThisStyle = false;\r\n\r\n        for (const estyle of existsStyles) {\r\n          if (estyle.innerHTML.indexOf(`font-family: '${customFont.originalFontFamily}'`) > 0) {\r\n            existsThisStyle = true;\r\n            break;\r\n          }\r\n        }\r\n\r\n        if (!existsThisStyle) {\r\n          document.getElementsByTagName('head')[0].appendChild(style);\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n\r\n  public addChartScript(script: string) {\r\n    const currChartScripts = document.getElementById(this.model.options.viewerId + 'chartScriptJsViewer');\r\n    if (currChartScripts) {\r\n      this.model.controls.head.removeChild(currChartScripts);\r\n    }\r\n\r\n    if (script) {\r\n      const chartScripts = document.createElement('Script');\r\n      chartScripts.setAttribute('type', 'text/javascript');\r\n      chartScripts.setAttribute('nonce', 'stichartanimation');//used for Content-Security-Policy\r\n      chartScripts.id = this.model.options.viewerId + 'chartScriptJsViewer';\r\n      chartScripts.textContent = script;\r\n      this.model.controls.head.appendChild(chartScripts);\r\n    }\r\n  }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { HelperService } from './helper.service';\r\nimport { Rectangle } from './objects';\r\n\r\n@Injectable()\r\nexport class PageService {\r\n\r\n  constructor(private model: ModelService, private helper: HelperService) {\r\n    Object.keys(model.controls).forEach(k => model.controls[k].pageService = this);\r\n  }\r\n\r\n  public calculateLayout() {\r\n    setTimeout(() => {\r\n      this.calculateLayoutInner();\r\n    });\r\n  }\r\n\r\n  public calculateLayoutInner() {\r\n    const reportLayout: Rectangle = new Rectangle();\r\n    const paramsLayout: Rectangle = new Rectangle();\r\n\r\n    if (!this.model.controls.reportPanel.el) {\r\n      return reportLayout;\r\n    }\r\n\r\n    if (this.model.controls.dashboardsPanel.el) {\r\n      reportLayout.top += this.model.controls.dashboardsPanel.offsetHeight;\r\n    }\r\n\r\n    if (this.model.reportParams.type === 'Report') {\r\n      if (this.model.controls.toolbar && this.model.controls.toolbar.visible && !(this.model.options.isMobileDevice && this.model.options.toolbar.autoHide)) {\r\n        reportLayout.top += this.model.controls.toolbar.offsetHeight;\r\n      }\r\n\r\n      if (this.model.controls.drillDownPanel && this.model.controls.drillDownPanel.visible) {\r\n        reportLayout.top += this.model.controls.drillDownPanel.offsetHeight;\r\n      }\r\n      if (this.model.controls.findPanel && this.model.controls.findPanel.visible) {\r\n        reportLayout.top += this.model.controls.findPanel.offsetHeight;\r\n      }\r\n      if (this.model.controls.resourcesPanel && this.model.controls.resourcesPanel.visible) {\r\n        reportLayout.top += this.model.controls.resourcesPanel.offsetHeight;\r\n      }\r\n\r\n      if (this.model.controls.bookmarksPanel && this.model.controls.bookmarksPanel.visible) {\r\n        reportLayout.left += this.model.options.appearance.bookmarksTreeWidth;\r\n        if (this.model.options.toolbar.displayMode === 'Simple') {\r\n          reportLayout.left += 2;\r\n        }\r\n      }\r\n\r\n      if (this.model.controls.navigatePanel && this.model.controls.navigatePanel.visible && !(this.model.options.isMobileDevice && this.model.options.toolbar.autoHide)) {\r\n        reportLayout.bottom = this.model.controls.navigatePanel.offsetHeight;\r\n      }\r\n    }\r\n\r\n    if (this.model.controls.parametersPanel && this.model.controls.parametersPanel.visible) {\r\n      this.model.controls.parametersPanel.layout = paramsLayout;\r\n      paramsLayout.top = reportLayout.top;\r\n\r\n      if (this.model.options.appearance.currentParametersPanelPosition === 'Left') {\r\n        paramsLayout.left = reportLayout.left;\r\n        paramsLayout.width = this.model.controls.parametersPanel.el.nativeElement.firstChild.offsetWidth;\r\n        reportLayout.left += paramsLayout.width;\r\n        if (this.model.options.toolbar.displayMode === 'Simple') {\r\n          reportLayout.left += 2;\r\n        }\r\n      }\r\n\r\n      if (this.model.options.appearance.currentParametersPanelPosition === 'Top') {\r\n        paramsLayout.height = this.model.controls.parametersPanel.offsetHeight;\r\n        reportLayout.top += paramsLayout.height;\r\n      }\r\n    }\r\n\r\n    if (this.model.controls.bookmarksPanel) {\r\n      // this.model.controls.bookmarksPanel.layout = new Rectangle();\r\n      let styleTop = this.model.options.toolbar.visible ? this.model.controls.toolbar.offsetHeight : 0;\r\n      if (this.model.options.isMobileDevice && this.model.options.toolbar.autoHide) {\r\n        styleTop = 0;\r\n      }\r\n      styleTop += this.model.controls.parametersPanel.exists && this.model.options.appearance.currentParametersPanelPosition === 'Top' ? this.model.controls.parametersPanel.offsetHeight : 0;\r\n      styleTop += this.model.controls.findPanel.exists ? this.model.controls.findPanel.offsetHeight : 0;\r\n      styleTop += this.model.controls.drillDownPanel.exists ? this.model.controls.drillDownPanel.offsetHeight : 0;\r\n      styleTop += this.model.controls.resourcesPanel.exists ? this.model.controls.resourcesPanel.offsetHeight : 0;\r\n\r\n      this.model.controls.bookmarksPanel.layout.top = styleTop; // reportLayout.top;\r\n    }\r\n\r\n    if (this.model.options.toolbar.displayMode === 'Simple' && reportLayout.top > 0) {\r\n      reportLayout.top += 2;\r\n    }\r\n\r\n    if (this.model.controls.reportPanel.el?.nativeElement.style.position === 'relative') {\r\n      reportLayout.top = paramsLayout.height;\r\n    }\r\n\r\n    const reportMargins = {\r\n      top: parseInt(this.model.controls.reportPanel.el.nativeElement.style.marginTop ? this.model.controls.reportPanel.el.nativeElement.style.marginTop : 0),\r\n      right: parseInt(this.model.controls.reportPanel.el.nativeElement.style.marginRight ? this.model.controls.reportPanel.el.nativeElement.style.marginRight : 0),\r\n      bottom: parseInt(this.model.controls.reportPanel.el.nativeElement.style.marginBottom ? this.model.controls.reportPanel.el.nativeElement.style.marginBottom : 0),\r\n      left: parseInt(this.model.controls.reportPanel.el.nativeElement.style.marginLeft ? this.model.controls.reportPanel.el.nativeElement.style.marginLeft : 0)\r\n    };\r\n\r\n    reportLayout.width = this.model.controls.reportPanel.offsetWidth - reportLayout.left - reportLayout.right + reportMargins.left + reportMargins.right;\r\n    reportLayout.height = this.model.controls.reportPanel.el.nativeElement.style.position === 'absolute'\r\n      ? this.model.controls.reportPanel.offsetHeight - reportLayout.top - reportLayout.bottom + reportMargins.top + reportMargins.bottom\r\n      : Math.round(reportLayout.width * 0.56); // use 16:9 aspect ratio for automatic height\r\n\r\n    this.model.controls.reportPanel.layout = reportLayout;\r\n  }\r\n\r\n  public getZoomByPageWidth(): number {\r\n    const pageNumber = this.model.reportParams.viewMode === 'SinglePage' ? 0 : (this.model.reportParams.pageNumber || 0);\r\n    return (this.model.controls.reportPanel.layout.width - 40) * this.getZoom() / (this.model.pages[pageNumber]?.page?.offsetWidth || 1);\r\n  }\r\n\r\n  public getZoomByPageHeight(): number {\r\n    const pageNumber = this.model.reportParams.viewMode === 'SinglePage' ? 0 : (this.model.reportParams.pageNumber || 0);\r\n    return (this.model.controls.reportPanel.layout.height - 40) * this.getZoom() / (this.model.pages[pageNumber]?.page?.offsetHeight || 1);\r\n  }\r\n\r\n  private getZoom(): number {\r\n    return this.model.reportParams.zoom < 0 ? 100 : this.model.reportParams.zoom;\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class MouseService {\r\n\r\n  private documetMouseDown = new Subject<any>();\r\n  private documetMouseMove = new Subject<any>();\r\n  private documetMouseUp = new Subject<any>();\r\n\r\n  constructor() {\r\n    document.addEventListener('mouseup', (event) => {\r\n      this.documetMouseUp.next(event);\r\n    });\r\n\r\n    document.addEventListener('mousemove', (event) => {\r\n      this.documetMouseMove.next(event);\r\n    });\r\n\r\n    document.addEventListener('mousedown', (event) => {\r\n      this.documetMouseDown.next(event);\r\n    });\r\n  }\r\n\r\n  public getDocumentMouseUp(): Observable<any> {\r\n    return this.documetMouseUp.asObservable();\r\n  }\r\n\r\n  public getDocumentMouseMove(): Observable<any> {\r\n    return this.documetMouseMove.asObservable();\r\n  }\r\n\r\n  public getDocumentMouseDown(): Observable<any> {\r\n    return this.documetMouseDown.asObservable();\r\n  }\r\n\r\n}\r\n","import { Injectable, ElementRef, EventEmitter } from '@angular/core';\r\nimport { MenuItem } from './meni-item.component';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { ModelService } from '../services/model.service';\r\nimport { MouseService } from '../services/mouse.service';\r\nimport { Variable, Item } from '../services/objects';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\nexport class Menu {\r\n\r\n  private _state?: string;\r\n  public name: string;\r\n  public items: MenuItem[];\r\n  public parent: ElementRef;\r\n  public type: string;\r\n  public menuEl?: ElementRef;\r\n  public top?: number;\r\n  public left?: number;\r\n  public innerContent?: ElementRef;\r\n  public width?: number;\r\n  public height?: number;\r\n  public menuStyleName?: string;\r\n  public params?: Variable;\r\n  public verticalItems?: Item[];\r\n  public action?: EventEmitter<any>;\r\n  public itemStyleName?: string;\r\n  public value?: any;\r\n  public sizeStyle?: string;\r\n  public onCloseEvent?: any;\r\n\r\n  constructor() { }\r\n\r\n  public get state(): string {\r\n    return this._state;\r\n  }\r\n\r\n  public set state(value: string) {\r\n    let oldState = this._state;\r\n    this._state = value;\r\n    if (oldState != 'initialDown' && oldState != '' && value == 'initialDown' && this.onCloseEvent) {\r\n      this.onCloseEvent();\r\n    }\r\n  }\r\n\r\n}\r\n\r\n@Injectable()\r\nexport class MenuService {\r\n  public VERTICAL_MENU_NAME = 'verticalMenu';\r\n\r\n  public menuMouseUp = '';\r\n\r\n  private _menus: {} = {};\r\n  private subject = new Subject<Menu>();\r\n\r\n  constructor(private helper: HelperService, private model: ModelService, private mouseService: MouseService) {\r\n    this.mouseService.getDocumentMouseUp().subscribe((event) => {\r\n      if (this.menuMouseUp === '') {\r\n        this.closeAllMenus();\r\n      } else if (this.menuMouseUp !== 'datePickerMenu' && this.menuMouseUp !== this.VERTICAL_MENU_NAME) {\r\n        const datePicker = Object.values(this._menus).find(m => (m as Menu).type === 'datePickerMenu') as Menu;\r\n        if (datePicker != null) {\r\n          datePicker.state = 'initialDown';\r\n        }\r\n      }\r\n      this.menuMouseUp = '';\r\n    });\r\n  }\r\n\r\n  public getVisibility(): Observable<Menu> {\r\n    return this.subject.asObservable();\r\n  }\r\n\r\n  public addMenu(menu: Menu): void {\r\n    let inMenu = new Menu();\r\n    for (let key in menu) {\r\n      inMenu[key] = menu[key];\r\n    }\r\n    this._menus[menu.name] = inMenu;\r\n  }\r\n\r\n  public closeAllMenus() {\r\n    Object.values(this._menus).forEach((m: Menu) => m.state = m.type === 'buttonMenu' && this.model.options.isMobileDevice ? 'initialLeft' : 'initialDown');\r\n  }\r\n\r\n  public isMenuVisible(): boolean {\r\n    return Object.values(this._menus).find(m => (m as Menu).state === 'expanded') != null;\r\n  }\r\n\r\n  public showMenu(menuName: string) {\r\n    const menu: Menu = this._menus[menuName];\r\n\r\n    if (menu?.type !== 'datePickerMenu' && menu?.type !== this.VERTICAL_MENU_NAME) {\r\n      this.closeAllMenus();\r\n    }\r\n\r\n    if (menu) {\r\n      menu.sizeStyle = 'opacity: 0;';\r\n      if (this.model.options.isMobileDevice && menu.type === 'buttonMenu') {\r\n        setTimeout(() => {\r\n          const innerContent = menu.innerContent.nativeElement;\r\n          menu.left = 0;\r\n          menu.top = 0;\r\n          menu.width = innerContent.offsetWidth;\r\n          menu.height = innerContent.offsetHeight;\r\n          menu.state = 'initialLeft';\r\n          menu.sizeStyle = null;\r\n\r\n          setTimeout(() => {\r\n            menu.state = 'expanded';\r\n          });\r\n        });\r\n      } else {\r\n        setTimeout(() => {\r\n          menu.sizeStyle = null;\r\n          this.showMenuInternal(menu);\r\n        });\r\n      }\r\n      this.subject.next(menu);\r\n    }\r\n  }\r\n\r\n  private showMenuInternal(menu: Menu) {\r\n    const isVertMenu = true;\r\n\r\n    const parentButton = menu.parent.nativeElement;\r\n    const innerContent = menu.innerContent.nativeElement;\r\n    const offsetHeight = menu.menuEl.nativeElement.offsetHeight;\r\n    const style = menu.menuEl.nativeElement.style;\r\n\r\n    const coords = this.getMenuCoordinates(parentButton, innerContent, offsetHeight, style, isVertMenu);\r\n\r\n    menu.left = coords.left;\r\n    menu.top = coords.top;\r\n    menu.width = menu.width || coords.width;\r\n    menu.height = coords.height;\r\n    menu.state = coords.state;\r\n\r\n    setTimeout(() => {\r\n      menu.state = 'expanded';\r\n    });\r\n  }\r\n\r\n  public getMenuCoordinates(parentButton: any, innerContent: any, offsetHeight: number, style: any, isVertMenu: boolean): any {\r\n    const menu: any = {};\r\n    const browserWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n    const browserHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n    const rightAlign = false;\r\n    const mainClassName = 'stiJsViewerMainPanel';\r\n    let animDirect = 'Down';\r\n    const leftOffset = 0;\r\n\r\n    let left = (isVertMenu)\r\n      ? (this.model.options.appearance.rightToLeft || rightAlign\r\n        ? (this.helper.findPosX(parentButton, mainClassName) - innerContent.offsetWidth + parentButton.offsetWidth) - (leftOffset || 0)\r\n        : this.helper.findPosX(parentButton, mainClassName) - (leftOffset || 0))\r\n      : ((animDirect === 'Right')\r\n        ? (this.helper.findPosX(parentButton, mainClassName) + parentButton.offsetWidth + 2)\r\n        : (this.helper.findPosX(parentButton, mainClassName) - parentButton.offsetWidth - 2));\r\n\r\n    if (left + innerContent.offsetWidth > browserWidth) {\r\n      left = browserWidth - innerContent.offsetWidth - 15;\r\n    }\r\n    if (left < 0) {\r\n      left = 10;\r\n    }\r\n    menu.left = left;\r\n\r\n    if (animDirect === 'Down' &&\r\n      this.helper.findPosY(parentButton) + parentButton.offsetHeight + innerContent.offsetHeight > browserHeight &&\r\n      this.helper.findPosY(parentButton) - innerContent.offsetHeight > 0) {\r\n      animDirect = 'Up';\r\n    }\r\n\r\n    menu.top = (isVertMenu)\r\n      ? ((animDirect === 'Down')\r\n        ? (this.helper.findPosY(parentButton, mainClassName) + parentButton.offsetHeight + 2)\r\n        : (this.helper.findPosY(parentButton, mainClassName) - offsetHeight))\r\n      : (this.helper.findPosY(parentButton, mainClassName) + parentButton.offsetHeight + innerContent.offsetHeight > browserHeight &&\r\n        (browserHeight - innerContent.offsetHeight - 10) > 0)\r\n        ? (browserHeight - innerContent.offsetHeight - 10)\r\n        : this.helper.findPosY(parentButton, mainClassName);\r\n\r\n    menu.width = innerContent.offsetWidth;\r\n    menu.height = innerContent.offsetHeight;\r\n\r\n    if (menu.top + innerContent.offsetHeight > browserHeight) {\r\n      menu.top = (browserHeight - innerContent.offsetHeight - 10);\r\n    }\r\n\r\n    if (menu.top < 0) {\r\n      menu.top = 10;\r\n    }\r\n\r\n    menu.state = animDirect === 'Down' ? 'initialDown' : 'initialUp';\r\n\r\n    return menu;\r\n  }\r\n\r\n  get menus(): Menu[] {\r\n    return Object.values(this._menus);\r\n  }\r\n\r\n  getVerticalMenu(): Menu {\r\n    return this._menus[this.VERTICAL_MENU_NAME];\r\n  }\r\n\r\n  getMenu(name: string): Menu {\r\n    return this._menus[name];\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Form } from '../services/objects';\r\nimport { MouseService } from '../services/mouse.service';\r\nimport { MenuService } from '../menu/menu.service';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { BaseFormComponent } from './base-form.component';\r\nimport { ModelService } from '../services/model.service';\r\n\r\n@Injectable()\r\nexport class FormService {\r\n\r\n  private mouseX = 0;\r\n  private mouseY = 0;\r\n  private formX = 0;\r\n  private formY = 0;\r\n\r\n  constructor(public mouseService: MouseService, public menuService: MenuService, public helper: HelperService, public model: ModelService) {\r\n    mouseService.getDocumentMouseMove().subscribe((event: MouseEvent) => {\r\n      this.move(event);\r\n    });\r\n\r\n    mouseService.getDocumentMouseUp().subscribe((event: MouseEvent) => {\r\n      this.stopMove();\r\n    });\r\n  }\r\n\r\n  public get form(): Form {\r\n    return this.model.form;\r\n  }\r\n\r\n  public set form(form: Form) {\r\n    this.model.form = form;\r\n  }\r\n\r\n  public showForm(name: string, formData?: any) {\r\n    this.form = { name, left: 0, top: 0, isMooving: false, formData };\r\n  }\r\n\r\n  public closeForm(name: string) {\r\n    if (this.form?.name === 'notificationForm' && this.model.notificationFormOptions?.action) {\r\n      this.model.notificationFormOptions.action();\r\n    }\r\n    this.form = null;\r\n  }\r\n\r\n  public centerForm(baseForm: BaseFormComponent, defaultTop: number) {\r\n    if (this.form != null) {\r\n      setTimeout(() => {\r\n        const position = this.helper.setObjectToCenter(baseForm.element.nativeElement, defaultTop);\r\n        this.form.left = position.left;\r\n        this.form.top = position.top;\r\n        this.form.level = baseForm.level;\r\n      });\r\n    }\r\n  }\r\n\r\n  public startMove(name: string, event: MouseEvent, touchEvent?: TouchEvent) {\r\n    if (event || touchEvent && touchEvent.changedTouches.length > 0) {\r\n      this.formX = this.form.left;\r\n      this.formY = this.form.top;\r\n      this.mouseX = event?.screenX || touchEvent.changedTouches[0].screenX;\r\n      this.mouseY = event?.screenY || touchEvent.changedTouches[0].screenY;\r\n      this.form.isMooving = true;\r\n    }\r\n  }\r\n\r\n  public move(event: any) {\r\n    if (this.form?.isMooving) {\r\n      const screenX = event.screenX || (event.changedTouches.length > 0 ? event.changedTouches[0].screenX : -1);\r\n      const screenY = event.screenY || (event.changedTouches.length > 0 ? event.changedTouches[0].screenY : -1);\r\n      this.form.left = this.formX + (screenX - this.mouseX);\r\n      this.form.top = this.formY + (screenY - this.mouseY);\r\n      this.menuService.closeAllMenus();\r\n    }\r\n  }\r\n\r\n  public stopMove() {\r\n    if (this.form?.isMooving) {\r\n      this.form.isMooving = false;\r\n    }\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { PageService } from './page.service';\r\n\r\n@Injectable()\r\nexport class FullScreenService {\r\n\r\n  constructor(public model: ModelService, public pageService: PageService) { }\r\n\r\n  public changeFullScreenMode(fullScreenMode: boolean) {\r\n    this.model.options.appearance.fullScreenMode = fullScreenMode;\r\n    const viewer = this.model.controls.viewer.el.nativeElement;\r\n\r\n    if (fullScreenMode) {\r\n      this.model.fullScreenOptions = {\r\n        scrollbarsMode: this.model.options.appearance.scrollbarsMode,\r\n        zIndex: viewer.style.zIndex,\r\n        position: viewer.style.position,\r\n        width: viewer.style.width,\r\n        height: viewer.style.height,\r\n        overflow: document.body.style.overflow\r\n      };\r\n\r\n      this.model.options.appearance.scrollbarsMode = true;\r\n      viewer.style.zIndex = '1000000';\r\n      viewer.style.position = this.model.options.reportDesignerMode ? 'absolute' : 'fixed';\r\n      viewer.style.width = null;\r\n      viewer.style.height = null;\r\n      document.body.style.overflow = 'hidden';\r\n    } else if (this.model.fullScreenOptions) {\r\n      this.model.options.appearance.scrollbarsMode = this.model.fullScreenOptions.scrollbarsMode;\r\n      viewer.style.zIndex = this.model.fullScreenOptions.zIndex;\r\n      viewer.style.position = this.model.fullScreenOptions.position;\r\n      viewer.style.width = this.model.fullScreenOptions.width;\r\n      viewer.style.height = this.model.fullScreenOptions.height;\r\n      document.body.style.overflow = this.model.fullScreenOptions.overflow;\r\n\r\n      this.model.fullScreenOptions = null;\r\n    }\r\n\r\n    this.pageService.calculateLayout();\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { StiHttpClientService } from './http-client.service';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { ModelService } from './model.service';\r\nimport { StylesService } from './styles.service';\r\nimport { ViewerEvent, BookmarkNode, Message } from './objects';\r\nimport { PageService } from './page.service';\r\nimport { HelperService } from './helper.service';\r\nimport { FormService } from '../forms/form.service';\r\nimport { FullScreenService } from './full-screen.service';\r\nimport { MenuService, Menu } from '../menu/menu.service';\r\nimport { AnimationService } from './animation.service';\r\n\r\n@Injectable()\r\nexport class ControllerService {\r\n\r\n  private subject = new Subject<any>();\r\n  public actionSubject = new Subject<Message>();\r\n\r\n  constructor(private httpClient: StiHttpClientService, private model: ModelService,\r\n    private stylesService: StylesService, private pageService: PageService, private helper: HelperService,\r\n    private formService: FormService, private fullScreenService: FullScreenService, private menuService: MenuService,\r\n    private styleService: StylesService, private animationService: AnimationService) {\r\n\r\n    setInterval(() => {\r\n      if (this.model.httpError) {\r\n        if (this.model.httpError.error?.text) {\r\n          this.showError(this.model.httpError.error?.text);\r\n        } else if (this.model.httpError.message) {\r\n          this.showError(null, this.model.httpError.message);\r\n        } else if (this.model.httpError.error instanceof ErrorEvent) {\r\n          this.showError(this.model.httpError.error.message);\r\n        }\r\n        this.model.httpError = null;\r\n      }\r\n      if (this.model.navigateNode) {\r\n        this.postBookmarkNodeAction(this.model.navigateNode);\r\n        this.model.navigateNode = null;\r\n      }\r\n    }, 250);\r\n\r\n    this.setupHandlers();\r\n  }\r\n\r\n  public setupHandlers() {\r\n    this.getMessage().subscribe((message: Message) => {\r\n      switch (message.action) {\r\n        case 'GetReport':\r\n        case 'OpenReport':\r\n          setTimeout(() => {\r\n            this.styleService.addCustomFontStyles(message.data?.customFonts);\r\n\r\n            if (this.model.options.appearance.fullScreenMode) {\r\n              this.fullScreenService.changeFullScreenMode(true);\r\n            }\r\n\r\n            if (message.data?.stimulsoftFontContent && !this.model.options.stimulsoftFontContentLoaded) {\r\n              this.model.options.stimulsoftFontContentLoaded = message.data.stimulsoftFontContent;\r\n              this.styleService.addCustomFontStyles([{\r\n                contentForCss: message.data.stimulsoftFontContent,\r\n                originalFontFamily: 'Stimulsoft'\r\n              }]);\r\n            }\r\n          });\r\n          this.model.options.currentParameterWidth = message.data.parameterWidth;\r\n          this.model.options.currentParameterAlignment = message.data.parameterAlignment;\r\n          let appearance = this.model.options.appearance;\r\n          appearance.currentParametersPanelPosition = appearance.parametersPanelPosition == \"FromReport\" ? (this.model.reportParams.parametersOrientation == \"Horizontal\" ? \"Top\" : \"Left\") : appearance.parametersPanelPosition;\r\n          break;\r\n      }\r\n    });\r\n\r\n    this.model.controls.bookmarksPanel.getVisibility().subscribe((value) => {\r\n      if (value && this.model.options.isMobileDevice) {\r\n        this.model.controls.parametersPanel.visible = false;\r\n      }\r\n      if (value) {\r\n        this.hideToolbar();\r\n      } else {\r\n        this.showToolbar();\r\n      }\r\n    });\r\n\r\n    this.model.controls.parametersPanel.getVisibility().subscribe((value) => {\r\n      if (value && this.model.options.isMobileDevice) {\r\n        this.model.controls.bookmarksPanel.visible = false;\r\n      }\r\n      if (value) {\r\n        this.hideToolbar();\r\n      } else {\r\n        this.showToolbar();\r\n      }\r\n    });\r\n\r\n    this.menuService.getVisibility().subscribe((menu: Menu) => {\r\n      this.hideToolbar();\r\n    });\r\n  }\r\n\r\n  public hideToolbar() {\r\n    if (this.model.options.isMobileDevice && this.model.options.toolbar.autoHide) {\r\n      this.model.controls.toolbar.visible = false;\r\n      this.model.controls.navigatePanel.visible = false;\r\n    }\r\n  }\r\n\r\n  public showToolbar() {\r\n    if (this.model.options.isMobileDevice && this.model.options.toolbar.autoHide) {\r\n      this.model.controls.toolbar.visible = true;\r\n      this.model.controls.navigatePanel.visible = true;\r\n      setTimeout(() => {\r\n        this.keepToolbar();\r\n      }, 300);\r\n    }\r\n  }\r\n\r\n  public keepToolbar() {\r\n    if (this.model.options.isMobileDevice && this.model.options.toolbar.autoHide) {\r\n      clearTimeout(this.model.toolbarHideTimer);\r\n      this.model.toolbarHideTimer = setTimeout(() => {\r\n        this.hideToolbar();\r\n      }, 4000);\r\n    }\r\n  }\r\n\r\n  public getMessage(): Observable<any> {\r\n    return this.subject.asObservable();\r\n  }\r\n\r\n  public getActionMessage(): Observable<Message> {\r\n    return this.actionSubject.asObservable();\r\n  }\r\n\r\n  public post(action: string, cAction?: string, postData?: any, responseType: string = 'json', subAction?: string) {\r\n    this.model.controls.navigatePanel.enabled = false;\r\n    this.model.controls.toolbar.enabled = false;\r\n    let url: string;\r\n    if (!cAction) {\r\n      url = this.model.requestUrl.replace('{action}', action === 'GetReport' || this.model.options.server.cacheMode === 'None' ? this.model.options.actions.getReport : this.model.options.actions.viewerEvent);\r\n    } else {\r\n      url = this.model.requestUrl.replace('{action}', cAction);\r\n    }\r\n    if (postData) {\r\n      postData.action = action;\r\n    } else {\r\n      postData = { action };\r\n    }\r\n\r\n    this.httpClient.post(url, this.model.createPostParameters(postData), responseType).subscribe(data => {\r\n      this.model.showProgress = false;\r\n      this.model.controls.navigatePanel.enabled = true;\r\n      this.model.controls.toolbar.enabled = true;\r\n\r\n      if (data === 'ServerError:The report is not specified.' && this.model.options?.isReportRecieved) {\r\n        this.model.options.isReportRecieved = false;\r\n        this.model.reportParams.prevPageNumber = this.model.reportParams.pageNumber;\r\n        this.post('GetReport');\r\n        return;\r\n      }\r\n\r\n      if ((data?.action == 'GetReport' || data?.action == 'OpenReport') && data.dashboards) {\r\n        action = 'ShowDashboard';\r\n        this.subject.next({ action, data, subAction });\r\n      } else {\r\n        if (data?.action == 'GetReport' || data?.action == 'OpenReport') {\r\n          this.model.controls.toolbar.visible = this.model.options.toolbar.visible;\r\n        }\r\n        if (data) {\r\n          this.model.reportParams = data;\r\n          this.startRefreshReportTimer(data.refreshTime);\r\n          if (data.reportDisplayMode) {\r\n            this.model.options.displayModeFromReport = data.reportDisplayMode;\r\n          }\r\n        }\r\n        this.subject.next({ action, data, subAction });\r\n      }\r\n    });\r\n  }\r\n\r\n  public loadViewer(): void {\r\n    const url = this.model.requestUrl.replace('{action}', this.model.action);\r\n    this.httpClient.post(url, this.model.createPostParameters({ action: 'AngularViewerData', viewerRequestUrl: this.model.requestUrl }, true, false), 'json',).subscribe(data => {\r\n      this.model.clear();\r\n      this.model.proxyData = null;\r\n      this.model.options = data;\r\n      this.stylesService.setupStyle(atob(data['styles']), 'viewer');\r\n      this.model.dashboards = data?.dashboards?.Value;\r\n      this.checkTrExp();\r\n      this.initAutoUpdateCache();\r\n      this.subject.next({ action: 'viewer_loaded' });\r\n      this.getReport();\r\n    });\r\n  }\r\n\r\n  public getReport(): void {\r\n    this.model.options.paramsVariablesStartValues = null;\r\n    this.post('GetReport');\r\n  }\r\n\r\n  public getPages(): void {\r\n    this.post('GetPages');\r\n  }\r\n\r\n  public postExport(format: string, settings: any, elementName?: string, isDashboardExport: boolean = false) {\r\n    if (settings?.ExcelType) {\r\n      settings.ExcelType = settings.ExcelType == 'Excel' ? 'Excel2007' : (settings.ExcelType == 'ExcelBiff' ? 'ExcelBinary' : settings.ExcelType);\r\n    }\r\n\r\n    const data = {\r\n      action: isDashboardExport ? 'ExportDashboard' : 'ExportReport',\r\n      exportFormat: format,\r\n      exportSettings: settings,\r\n      elementName\r\n    };\r\n\r\n    const doc = settings && settings.OpenAfterExport && this.model.options.appearance.openExportedReportWindow === '_blank' ?\r\n      (!this.model.options.replaceHtmlFormWithRequest ? this.helper.openNewWindow('about:blank', '_blank').document : document) :\r\n      null;\r\n    const url = this.model.requestUrl;\r\n    this.httpClient.postForm(url.replace('{action}', this.model.options.actions.exportReport), data, doc);\r\n    this.actionSubject.next({ action: 'ExportReport', data });\r\n  }\r\n\r\n  public loadFile(fileName: string, content: any) {\r\n    if (typeof content !== 'string' || content === '') { return; }\r\n\r\n    if (content.indexOf('<?xml') === 0 || content.indexOf('{') === 0) { content = btoa(content); }\r\n\r\n    const data = {\r\n      action: 'OpenReport',\r\n      openingFileName: fileName || 'Report.mdc',\r\n      base64Data: content.indexOf('base64,') > 0 ? content.substr(content.indexOf('base64,') + 7) : content\r\n    };\r\n\r\n    if (fileName && (fileName.toLowerCase().indexOf('.mdx') >= 0 || fileName.toLowerCase().indexOf('.mrx') >= 0)) {\r\n      this.formService.showForm('passwordForm', data);\r\n    } else {\r\n      this.postOpen(data);\r\n    }\r\n  }\r\n\r\n  public postOpen(data: any) {\r\n    this.model.clearViewerState();\r\n    this.model.reportParams.reportFileName = data.openingFileName;\r\n    this.post('OpenReport', this.model.options.actions.openReport, data);\r\n  }\r\n\r\n  public action(event: ViewerEvent): void {\r\n    switch (event.name) {\r\n      case 'Find':\r\n        this.model.controls.findPanel.visible = !this.model.controls.findPanel.visible;\r\n        return;\r\n\r\n      case 'Bookmarks':\r\n        this.model.controls.bookmarksPanel.visible = !this.model.controls.bookmarksPanel.visible;\r\n        return;\r\n\r\n      case 'Parameters':\r\n        this.model.controls.parametersPanel.visible = !this.model.controls.parametersPanel.visible;\r\n        return;\r\n\r\n      case 'BookmarkAction':\r\n        if (this.model.reportParams.pageNumber === event.bookmarkPage || this.model.reportParams.viewMode !== 'SinglePage') {\r\n          this.helper.scrollToAnchor(event.bookmarkAnchor, event.componentGuid);\r\n          return;\r\n        } else {\r\n          this.model.reportParams.pageNumber = event.bookmarkPage;\r\n          this.model.options.bookmarkAnchor = event.bookmarkAnchor;\r\n          this.model.options.componentGuid = event.componentGuid;\r\n        }\r\n        break;\r\n\r\n      case 'GoToPage':\r\n        this.model.reportParams.pageNumber = event.value;\r\n        this.scrollToPage();\r\n        break;\r\n\r\n      case 'FirstPage':\r\n        this.model.reportParams.pageNumber = 0;\r\n        this.scrollToPage()\r\n        break;\r\n\r\n      case 'PrevPage':\r\n        this.model.reportParams.pageNumber = Math.max(0, this.model.reportParams.pageNumber - 1);\r\n        this.scrollToPage()\r\n        break;\r\n\r\n      case 'NextPage':\r\n        this.model.reportParams.pageNumber = Math.min(this.model.reportParams.pagesCount - 1, this.model.reportParams.pageNumber + 1);\r\n        this.scrollToPage();\r\n        break;\r\n\r\n      case 'LastPage':\r\n        this.model.reportParams.pageNumber = this.model.reportParams.pagesCount - 1;\r\n        this.scrollToPage()\r\n        break;\r\n\r\n      case 'ViewModeSinglePage':\r\n        this.model.reportParams.viewMode = 'SinglePage';\r\n        break;\r\n\r\n      case 'ViewModeContinuous':\r\n        this.model.reportParams.viewMode = 'Continuous';\r\n        break;\r\n\r\n      case 'ViewModeMultiplePages':\r\n        this.model.reportParams.viewMode = 'MultiplePages';\r\n        break;\r\n\r\n      case 'Zoom25': this.model.reportParams.zoom = 25; break;\r\n      case 'Zoom50': this.model.reportParams.zoom = 50; break;\r\n      case 'Zoom75': this.model.reportParams.zoom = 75; break;\r\n      case 'Zoom100': this.model.reportParams.zoom = 100; break;\r\n      case 'Zoom150': this.model.reportParams.zoom = 150; break;\r\n      case 'Zoom200': this.model.reportParams.zoom = 200; break;\r\n\r\n      case 'ZoomOnePage':\r\n      case 'ZoomPageWidth':\r\n        this.model.reportParams.zoom = event.name === 'ZoomPageWidth' ? this.pageService.getZoomByPageWidth() : this.pageService.getZoomByPageHeight();\r\n        break;\r\n\r\n      case 'Submit':\r\n        this.model.reportParams.editableParameters = null;\r\n        if (this.model.reportParams.type === 'Report') { this.model.reportParams.pageNumber = 0; }\r\n        if (this.model.options.isMobileDevice) { this.model.controls.parametersPanel.visible = false; }\r\n        this.actionSubject.next({ action: 'Variables' });\r\n        return;\r\n\r\n      case 'Reset':\r\n        if (this.model.options.paramsVariablesStartValues) {\r\n          this.model.options.paramsVariables = this.model.options.paramsVariablesStartValues;\r\n        }\r\n        this.actionSubject.next({ action: 'Reset' });\r\n        return;\r\n\r\n      case 'Editor':\r\n        this.actionSubject.next({ action: 'Editor', data: {} });\r\n        return;\r\n\r\n      case 'Resources':\r\n        this.model.controls.resourcesPanel.visible = !this.model.controls.resourcesPanel.visible;\r\n        return;\r\n\r\n      case 'PrintPdf':\r\n      case 'PrintWithPreview':\r\n      case 'PrintWithoutPreview':\r\n        this.actionSubject.next({ action: 'Print', data: { format: event.name } });\r\n        return;\r\n\r\n      case 'Print':\r\n        let format = 'PrintPdf';\r\n        switch (this.model.options.toolbar.printDestination) {\r\n          case 'Pdf':\r\n            format = 'PrintPdf';\r\n            break;\r\n          case 'Direct':\r\n            format = 'PrintWithoutPreview';\r\n            break;\r\n          case 'WithPreview':\r\n            format = 'PrintWithPreview';\r\n            break;\r\n        }\r\n        this.actionSubject.next({ action: 'Print', data: { format } });\r\n        return;\r\n\r\n      case 'Open':\r\n        this.model.openDialogFileMask = null;\r\n        setTimeout(() => {\r\n          this.model.openDialogFileMask = '.mdc,.mdz,.mdx,.mrt,.mrz,.mrx';\r\n        });\r\n        return;\r\n\r\n      case 'ResourceView':\r\n        this.postReportResource(event.value.name, 'View');\r\n        return;\r\n\r\n      case 'ResourceSaveFile':\r\n        this.postReportResource(event.value.name, 'SaveFile');\r\n        return;\r\n\r\n      case 'FullScreen':\r\n        this.fullScreenService.changeFullScreenMode(!this.model.options.appearance.fullScreenMode);\r\n        return;\r\n\r\n      case 'About':\r\n        this.actionSubject.next({ action: 'About' });\r\n        return;\r\n\r\n      case 'Pin':\r\n        this.model.options.toolbar.autoHide = !this.model.options.toolbar.autoHide;\r\n        this.pageService.calculateLayout();\r\n        if (this.model.options.toolbar.autoHide) {\r\n          setTimeout(() => {\r\n            this.hideToolbar();\r\n          }, 200);\r\n        }\r\n        return;\r\n\r\n      case 'Design':\r\n        this.actionSubject.next({ action: 'Design' });\r\n        break;\r\n\r\n      default:\r\n        if (event.name.indexOf('saveMenu') === 0) {\r\n          this.actionSubject.next({ action: 'Export', data: { format: event.name.substr(8) } });\r\n          return;\r\n        } else if (event.name.indexOf('sendEmailMenu') === 0) {\r\n          this.actionSubject.next({ action: 'SendEmail', data: { format: event.name.substr(13) } });\r\n          return;\r\n        }\r\n    }\r\n\r\n    this.getPages();\r\n  }\r\n\r\n  scrollToPage() {\r\n    if (this.model.reportParams.viewMode === 'Continuous') {\r\n      let panel = this.model.controls.reportPanel.el.nativeElement;\r\n      const endTime = (new Date()).getTime() + this.model.options.scrollDuration;\r\n      let targetTop = this.model.pages[this.model.reportParams.pageNumber].page.offsetTop;\r\n      this.animationService.showAnimationForScroll(panel, targetTop, endTime, () => { });\r\n    }\r\n  }\r\n\r\n  public showError(message: any, messageText?: string): boolean {\r\n    let type = 'Error';\r\n\r\n    // Check for error in 'ServerError:' string format\r\n    if (message != null && typeof (message) === 'string' && message.substr(0, 12) === 'ServerError:') {\r\n      if (message.length <= 13) {\r\n        messageText = 'An unknown error occurred (the server returned an empty value).';\r\n      } else {\r\n        messageText = message.substr(12);\r\n      }\r\n    }\r\n\r\n    // Check for error in JSON format\r\n    if (message != null && message.success === false && message.type && message.text) {\r\n      type = message.type;\r\n      messageText = message.text;\r\n    }\r\n\r\n    this.model.errorMessage = { error: 'Unknown error', type };\r\n\r\n    if (messageText != null) {\r\n      if (messageText === 'The report is not specified.' && !this.model.options.appearance.showReportIsNotSpecifiedMessage) { return true; }\r\n\r\n      this.model.errorMessage = { error: messageText.replace('\\n', '<br>'), type };\r\n\r\n      if (this.model.images) {\r\n        this.formService.showForm('errorMessageForm');\r\n      } else {\r\n        alert(messageText);\r\n      }\r\n      this.actionSubject.next({ action: 'Error' });\r\n      return true;\r\n    }\r\n\r\n    return false;\r\n  }\r\n\r\n  public postReportResource(resourceName: string, viewType: string) {\r\n    const data = {\r\n      action: 'ReportResource',\r\n      reportResourceParams: {\r\n        resourceName,\r\n        viewType\r\n      }\r\n    };\r\n\r\n    const doc = viewType === 'View' ? (!this.model.options.replaceHtmlFormWithRequest ? this.helper.openNewWindow('about:blank', '_blank').document : document) : null;\r\n    const url = this.model.requestUrl;\r\n    this.httpClient.postForm(url.replace('{action}', this.model.options.actions.viewerEvent), data, doc);\r\n  }\r\n\r\n  public postBookmarkNodeAction(node: BookmarkNode) {\r\n    node.selected = true;\r\n    this.action({ name: 'BookmarkAction', bookmarkPage: node.page, bookmarkAnchor: node.url.replace(/\\\\\\'/g, '\\'').substr(1), componentGuid: node.compunentGuid });\r\n  }\r\n\r\n  public viewerResized() {\r\n    this.menuService.closeAllMenus();\r\n  }\r\n\r\n  public initAutoUpdateCache() {\r\n    if (this.model.options.server.allowAutoUpdateCache) {\r\n      if (this.model.timerAutoUpdateCache) {\r\n        clearInterval(this.model.timerAutoUpdateCache);\r\n      }\r\n      this.model.timerAutoUpdateCache = setInterval(() => this.post('UpdateCache'), this.model.options.server.timeoutAutoUpdateCache);\r\n    }\r\n  }\r\n\r\n  public startRefreshReportTimer(timeout: number) {\r\n    if (this.model.refreshReportTimer != null) {\r\n      clearInterval(this.model.refreshReportTimer);\r\n      this.model.refreshReportTimer = null;\r\n    }\r\n\r\n    if (timeout && timeout > 0) {\r\n      this.model.refreshReportTimer = setInterval(() => {\r\n        if (!this.model.showProgress) {\r\n          this.post('Refresh');\r\n        }\r\n      }, timeout * 1000);\r\n    }\r\n  }\r\n\r\n  public checkTrExp() {\r\n    if (!this.model.options.cloudMode && !this.model.options.serverMode && !this.model.options.standaloneJsMode && !this.model.options.reportDesignerMode && !this.model.options.alternateValid) {\r\n      let buildDate = new Date();\r\n      try {\r\n        buildDate = new Date(this.model.options.buildDate);\r\n      } catch { }\r\n\r\n      const trDays = Math.floor(((new Date()).getTime() - buildDate.getTime()) / 1000 / 60 / 60 / 24);\r\n      if (trDays > 45) {\r\n        setTimeout(() => {\r\n          const message = trDays > 60 ? this.model.loc('NoticesYourTrialHasExpired') : this.model.loc('NoticesYouUsingTrialVersion');\r\n          const image = 'Notifications.Warning.png';\r\n          const buttonCaption = this.model.loc('ButtonOk');\r\n          let cancelAction: any;\r\n          let action: any;\r\n\r\n          if (trDays > 60) {\r\n            action = cancelAction = () => { window.location.href = 'https://www.stimulsoft.com/en/online-store'; };\r\n          }\r\n\r\n          this.model.notificationFormOptions = { message, image, buttonCaption, cancelAction, action };\r\n          this.formService.showForm('notificationForm');\r\n        }, 3000);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { Item } from './objects';\r\n\r\n@Injectable()\r\nexport class CollectionsService {\r\n\r\n  constructor(public model: ModelService) { }\r\n\r\n  public getImageTypesItems() {\r\n    const items = [];\r\n    if (this.model.options.exports.showExportToImageBmp) { items.push(new Item('Bmp', 'Bmp', null, 'Bmp')); }\r\n    if (this.model.options.exports.showExportToImageGif) { items.push(new Item('Gif', 'Gif', null, 'Gif')); }\r\n    if (this.model.options.exports.showExportToImageJpeg) { items.push(new Item('Jpeg', 'Jpeg', null, 'Jpeg')); }\r\n    if (this.model.options.exports.showExportToImagePcx) { items.push(new Item('Pcx', 'Pcx', null, 'Pcx')); }\r\n    if (this.model.options.exports.showExportToImagePng) { items.push(new Item('Png', 'Png', null, 'Png')); }\r\n    if (this.model.options.exports.showExportToImageTiff) { items.push(new Item('Tiff', 'Tiff', null, 'Tiff')); }\r\n    if (this.model.options.exports.showExportToImageMetafile) { items.push(new Item('Emf', 'Emf', null, 'Emf')); }\r\n    if (this.model.options.exports.showExportToImageSvg) { items.push(new Item('Svg', 'Svg', null, 'Svg')); }\r\n    if (this.model.options.exports.showExportToImageSvgz) { items.push(new Item('Svgz', 'Svgz', null, 'Svgz')); }\r\n\r\n    return items;\r\n  }\r\n\r\n  public getDataTypesItems() {\r\n    const items = [];\r\n    if (this.model.options.exports.showExportToCsv) { items.push(new Item('Csv', 'Csv', null, 'Csv')); }\r\n    if (this.model.options.exports.showExportToDbf) { items.push(new Item('Dbf', 'Dbf', null, 'Dbf')); }\r\n    if (this.model.options.exports.showExportToXml) { items.push(new Item('Xml', 'Xml', null, 'Xml')); }\r\n    if (this.model.options.exports.showExportToDif) { items.push(new Item('Dif', 'Dif', null, 'Dif')); }\r\n    if (this.model.options.exports.showExportToSylk) { items.push(new Item('Sylk', 'Sylk', null, 'Sylk')); }\r\n    if (this.model.options.exports.showExportToJson) { items.push(new Item('Json', 'Json', null, 'Json')); }\r\n\r\n    return items;\r\n  }\r\n\r\n  public getExcelTypesItems() {\r\n    const items = [];\r\n    if (this.model.options.exports.showExportToExcel) { items.push(new Item('Excel', 'Excel', null, 'Excel')); }\r\n    if (this.model.options.exports.showExportToExcelBiff) { items.push(new Item('ExcelBiff', 'Excel 97-2003', null, 'ExcelBiff')); }\r\n    if (this.model.options.exports.showExportToExcelXml) { items.push(new Item('ExcelXml', 'Excel Xml 2003', null, 'ExcelXml')); }\r\n\r\n    return items;\r\n  }\r\n\r\n  public getHtmlTypesItems() {\r\n    const items = [];\r\n    if (this.model.options.exports.showExportToHtml) { items.push(new Item('Html', 'Html', null, 'Html')); }\r\n    if (this.model.options.exports.showExportToHtml5) { items.push(new Item('Html5', 'Html5', null, 'Html5')); }\r\n    if (this.model.options.exports.showExportToMht) { items.push(new Item('Mht', 'Mht', null, 'Mht')); }\r\n\r\n    return items;\r\n  }\r\n\r\n  public getZoomItems() {\r\n    const items = [];\r\n    [0.25, 0.5, 0.75, 1, 1.25, 1.5, 2].forEach((item, i) => items.push(new Item('item' + i, (item * 100) + '%', null, item)));\r\n    return items;\r\n  }\r\n\r\n  public getImageFormatForHtmlItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', 'Jpeg', null, 'Jpeg'));\r\n    items.push(new Item('item1', 'Gif', null, 'Gif'));\r\n    items.push(new Item('item2', 'Bmp', null, 'Bmp'));\r\n    items.push(new Item('item3', 'Png', null, 'Png'));\r\n\r\n    return items;\r\n  }\r\n\r\n  public getExportModeItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', 'Table', null, 'Table'));\r\n    items.push(new Item('item1', 'Span', null, 'Span'));\r\n    items.push(new Item('item2', 'Div', null, 'Div'));\r\n\r\n    return items;\r\n  }\r\n\r\n  public getImageResolutionItems() {\r\n    const items = [];\r\n    ['10', '25', '50', '75', '100', '200', '300', '400', '500'].forEach((item, i) => items.push(new Item('item' + i, item, null, parseInt(item, 10))));\r\n    return items;\r\n  }\r\n\r\n  public getImageCompressionMethodItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', 'Jpeg', null, 'Jpeg'));\r\n    items.push(new Item('item1', 'Flate', null, 'Flate'));\r\n    return items;\r\n  }\r\n\r\n  public getImageQualityItems() {\r\n    const items = [];\r\n    [0.25, 0.5, 0.75, 0.85, 0.9, 0.95, 1].forEach((item, i) => items.push(new Item('item' + i, (item * 100).toString(), null, item)));\r\n    return items;\r\n  }\r\n\r\n  public getBorderTypeItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', this.model.loc('BorderTypeSimple'), null, 'Simple'));\r\n    items.push(new Item('item1', this.model.loc('BorderTypeSingle'), null, 'UnicodeSingle'));\r\n    items.push(new Item('item2', this.model.loc('BorderTypeDouble'), null, 'UnicodeDouble'));\r\n\r\n    return items;\r\n  }\r\n\r\n  public getEncodingDataItems() {\r\n    const items = [];\r\n    this.model.encodingData.forEach((item, i) => items.push(new Item('item' + i, item.value, null, item.key)));\r\n    return items;\r\n  }\r\n\r\n  public getImageFormatItems(withoutMonochrome: boolean = false) {\r\n    const items = [];\r\n    items.push(new Item('item0', this.model.loc('ImageFormatColor'), null, 'Color'));\r\n    items.push(new Item('item1', this.model.loc('ImageFormatGrayscale'), null, 'Grayscale'));\r\n    if (!withoutMonochrome) { items.push(new Item('item2', this.model.loc('ImageFormatMonochrome'), null, 'Monochrome')); }\r\n\r\n    return items;\r\n  }\r\n\r\n  public getMonochromeDitheringTypeItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', 'None', null, 'None'));\r\n    items.push(new Item('item1', 'FloydSteinberg', null, 'FloydSteinberg'));\r\n    items.push(new Item('item2', 'Ordered', null, 'Ordered'));\r\n\r\n    return items;\r\n  }\r\n\r\n  public getTiffCompressionSchemeItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', 'Default', null, 'Default'));\r\n    items.push(new Item('item1', 'CCITT3', null, 'CCITT3'));\r\n    items.push(new Item('item2', 'CCITT4', null, 'CCITT4'));\r\n    items.push(new Item('item3', 'LZW', null, 'LZW'));\r\n    items.push(new Item('item4', 'None', null, 'None'));\r\n    items.push(new Item('item5', 'Rle', null, 'Rle'));\r\n\r\n    return items;\r\n  }\r\n\r\n  public getEncodingDifFileItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', '437', null, '437'));\r\n    items.push(new Item('item1', '850', null, '850'));\r\n    items.push(new Item('item2', '852', null, '852'));\r\n    items.push(new Item('item3', '857', null, '857'));\r\n    items.push(new Item('item4', '860', null, '860'));\r\n    items.push(new Item('item5', '861', null, '861'));\r\n    items.push(new Item('item6', '862', null, '862'));\r\n    items.push(new Item('item7', '863', null, '863'));\r\n    items.push(new Item('item8', '865', null, '865'));\r\n    items.push(new Item('item9', '866', null, '866'));\r\n    items.push(new Item('item10', '869', null, '869'));\r\n\r\n    return items;\r\n  }\r\n\r\n  public getExportModeRtfItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', this.model.loc('ExportModeRtfTable'), null, 'Table'));\r\n    items.push(new Item('item1', this.model.loc('ExportModeRtfFrame'), null, 'Frame'));\r\n\r\n    return items;\r\n  }\r\n\r\n  public getEncodingDbfFileItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', 'Default', null, 'Default'));\r\n    items.push(new Item('item1', '437 U.S. MS-DOS', null, 'USDOS'));\r\n    items.push(new Item('item2', '620 Mazovia(Polish) MS-DOS', null, 'MazoviaDOS'));\r\n    items.push(new Item('item3', '737 Greek MS-DOS(437G)', null, 'GreekDOS'));\r\n    items.push(new Item('item4', '850 International MS-DOS', null, 'InternationalDOS'));\r\n    items.push(new Item('item5', '852 Eastern European MS-DOS', null, 'EasternEuropeanDOS'));\r\n    items.push(new Item('item6', '857 Turkish MS-DOS', null, 'TurkishDOS'));\r\n    items.push(new Item('item7', '861 Icelandic MS-DOS', null, 'IcelandicDOS'));\r\n    items.push(new Item('item8', '865 Nordic MS-DOS', null, 'NordicDOS'));\r\n    items.push(new Item('item9', '866 Russian MS-DOS', null, 'RussianDOS'));\r\n    items.push(new Item('item10', '895 Kamenicky(Czech) MS-DOS', null, 'KamenickyDOS'));\r\n    items.push(new Item('item11', '1250 Eastern European Windows', null, 'EasternEuropeanWindows'));\r\n    items.push(new Item('item12', '1251 Russian Windows', null, 'RussianWindows'));\r\n    items.push(new Item('item13', '1252 WindowsANSI', null, 'WindowsANSI'));\r\n    items.push(new Item('item14', '1253 GreekWindows', null, 'GreekWindows'));\r\n    items.push(new Item('item15', '1254 TurkishWindows', null, 'TurkishWindows'));\r\n    items.push(new Item('item16', '10000 StandardMacintosh', null, 'StandardMacintosh'));\r\n    items.push(new Item('item17', '10006 GreekMacintosh', null, 'GreekMacintosh'));\r\n    items.push(new Item('item18', '10007 RussianMacintosh', null, 'RussianMacintosh'));\r\n    items.push(new Item('item19', '10029 EasternEuropeanMacintosh', null, 'EasternEuropeanMacintosh'));\r\n\r\n    return items;\r\n  }\r\n\r\n  public getAllowEditableItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', this.model.loc('NameYes'), null, 'Yes'));\r\n    items.push(new Item('item1', this.model.loc('NameNo'), null, 'No'));\r\n\r\n    return items;\r\n  }\r\n\r\n  public getEncryptionKeyLengthItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', '40 bit RC4 (Acrobat 3)', null, 'Bit40'));\r\n    items.push(new Item('item1', '128 bit RC4 (Acrobat 5)', null, 'Bit128'));\r\n    items.push(new Item('item2', '128 bit AES (Acrobat 7)', null, 'Bit128_r4'));\r\n    items.push(new Item('item3', '256 bit AES (Acrobat 9)', null, 'Bit256_r5'));\r\n    items.push(new Item('item4', '256 bit AES (Acrobat X)', null, 'Bit256_r6'));\r\n\r\n    return items;\r\n  }\r\n\r\n  public getDataExportModeItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', this.model.loc('BandsFilterDataOnly'), null, 'Data'));\r\n    items.push(new Item('item1', this.model.loc('BandsFilterDataAndHeaders'), null, 'DataAndHeaders'));\r\n    items.push(new Item('item2', this.model.loc('BandsFilterDataAndHeadersFooters'), null, 'DataAndHeadersFooters'));\r\n    items.push(new Item('item3', this.model.loc('BandsFilterAllBands'), null, 'AllBands'));\r\n    return items;\r\n  }\r\n\r\n  public getFilterConditionItems(dataType) {\r\n    const items = [];\r\n    switch (dataType) {\r\n      case 'String':\r\n        items.push(new Item('item0', this.model.loc('ConditionEqualTo'), '', 'EqualTo'));\r\n        items.push(new Item('item1', this.model.loc('ConditionNotEqualTo'), '', 'NotEqualTo'));\r\n        items.push('separator1');\r\n        items.push(new Item('item2', this.model.loc('ConditionContaining'), '', 'Containing'));\r\n        items.push(new Item('item3', this.model.loc('ConditionNotContaining'), '', 'NotContaining'));\r\n        items.push('separator2');\r\n        items.push(new Item('item4', this.model.loc('ConditionBeginningWith'), '', 'BeginningWith'));\r\n        items.push(new Item('item5', this.model.loc('ConditionEndingWith'), '', 'EndingWith'));\r\n        items.push('separator3');\r\n        items.push(new Item('item2', this.model.loc('ConditionBetween'), '', 'Between'));\r\n        items.push(new Item('item3', this.model.loc('ConditionNotBetween'), '', 'NotBetween'));\r\n        items.push('separator4');\r\n        items.push(new Item('item6', this.model.loc('ConditionGreaterThan'), '', 'GreaterThan'));\r\n        items.push(new Item('item7', this.model.loc('ConditionGreaterThanOrEqualTo'), '', 'GreaterThanOrEqualTo'));\r\n        items.push('separator5');\r\n        items.push(new Item('item8', this.model.loc('ConditionLessThan'), '', 'LessThan'));\r\n        items.push(new Item('item9', this.model.loc('ConditionLessThanOrEqualTo'), '', 'LessThanOrEqualTo'));\r\n        items.push('separator6');\r\n        items.push(new Item('item10', this.model.loc('ConditionIsNull'), '', 'IsNull'));\r\n        items.push(new Item('item11', this.model.loc('ConditionIsNotNull'), '', 'IsNotNull'));\r\n        items.push('separator7');\r\n        items.push(new Item('item12', this.model.loc('ConditionIsBlank'), '', 'IsBlank'));\r\n        items.push(new Item('item13', this.model.loc('ConditionIsNotBlank'), '', 'IsNotBlank'));\r\n        break;\r\n      case 'Numeric':\r\n      case 'DateTime':\r\n        {\r\n          items.push(new Item('item0', this.model.loc('ConditionEqualTo'), '', 'EqualTo'));\r\n        }\r\n        items.push(new Item('item1', this.model.loc('ConditionNotEqualTo'), '', 'NotEqualTo'));\r\n        items.push('separator1');\r\n        items.push(new Item('item2', this.model.loc('ConditionBetween'), '', 'Between'));\r\n        items.push(new Item('item3', this.model.loc('ConditionNotBetween'), '', 'NotBetween'));\r\n        items.push('separator2');\r\n        items.push(new Item('item4', this.model.loc('ConditionGreaterThan'), '', 'GreaterThan'));\r\n        items.push(new Item('item5', this.model.loc('ConditionGreaterThanOrEqualTo'), '', 'GreaterThanOrEqualTo'));\r\n        items.push('separator3');\r\n        items.push(new Item('item6', this.model.loc('ConditionLessThan'), '', 'LessThan'));\r\n        items.push(new Item('item7', this.model.loc('ConditionLessThanOrEqualTo'), '', 'LessThanOrEqualTo'));\r\n        items.push('separator4');\r\n        items.push(new Item('item8', this.model.loc('ConditionIsNull'), '', 'IsNull'));\r\n        items.push(new Item('item9', this.model.loc('ConditionIsNotNull'), '', 'IsNotNull'));\r\n        break;\r\n      case 'Boolean':\r\n        {\r\n          items.push(new Item('item0', this.model.loc('ConditionEqualTo'), '', 'EqualTo'));\r\n        }\r\n        items.push(new Item('item1', this.model.loc('ConditionNotEqualTo'), '', 'NotEqualTo'));\r\n        break;\r\n    }\r\n\r\n    return items;\r\n  }\r\n\r\n  public getBoolItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', this.model.loc('NameTrue'), null, 'True'));\r\n    items.push(new Item('item1', this.model.loc('NameFalse'), null, 'False'));\r\n\r\n    return items;\r\n  }\r\n\r\n  public getPaperSizesItems() {\r\n    const items = [];\r\n    this.model.paperSizes.forEach((item, i) => items.push(new Item('item' + i, item, null, item)));\r\n    return items;\r\n  }\r\n\r\n  public getOrientationItems() {\r\n    const items = [];\r\n    items.push(new Item('item0', this.model.loc('Portrait'), null, 'Portrait'));\r\n    items.push(new Item('item1', this.model.loc('Landscape'), null, 'Landscape'));\r\n\r\n    return items;\r\n  }\r\n\r\n  public getDashboardImageQualityItems() {\r\n    const items = [];\r\n    [50, 75, 100, 150, 200, 300, 500].forEach((item, i) => items.push(new Item('item' + i, item + '%', null, item.toString())));\r\n    return items;\r\n  }\r\n\r\n  public getPdfSecurityCertificatesItems() {\r\n    let items = [];\r\n    if (this.model.pdfSecurityCertificates) {\r\n      for (var i = 0; i < this.model.pdfSecurityCertificates.length; i++) {\r\n        var item = this.model.pdfSecurityCertificates[i];\r\n        items.push(new Item('item' + i, \"Name: \" + item.name + \"<br>Issuer: \" + item.issuer + \"<br>Valid from: \" + item.from + \" to \" + item.to, null, item.thumbprint, null, null, null, 'DigitalSignature'));\r\n      }\r\n    }\r\n    return items;\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ExportFormSettings, ExportComponent, Message } from './objects';\r\nimport { FormService } from '../forms/form.service';\r\nimport { HelperService } from './helper.service';\r\nimport { ModelService } from './model.service';\r\nimport { CollectionsService } from './collections.service';\r\nimport { ControllerService } from './controller.service';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ExportService {\r\n\r\n  public exportFormSettings: ExportFormSettings;\r\n  public exportSettings: any = {};\r\n  public format: string;\r\n  public sendMail = false;\r\n\r\n  private subject = new Subject<any>();\r\n\r\n  constructor(public formService: FormService, public helper: HelperService, public model: ModelService, public collections: CollectionsService,\r\n    public controller: ControllerService) {\r\n\r\n    controller.getActionMessage().subscribe((message: Message) => {\r\n      switch (message.action) {\r\n        case 'Export':\r\n          this.export(message.data.format);\r\n          break;\r\n        case 'SendEmail':\r\n          this.export(message.data.format, false, true);\r\n          break;\r\n      }\r\n    });\r\n  }\r\n\r\n  public getMessage(): Observable<any> {\r\n    return this.subject.asObservable();\r\n  }\r\n\r\n  public export(format: string, update: boolean = false, sendMail: boolean = false) {\r\n    if (!this.helper.checkCloudAuthorization('export')) {\r\n      return;\r\n    }\r\n\r\n    this.sendMail = sendMail;\r\n    this.format = format;\r\n    this.exportSettings = this.getDefaultExportSettings(this.format);\r\n\r\n    if ((this.model.options.exports.showExportDialog && !sendMail) || (this.model.options.email.showExportDialog && sendMail)) {\r\n      this.exportFormSettings = this.getExportSetings(update);\r\n      if (!update) {\r\n        this.formService.closeForm('exportForm');\r\n        setTimeout(() => {\r\n          this.formService.showForm('exportForm');\r\n        });\r\n      }\r\n    } else {\r\n      this.postExport();\r\n    }\r\n  }\r\n\r\n  public postExport() {\r\n    if (!this.sendMail) {\r\n      this.controller.postExport(this.format, this.exportSettings);\r\n    } else {\r\n      this.subject.next('postMail');\r\n    }\r\n  }\r\n\r\n  getExportSetings(update: boolean): ExportFormSettings {\r\n    let result: ExportFormSettings;\r\n\r\n    this.getDefaultSettings(update);\r\n\r\n    switch (this.format) {\r\n      case 'Document':\r\n        result = { components: this.getComponents(['SaveReportMdc', 'SaveReportMdz', 'SaveReportMdx', 'SaveReportPassword']) };\r\n        break;\r\n\r\n      case 'Pdf':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'ImageResolution', 'ImageCompressionMethod',\r\n            'AllowEditable', 'ImageQuality', /*'StandardPdfFonts',*/ 'EmbeddedFonts', /*'UseUnicode', 'Compressed',*/ 'ExportRtfTextAsImage', 'PdfACompliance', 'UseDigitalSignature', 'DocumentSecurityButton', 'DigitalSignatureButton',\r\n            'OpenAfterExport', 'PasswordInputUser', 'PasswordInputOwner', 'PrintDocument', 'ModifyContents', 'CopyTextAndGraphics',\r\n            'AddOrModifyTextAnnotations', 'KeyLength', 'GetCertificateFromCryptoUI', 'SubjectNameString']),\r\n          openAfterExport: true\r\n        };\r\n        break;\r\n      case 'Xps':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'ImageResolution', 'ImageQuality', 'OpenAfterExport',\r\n            'ExportRtfTextAsImage']),\r\n          openAfterExport: true\r\n        };\r\n        break;\r\n      case 'PowerPoint':\r\n        result = { components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'ImageResolution', 'ImageQuality']) };\r\n        break;\r\n\r\n      case 'Html':\r\n        result = {\r\n          components: this.getComponents(['HtmlType', 'Zoom', 'ImageFormatForHtml', 'ExportMode', 'UseEmbeddedImages', 'AddPageBreaks']),\r\n          openAfterExport: true\r\n        };\r\n        break;\r\n\r\n      case 'Html5':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'HtmlType', 'ImageFormatForHtml', 'ImageResolution',\r\n            'ImageQuality', 'ContinuousPages', 'OpenAfterExport']),\r\n          openAfterExport: true\r\n        };\r\n        break;\r\n      case 'Mht':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'HtmlType', 'Zoom', 'ImageFormatForHtml',\r\n            'ExportMode', 'AddPageBreaks'])\r\n        };\r\n        break;\r\n      case 'Text':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'KillSpaceLines',\r\n            'PutFeedPageCode', 'DrawBorder', 'CutLongLines', 'BorderType', 'ZoomX', 'ZoomY', 'EncodingTextOrCsvFile'])\r\n        };\r\n        break;\r\n      case 'Rtf':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'ImageResolution',\r\n            'ImageQuality', 'ExportModeRtf', 'UsePageHeadersAndFooters', 'RemoveEmptySpaceAtBottom'])\r\n        };\r\n        break;\r\n      case 'Word':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'ImageResolution',\r\n            'ImageQuality', 'UsePageHeadersAndFooters', 'RemoveEmptySpaceAtBottom'])\r\n        };\r\n        break;\r\n      case 'Odt':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'ImageResolution',\r\n            'ImageQuality', 'RemoveEmptySpaceAtBottom'])\r\n        };\r\n        break;\r\n      case 'ExcelBiff':\r\n      case 'Excel':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'ExcelType', 'ImageResolution',\r\n            'ImageQuality', 'DataExportMode', 'ExportObjectFormatting', 'UseOnePageHeaderAndFooter', 'ExportEachPageToSheet', 'ExportPageBreaks'])\r\n        };\r\n        break;\r\n      case 'ExcelXml':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'ExcelType'])\r\n        };\r\n        break;\r\n      case 'Ods':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'ImageResolution',\r\n            'ImageQuality'])\r\n        };\r\n        break;\r\n      case 'Csv':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'DataType', 'EncodingTextOrCsvFile',\r\n            'Separator', 'DataExportMode', 'SkipColumnHeaders'])\r\n        };\r\n        break;\r\n      case 'Dbf':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'DataType', 'EncodingDbfFile'])\r\n        };\r\n        break;\r\n      case 'Dif':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'DataType', 'ExportDataOnly',\r\n            'UseDefaultSystemEncoding', 'EncodingDifFile'])\r\n        };\r\n        break;\r\n      case 'Sylk':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'DataType', 'ExportDataOnly',\r\n            'UseDefaultSystemEncoding', 'EncodingDifFile'])\r\n        };\r\n        break;\r\n      case 'Json':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'DataType', 'DataExportMode'])\r\n        };\r\n        break;\r\n      case 'Xml':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'DataType'])\r\n        };\r\n        break;\r\n      case 'ImageBmp':\r\n      case 'ImageGif':\r\n      case 'ImageJpeg':\r\n      case 'ImagePcx':\r\n      case 'ImagePng':\r\n      case 'ImageTiff':\r\n      case 'ImageEmf':\r\n      case 'ImageSvg':\r\n      case 'ImageSvgz':\r\n        result = {\r\n          components: this.getComponents(['PageRangeGroup', 'PageRangeAll', 'PageRangeCurrentPage', 'PageRangePages', 'PageRangePagesText', 'SettingsGroup', 'ImageType', 'ImageZoom', 'ImageResolution',\r\n            'ImageFormat', 'DitheringType', 'TiffCompressionScheme', 'CompressToArchive', 'CutEdges'])\r\n        };\r\n        break;\r\n    }\r\n\r\n    result.groups = this.getGroups(this.format);\r\n    result.update = update;\r\n    return result;\r\n  }\r\n\r\n  getComponents(names: string[]): ExportComponent[] {\r\n    const mrgn = '8px';\r\n    const components: ExportComponent[] = [];\r\n    names.forEach(name => {\r\n      switch (name) {\r\n        case 'ImageType':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('Type'), width: 160, tooltip: this.model.loc('TypeTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getImageTypesItems()\r\n          });\r\n          break;\r\n\r\n        case 'DataType':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('Type'), width: 160, tooltip: this.model.loc('TypeTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getDataTypesItems()\r\n          });\r\n          break;\r\n\r\n        case 'ExcelType':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('Type'), width: 160, tooltip: this.model.loc('TypeTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getExcelTypesItems()\r\n          });\r\n          break;\r\n\r\n        case 'HtmlType':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('Type'), width: 160, tooltip: this.model.loc('TypeTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getHtmlTypesItems()\r\n          });\r\n          break;\r\n\r\n        case 'Zoom':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('ZoomHtml'), width: 160, tooltip: this.model.loc('ZoomHtmlTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getZoomItems()\r\n          });\r\n          break;\r\n\r\n        case 'ImageZoom':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('ZoomHtml'), width: 160, tooltip: this.model.loc('ZoomHtmlTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getZoomItems()\r\n          });\r\n          break;\r\n\r\n        case 'ImageFormatForHtml':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('ImageFormatForHtml'), width: 160, tooltip: this.model.loc('ImageFormatForHtmlTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getImageFormatForHtmlItems()\r\n          });\r\n          break;\r\n\r\n        case 'ExportMode':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('ExportMode'), width: 160, tooltip: this.model.loc('ExportModeTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getExportModeItems()\r\n          });\r\n          break;\r\n\r\n        case 'CompressToArchive':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('CompressToArchive'), tooltip: this.model.loc('CompressToArchiveTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'UseEmbeddedImages':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('EmbeddedImageData'), tooltip: this.model.loc('EmbeddedImageDataTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'AddPageBreaks':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('AddPageBreaks'), tooltip: this.model.loc('AddPageBreaksTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'ImageResolution':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('ImageResolution'), width: 160, tooltip: this.model.loc('ImageResolutionTooltip'),\r\n            margin: '2px 4px 2px ' + mrgn, items: this.collections.getImageResolutionItems()\r\n          });\r\n          break;\r\n\r\n        case 'ImageCompressionMethod':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('ImageCompressionMethod'), width: 160, tooltip: this.model.loc('ImageCompressionMethodTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getImageCompressionMethodItems()\r\n          });\r\n          break;\r\n\r\n        case 'AllowEditable':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('AllowEditable'), width: 160, tooltip: this.model.loc('AllowEditableTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getAllowEditableItems()\r\n          });\r\n          break;\r\n\r\n        case 'ImageQuality':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('ImageQuality'), width: 160, tooltip: this.model.loc('ImageQualityTooltip'),\r\n            margin: '2px 4px 2px ' + mrgn, items: this.collections.getImageQualityItems()\r\n          });\r\n          break;\r\n\r\n        case 'ContinuousPages':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('ContinuousPages'), tooltip: this.model.loc('ContinuousPagesTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'StandardPdfFonts':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('StandardPDFFonts'), tooltip: this.model.loc('StandardPDFFontsTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'EmbeddedFonts':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('EmbeddedFonts'), tooltip: this.model.loc('EmbeddedFontsTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'UseUnicode':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('UseUnicode'), tooltip: this.model.loc('UseUnicodeTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'Compressed':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('Compressed'), tooltip: this.model.loc('CompressedTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'ExportRtfTextAsImage':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('ExportRtfTextAsImage'), tooltip: this.model.loc('ExportRtfTextAsImageTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'PdfACompliance':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('PdfACompliance'), tooltip: this.model.loc('PdfAComplianceTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'KillSpaceLines':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('KillSpaceLines'), tooltip: this.model.loc('KillSpaceLinesTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'PutFeedPageCode':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('PutFeedPageCode'), tooltip: this.model.loc('PutFeedPageCodeTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'DrawBorder':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('DrawBorder'), tooltip: this.model.loc('DrawBorderTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'CutLongLines':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('CutLongLines'), tooltip: this.model.loc('CutLongLinesTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'BorderType':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('BorderType'), width: 160, tooltip: this.model.loc('BorderTypeTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getBorderTypeItems()\r\n          });\r\n          break;\r\n\r\n        case 'ZoomX':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('ZoomXY').replace(':', '') + ' X ', width: 160, tooltip: this.model.loc('ZoomXYTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getZoomItems()\r\n          });\r\n          break;\r\n\r\n        case 'ZoomY':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('ZoomXY').replace(':', '') + ' Y ', width: 160, tooltip: this.model.loc('ZoomXYTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getZoomItems()\r\n          });\r\n          break;\r\n\r\n        case 'EncodingTextOrCsvFile':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('EncodingData'), width: 160, tooltip: this.model.loc('EncodingDataTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getEncodingDataItems()\r\n          });\r\n          break;\r\n\r\n        case 'ImageFormat':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('ImageFormat'), width: 160, tooltip: this.model.loc('ImageFormatTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getImageFormatItems()\r\n          });\r\n          break;\r\n\r\n        case 'DitheringType':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('MonochromeDitheringType'), width: 160, tooltip: this.model.loc('MonochromeDitheringTypeTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getMonochromeDitheringTypeItems()\r\n          });\r\n          break;\r\n\r\n        case 'TiffCompressionScheme':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('TiffCompressionScheme'), width: 160, tooltip: this.model.loc('TiffCompressionSchemeTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getTiffCompressionSchemeItems()\r\n          });\r\n          break;\r\n\r\n        case 'CutEdges':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('CutEdges'), tooltip: this.model.loc('CutEdgesTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'MultipleFiles':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('MultipleFiles'), tooltip: this.model.loc('MultipleFilesTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'ExportDataOnly':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('ExportDataOnly'), tooltip: this.model.loc('ExportDataOnlyTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'UseDefaultSystemEncoding':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('UseDefaultSystemEncoding'), tooltip: this.model.loc('UseDefaultSystemEncodingTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'EncodingDifFile':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('EncodingDifFile'), width: 160, tooltip: this.model.loc('EncodingDifFileTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getEncodingDifFileItems()\r\n          });\r\n          break;\r\n\r\n        case 'ExportModeRtf':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('ExportModeRtf'), width: 160, tooltip: this.model.loc('ExportModeRtfTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getExportModeRtfItems()\r\n          });\r\n          break;\r\n\r\n        case 'UsePageHeadersAndFooters':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('UsePageHeadersFooters'), tooltip: this.model.loc('UsePageHeadersFootersTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'RemoveEmptySpaceAtBottom':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('RemoveEmptySpace'), tooltip: this.model.loc('RemoveEmptySpaceTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'Separator':\r\n          components.push({\r\n            name, type: 'TextBox', label: this.model.loc('Separator'), tooltip: this.model.loc('SeparatorTooltip'), width: 160,\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'DataExportMode':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('BandsFilter'), width: 160, tooltip: this.model.loc('BandsFilterTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getDataExportModeItems()\r\n          });\r\n          break;\r\n\r\n        case 'SkipColumnHeaders':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('SkipColumnHeaders'), tooltip: this.model.loc('SkipColumnHeadersTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'ExportObjectFormatting':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('ExportObjectFormatting'), tooltip: this.model.loc('ExportObjectFormattingTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'UseOnePageHeaderAndFooter':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('UseOnePageHeaderFooter'), tooltip: this.model.loc('UseOnePageHeaderFooterTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'ExportEachPageToSheet':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('ExportEachPageToSheet'), tooltip: this.model.loc('ExportEachPageToSheetTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'ExportPageBreaks':\r\n          components.push({\r\n            name, type: 'CheckBox', caption: this.model.loc('ExportPageBreaks'), tooltip: this.model.loc('ExportPageBreaksTooltip'),\r\n            margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        case 'EncodingDbfFile':\r\n          components.push({\r\n            name, type: 'DropDownListForExportForm', label: this.model.loc('EncodingDbfFile'), width: 160, tooltip: this.model.loc('EncodingDbfFileTooltip'),\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getEncodingDbfFileItems()\r\n          });\r\n          break;\r\n\r\n        case 'DocumentSecurityButton':\r\n          components.push({\r\n            name, type: 'SmallButton', caption: this.model.loc('DocumentSecurityButton'), width: 160,\r\n            margin: '2px ' + mrgn + ' 2px ' + mrgn, items: this.collections.getEncodingDbfFileItems()\r\n          });\r\n          break;\r\n\r\n        case 'UseDigitalSignature':\r\n          components.push({\r\n            name, caption: this.model.loc('DigitalSignatureButton'), type: 'DropDownListForExportForm', tooltip: this.model.loc('UseDigitalSignatureTooltip'), width: 160,\r\n            items: this.collections.getPdfSecurityCertificatesItems(), margin: '4px ' + mrgn + ' 4px ' + mrgn\r\n          });\r\n          break;\r\n\r\n        default:\r\n          break;\r\n      }\r\n    });\r\n    return components;\r\n  }\r\n\r\n  getGroups(format: string): any {\r\n    const openingGroupsStr = this.helper.getCookie('StimulsoftWebViewerExportSettingsOpeningGroups');\r\n    const openingGroups = openingGroupsStr ? JSON.parse(openingGroupsStr) : null;\r\n    const pageRangeAllIsDisabled = format.indexOf('Image') === 0 && format !== 'ImageTiff';\r\n\r\n    return {\r\n      savingReportGroup: { visible: format === 'Document', opened: openingGroups ? openingGroups.SavingReportGroup : true },\r\n      pageRangeGroup: { visible: format !== 'Document', opened: openingGroups ? openingGroups.PageRangeGroup : true, pageRangeAllIsDisabled },\r\n      settingsGroup: { visible: format !== 'Document', opened: openingGroups ? openingGroups.SettingsGroup : false }\r\n    };\r\n  }\r\n\r\n  getStoredSettings(format?: string) {\r\n    let exportSettingsStr = this.model.options.exports.storeExportSettings ? this.helper.getCookie('StimulsoftWebViewerExportSettings' + this.getCommonExportFormat(format)) : null;\r\n    return exportSettingsStr != null ? JSON.parse(exportSettingsStr) : null;\r\n  }\r\n\r\n  getDefaultSettings(update: boolean): any {\r\n    let settings: any;\r\n    const exportSettings = this.getStoredSettings();\r\n    if (exportSettings != null) {\r\n      let exportFormat = exportSettings.ImageType || exportSettings.DataType || exportSettings.HtmlType;\r\n      delete exportSettings.ExcelType;\r\n      this.format = !update && exportFormat ? (exportSettings.ImageType ? 'Image' + exportFormat : exportFormat) : this.format;\r\n\r\n      const defSettings = this.getDefaultExportSettings(this.format);\r\n      const resultSettings: any = {};\r\n      Object.keys(defSettings).forEach(key => resultSettings[key] = exportSettings[key] || defSettings[key]);\r\n      Object.keys(exportSettings).forEach(key => resultSettings[key] = exportSettings[key] || defSettings[key]);\r\n\r\n      if (this.model.options.exports.openAfterExport === true || this.model.options.exports.openAfterExport === false) {\r\n        resultSettings.OpenAfterExport = this.model.options.exports.openAfterExport;\r\n      }\r\n\r\n      if (!(this.format === 'Pdf' || this.format === 'Html')) {\r\n        resultSettings.OpenAfterExport = false;\r\n      }\r\n\r\n      settings = resultSettings;\r\n    } else {\r\n      settings = this.getDefaultExportSettings(this.format);\r\n    }\r\n\r\n    this.updateTypes(settings);\r\n\r\n    this.exportSettings = this.helper.copyObject(settings);\r\n  }\r\n\r\n  updateTypes(defaultExportSettings: any) {\r\n    const types = ['ImageType', 'DataType', 'ExcelType', 'HtmlType'];\r\n    types.forEach((propertyName) => {\r\n      if (defaultExportSettings[propertyName]) {\r\n        switch (propertyName) {\r\n          case 'ImageType':\r\n            if (!this.model.options.exports.showExportToImageBmp && defaultExportSettings[propertyName] === 'Bmp') { defaultExportSettings[propertyName] = 'Gif'; }\r\n            if (!this.model.options.exports.showExportToImageGif && defaultExportSettings[propertyName] === 'Gif') { defaultExportSettings[propertyName] = 'Jpeg'; }\r\n            if (!this.model.options.exports.showExportToImageJpeg && defaultExportSettings[propertyName] === 'Jpeg') { defaultExportSettings[propertyName] = 'Pcx'; }\r\n            if (!this.model.options.exports.showExportToImagePcx && defaultExportSettings[propertyName] === 'Pcx') { defaultExportSettings[propertyName] = 'Png'; }\r\n            if (!this.model.options.exports.showExportToImagePng && defaultExportSettings[propertyName] === 'Png') { defaultExportSettings[propertyName] = 'Tiff'; }\r\n            if (!this.model.options.exports.showExportToImageTiff && defaultExportSettings[propertyName] === 'Tiff') { defaultExportSettings[propertyName] = 'Emf'; }\r\n            if (!this.model.options.exports.showExportToImageMetafile && defaultExportSettings[propertyName] === 'Emf') { defaultExportSettings[propertyName] = 'Svg'; }\r\n            if (!this.model.options.exports.showExportToImageSvg && defaultExportSettings[propertyName] === 'Svg') { defaultExportSettings[propertyName] = 'Svgz'; }\r\n            if (!this.model.options.exports.showExportToImageSvgz && defaultExportSettings[propertyName] === 'Svgz') { defaultExportSettings[propertyName] = 'Bmp'; }\r\n            break;\r\n\r\n          case 'DataType':\r\n            if (!this.model.options.exports.showExportToCsv && defaultExportSettings[propertyName] === 'Csv') { defaultExportSettings[propertyName] = 'Dbf'; }\r\n            if (!this.model.options.exports.showExportToDbf && defaultExportSettings[propertyName] === 'Dbf') { defaultExportSettings[propertyName] = 'Xml'; }\r\n            if (!this.model.options.exports.showExportToXml && defaultExportSettings[propertyName] === 'Xml') { defaultExportSettings[propertyName] = 'Dif'; }\r\n            if (!this.model.options.exports.showExportToDif && defaultExportSettings[propertyName] === 'Dif') { defaultExportSettings[propertyName] = 'Sylk'; }\r\n            if (!this.model.options.exports.showExportToSylk && defaultExportSettings[propertyName] === 'Sylk') { defaultExportSettings[propertyName] = 'Csv'; }\r\n            if (!this.model.options.exports.showExportToJson && defaultExportSettings[propertyName] === 'Json') { defaultExportSettings[propertyName] = 'Json'; }\r\n            break;\r\n\r\n          case 'ExcelType':\r\n            if (!this.model.options.exports.showExportToExcel && defaultExportSettings[propertyName] === 'Excel') { defaultExportSettings[propertyName] = 'ExcelBinary'; }\r\n            if (!this.model.options.exports.showExportToExcelBiff && defaultExportSettings[propertyName] === 'ExcelBinary') { defaultExportSettings[propertyName] = 'ExcelXml'; }\r\n            if (!this.model.options.exports.showExportToExcelXml && defaultExportSettings[propertyName] === 'ExcelXml') { defaultExportSettings[propertyName] = 'Excel'; }\r\n            break;\r\n\r\n          case 'HtmlType':\r\n            if (!this.model.options.exports.showExportToHtml && defaultExportSettings[propertyName] === 'Html') { defaultExportSettings[propertyName] = 'Html5'; }\r\n            if (!this.model.options.exports.showExportToHtml5 && defaultExportSettings[propertyName] === 'Html5') { defaultExportSettings[propertyName] = 'Mht'; }\r\n            if (!this.model.options.exports.showExportToMht && defaultExportSettings[propertyName] === 'Mht') { defaultExportSettings[propertyName] = 'Html'; }\r\n            break;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  getCommonExportFormat(format?: string): string {\r\n    format = format ?? this.format;\r\n    if (format === 'Html' || format === 'Html5' || format === 'Mht') { return 'Html'; }\r\n    if (format === 'ExcelBiff' || format === 'Excel' || format === 'ExcelXml' || format === 'ExcelBinary') { return 'Excel'; }\r\n    if (format === 'Csv' || format === 'Dbf' || format === 'Xml' || format === 'Dif' || format === 'Sylk') { return 'Data'; }\r\n    if (format === 'ImageBmp' || format === 'ImageGif' || format === 'ImageJpeg' || format === 'ImagePcx' || format === 'ImagePng' ||\r\n      format === 'ImageTiff' || format === 'ImageEmf' || format === 'ImageSvg' || format === 'ImageSvgz') { return 'Image'; }\r\n\r\n    return format;\r\n  }\r\n\r\n  public getDefaultExportSettings(format: string, isDashboardExport: boolean = false) {\r\n    let exportSettings = null;\r\n\r\n    if (isDashboardExport) {\r\n      return this.model.options.exports.defaultSettings['Dashboard' + format];\r\n    }\r\n\r\n    switch (format) {\r\n      case 'Document':\r\n        exportSettings = { Format: 'Mdc' };\r\n        break;\r\n\r\n      case 'Pdf':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiPdfExportSettings'];\r\n        break;\r\n\r\n      case 'Xps':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiXpsExportSettings'];\r\n        break;\r\n\r\n      case 'PowerPoint':\r\n      case 'Ppt2007':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiPowerPointExportSettings'] || this.model.options.exports.defaultSettings['StiPpt2007ExportSettings'];\r\n        break;\r\n\r\n      case 'Html':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiHtmlExportSettings'];\r\n        exportSettings.HtmlType = 'Html';\r\n        break;\r\n\r\n      case 'Html5':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiHtmlExportSettings'];\r\n        exportSettings.HtmlType = 'Html5';\r\n        break;\r\n\r\n      case 'Mht':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiHtmlExportSettings'];\r\n        exportSettings.HtmlType = 'Mht';\r\n        break;\r\n\r\n      case 'Text':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiTxtExportSettings'];\r\n        break;\r\n\r\n      case 'Rtf':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiRtfExportSettings'];\r\n        break;\r\n\r\n      case 'Word':\r\n      case 'Word2007':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiWordExportSettings'] || this.model.options.exports.defaultSettings['StiWord2007ExportSettings'];\r\n        break;\r\n\r\n      case 'Odt':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiOdtExportSettings'];\r\n        break;\r\n\r\n      case 'ExcelBiff':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiExcelExportSettings'];\r\n        exportSettings.ExcelType = 'ExcelBiff';\r\n        break;\r\n\r\n      case 'ExcelXml':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiExcelExportSettings'];\r\n        exportSettings.ExcelType = 'ExcelXml';\r\n        break;\r\n\r\n      case 'Excel':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiExcelExportSettings'];\r\n        exportSettings.ExcelType = 'Excel';\r\n        break;\r\n\r\n      case 'Ods':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiOdsExportSettings'];\r\n        break;\r\n\r\n      case 'ImageBmp':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiImageExportSettings'];\r\n        exportSettings.ImageType = 'Bmp';\r\n        break;\r\n\r\n      case 'ImageGif':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiImageExportSettings'];\r\n        exportSettings.ImageType = 'Gif';\r\n        break;\r\n\r\n      case 'ImageJpeg':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiImageExportSettings'];\r\n        exportSettings.ImageType = 'Jpeg';\r\n        break;\r\n\r\n      case 'ImagePcx':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiImageExportSettings'];\r\n        exportSettings.ImageType = 'Pcx';\r\n        break;\r\n\r\n      case 'ImagePng':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiImageExportSettings'];\r\n        exportSettings.ImageType = 'Png';\r\n        break;\r\n\r\n      case 'ImageTiff':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiImageExportSettings'];\r\n        exportSettings.ImageType = 'Tiff';\r\n        break;\r\n\r\n      case 'ImageSvg':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiImageExportSettings'];\r\n        exportSettings.ImageType = 'Svg';\r\n        break;\r\n\r\n      case 'ImageSvgz':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiImageExportSettings'];\r\n        exportSettings.ImageType = 'Svgz';\r\n        break;\r\n\r\n      case 'ImageEmf':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiImageExportSettings'];\r\n        exportSettings.ImageType = 'Emf';\r\n        break;\r\n\r\n      case 'Xml':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiDataExportSettings'];\r\n        exportSettings.DataType = 'Xml';\r\n        break;\r\n\r\n      case 'Csv':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiDataExportSettings'];\r\n        exportSettings.DataType = 'Csv';\r\n        break;\r\n\r\n      case 'Dbf':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiDataExportSettings'];\r\n        exportSettings.DataType = 'Dbf';\r\n        break;\r\n\r\n      case 'Dif':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiDataExportSettings'];\r\n        exportSettings.DataType = 'Dif';\r\n        break;\r\n\r\n      case 'Sylk':\r\n        exportSettings = this.model.options.exports.defaultSettings['StiDataExportSettings'];\r\n        exportSettings.DataType = 'Sylk';\r\n        break;\r\n    }\r\n\r\n    exportSettings.OpenAfterExport = !(this.model.options.exports.showOpenAfterExport === false);\r\n    if (!(format === 'Pdf' || format === 'Html')) {\r\n      exportSettings.OpenAfterExport = false;\r\n    }\r\n\r\n    return exportSettings;\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { ExportService } from './export.service';\r\nimport { FormService } from '../forms/form.service';\r\nimport { ControllerService } from './controller.service';\r\n\r\n@Injectable()\r\nexport class MailService {\r\n\r\n  constructor(public model: ModelService, public exportService: ExportService, public formService: FormService, public controller: ControllerService) {\r\n    exportService.getMessage().subscribe(event => {\r\n      if (event === 'postMail') {\r\n        this.postMail();\r\n      }\r\n    });\r\n  }\r\n\r\n  public postMail() {\r\n    this.fillDefaults();\r\n\r\n    if (this.model.options.email.showEmailDialog) {\r\n      this.formService.showForm('sendEmailForm');\r\n    } else {\r\n      this.sendMail();\r\n    }\r\n  }\r\n\r\n  public sendMail() {\r\n    const data = {\r\n      exportFormat: this.exportService.format,\r\n      exportSettings: this.exportService.exportSettings\r\n    };\r\n\r\n    this.formService.closeForm('sendEmailForm');\r\n    this.controller.post('EmailReport', this.model.options.actions.emailReport, data);\r\n    this.controller.actionSubject.next({ action: 'Email', data });\r\n  }\r\n\r\n  public fillDefaults() {\r\n    this.exportService.exportSettings.Email = this.model.options.email.defaultEmailAddress;\r\n    this.exportService.exportSettings.Message = this.model.options.email.defaultEmailMessage;\r\n    this.exportService.exportSettings.Subject = this.model.options.email.defaultEmailSubject;\r\n\r\n    let ext = this.exportService.format.toLowerCase().replace('image', '');\r\n    switch (ext) {\r\n      case 'excelbiff': ext = 'xls'; break;\r\n      case 'excel': ext = 'xlsx'; break;\r\n      case 'excelxml': ext = 'xls'; break;\r\n      case 'html5': ext = 'html'; break;\r\n      case 'jpeg': ext = 'jpg'; break;\r\n      case 'PowerPoint': ext = 'ppt'; break;\r\n      case 'text': ext = 'txt'; break;\r\n      case 'Word': ext = 'docx'; break;\r\n    }\r\n\r\n    this.exportService.exportSettings.Attachment = this.model.reportParams.reportFileName + '.' + ext;\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { HelperService } from './helper.service';\r\nimport { AnimationService } from './animation.service';\r\n\r\n@Injectable()\r\nexport class FindService {\r\n\r\n  private symbols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';\r\n  private findLabels: any[] = [];\r\n\r\n  public text = '';\r\n  public lastFindText = '';\r\n  public matchCase = false;\r\n  public matchWholeWord = false;\r\n  public findMode = false;\r\n\r\n  constructor(private model: ModelService, private helper: HelperService, private animationService: AnimationService) {\r\n    model.controls.findPanel.getVisibility().subscribe((value) => {\r\n      if (!value) {\r\n        this.hideFindLabels();\r\n        this.lastFindText = '';\r\n      }\r\n    });\r\n  }\r\n\r\n  public hideFindLabels() {\r\n    this.findLabels.forEach((findLabel) => {\r\n      const parentElement = findLabel.parentElement;\r\n      parentElement.removeChild(findLabel);\r\n      if (parentElement.oldPositionStyle) {\r\n        parentElement.style.position = parentElement.oldPositionStyle;\r\n      }\r\n    });\r\n\r\n    this.findLabels = [];\r\n    this.findMode = false;\r\n    this.lastFindText = '';\r\n  }\r\n\r\n  public selectFindLabel(direction: string) {\r\n    if (this.findLabels.length === 0) {\r\n      return;\r\n    }\r\n    let selectedIndex = 0;\r\n    const labels = this.findLabels;\r\n    for (let i = 0; i < labels.length; i++) {\r\n      if (labels[i].isSelected) {\r\n        labels[i].setSelected(false);\r\n        selectedIndex = i;\r\n        break;\r\n      }\r\n    }\r\n    if (direction === 'Next') {\r\n      selectedIndex++;\r\n      if (selectedIndex > labels.length - 1) {\r\n        selectedIndex = 0;\r\n      }\r\n    } else {\r\n      selectedIndex--;\r\n      if (selectedIndex < 0) {\r\n        selectedIndex = labels.length - 1;\r\n      }\r\n    }\r\n    labels[selectedIndex].setSelected(true);\r\n    this.goToFindedElement(labels[selectedIndex]);\r\n  }\r\n\r\n  public showFindLabels() {\r\n    this.hideFindLabels();\r\n    this.findMode = true;\r\n    this.lastFindText = this.text;\r\n    const text = this.matchCase ? this.text : this.text.toLowerCase();\r\n\r\n    this.model.pages.forEach(page => {\r\n      const pageElements = page.page.getElementsByTagName('*');\r\n      for (const pageElement of pageElements) {\r\n        let innerText = pageElement.innerHTML;\r\n        if (innerText && pageElement.childNodes.length === 1 && pageElement.childNodes[0].nodeName === '#text') {\r\n          if (!this.matchCase) {\r\n            innerText = innerText.toLowerCase();\r\n          }\r\n          if (innerText.indexOf(text) >= 0) {\r\n            if (this.matchWholeWord && !this.isWholeWord(innerText, text)) {\r\n              continue;\r\n            }\r\n            const label: any = document.createElement('div');\r\n            label.ownerElement = pageElement;\r\n            label.className = 'stiJsViewerFindLabel';\r\n            label.style.width = (pageElement.offsetWidth - 4) + 'px';\r\n            const labelHeight = pageElement.offsetHeight - 4;\r\n            label.style.height = labelHeight + 'px';\r\n            label.style.top = '0px';\r\n            label.style.left = '0px';\r\n            label.ownerElement.oldPositionStyle = label.ownerElement.style.position;\r\n            if (label.ownerElement.style.position !== 'absolute' && label.ownerElement.style.position !== 'fixed') {\r\n              label.ownerElement.style.position = 'relative';\r\n            }\r\n            pageElement.insertBefore(label, pageElement.childNodes[0]);\r\n\r\n            label.setSelected = function (state) {\r\n              this.isSelected = state;\r\n              this.style.border = '2px solid ' + (state ? 'red' : '#8a8a8a');\r\n            };\r\n\r\n            if (this.findLabels.length === 0) {\r\n              label.setSelected(true);\r\n            }\r\n            this.findLabels.push(label);\r\n          }\r\n        }\r\n      }\r\n    });\r\n\r\n    if (this.findLabels.length > 0) {\r\n      this.goToFindedElement(this.findLabels[0]);\r\n    }\r\n  }\r\n\r\n  goToFindedElement(findLabel: any) {\r\n    if (findLabel && findLabel.ownerElement) {\r\n      const targetTop = this.helper.findPosY(findLabel.ownerElement, this.model.options.appearance.scrollbarsMode ? 'stiJsViewerReportPanel' : null, true) - findLabel.ownerElement.offsetHeight - 50;\r\n      const d = new Date();\r\n      const endTime = d.getTime() + this.model.options.scrollDuration;\r\n      this.animationService.showAnimationForScroll(this.model.controls.reportPanel.el.nativeElement, targetTop, endTime, () => { });\r\n    }\r\n  }\r\n\r\n  isWholeWord(str: string, word: string): boolean {\r\n    const index = str.indexOf(word);\r\n    const preSymbol = str.substring(index - 1, index);\r\n    const nextSymbol = str.substring(index + word.length, index + word.length + 1);\r\n\r\n    return ((preSymbol === '' || this.symbols.indexOf(preSymbol) === -1) && (nextSymbol === '' || this.symbols.indexOf(nextSymbol) === -1));\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { ControllerService } from './controller.service';\r\nimport { ExportService } from './export.service';\r\nimport { HelperService } from './helper.service';\r\nimport { MailService } from './mail.service';\r\nimport { FindService } from './find.service';\r\nimport { ApiInterface } from './api.service';\r\n\r\n@Injectable()\r\nexport class ApiAngularService implements ApiInterface {\r\n\r\n  public EXPORT_FORMATS: string[] = ['Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n    'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n    'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'];\r\n\r\n  constructor(private model: ModelService, private controller: ControllerService, private exportService: ExportService,\r\n    private helper: HelperService, private mailService: MailService, private findService: FindService) { }\r\n\r\n  public dashboardExport(format: string, settings?: any) { }\r\n  public dashboardRefresh() { }\r\n  public dashboardResetAllFilters() { }\r\n\r\n  /**\r\n   * The current page number\r\n   */\r\n  public get currentPage(): number {\r\n    return this.model.reportParams.pageNumber;\r\n  }\r\n\r\n  public set currentPage(value: number) {\r\n    if (value >= 0 && value < this.model.reportParams.pagesCount) {\r\n      this.model.reportParams.pageNumber = value;\r\n      this.controller.getPages();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * The total pages count\r\n   */\r\n  public get pagesCount() {\r\n    return this.model.reportParams.pagesCount;\r\n  }\r\n\r\n  /**\r\n   * The view mode, can be 'SinglePage', 'Continuous' & 'MultiplePages'\r\n   */\r\n  public get viewMode(): string {\r\n    return this.model.reportParams.viewMode;\r\n  }\r\n\r\n  public set viewMode(value: string) {\r\n    if (value === 'SinglePage' || value === 'Continuous' || value === 'MultiplePages') {\r\n      this.model.reportParams.viewMode = value;\r\n      this.controller.getPages();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * The page zoom in percent\r\n   * From 1 to 1000\r\n   */\r\n  public get zoom(): number {\r\n    return this.model.reportParams.zoom;\r\n  }\r\n\r\n  public set zoom(value: number) {\r\n    if (value >= 1 && value <= 1000) {\r\n      this.model.reportParams.zoom = value;\r\n      this.controller.getPages();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Zoom page in height\r\n   */\r\n  public zoomPageHeight() {\r\n    this.controller.action({ name: 'ZoomOnePage' });\r\n  }\r\n\r\n  /**\r\n   * Zoom page in width\r\n   */\r\n  public zoomPageWidth() {\r\n    this.controller.action({ name: 'ZoomPageWidth' });\r\n  }\r\n\r\n  /**\r\n   * Print to PDF\r\n   */\r\n  public printPdf() {\r\n    this.controller.action({ name: 'PrintPdf' });\r\n  }\r\n\r\n  /**\r\n   * Print with preview\r\n   */\r\n  public printWithPreview() {\r\n    this.controller.action({ name: 'PrintWithPreview' });\r\n  }\r\n\r\n  /**\r\n   * Print without preview\r\n   */\r\n  public printWithoutPreview() {\r\n    this.controller.action({ name: 'PrintWithoutPreview' });\r\n  }\r\n\r\n  /**\r\n   * Show export form\r\n   *\r\n   * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n   * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n   * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'\r\n   */\r\n  public showExportForm(format: string) {\r\n    if (this.EXPORT_FORMATS.some(f => f === format)) {\r\n      this.controller.actionSubject.next({ action: 'Export', data: { format } });\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Show export form & email\r\n   *\r\n   * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n   * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n   * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'\r\n   */\r\n  public showExportEmailForm(format: string) {\r\n    if (this.EXPORT_FORMATS.some(f => f === format)) {\r\n      this.controller.actionSubject.next({ action: 'SendEmail', data: { format } });\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Export report to selected format\r\n   * Use default settings if not specified\r\n   *\r\n   * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n   * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n   * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'\r\n   *\r\n   * @param settings The export settings\r\n   */\r\n  public export(format: string, settings?: any) {\r\n    if (this.EXPORT_FORMATS.some(f => f === format)) {\r\n      const exportSettings = this.getExportSettings(format, settings);\r\n      this.controller.postExport(format, exportSettings);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Export report/dashboard to seleted format & email\r\n   * Use default settings if not specified\r\n   * Use default email settings if not specified\r\n   *\r\n   * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n   * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n   * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'\r\n   *\r\n   * @param settings The export settings\r\n   *\r\n   * @param email The email\r\n   *\r\n   * @param message The email message\r\n   *\r\n   * @param subject The email subject\r\n   */\r\n  public exportEmail(format: string, settings?: any, email?: string, subject?: string, message?: string) {\r\n    if (this.EXPORT_FORMATS.some(f => f === format)) {\r\n      this.exportService.exportSettings = this.getExportSettings(format, settings);\r\n      this.exportService.format = format;\r\n      this.mailService.fillDefaults();\r\n\r\n      if (email) {\r\n        this.exportService.exportSettings.Email = email;\r\n      }\r\n\r\n      if (message) {\r\n        this.exportService.exportSettings.Message = message;\r\n      }\r\n\r\n      if (subject) {\r\n        this.exportService.exportSettings.Subject = subject;\r\n      }\r\n\r\n      this.mailService.sendMail();\r\n    }\r\n  }\r\n\r\n  public get reportType(): string {\r\n    return \"Report\";\r\n  }\r\n\r\n  /**\r\n   * Search text in report\r\n   *\r\n   * @param text text to search\r\n   *\r\n   * @param matchCase\r\n   *\r\n   * @param matchWholeWord\r\n   */\r\n  public search(text: string, matchCase: boolean, matchWholeWord: boolean) {\r\n    this.findService.text = text;\r\n    this.findService.matchCase = matchCase;\r\n    this.findService.matchWholeWord = matchWholeWord;\r\n    this.findService.showFindLabels();\r\n  }\r\n  /**\r\n   * Select next or previous search\r\n   *\r\n   * @param direction 'Next' or 'Previous'\r\n   *\r\n   */\r\n  public selectSearchLabel(direction: string) {\r\n    this.findService.selectFindLabel(direction);\r\n  }\r\n\r\n  /**\r\n   * Hide search\r\n   */\r\n  public hideSearchLabels() {\r\n    this.findService.hideFindLabels();\r\n  }\r\n\r\n  private getExportSettings(format: string, settings?: any) {\r\n    this.exportService.sendMail = false;\r\n    this.exportService.format = format;\r\n    const exportSettings = this.helper.copyObject(this.exportService.getDefaultExportSettings(format));\r\n    if (settings) {\r\n      Object.keys(settings).forEach(key => exportSettings[key] = settings[key]);\r\n    }\r\n    return exportSettings;\r\n  }\r\n\r\n}\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { catchError, Observable, EMPTY } from 'rxjs';\r\nimport { ControllerService } from './controller.service';\r\nimport { ModelService } from './model.service';\r\nimport { FileSaverService } from './file.saver.service';\r\n\r\n@Injectable()\r\nexport class DashboardProxyService {\r\n\r\n  public jsObject: any;\r\n  public openReport = false;\r\n\r\n  constructor(private httpClient: HttpClient, public model: ModelService, public controller: ControllerService, public fileSaver: FileSaverService) {\r\n  }\r\n\r\n  public createConnection() {\r\n    let request: any = new Object();\r\n    request.method = \"POST\";\r\n    request.url = \"\";\r\n    request.headers = {};\r\n    request.responseType = \"text\";\r\n    request.readyState = 1;\r\n    request.status = 0;\r\n    request.responseText = null;\r\n    request.statusText = null;\r\n    request.id = null;\r\n\r\n    request.open = (method: string, url: string) => {\r\n      request.method = method;\r\n      request.url = url;\r\n    }\r\n\r\n    request.setRequestHeader = (key, value) => {\r\n      request.headers[key] = value;\r\n    }\r\n\r\n    request.abort = () => {\r\n    }\r\n\r\n    request.onreadystatechange = () => { }\r\n\r\n    request.send = (data) => {\r\n      let formData: FormData;\r\n\r\n      if (typeof data == 'object') {\r\n        if (this.model.properties) {\r\n          data['properties'] = this.model.encode(JSON.stringify(this.model.properties));\r\n        }\r\n\r\n        if (this.model.postParametersFunction) {\r\n          let postParamsF = this.model.postParametersFunction(data);\r\n          if (postParamsF) {\r\n            Object.keys(postParamsF).forEach(key => data[key] = postParamsF[key]);\r\n          }\r\n        }\r\n\r\n        formData = new FormData();\r\n        Object.keys(data).forEach(key => formData.append(key, data[key]));\r\n      }\r\n\r\n      let observable: Observable<any> = this.httpClient.post(request.url, formData ?? data, { responseType: request.responseType }).pipe(\r\n        catchError((error: HttpErrorResponse) => {\r\n          alert(JSON.stringify(error));\r\n          request.status = error.status;\r\n          request.statusText = error.statusText;\r\n          request.responseText = error.error;\r\n          request.readyState = 4;\r\n          request.onreadystatechange();\r\n          return EMPTY;\r\n        }));\r\n\r\n      observable.subscribe(data => {\r\n        request.readyState = 4;\r\n        if (request.responseType == \"text\") request.responseText = data;\r\n        else request.response = data;\r\n        request.status = 200;\r\n        request.onreadystatechange();\r\n\r\n        if (typeof data == 'string' && data.indexOf('{\"images\"') == 0 && this.model.proxyData != null) {\r\n          this.jsObject.options.reportDesignerMode = false;\r\n          setTimeout(() => {\r\n            this.jsObject.clearViewerState(!this.openReport);\r\n            this.jsObject.showReportPage(this.model.proxyData, this.jsObject);\r\n            this.model.proxyData = null;\r\n          }, 0);\r\n        }\r\n      });\r\n    }\r\n\r\n    return request;\r\n\r\n  };\r\n\r\n  public error(message: any) {\r\n    this.model.errorMessage = message;\r\n    this.controller.actionSubject.next({ action: 'Error' });\r\n  }\r\n\r\n  public export(data: any) {\r\n    this.controller.actionSubject.next({ action: 'ExportReport', data });\r\n  }\r\n\r\n  public email(data: any) {\r\n    this.controller.actionSubject.next({ action: 'Email', data });\r\n  }\r\n\r\n  public print(data: any) {\r\n    this.controller.actionSubject.next({ action: 'Print', data });\r\n  }\r\n\r\n  public design() {\r\n    this.controller.actionSubject.next({ action: 'Design' });\r\n  }\r\n\r\n  public async getText(url) {\r\n    return new Promise((resolve, reject) => {\r\n      let observable = this.httpClient.get(url, { responseType: 'text' }).pipe(\r\n        catchError((error: HttpErrorResponse) => {\r\n          console.log(error);\r\n          return EMPTY;\r\n        }));\r\n\r\n      observable.subscribe(data => {\r\n        resolve(data);\r\n      });\r\n    });\r\n  }\r\n\r\n  public async getData(url, params) {\r\n    return new Promise((resolve, reject) => {\r\n      let observable = this.httpClient.post(url, params, { responseType: 'blob' }).pipe(\r\n        catchError((error: any) => {\r\n          console.error(error);\r\n          return EMPTY;\r\n        }));\r\n\r\n      observable.subscribe(data => {\r\n        resolve(data);\r\n      });\r\n    });\r\n  }\r\n\r\n  private getFormData(data: any): FormData {\r\n    const formData: FormData = new FormData();\r\n    Object.keys(data).forEach(key => formData.append(key, data[key]));\r\n    return formData;\r\n  }\r\n\r\n  public getData2(url, data): Observable<any> {\r\n    return this.httpClient.post(url, this.getFormData(data), { responseType: 'blob' }).pipe(\r\n      catchError((error: any) => {\r\n        console.error(error);\r\n        return EMPTY;\r\n      }));\r\n  }\r\n\r\n  public saveData(url, params, newWindow, retrieveFileName) {\r\n    if (retrieveFileName) {\r\n      params.stiweb_onlyFileName = true;\r\n      debugger;\r\n      let observable = this.httpClient.post(url, this.getFormData(params), { responseType: 'json' }).pipe(\r\n        catchError((error: any) => {\r\n          console.error(error);\r\n          return EMPTY;\r\n        }));\r\n\r\n      observable.subscribe(resp => {\r\n        let fileName = (resp as any).fileName;\r\n        delete params.stiweb_onlyFileName;\r\n\r\n        this.getData2(url, params).subscribe((data) => {\r\n          this.showData(data, fileName, newWindow);\r\n        });\r\n      });\r\n    } else {\r\n      this.getData2(url, params).subscribe((data) => {\r\n        this.showData(data, null, newWindow);\r\n      });\r\n    }\r\n  }\r\n\r\n  public showData(data: any, fileName: string, newWindow: boolean) {\r\n    if (newWindow) {\r\n      if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {\r\n        (window.navigator as any).msSaveOrOpenBlob(data);\r\n      } else {\r\n        var fileURL = URL.createObjectURL(data);\r\n        window.open(fileURL, '_blank');\r\n      }\r\n    } else {\r\n      this.fileSaver.saveAs(data, fileName);\r\n    }\r\n  }\r\n\r\n  public postParametersFunction(data) {\r\n    return this.model.postParametersFunction ? this.model.postParametersFunction(data) : {};\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { ControllerService } from './controller.service';\r\nimport { ExportService } from './export.service';\r\nimport { HelperService } from './helper.service';\r\nimport { MailService } from './mail.service';\r\nimport { FindService } from './find.service';\r\nimport { ApiInterface } from './api.service';\r\nimport { DashboardProxyService } from './dashboard-proxy.service';\r\nimport { JsonPipe } from '@angular/common';\r\n\r\n@Injectable()\r\nexport class ApiDashboardService implements ApiInterface {\r\n\r\n  public EXPORT_FORMATS: string[] = ['Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n    'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n    'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'];\r\n\r\n  constructor(private model: ModelService, private controller: ControllerService, private exportService: ExportService,\r\n    private helper: HelperService, private mailService: MailService, private findService: FindService, private proxy: DashboardProxyService) { }\r\n\r\n\r\n\r\n  /**\r\n   * The current page number\r\n   */\r\n  public get currentPage(): number {\r\n    return this.proxy.jsObject?.reportParams?.pageNumber;\r\n  }\r\n\r\n  public set currentPage(value: number) {\r\n    let jsObject = this.proxy.jsObject;\r\n    let pageNumber = Math.max(Math.max(value, 0), jsObject.reportParams.pagesCount - 1);\r\n    jsObject.controls.toolbar.controls[\"PageControl\"].textBox.value = pageNumber.toString();\r\n    jsObject.postAction(\"GoToPage\");\r\n  }\r\n\r\n  /**\r\n   * The total pages count\r\n   */\r\n  public get pagesCount() {\r\n    return this.proxy.jsObject.reportParams.pagesCount;\r\n  }\r\n\r\n  /**\r\n   * The view mode, can be 'SinglePage', 'Continuous' & 'MultiplePages'\r\n   */\r\n  public get viewMode(): string {\r\n    return this.proxy.jsObject?.reportParams?.viewMode;\r\n  }\r\n\r\n  public set viewMode(value: string) {\r\n    if (value === 'SinglePage' || value === 'Continuous' || value === 'MultiplePages') {\r\n      this.proxy.jsObject.postAction('ViewMode' + value);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * The page zoom in percent\r\n   * From 1 to 200\r\n   */\r\n  public get zoom(): number {\r\n    return this.proxy.jsObject?.reportParams?.zoom;\r\n  }\r\n\r\n  public set zoom(value: number) {\r\n    if (value >= 1 && value <= 1000) {\r\n      let zoom = 200;\r\n      if (value < 37) zoom = 25;\r\n      else if (value < 62) zoom = 50;\r\n      else if (value < 87) zoom = 75;\r\n      else if (value < 125) zoom = 100;\r\n      else if (value < 175) zoom = 150;\r\n      this.proxy.jsObject.postAction('Zoom' + zoom);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Zoom page in height\r\n   */\r\n  public zoomPageHeight() {\r\n    this.proxy.jsObject.postAction('ZoomOnePage');\r\n  }\r\n\r\n  /**\r\n   * Zoom page in width\r\n   */\r\n  public zoomPageWidth() {\r\n    this.proxy.jsObject.postAction('ZoomPageWidth');\r\n  }\r\n\r\n  /**\r\n   * Print to PDF\r\n   */\r\n  public printPdf() {\r\n    this.proxy.jsObject.postPrint('PrintPdf');\r\n  }\r\n\r\n  /**\r\n   * Print with preview\r\n   */\r\n  public printWithPreview() {\r\n    this.proxy.jsObject.postPrint('PrintWithPreview');\r\n  }\r\n\r\n  /**\r\n   * Print without preview\r\n   */\r\n  public printWithoutPreview() {\r\n    this.proxy.jsObject.postPrint('PrintWithoutPreview');\r\n  }\r\n\r\n  public get reportType(): string {\r\n    return this.proxy.jsObject?.reportParams?.type ?? \"Report\";\r\n  }\r\n\r\n  /**\r\n   * Show export form\r\n   *\r\n   * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n   * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n   * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'\r\n   */\r\n  public showExportForm(format: string) {\r\n    if (this.EXPORT_FORMATS.some(f => f === format)) {\r\n      this.proxy.jsObject.controls.forms.exportForm.show(format, this.proxy.jsObject.options.actions.exportReport);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Show export form & email\r\n   *\r\n   * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n   * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n   * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'\r\n   */\r\n  public showExportEmailForm(format: string) {\r\n    if (this.EXPORT_FORMATS.some(f => f === format)) {\r\n      this.proxy.jsObject.controls.forms.exportForm.show(format, this.proxy.jsObject.options.actions.emailReport);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Export report to selected format\r\n   * Use default settings if not specified\r\n   *\r\n   * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n   * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n   * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'\r\n   *\r\n   * @param settings The export settings\r\n   */\r\n  public export(format: string, settings?: any) {\r\n    if (this.reportType == \"Report\") {\r\n      if (this.EXPORT_FORMATS.some(f => f === format)) {\r\n        const exportSettings = this.getExportSettings(format, settings);\r\n        this.proxy.jsObject.postExport(format, exportSettings);\r\n      }\r\n    } else {\r\n      this.dashboardExport(format, settings);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Export dashboard to selected format\r\n   * Use default settings if not specified\r\n   *\r\n   * @param format The format to export, can be 'Pdf', 'Html', 'Excel', 'Image'\r\n   *\r\n   * @param settings The export settings\r\n   */\r\n  public dashboardExport(format: string, settings?: any) {\r\n    if (this.EXPORT_FORMATS.some(f => f === format)) {\r\n      settings = this.getDefaultDashboardSettings(format, settings);\r\n      this.proxy.jsObject.postExport(format, settings, null, true);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Export report to seleted format & email\r\n   * Use default settings if not specified\r\n   * Use default email settings if not specified\r\n   *\r\n   * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n   * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n   * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'\r\n   *\r\n   * @param settings The export settings\r\n   *\r\n   * @param email The email\r\n   *\r\n   * @param message The email message\r\n   *\r\n   * @param subject The email subject\r\n   */\r\n  public exportEmail(format: string, settings?: any, email?: string, subject?: string, message?: string) {\r\n    if (this.EXPORT_FORMATS.some(f => f === format)) {\r\n      this.exportService.exportSettings = this.getExportSettings(format, settings);\r\n      this.exportService.format = format;\r\n      this.mailService.fillDefaults();\r\n\r\n      if (email) {\r\n        this.exportService.exportSettings.Email = email;\r\n      }\r\n\r\n      if (message) {\r\n        this.exportService.exportSettings.Message = message;\r\n      }\r\n\r\n      if (subject) {\r\n        this.exportService.exportSettings.Subject = subject;\r\n      }\r\n\r\n      this.mailService.sendMail();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Search text in report\r\n   *\r\n   * @param text text to search\r\n   *\r\n   * @param matchCase\r\n   *\r\n   * @param matchWholeWord\r\n   */\r\n  public search(text: string, matchCase: boolean, matchWholeWord: boolean) {\r\n    this.proxy.jsObject.showFindLabels(text, matchCase, matchWholeWord)\r\n  }\r\n  /**\r\n   * Select next or previous search\r\n   *\r\n   * @param direction 'Next' or 'Previous'\r\n   *\r\n   */\r\n  public selectSearchLabel(direction: string) {\r\n    this.proxy.jsObject.selectFindLabel(direction);\r\n  }\r\n\r\n  /**\r\n   * Hide search\r\n   */\r\n  public hideSearchLabels() {\r\n    this.proxy.jsObject.hideFindLabels();\r\n  }\r\n\r\n  /**\r\n   * Refresh dashboard\r\n   */\r\n  public dashboardRefresh() {\r\n    this.proxy.jsObject.postAction(\"Refresh\");\r\n  }\r\n\r\n  public dashboardResetAllFilters() {\r\n    this.proxy.jsObject.postInteraction({ action: \"DashboardResetAllFilters\" });\r\n  }\r\n\r\n  private getExportSettings(format: string, settings?: any) {\r\n    this.exportService.sendMail = false;\r\n    this.exportService.format = format;\r\n    const exportSettings = this.helper.copyObject(this.exportService.getDefaultExportSettings(format));\r\n    if (settings) {\r\n      Object.keys(settings).forEach(key => exportSettings[key] = settings[key]);\r\n    }\r\n    return exportSettings;\r\n  }\r\n\r\n  private getDefaultDashboardSettings(format: string, settings?: any) {\r\n    let exportSettings = {}\r\n    switch (format) {\r\n      case \"Pdf\": exportSettings = {\r\n        ImageQuality: 200,\r\n        OpenAfterExport: true,\r\n        Orientation: \"Landscape\",\r\n        PaperSize: \"A4\"\r\n      }\r\n        break;\r\n      case \"Excel\": exportSettings = {\r\n        ImageQuality: 200\r\n      }\r\n        break;\r\n      case \"Html\": exportSettings = {\r\n        EnableAnimation: true,\r\n        ImageQuality: 200,\r\n        OpenAfterExport: true,\r\n        Scale: 100\r\n      }\r\n        break;\r\n      case \"Image\": exportSettings = {\r\n        ImageType: \"Png\",\r\n        OpenAfterExport: true,\r\n        Scale: 100\r\n      }\r\n        break;\r\n    }\r\n    if (settings) {\r\n      Object.keys(settings).forEach(key => exportSettings[key] = settings[key]);\r\n    }\r\n    return exportSettings;\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { ApiAngularService } from './api.angular.service';\r\nimport { ApiDashboardService } from './api.dashboard.service';\r\n\r\n@Injectable()\r\nexport class ApiService implements ApiInterface {\r\n\r\n  public EXPORT_FORMATS: string[] = ['Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n    'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n    'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'];\r\n\r\n  constructor(private angularService: ApiAngularService, private dashboardService: ApiDashboardService, private model: ModelService) { }\r\n\r\n  private get api(): ApiInterface {\r\n    return this.model.showDashboard ? this.dashboardService : this.angularService;\r\n  }\r\n\r\n  /**\r\n   * The current page number\r\n   */\r\n  public get currentPage(): number {\r\n    return this.api.currentPage;\r\n  }\r\n\r\n  public set currentPage(value: number) {\r\n    this.api.currentPage = value;\r\n  }\r\n\r\n  /**\r\n   * The total pages count\r\n   */\r\n  public get pagesCount() {\r\n    return this.api.pagesCount;\r\n  }\r\n\r\n  /**\r\n   * The view mode, can be 'SinglePage', 'Continuous' & 'MultiplePages'\r\n   */\r\n  public get viewMode(): string {\r\n    return this.api.viewMode;\r\n  }\r\n\r\n  public set viewMode(value: string) {\r\n    this.api.viewMode = value;\r\n  }\r\n\r\n  /**\r\n   * The page zoom in percent\r\n   * From 1 to 200\r\n   */\r\n  public get zoom(): number {\r\n    return this.api.zoom;\r\n  }\r\n\r\n  public set zoom(value: number) {\r\n    this.api.zoom = value;\r\n  }\r\n\r\n  /**\r\n   * Zoom page in height\r\n   */\r\n  public zoomPageHeight() {\r\n    this.api.zoomPageHeight();\r\n  }\r\n\r\n  /**\r\n   * Zoom page in width\r\n   */\r\n  public zoomPageWidth() {\r\n    this.api.zoomPageWidth();\r\n  }\r\n\r\n  /**\r\n   * Print to PDF\r\n   */\r\n  public printPdf() {\r\n    this.api.printPdf();\r\n  }\r\n\r\n  /**\r\n   * Print with preview\r\n   */\r\n  public printWithPreview() {\r\n    this.api.printWithPreview();\r\n  }\r\n\r\n  /**\r\n   * Print without preview\r\n   */\r\n  public printWithoutPreview() {\r\n    this.api.printWithoutPreview();\r\n  }\r\n\r\n  /**\r\n   * Show export form\r\n   *\r\n   * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n   * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n   * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'\r\n   */\r\n  public showExportForm(format: string) {\r\n    this.api.showExportForm(format);\r\n  }\r\n\r\n  /**\r\n   * Show export form & email\r\n   *\r\n   * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n   * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n   * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'\r\n   */\r\n  public showExportEmailForm(format: string) {\r\n    this.api.showExportEmailForm(format);\r\n  }\r\n\r\n  /**\r\n   * Export report/dashboard to selected format\r\n   * Use default settings if not specified\r\n   *\r\n   * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n   * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n   * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'\r\n   *\r\n   * @param settings The export settings\r\n   */\r\n  public export(format: string, settings?: any) {\r\n    this.api.export(format, settings);\r\n  }\r\n\r\n  /**\r\n   * Refresh dashboard\r\n   */\r\n  public dashboardRefresh() {\r\n    this.api.dashboardRefresh()\r\n  }\r\n  /**\r\n   * Reset all filters\r\n   */\r\n  public dashboardResetAllFilters() {\r\n    this.api.dashboardResetAllFilters();\r\n  }\r\n\r\n  /**\r\n   * Export report/dashboard to seleted format & email\r\n   * Use default settings if not specified\r\n   * Use default email settings if not specified\r\n   *\r\n   * @param format The format to export, can be 'Document', 'Pdf', 'Xps', 'PowerPoint', 'Html', 'Html5', 'Mht', 'Text', 'Rtf', 'Word', 'Odt', 'ExcelBiff',\r\n   * 'Excel', 'ExcelXml', 'Excel', 'Ods', 'Csv', 'Dbf', 'Dif', 'Sylk', 'Json', 'Xml', 'ImageBmp',\r\n   * 'ImageGif', 'ImageJpeg', 'ImagePcx', 'ImagePng', 'ImageTiff', 'ImageEmf', 'ImageSvg', 'ImageSvgz'\r\n   *\r\n   * @param settings The export settings\r\n   *\r\n   * @param email The email\r\n   *\r\n   * @param message The email message\r\n   *\r\n   * @param subject The email subject\r\n   */\r\n  public exportEmail(format: string, settings?: any, email?: string, subject?: string, message?: string) {\r\n    this.api.exportEmail(format, settings, email, subject, message);\r\n  }\r\n\r\n  /**\r\n   * Report or Dashboard\r\n   */\r\n  public get reportType(): string {\r\n    return this.api.reportType;\r\n  }\r\n\r\n  /**\r\n   * Search text in report\r\n   *\r\n   * @param text text to search\r\n   *\r\n   * @param matchCase\r\n   *\r\n   * @param matchWholeWord\r\n   */\r\n  public search(text: string, matchCase: boolean, matchWholeWord: boolean) {\r\n    this.api.search(text, matchCase, matchWholeWord);\r\n  }\r\n  /**\r\n   * Select next or previous search\r\n   *\r\n   * @param direction 'Next' or 'Previous'\r\n   *\r\n   */\r\n  public selectSearchLabel(direction: string) {\r\n    this.api.selectSearchLabel(direction);\r\n  }\r\n\r\n  /**\r\n   * Hide search\r\n   */\r\n  public hideSearchLabels() {\r\n    this.api.hideSearchLabels();\r\n  }\r\n}\r\n\r\nexport interface ApiInterface {\r\n  currentPage: number;\r\n  pagesCount: number;\r\n  viewMode: string;\r\n  zoom: number;\r\n\r\n  zoomPageHeight();\r\n  zoomPageWidth();\r\n  printPdf();\r\n  printWithPreview();\r\n  printWithoutPreview();\r\n  showExportForm(format: string);\r\n  showExportEmailForm(format: string);\r\n  export(format: string, settings?: any);\r\n  exportEmail(format: string, settings?: any, email?: string, subject?: string, message?: string);\r\n  search(text: string, matchCase: boolean, matchWholeWord: boolean);\r\n  selectSearchLabel(direction);\r\n  hideSearchLabels();\r\n\r\n  /**\r\n   * Refresh dashboard\r\n   */\r\n  dashboardRefresh();\r\n\r\n  dashboardResetAllFilters();\r\n\r\n  /**\r\n   * Report or Dashboard\r\n   */\r\n  get reportType(): string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { ExportService } from './export.service';\r\nimport { HelperService } from './helper.service';\r\nimport { StiHttpClientService } from './http-client.service';\r\nimport { ControllerService } from './controller.service';\r\nimport { Message } from './objects';\r\n\r\n@Injectable()\r\nexport class PrintService {\r\n\r\n  constructor(public model: ModelService, public exportService: ExportService, public helper: HelperService,\r\n    public httpClient: StiHttpClientService, public controller: ControllerService) {\r\n\r\n    controller.getActionMessage().subscribe((message: Message) => {\r\n      if (message.action === 'Print' && !this.model.showDashboard) {\r\n        this.postPrint(message.data.format);\r\n      }\r\n    });\r\n\r\n    controller.getMessage().subscribe((message: Message) => {\r\n      if (message.action === 'PrintReport') {\r\n        switch (message.subAction) {\r\n          case 'PrintWithPreview':\r\n            this.printAsPopup(message.data);\r\n            break;\r\n\r\n          case 'PrintWithoutPreview':\r\n            this.printAsHtml(message.data);\r\n            break;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  postPrint(printAction: string) {\r\n    if (printAction === 'PrintPdf' && /iPhone|iPad|iPod|Macintosh/i.test(navigator.userAgent) && this.helper.isTouchDevice() && !this.model.options.replaceHtmlFormWithRequest) {\r\n      const settings = this.exportService.getDefaultExportSettings('Pdf');\r\n      settings.OpenAfterExport = true;\r\n      this.postExport('Pdf', settings);\r\n      return;\r\n    }\r\n\r\n    const data = {\r\n      action: 'PrintReport',\r\n      printAction,\r\n      bookmarksPrint: this.model.options.appearance.bookmarksPrint\r\n    };\r\n\r\n    const url = ''; // this.model.options.requestUrl.replace('{action}', this.model.options.actions.printReport);\r\n    switch (printAction) {\r\n      case 'PrintPdf':\r\n        if (this.model.options.appearance.printToPdfMode === 'Popup' || this.helper.getNavigatorName() == 'Safari' || this.helper.getNavigatorName() == 'iPad') {\r\n          this.printAsPdfPopup(data);\r\n        } else {\r\n          this.printAsPdf(url, data);\r\n        }\r\n        break;\r\n\r\n      default:\r\n        this.controller.post('PrintReport', this.model.options.actions.printReport, data, 'text', printAction);\r\n        break;\r\n    }\r\n  }\r\n\r\n  public postExport(format: string, settings: any, elementName?: string, isDashboardExport?: boolean) {\r\n    const data = {\r\n      action: isDashboardExport ? 'ExportDashboard' : 'ExportReport',\r\n      exportFormat: format,\r\n      exportSettings: settings,\r\n      elementName\r\n    };\r\n\r\n    const doc = settings && settings.OpenAfterExport && this.model.options.appearance.openExportedReportWindow === '_blank' ? (!this.model.options.replaceHtmlFormWithRequest ? this.helper.openNewWindow('about:blank', '_blank').document : document) : null;\r\n    const url = this.model.requestUrl;\r\n    this.httpClient.postForm(url.replace('{action}', this.model.options.actions.exportReport), data, doc);\r\n  }\r\n\r\n  public printAsPdfPopup(data: any) {\r\n    const url = this.model.requestUrl.replace('{action}', this.model.options.actions.printReport);\r\n    const win = !this.model.options.replaceHtmlFormWithRequest ? this.helper.openNewWindow('about:blank', '_blank') : window;\r\n    if (win != null) {\r\n      this.httpClient.postForm(url, data, win.document, false, false);\r\n    }\r\n  }\r\n\r\n  public printAsPdf(url: string, data: any) {\r\n    data.responseType = 'blob';\r\n    const viewer = this.model.controls.viewer.el.nativeElement;\r\n    const printFrameId = this.model.options.viewerId + '_PdfPrintFrame';\r\n    let printFrame: any = document.getElementById(printFrameId);\r\n    if (printFrame) { viewer.removeChild(printFrame); }\r\n\r\n    printFrame = document.createElement('iframe');\r\n    printFrame.id = printFrameId;\r\n    printFrame.name = printFrameId;\r\n    printFrame.width = '0';\r\n    printFrame.height = '0';\r\n    printFrame.style.position = 'absolute';\r\n    printFrame.style.border = 'none';\r\n\r\n    // Firefox does not load the invisible content of the iframe\r\n    if (this.helper.getNavigatorName() === 'Mozilla') {\r\n      printFrame.width = '100px';\r\n      printFrame.height = '100px';\r\n      printFrame.style.visibility = 'hidden';\r\n      printFrame.style.zIndex = '-100';\r\n      printFrame.style.pointerEvents = 'none';\r\n    }\r\n\r\n    viewer.insertBefore(printFrame, viewer.firstChild);\r\n    const params = this.model.createPostParameters(data, true);\r\n\r\n    // Manual printing in browsers that do not support automatic PDF printing\r\n    if (this.helper.getNavigatorName() !== 'Mozilla') {\r\n      printFrame.onload = () => {\r\n        printFrame.contentWindow.focus();\r\n        printFrame.contentWindow.print();\r\n      };\r\n    }\r\n\r\n    if (!this.model.options.replaceHtmlFormWithRequest) {\r\n      const form: any = document.createElement('FORM');\r\n      form.setAttribute('id', 'printForm');\r\n      form.setAttribute('method', 'POST');\r\n      form.setAttribute('action', this.model.requestUrl.replace('{action}', this.model.options.actions.printReport));\r\n      form.setAttribute('target', this.model.options.viewerId + '_PdfPrintFrame');\r\n\r\n\r\n      Object.keys(params).forEach(key => {\r\n        const paramsField = document.createElement('INPUT');\r\n        paramsField.setAttribute('type', 'hidden');\r\n        paramsField.setAttribute('name', key);\r\n        paramsField.setAttribute('value', params[key]);\r\n        form.appendChild(paramsField);\r\n      });\r\n\r\n      document.body.appendChild(form);\r\n      form.submit();\r\n      document.body.removeChild(form);\r\n    } else {\r\n      this.httpClient.getData(this.model.requestUrl.replace('{action}', this.model.options.actions.printReport), params).subscribe((data) => {\r\n        printFrame.src = URL.createObjectURL(data);\r\n      });\r\n    }\r\n  }\r\n\r\n  public blobToBase64(blob) {\r\n    return new Promise((resolve, _) => {\r\n      const reader = new FileReader();\r\n      reader.onloadend = () => resolve(reader.result);\r\n      reader.readAsDataURL(blob);\r\n    });\r\n  }\r\n\r\n  public printAsPopup(text: string) {\r\n    const width = this.model.reportParams.pagesWidth || 790;\r\n    const win = this.helper.openNewWindow('about:blank', 'PrintReport', 'height=900,width=' + width + ',toolbar=no,menubar=yes,scrollbars=yes,resizable=yes,location=no,directories=no,status=no');\r\n    if (win != null) {\r\n      win.document.open();\r\n      win.document.write(text);\r\n      win.document.close();\r\n    }\r\n  }\r\n\r\n  public printAsHtml(text: string) {\r\n    if (this.controller.showError(text)) { return; }\r\n\r\n    const viewer = this.model.controls.viewer.el.nativeElement;\r\n    // Remove '_PdfPrintFrame', this should fix IE strange error\r\n    let printFrameId = this.model.options.viewerId + '_PdfPrintFrame';\r\n    let printFrame: any = document.getElementById(printFrameId);\r\n    if (printFrame) { viewer.removeChild(printFrame); }\r\n\r\n    printFrameId = this.model.options.viewerId + '_HtmlPrintFrame';\r\n    printFrame = document.getElementById(printFrameId);\r\n    if (printFrame) { viewer.removeChild(printFrame); }\r\n\r\n    printFrame = document.createElement('iframe');\r\n    printFrame.id = printFrameId;\r\n    printFrame.name = printFrameId;\r\n    printFrame.width = '0';\r\n    printFrame.height = '0';\r\n    printFrame.style.position = 'absolute';\r\n    printFrame.style.border = 'none';\r\n    viewer.insertBefore(printFrame, viewer.firstChild);\r\n\r\n    printFrame.contentWindow.document.open();\r\n    printFrame.contentWindow.document.write(text);\r\n    printFrame.contentWindow.document.close();\r\n    setTimeout(() => {\r\n      printFrame.contentWindow.focus();\r\n      printFrame.contentWindow.print();\r\n    });\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ControllerService } from './controller.service';\r\nimport { DashboardProxyService } from './dashboard-proxy.service';\r\nimport { ModelService } from './model.service';\r\nimport { Message } from './objects';\r\n\r\n@Injectable()\r\nexport class DashboardService {\r\n\r\n  private scriptLoaded = false;\r\n  private script: any;\r\n  private startScript: any;\r\n\r\n  constructor(private controller: ControllerService, public model: ModelService, public proxy: DashboardProxyService) {\r\n\r\n    controller.getMessage().subscribe((message: Message) => {\r\n      if (message.action === 'ShowDashboard') {\r\n        this.model.showDashboard = true;\r\n        this.model.proxyData = JSON.stringify(message.data);\r\n        this.proxy.openReport = message.data.action == 'OpenReport';\r\n        this.addScript();\r\n      }\r\n    });\r\n  }\r\n\r\n  addScript() {\r\n    if (this.script) {\r\n      this.head.removeChild(this.script);\r\n    }\r\n\r\n    let srcBegin = this.model.dashboards.indexOf(\"src=\\\"\") + 5;\r\n    let srcEnd = this.model.dashboards.indexOf(\"\\\"\", srcBegin + 1) - 1;\r\n\r\n    this.script = document.createElement('Script') as HTMLScriptElement;\r\n    this.script.setAttribute('type', 'text/javascript');\r\n\r\n    var src = this.model.dashboards.substring(srcBegin, srcEnd);\r\n    this.head.appendChild(this.script);\r\n\r\n    let this_ = this;\r\n    this.proxy.getText(src).then(function (data) {\r\n      this_.script.innerHTML = data;\r\n      this_.scriptLoaded = true;\r\n      this_.startDashboards();\r\n    });\r\n  }\r\n\r\n  private startDashboards() {\r\n    if (this.startScript) {\r\n      this.head.removeChild(this.startScript);\r\n    }\r\n\r\n    let srcBegin = this.model.dashboards.indexOf(\"var jsviewer\");\r\n    let srcEnd = this.model.dashboards.lastIndexOf(\"</script>\") - 1;\r\n    let script = this.model.dashboards.substring(srcBegin, srcEnd);\r\n\r\n    let idBegin = this.model.dashboards.indexOf(\"viewerId\\\":\\\"\") + 11;\r\n    let idEnd = this.model.dashboards.indexOf(\"\\\"\", idBegin);\r\n    let viewerId = this.model.dashboards.substring(idBegin, idEnd);\r\n\r\n    script += '; js' + viewerId + '.options.reportDesignerMode = true; js' + viewerId + '.options.clientGuid = \"' + this.model.options.clientGuid + '\";' +\r\n      'js' + viewerId + '.options.frameworkType += \", Angular\";' +\r\n      'js' + viewerId + '.options.replaceHtmlFormWithRequest = ' + this.model.options.replaceHtmlFormWithRequest + ';';\r\n\r\n    document[\"proxy\" + viewerId] = this.proxy;\r\n    eval(script);\r\n  }\r\n\r\n  public get head(): HTMLHeadElement {\r\n    return document.getElementsByTagName('head')[0];\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { MenuService } from '../menu/menu.service';\r\n\r\n@Injectable()\r\nexport class TooltipService {\r\n\r\n  public state = 'initial';\r\n  public caption = '';\r\n  public helpLink = '';\r\n  public top = 0;\r\n  public left = 0;\r\n\r\n  private innerState = 'initial';\r\n  private timeout: any;\r\n\r\n  constructor(public model: ModelService, public menuService: MenuService) { }\r\n\r\n  public show(left: number, top: number, caption: string, below: boolean = true, helpLink?: string) {\r\n    if (this.menuService.isMenuVisible() || !this.model.options.appearance.showTooltips) {\r\n      this.hideImmediately();\r\n      return;\r\n    }\r\n\r\n    if (this.caption === caption && this.helpLink === helpLink && this.state !== 'initial') {\r\n      this.showInternal();\r\n      return;\r\n    }\r\n\r\n    this.caption = caption;\r\n    this.helpLink = helpLink;\r\n    this.state = this.innerState = this.state !== 'expanded' ? 'preInitial' : 'preInitial2';\r\n\r\n    setTimeout(() => {\r\n      const tooltip = this.model.controls.tooltip.el.nativeElement;\r\n      const browserWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n      if (!below) {\r\n        top -= tooltip.offsetHeight;\r\n      }\r\n      if (left + tooltip.offsetWidth > browserWidth) {\r\n        left = browserWidth - tooltip.offsetWidth;\r\n      }\r\n\r\n      this.left = left;\r\n      this.top = top;\r\n      if (this.innerState !== 'initial') {\r\n        this.showInternal();\r\n      }\r\n    });\r\n  }\r\n\r\n  private showInternal() {\r\n    this.state = 'expanded';\r\n    this.innerState = 'expanded';\r\n  }\r\n\r\n  public showFromTooltip() {\r\n    if (this.state !== 'preInitial') {\r\n      this.state = 'expanded';\r\n      this.innerState = 'expanded';\r\n    }\r\n  }\r\n\r\n  public hideImmediately() {\r\n    this.innerState = 'initial';\r\n    this.state = 'initial';\r\n  }\r\n\r\n  public hide() {\r\n    this.innerState = 'initial';\r\n    if (this.timeout) {\r\n      clearTimeout(this.timeout);\r\n    }\r\n    this.timeout = setTimeout(() => {\r\n      if (this.innerState === 'initial') {\r\n        this.state = 'initial';\r\n      }\r\n      this.timeout = null;\r\n    }, 1000);\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class Md5Service {\r\n  private hexcase = 0;\r\n  constructor() { }\r\n\r\n  hex_md5(a) { return this.rstr2hex(this.rstr_md5(this.str2rstr_utf8(a))) }\r\n  hex_hmac_md5(a, b) { return this.rstr2hex(this.rstr_hmac_md5(this.str2rstr_utf8(a), this.str2rstr_utf8(b))) }\r\n  md5_vm_test() { return this.hex_md5('abc').toLowerCase() == '900150983cd24fb0d6963f7d28e17f72' }\r\n  rstr_md5(a) { return this.binl2rstr(this.binl_md5(this.rstr2binl(a), a.length * 8)) }\r\n  rstr_hmac_md5(c, f) {\r\n    let e = this.rstr2binl(c); if (e.length > 16) {\r\n      e = this.binl_md5(e, c.length * 8)\r\n    } let a = Array(16), d = Array(16); for (let b = 0; b < 16; b++) { a[b] = e[b] ^ 909522486; d[b] = e[b] ^ 1549556828 } let g = this.binl_md5(a.concat(this.rstr2binl(f)), 512 + f.length * 8);\r\n    return this.binl2rstr(this.binl_md5(d.concat(g), 512 + 128))\r\n  }\r\n  rstr2hex(c) { try { this.hexcase } catch (g) { this.hexcase = 0 } let f = this.hexcase ? '0123456789ABCDEF' : '0123456789abcdef'; let b = ''; let a; for (let d = 0; d < c.length; d++) { a = c.charCodeAt(d); b += f.charAt((a >>> 4) & 15) + f.charAt(a & 15) } return b }\r\n  str2rstr_utf8(c) { let b = ''; let d = -1; let a, e; while (++d < c.length) { a = c.charCodeAt(d); e = d + 1 < c.length ? c.charCodeAt(d + 1) : 0; if (55296 <= a && a <= 56319 && 56320 <= e && e <= 57343) { a = 65536 + ((a & 1023) << 10) + (e & 1023); d++ } if (a <= 127) { b += String.fromCharCode(a) } else { if (a <= 2047) { b += String.fromCharCode(192 | ((a >>> 6) & 31), 128 | (a & 63)) } else { if (a <= 65535) { b += String.fromCharCode(224 | ((a >>> 12) & 15), 128 | ((a >>> 6) & 63), 128 | (a & 63)) } else { if (a <= 2097151) { b += String.fromCharCode(240 | ((a >>> 18) & 7), 128 | ((a >>> 12) & 63), 128 | ((a >>> 6) & 63), 128 | (a & 63)) } } } } } return b }\r\n  rstr2binl(b) { let a = Array(b.length >> 2); for (let c = 0; c < a.length; c++) { a[c] = 0 } for (let c = 0; c < b.length * 8; c += 8) { a[c >> 5] |= (b.charCodeAt(c / 8) & 255) << (c % 32) } return a }\r\n  binl2rstr(b) { let a = ''; for (let c = 0; c < b.length * 32; c += 8) { a += String.fromCharCode((b[c >> 5] >>> (c % 32)) & 255) } return a }\r\n  binl_md5(p, k) { p[k >> 5] |= 128 << ((k) % 32); p[(((k + 64) >>> 9) << 4) + 14] = k; let o = 1732584193; let n = -271733879; let m = -1732584194; let l = 271733878; for (let g = 0; g < p.length; g += 16) { let j = o; let h = n; let f = m; let e = l; o = this.md5_ff(o, n, m, l, p[g + 0], 7, -680876936); l = this.md5_ff(l, o, n, m, p[g + 1], 12, -389564586); m = this.md5_ff(m, l, o, n, p[g + 2], 17, 606105819); n = this.md5_ff(n, m, l, o, p[g + 3], 22, -1044525330); o = this.md5_ff(o, n, m, l, p[g + 4], 7, -176418897); l = this.md5_ff(l, o, n, m, p[g + 5], 12, 1200080426); m = this.md5_ff(m, l, o, n, p[g + 6], 17, -1473231341); n = this.md5_ff(n, m, l, o, p[g + 7], 22, -45705983); o = this.md5_ff(o, n, m, l, p[g + 8], 7, 1770035416); l = this.md5_ff(l, o, n, m, p[g + 9], 12, -1958414417); m = this.md5_ff(m, l, o, n, p[g + 10], 17, -42063); n = this.md5_ff(n, m, l, o, p[g + 11], 22, -1990404162); o = this.md5_ff(o, n, m, l, p[g + 12], 7, 1804603682); l = this.md5_ff(l, o, n, m, p[g + 13], 12, -40341101); m = this.md5_ff(m, l, o, n, p[g + 14], 17, -1502002290); n = this.md5_ff(n, m, l, o, p[g + 15], 22, 1236535329); o = this.md5_gg(o, n, m, l, p[g + 1], 5, -165796510); l = this.md5_gg(l, o, n, m, p[g + 6], 9, -1069501632); m = this.md5_gg(m, l, o, n, p[g + 11], 14, 643717713); n = this.md5_gg(n, m, l, o, p[g + 0], 20, -373897302); o = this.md5_gg(o, n, m, l, p[g + 5], 5, -701558691); l = this.md5_gg(l, o, n, m, p[g + 10], 9, 38016083); m = this.md5_gg(m, l, o, n, p[g + 15], 14, -660478335); n = this.md5_gg(n, m, l, o, p[g + 4], 20, -405537848); o = this.md5_gg(o, n, m, l, p[g + 9], 5, 568446438); l = this.md5_gg(l, o, n, m, p[g + 14], 9, -1019803690); m = this.md5_gg(m, l, o, n, p[g + 3], 14, -187363961); n = this.md5_gg(n, m, l, o, p[g + 8], 20, 1163531501); o = this.md5_gg(o, n, m, l, p[g + 13], 5, -1444681467); l = this.md5_gg(l, o, n, m, p[g + 2], 9, -51403784); m = this.md5_gg(m, l, o, n, p[g + 7], 14, 1735328473); n = this.md5_gg(n, m, l, o, p[g + 12], 20, -1926607734); o = this.md5_hh(o, n, m, l, p[g + 5], 4, -378558); l = this.md5_hh(l, o, n, m, p[g + 8], 11, -2022574463); m = this.md5_hh(m, l, o, n, p[g + 11], 16, 1839030562); n = this.md5_hh(n, m, l, o, p[g + 14], 23, -35309556); o = this.md5_hh(o, n, m, l, p[g + 1], 4, -1530992060); l = this.md5_hh(l, o, n, m, p[g + 4], 11, 1272893353); m = this.md5_hh(m, l, o, n, p[g + 7], 16, -155497632); n = this.md5_hh(n, m, l, o, p[g + 10], 23, -1094730640); o = this.md5_hh(o, n, m, l, p[g + 13], 4, 681279174); l = this.md5_hh(l, o, n, m, p[g + 0], 11, -358537222); m = this.md5_hh(m, l, o, n, p[g + 3], 16, -722521979); n = this.md5_hh(n, m, l, o, p[g + 6], 23, 76029189); o = this.md5_hh(o, n, m, l, p[g + 9], 4, -640364487); l = this.md5_hh(l, o, n, m, p[g + 12], 11, -421815835); m = this.md5_hh(m, l, o, n, p[g + 15], 16, 530742520); n = this.md5_hh(n, m, l, o, p[g + 2], 23, -995338651); o = this.md5_ii(o, n, m, l, p[g + 0], 6, -198630844); l = this.md5_ii(l, o, n, m, p[g + 7], 10, 1126891415); m = this.md5_ii(m, l, o, n, p[g + 14], 15, -1416354905); n = this.md5_ii(n, m, l, o, p[g + 5], 21, -57434055); o = this.md5_ii(o, n, m, l, p[g + 12], 6, 1700485571); l = this.md5_ii(l, o, n, m, p[g + 3], 10, -1894986606); m = this.md5_ii(m, l, o, n, p[g + 10], 15, -1051523); n = this.md5_ii(n, m, l, o, p[g + 1], 21, -2054922799); o = this.md5_ii(o, n, m, l, p[g + 8], 6, 1873313359); l = this.md5_ii(l, o, n, m, p[g + 15], 10, -30611744); m = this.md5_ii(m, l, o, n, p[g + 6], 15, -1560198380); n = this.md5_ii(n, m, l, o, p[g + 13], 21, 1309151649); o = this.md5_ii(o, n, m, l, p[g + 4], 6, -145523070); l = this.md5_ii(l, o, n, m, p[g + 11], 10, -1120210379); m = this.md5_ii(m, l, o, n, p[g + 2], 15, 718787259); n = this.md5_ii(n, m, l, o, p[g + 9], 21, -343485551); o = this.safe_add(o, j); n = this.safe_add(n, h); m = this.safe_add(m, f); l = this.safe_add(l, e) } return Array(o, n, m, l) }\r\n  md5_cmn(h, e, d, c, g, f) { return this.safe_add(this.bit_rol(this.safe_add(this.safe_add(e, h), this.safe_add(c, f)), g), d) } md5_ff(g, f, k, j, e, i, h) { return this.md5_cmn((f & k) | ((~f) & j), g, f, e, i, h) }\r\n  md5_gg(g, f, k, j, e, i, h) { return this.md5_cmn((f & j) | (k & (~j)), g, f, e, i, h) } md5_hh(g, f, k, j, e, i, h) { return this.md5_cmn(f ^ k ^ j, g, f, e, i, h) }\r\n  md5_ii(g, f, k, j, e, i, h) { return this.md5_cmn(k ^ (f | (~j)), g, f, e, i, h) } safe_add(a, d) { let c = (a & 65535) + (d & 65535); let b = (a >> 16) + (d >> 16) + (c >> 16); return (b << 16) | (c & 65535) }\r\n  bit_rol(a, b) { return (a << b) | (a >>> (32 - b)) };\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DrillDown, Message } from './objects';\r\nimport { ControllerService } from './controller.service';\r\nimport { ModelService } from './model.service';\r\nimport { HelperService } from './helper.service';\r\n\r\n@Injectable()\r\nexport class DrillDownService {\r\n\r\n  constructor(public controller: ControllerService, public model: ModelService, public helper: HelperService) {\r\n    controller.getMessage().subscribe((message: Message) => {\r\n      if (message.action !== 'InitVars' && message.action !== 'viewer_loaded') {\r\n        this.model.options.drillDownInProgress = false;\r\n        const parameters = message.data;\r\n\r\n        if (this.model.drillDownButtons.length === 0) {\r\n          this.addButton(parameters.reportFileName, {});\r\n        }\r\n\r\n        if (message.action === 'DrillDown') {\r\n          const useDbsDrillDownPanel = false; // jsObject.controls.dashboardsPanel && jsObject.controls.dashboardsPanel.visible && jsObject.controls.dashboardsPanel.selectedButton;\r\n          if (useDbsDrillDownPanel) {\r\n            // jsObject.controls.dashboardsPanel.addDrillDownButton(null, parameters.drillDownGuid, parameters.drillDownParameters, parameters.previewSettings, parameters.reportFileName);\r\n          }\r\n          this.showDrillDownPage(parameters.reportFileName, parameters.drillDownGuid, parameters.drillDownParameters, useDbsDrillDownPanel);\r\n        }\r\n      }\r\n    });\r\n\r\n  }\r\n\r\n  private showDrillDownPage(reportFileName: string, drillDownGuid: string, drillDownParameters: any, useDbsDrillDownPanel: boolean) {\r\n    if (useDbsDrillDownPanel) { return; }\r\n\r\n    let buttonExist = false;\r\n    this.model.drillDownButtons.forEach((b: DrillDown) => {\r\n      if (b.reportParams.drillDownGuid === drillDownGuid) {\r\n        this.model.drillDownButtons.forEach(bt => bt.selected = false);\r\n        buttonExist = b.selected = b.visible = true;\r\n        this.model.reportParams.drillDownParameters = b.reportParams.drillDownParameters;\r\n      }\r\n    });\r\n\r\n    if (!buttonExist) {\r\n      this.addButton(reportFileName);\r\n      this.model.reportParams.drillDownParameters = drillDownParameters;\r\n      this.model.reportParams.pageNumber = 0;\r\n      this.model.reportParams.pagesWidth = 0;\r\n      this.model.reportParams.pagesHeight = 0;\r\n    }\r\n  }\r\n\r\n  public addButton(caption: string, reportParams: any = {}) {\r\n    this.model.drillDownButtons.forEach(b => b.selected = false);\r\n    this.model.drillDownButtons.push({ caption, selected: true, reportParams, visible: true });\r\n    this.updateVisibility();\r\n  }\r\n\r\n  public updateVisibility() {\r\n    this.model.controls.drillDownPanel.visible = this.model.drillDownButtons.length > 1;\r\n  }\r\n\r\n  public saveState() {\r\n    const sButton = this.model.drillDownButtons.find(b => b.selected);\r\n    if (sButton) {\r\n      sButton.reportParams = this.model.getReportParams();\r\n    }\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { Md5Service } from './md5.service';\r\nimport { InteractionParams, InteractionObject, Variable, Message } from './objects';\r\nimport { HelperService } from './helper.service';\r\nimport { ControllerService } from './controller.service';\r\nimport { DrillDownService } from './drill-down.service';\r\n\r\n@Injectable()\r\nexport class InteractionsService {\r\n\r\n  constructor(public model: ModelService, public md5: Md5Service, public controller: ControllerService, public helper: HelperService,\r\n    public drillDownService: DrillDownService) {\r\n\r\n    controller.getMessage().subscribe((message: Message) => {\r\n      if (message.action === 'InitVars') {\r\n        this.showParametersPanel(message.data);\r\n      }\r\n    });\r\n\r\n    controller.getActionMessage().subscribe((message: Message) => {\r\n      switch (message.action) {\r\n        case 'Variables':\r\n          this.postInteraction({ action: 'Variables', variables: this.getParametersValues() });\r\n          break;\r\n\r\n        case 'Reset':\r\n          this.showParametersPanel(this.model.options.paramsVariables);\r\n          break;\r\n\r\n        default:\r\n          break;\r\n      }\r\n    });\r\n  }\r\n\r\n  public postInteraction(params: InteractionParams) {\r\n    this.drillDownService.saveState();\r\n    // Add new drill-down parameters to drill-down queue and calc guid\r\n    if (params.action !== 'InitVars' && (params.action === 'DrillDown' || params.action === 'DashboardDrillDown')) {\r\n      if (this.model.options.drillDownInProgress) {\r\n        return;\r\n      }\r\n\r\n      if (params.action === 'DashboardDrillDown' && params.drillDownParameters) {\r\n        params.drillDownParameters.isDashboardDrillDown = true; // add dbs flag\r\n      }\r\n      const drillDownParameters = this.model.reportParams.drillDownParameters || [];\r\n      params.drillDownParameters = params.drillDownParameters ? drillDownParameters.concat(params.drillDownParameters) : drillDownParameters;\r\n\r\n      if (params.action === 'DrillDown') {\r\n        params.drillDownGuid = this.md5.hex_md5(JSON.stringify(this.sortPropsInDrillDownParameters(params.drillDownParameters)));\r\n      } else {\r\n        params.dashboardDrillDownGuid = this.md5.hex_md5(JSON.stringify(this.sortPropsInDrillDownParameters(params.drillDownParameters)));\r\n      }\r\n\r\n      this.model.options.drillDownInProgress = true;\r\n    }\r\n\r\n    this.controller.post(params.action, this.model.options.actions.interaction, params);\r\n  }\r\n\r\n  showParametersPanel(data: any) {\r\n    if (!data) {\r\n      return;\r\n    }\r\n\r\n    if (this.controller.showError(data)) {\r\n      data = null;\r\n    }\r\n\r\n    this.model.options.isParametersReceived = true;\r\n    this.model.options.paramsVariables = typeof data === 'string' ? JSON.parse(data) : data;\r\n    this.model.controls.parametersPanel.visible = !this.model.options.isMobileDevice;\r\n\r\n    // if (this.model.reportParams.type === 'Dashboard') jsObject.postAction('GetPages');\r\n\r\n    const paramsVariables = this.helper.copyObject(this.model.options.paramsVariables);\r\n    const countParameters: number = this.helper.getCountObjects(paramsVariables);\r\n    let minParametersCount = this.model.options.appearance.minParametersCountForMultiColumns != null ? this.model.options.appearance.minParametersCountForMultiColumns : 5;\r\n    const countColumns: number = (countParameters <= minParametersCount) ? 1 : this.model.options.appearance.parametersPanelColumnsCount;\r\n\r\n    let countInColumn = Math.trunc(countParameters / countColumns);\r\n    if (countInColumn * countColumns < countParameters) {\r\n      countInColumn++;\r\n    }\r\n\r\n    // setup lists\r\n    for (let i = 0; i < countParameters; i++) {\r\n      const variable = paramsVariables[i] as Variable;\r\n      if (variable.items) {\r\n        variable.items.forEach((v, index) => {\r\n          let isChecked = true;\r\n\r\n          if (variable.value instanceof Array && !variable.allowUserValues &&\r\n            variable.value.indexOf(variable.items[index].value) < 0 && variable.value.indexOf(variable.items[index].key) < 0)\r\n            isChecked = false;\r\n\r\n          if (variable.isFirstInitialization && variable.checkedStates && index < variable.checkedStates.length) {\r\n            isChecked = variable.checkedStates[index];\r\n          }\r\n\r\n          v.isChecked = isChecked;\r\n          v.visible = true;\r\n        });\r\n      }\r\n\r\n      variable.isNull = (variable.type === 'DateTime' && variable.value === null && variable.basicType === 'NullableValue');\r\n    }\r\n\r\n    this.model.interactions = { paramsVariables, countColumns: new Array(countColumns), countInColumn: new Array(countInColumn) };\r\n  }\r\n\r\n  sortPropsInDrillDownParameters(inArray: []): any[] {\r\n    if (!inArray || !inArray.length) {\r\n      return inArray;\r\n    }\r\n    const outArray: any[] = [];\r\n    for (let i = 0; i < inArray.length; i++) {\r\n      const propNames = [];\r\n      const el: any = inArray[i];\r\n      const copyEl = {};\r\n      Object.keys(el).forEach(p => {\r\n        if (el.hasOwnProperty(p)) {\r\n          propNames.push(p);\r\n        }\r\n      });\r\n\r\n      propNames.sort();\r\n      propNames.forEach(propName => copyEl[propName] = el[propName]);\r\n      outArray[i] = copyEl;\r\n    }\r\n    return outArray;\r\n  }\r\n\r\n  public getParametersValues(): any {\r\n    const parametersValues = {};\r\n    Object.keys(this.model.interactions.paramsVariables).forEach(i => {\r\n      const parameter: Variable = this.model.interactions.paramsVariables[i];\r\n      parametersValues[parameter.name] = this.getVariableValue(parameter);\r\n    });\r\n    return parametersValues;\r\n  }\r\n\r\n  getVariableValue(parameter: Variable): any {\r\n    if (parameter.isNull) {\r\n      return null;\r\n    }\r\n\r\n    switch (parameter.basicType) {\r\n      case 'Value':\r\n      case 'NullableValue':\r\n        return this.val(parameter.key, parameter, parameter.allowUserValues ? parameter.value : parameter.key);\r\n\r\n      case 'Range':\r\n        return { from: this.val(parameter.key, parameter), to: this.val(parameter.keyTo, parameter) };\r\n\r\n      case 'List':\r\n        const value = [];\r\n        if (parameter.items) {\r\n          parameter.items.filter(i => parameter.allowUserValues || i.isChecked).forEach(item => value.push(this.val(item.key, parameter)));\r\n        }\r\n        return value;\r\n    }\r\n  }\r\n\r\n  val(key: any, parameter: Variable, value?: any): any {\r\n    return parameter.type === 'DateTime' ? this.helper.getStringDateTime(key, parameter.dateTimeType) : (value === undefined ? key : value);\r\n  }\r\n\r\n  public initializeInteractions(page: any) {\r\n    if (!page) {\r\n      return;\r\n    }\r\n    const elems = page.querySelectorAll ? page.querySelectorAll('td,div,span,rect,path,ellipse') : page.getElementsByTagName('td');\r\n    const collapsedHash = [];\r\n    for (const elem of elems) {\r\n      if (elem.getAttribute('interaction') && (\r\n        elem.getAttribute('pageguid') ||\r\n        elem.getAttribute('reportfile') ||\r\n        elem.getAttribute('collapsed') ||\r\n        elem.getAttribute('databandsort'))) {\r\n\r\n        elem.style.cursor = 'pointer';\r\n\r\n        const sort = elem.getAttribute('sort');\r\n        if (sort) {\r\n          this.paintSortingArrow(elem, sort);\r\n        }\r\n\r\n        const collapsed = elem.getAttribute('collapsed');\r\n        if (collapsed) {\r\n          const compId = elem.getAttribute('compindex') + '|' + elem.getAttribute('interaction');\r\n          if (collapsedHash.indexOf(compId) < 0) {\r\n            this.paintCollapsingIcon(elem, collapsed === 'true');\r\n            collapsedHash.push(compId);\r\n          }\r\n        }\r\n\r\n        elem.onclick = (e: any) => {\r\n          if (elem.getAttribute('pageguid') || elem.getAttribute('reportfile')) {\r\n            this.postInteractionDrillDown(elem);\r\n          } else if (elem.getAttribute('collapsed')) {\r\n            this.postInteractionCollapsing(elem);\r\n          } else {\r\n            this.postInteractionSorting(elem, e.ctrlKey);\r\n          }\r\n        };\r\n\r\n        if (elem.getAttribute('pageguid') || elem.getAttribute('reportfile')) {\r\n          elem.onmouseover = () => elem.style.opacity = 0.75;\r\n          elem.onmouseout = () => elem.style.opacity = 1;\r\n        }\r\n      }\r\n\r\n    }\r\n  }\r\n\r\n  public getComponentOffset(component: any) {\r\n    let offsetX = 0;\r\n    let offsetY = 0;\r\n    const startComponent = component;\r\n    while (component && !isNaN(component.offsetLeft) && !isNaN(component.offsetTop)\r\n      && (component === startComponent || component.style.position === '' || component.style.position === 'static')) {\r\n      offsetX += component.offsetLeft - component.scrollLeft;\r\n      offsetY += component.offsetTop - component.scrollTop;\r\n      component = component.offsetParent;\r\n    }\r\n    return { top: offsetY, left: offsetX };\r\n  }\r\n\r\n  public paintSortingArrow(component: any, sort: string) {\r\n    if (component.arrowImg) { return; }\r\n\r\n    const arrowImg = document.createElement(\"div\");\r\n    let sortUpSrc = \"<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12'><path d='M1 9l5-4 5 4z' fill='#eeeeee' stroke='#666'/></svg>\";\r\n    let sortDownSrc = \"<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12'><path d='M1 5l5 4 5-4z' fill='#eeeeee' stroke='#666'/></svg>\";\r\n    arrowImg.innerHTML = sort == \"asc\" ? sortDownSrc : sortUpSrc;\r\n\r\n    const arrowWidth = (this.model.reportParams.zoom / 100) * 16;\r\n    const arrowHeight = (this.model.reportParams.zoom / 100) * 16;\r\n\r\n    arrowImg.style.position = 'absolute';\r\n    arrowImg.style.width = arrowWidth + 'px';\r\n    arrowImg.style.height = arrowHeight + 'px';\r\n    component.appendChild(arrowImg);\r\n    component.arrowImg = arrowImg;\r\n\r\n    const oldPosition = component.style.position;\r\n    const oldClassName = component.className;\r\n    let reportDisplayMode = this.model.options.displayModeFromReport || this.model.options.appearance.reportDisplayMode;\r\n\r\n    if (reportDisplayMode == \"Table\") component.style.position = \"relative\";\r\n    if (!oldClassName) { component.className = 'stiSortingParentElement'; }\r\n\r\n    const arrowLeftPos = this.helper.findPosX(arrowImg, component.className);\r\n    const arrowTopPos = this.helper.findPosY(arrowImg, component.className);\r\n\r\n    arrowImg.style.marginLeft = (component.offsetWidth - arrowLeftPos - arrowWidth - ((this.model.reportParams.zoom / 100) * 3)) + 'px';\r\n    arrowImg.style.marginTop = (component.offsetHeight / 2 - arrowHeight / 2 - arrowTopPos) + 'px';\r\n    if (oldPosition && reportDisplayMode == \"Table\") component.style.position = oldPosition;\r\n    component.className = oldClassName;\r\n  }\r\n\r\n  public paintCollapsingIcon(component: any, collapsed: boolean) {\r\n    if (component.collapsImg) { return; }\r\n    const collapsImg = document.createElement('img');\r\n    collapsImg.src = collapsed ? this.model.img('CollapsingPlus.png') : this.model.img('CollapsingMinus.png');\r\n    collapsImg.style.position = 'absolute';\r\n    const collapsWidth = (this.model.reportParams.zoom / 100) * 10;\r\n    const collapsHeight = (this.model.reportParams.zoom / 100) * 10;\r\n    collapsImg.style.width = collapsWidth + 'px';\r\n    collapsImg.style.height = collapsHeight + 'px';\r\n    component.appendChild(collapsImg);\r\n    component.collapsImg = collapsImg;\r\n\r\n    const componentOffset = this.getComponentOffset(component);\r\n    const collapsOffset = this.getComponentOffset(collapsImg);\r\n    collapsImg.style.marginLeft = (componentOffset.left - collapsOffset.left + collapsWidth / 3) + 'px';\r\n    collapsImg.style.marginTop = (componentOffset.top - collapsOffset.top + collapsWidth / 3) + 'px';\r\n  }\r\n\r\n  public postInteractionSorting(component: any, isCtrl: boolean) {\r\n    const params: InteractionParams = {\r\n      action: 'Sorting',\r\n      sortingParameters: {\r\n        ComponentName: component.getAttribute('interaction') + ';' + isCtrl.toString(),\r\n        DataBand: component.getAttribute('databandsort')\r\n      }\r\n    };\r\n\r\n    if (this.model.options.isParametersReceived) {\r\n      params.variables = this.getParametersValues();\r\n    }\r\n\r\n    this.postInteraction(params);\r\n  }\r\n\r\n  public postInteractionDrillDown(component: any) {\r\n    const params: InteractionParams = {\r\n      action: 'DrillDown',\r\n      drillDownParameters: {\r\n        ComponentIndex: component.getAttribute('compindex'),\r\n        ElementIndex: component.getAttribute('elementindex'),\r\n        PageIndex: component.getAttribute('pageindex'),\r\n        PageGuid: component.getAttribute('pageguid'),\r\n        ReportFile: component.getAttribute('reportfile')\r\n      }\r\n    };\r\n\r\n    this.postInteraction(params);\r\n  }\r\n\r\n  public postInteractionCollapsing(component: any) {\r\n    const componentName = component.getAttribute('interaction');\r\n    const collapsingIndex = component.getAttribute('compindex');\r\n    const collapsed = component.getAttribute('collapsed') === 'true' ? false : true;\r\n\r\n    if (!this.model.reportParams.collapsingStates) { this.model.reportParams.collapsingStates = {}; }\r\n    if (!this.model.reportParams.collapsingStates[componentName]) { this.model.reportParams.collapsingStates[componentName] = {}; }\r\n    this.model.reportParams.collapsingStates[componentName][collapsingIndex] = collapsed;\r\n\r\n    const params: InteractionParams = {\r\n      action: 'Collapsing',\r\n      collapsingParameters: {\r\n        ComponentName: componentName,\r\n        CollapsingStates: this.model.reportParams.collapsingStates\r\n      }\r\n    };\r\n\r\n    if (this.model.options.isParametersReceived) {\r\n      params.variables = this.getParametersValues();\r\n    }\r\n\r\n    this.postInteraction(params);\r\n  }\r\n\r\n  public updateAllHyperLinks() {\r\n    let pointers = this.model.reportParams.tableOfContentsPointers;\r\n    //var bookmarksPanel = this.controls.bookmarksPanel;\r\n    if (this.model.reportParams.bookmarksContent != null || (pointers && pointers.length > 0)) {\r\n      this.model.pages.forEach(p => {\r\n        const page = p.page;\r\n        if (page) {\r\n          const aHyperlinks = page.getElementsByTagName('a');\r\n\r\n          for (const aHyperlink of aHyperlinks) {\r\n            aHyperlink.hrefContent = aHyperlink.getAttribute('href');\r\n\r\n            if (aHyperlink.hrefContent) {\r\n\r\n              if (aHyperlink.hrefContent.indexOf(\"#\") == 0) {\r\n                let anchorParams = aHyperlink.hrefContent.substring(1).split(\"#GUID#\");\r\n                aHyperlink.anchorName = anchorParams[0];\r\n                aHyperlink.componentGuid = anchorParams.length > 1 ? anchorParams[1] : \"\";\r\n\r\n                aHyperlink.onclick = () => {\r\n                  let currAnchorName = aHyperlink.anchorName;\r\n                  let cuurCompGuid = aHyperlink.componentGuid;\r\n\r\n                  try {\r\n                    currAnchorName = decodeURI(aHyperlink.anchorName)\r\n                  }\r\n                  catch (e) {\r\n                    currAnchorName = aHyperlink.anchorName;\r\n                  }\r\n\r\n                  if (pointers.length > 0) {\r\n                    let pageIndex = 1;\r\n\r\n                    for (let i = 0; i < pointers.length; i++) {\r\n                      if (cuurCompGuid) {\r\n                        if (pointers[i].componentGuid == cuurCompGuid) {\r\n                          pageIndex = pointers[i].pageIndex;\r\n                          break;\r\n                        }\r\n                      }\r\n                      else if (currAnchorName) {\r\n                        let pointerAnchor = pointers[i].anchor.indexOf(\"#\") == 0 ? pointers[i].anchor.substring(1) : pointers[i].anchor;\r\n                        if (pointerAnchor == currAnchorName) {\r\n                          pageIndex = pointers[i].pageIndex;\r\n                          break;\r\n                        }\r\n                      }\r\n                    }\r\n\r\n                    let anchorName = \"\";\r\n                    if (currAnchorName) anchorName += currAnchorName;\r\n                    if (cuurCompGuid) anchorName += (\"#GUID#\" + cuurCompGuid);\r\n                    if (anchorName) {\r\n                      this.controller.action({ name: 'BookmarkAction', bookmarkPage: Math.max(pageIndex - 1, 0), bookmarkAnchor: anchorName, componentGuid: aHyperlink.compunentGuid });\r\n                      return false;\r\n                    }\r\n                  }\r\n\r\n                  if (this.model.reportParams.bookmarksContent != null) {\r\n                    const node = this.model.nodes.find(n => n.name === currAnchorName);\r\n                    if (node) {\r\n                      this.model.navigateNode = node;\r\n                    } else {\r\n                      for (let k = 0; k < document.anchors.length; k++) {\r\n                        if (document.anchors[k].name == currAnchorName) {\r\n                          //jsObject.scrollToAnchor(currAnchorName);\r\n                          this.helper.scrollToAnchor(currAnchorName);\r\n                          return;\r\n                        }\r\n                      }\r\n                    }\r\n                    this.controller.post('BookmarkAction', null, 0);\r\n\r\n\r\n                    /*let aBookmarks = bookmarksPanel.getElementsByTagName(\"a\");\r\n                    for (let k = 0; k < aBookmarks.length; k++) {\r\n                      let clickFunc = aBookmarks[k].getAttribute(\"onclick\");\r\n                      if (clickFunc && clickFunc.indexOf(\"'\" + currAnchorName + \"'\") >= 0) {\r\n                        try {\r\n                          eval(clickFunc);\r\n                          return false;\r\n                        }\r\n                        catch (e) { }\r\n                      }\r\n                    }\r\n\r\n                    this.controller.post('BookmarkAction', null, 0);*/\r\n                    return false;\r\n                  }\r\n\r\n                  //=================================\r\n                  /*let pageIndex = 1;\r\n                  for (let i = 0; i < pointers.length; i++) {\r\n                    if (aHyperlink.componentGuid) {\r\n                      if (pointers[i].componentGuid == aHyperlink.componentGuid) {\r\n                        pageIndex = pointers[i].pageIndex;\r\n                        break;\r\n                      }\r\n                    }\r\n                    else if (aHyperlink.bookmarkAnchor) {\r\n                      if (pointers[i].anchor == decodeURI(aHyperlink.bookmarkAnchor)) {\r\n                        pageIndex = pointers[i].pageIndex;\r\n                        break;\r\n                      }\r\n                    }\r\n                  }\r\n                  this.controller.action({ name: 'BookmarkAction', bookmarkPage: pageIndex - 1, bookmarkAnchor: decodeURI(aHyperlink.bookmarkAnchor), componentGuid: aHyperlink.compunentGuid });\r\n                  return false;\r\n                  };\r\n                  } else if (this.model.reportParams.bookmarksContent != null) {\r\n                  aHyperlink.anchorName = aHyperlink.hrefContent.replace('#', '');\r\n\r\n                  aHyperlink.onclick = () => {\r\n                  const node = this.model.nodes.find(n => n.url.replace(/\\\\\\'/g, '\\'').substr(1) === aHyperlink.anchorName);\r\n                  if (node) {\r\n                    this.model.navigateNode = node;\r\n                  } else if (aHyperlink.hrefContent.indexOf('#') === 0) {\r\n                    for (let i = 0; i < document.anchors.length; i++) {\r\n                      const anchor = document.anchors[i];\r\n                      if (anchor.name === aHyperlink.anchorName) {\r\n                        this.helper.scrollToAnchor(aHyperlink.anchorName);\r\n                        return;\r\n                      }\r\n                    }\r\n                    this.controller.post('BookmarkAction', null, 0);\r\n                  }\r\n                  return false;\r\n                  };*/\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n\r\n\r\n      });\r\n\r\n    }\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RadioButtonComponent } from '../controls/radio-button.components';\r\n\r\n@Injectable()\r\nexport class RadioButtonService {\r\n\r\n  groups = {};\r\n\r\n  constructor() { }\r\n\r\n  public addButton(button: RadioButtonComponent) {\r\n    if (!this.groups[button.groupName]) {\r\n      this.groups[button.groupName] = [];\r\n    }\r\n    this.groups[button.groupName].push(button);\r\n  }\r\n\r\n  public removeButton(button: RadioButtonComponent) {\r\n    const buttons = this.groups[button.groupName] as RadioButtonComponent[];\r\n    buttons?.splice(buttons.indexOf(button), 1);\r\n  }\r\n\r\n  public check(button: RadioButtonComponent) {\r\n    const buttons = this.groups[button.groupName] as RadioButtonComponent[];\r\n    buttons?.filter(b => b.name !== button.name).forEach(b => b.uncheck());\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ControllerService } from './controller.service';\r\nimport { Message } from './objects';\r\nimport { ModelService } from './model.service';\r\nimport { HelperService } from './helper.service';\r\n\r\n@Injectable()\r\nexport class EditableFieldsService {\r\n\r\n  public visible = false;\r\n  public editableFields = [];\r\n  public currentEditableTextArea: any;\r\n\r\n  constructor(private controller: ControllerService, private model: ModelService, private helper: HelperService) {\r\n\r\n    controller.getActionMessage().subscribe((message: Message) => {\r\n      switch (message.action) {\r\n        case 'Editor':\r\n          this.visible = !this.visible;\r\n          if (this.visible) {\r\n            this.showAllEditableFields();\r\n          } else {\r\n            this.hideAllEditableFields();\r\n          }\r\n          break;\r\n      }\r\n    });\r\n\r\n    controller.getMessage().subscribe((message) => {\r\n      if (message.action === 'GetPages' && this.visible) {\r\n        setTimeout(() => this.showAllEditableFields());\r\n      } else {\r\n        this.visible = false;\r\n      }\r\n    });\r\n  }\r\n\r\n  private showAllEditableFields() {\r\n    this.editableFields = [];\r\n\r\n    this.model.pages.forEach((page, pageIndex) => {\r\n      const pageElements = page.page.getElementsByTagName('*');\r\n      for (const pageElement of pageElements) {\r\n        const editableStrAttr = pageElement.getAttribute('editable');\r\n        if (editableStrAttr) {\r\n          const attrArray = editableStrAttr.split(';');\r\n          const params: any = {};\r\n          params.compIndex = attrArray[0];\r\n          params.pageIndex = this.model.reportParams.viewMode === 'SinglePage' ? this.model.reportParams.pageNumber : pageIndex.toString();\r\n          params.type = attrArray[1];\r\n\r\n          if (params.type === 'CheckBox') {\r\n            this.showCheckBoxEditableField(pageElement, params, attrArray);\r\n          } else if (params.type === 'Text') {\r\n            this.showTextEditableField(pageElement, params);\r\n          } else if (params.type === 'RichText') {\r\n            this.showRichTextEditableField(pageElement, params);\r\n          }\r\n        }\r\n      }\r\n\r\n    });\r\n  }\r\n\r\n  private hideAllEditableFields() {\r\n    if (this.currentEditableTextArea) { this.currentEditableTextArea.onblur(); }\r\n\r\n    this.editableFields.forEach((eField) => {\r\n      eField.className = eField.className.replace(' stiEditableField stiEditableFieldSelected', '');\r\n      eField.onclick = null;\r\n      eField.style.outline = '';\r\n    });\r\n\r\n  }\r\n\r\n  private showCheckBoxEditableField(editableCell: any, params: any, attrArray: any[]) {\r\n    if (!editableCell.sizes) {\r\n      let imgElements = editableCell.getElementsByTagName('IMG');\r\n      if (imgElements.length === 0) { imgElements = editableCell.getElementsByTagName('SVG'); }\r\n      if (imgElements.length === 0) { imgElements = editableCell.getElementsByTagName('svg'); }\r\n      const imgElement = (imgElements.length > 0) ? imgElements[0] : null;\r\n      if (!imgElement) { return; }\r\n      if (imgElement.offsetWidth) {\r\n        editableCell.sizes = {\r\n          inPixels: imgElement.offsetWidth > imgElement.offsetHeight ? imgElement.offsetHeight : imgElement.offsetWidth,\r\n          widthStyle: imgElement.style.width,\r\n          heightStyle: imgElement.style.height\r\n        };\r\n      } else {\r\n        editableCell.sizes = {\r\n          inPixels: imgElement.clientWidth > imgElement.clientHeight ? imgElement.clientHeight : imgElement.clientWidth,\r\n          widthStyle: imgElement.clientWidth + 'px',\r\n          heightStyle: imgElement.clientHeight + 'px'\r\n        };\r\n      }\r\n    }\r\n\r\n    if (this.helper.getNavigatorName() !== 'Google Chrome') { editableCell.style.outline = '1px solid gray'; }\r\n    editableCell.style.textAlign = 'center';\r\n    editableCell.className += ' stiEditableField stiEditableFieldSelected';\r\n\r\n    const trueSvgImage = this.getSvgCheckBox(attrArray[3], attrArray[5], this.helper.strToInt(attrArray[6]), attrArray[7], editableCell.sizes.inPixels);\r\n    const falseSvgImage = this.getSvgCheckBox(attrArray[4], attrArray[5], this.helper.strToInt(attrArray[6]), attrArray[7], editableCell.sizes.inPixels);\r\n    params.falseImage = `<div style=\"width: ${editableCell.sizes.widthStyle}; height: ${editableCell.sizes.heightStyle}; \"> ${trueSvgImage}  </div>`;\r\n    params.trueImage = `<div style=\"width: ${editableCell.sizes.widthStyle}; height: ${editableCell.sizes.heightStyle}; \"> ${falseSvgImage} </div>`;\r\n    params.checked = attrArray[2] === 'true' || attrArray[2] === 'True';\r\n    editableCell.params = params;\r\n\r\n    if (!editableCell.hasChanged) {\r\n      editableCell.checked = params.checked;\r\n      editableCell.innerHTML = params.checked ? params.trueImage : params.falseImage;\r\n    }\r\n\r\n    editableCell.onclick = () => {\r\n      editableCell.checked = !editableCell.checked;\r\n      editableCell.innerHTML = editableCell.checked ? params.trueImage : params.falseImage;\r\n      editableCell.hasChanged = true;\r\n      this.addEditableParameters(editableCell);\r\n    };\r\n\r\n    this.editableFields.push(editableCell);\r\n  }\r\n\r\n  private showTextEditableField(editableCell: any, params: any) {\r\n\r\n    editableCell.className += ' stiEditableField stiEditableFieldSelected';\r\n    if (this.helper.getNavigatorName() !== 'Google Chrome') { editableCell.style.outline = '1px solid gray'; }\r\n    editableCell.params = params;\r\n    editableCell.jsObject = this;\r\n\r\n    editableCell.onclick = () => {\r\n      if (editableCell.editMode) { return; }\r\n      if (this.currentEditableTextArea) { this.currentEditableTextArea.onblur(); }\r\n      editableCell.editMode = true;\r\n\r\n      const textArea = document.createElement('textarea');\r\n      textArea.style.width = (editableCell.offsetWidth - 5) + 'px';\r\n      textArea.style.height = (editableCell.offsetHeight - 5) + 'px';\r\n      textArea.style.maxWidth = (editableCell.offsetWidth - 5) + 'px';\r\n      textArea.style.maxHeight = (editableCell.offsetHeight - 5) + 'px';\r\n      textArea.className = editableCell.className.replace(' stiEditableField stiEditableFieldSelected', '') + ' stiEditableTextArea';\r\n      textArea.style.border = '0px';\r\n\r\n      let textContainer = editableCell;\r\n      var includedInnerDiv = function (el) {\r\n        return (el.firstChild && el.firstChild.nodeName && el.firstChild.nodeName.toLowerCase() == \"div\")\r\n      }\r\n      while (includedInnerDiv(textContainer)) {\r\n        textContainer = textContainer.childNodes[0];\r\n      }\r\n\r\n      textArea.value = textContainer.innerHTML.replace(/<br>/g, '\\n');\r\n      editableCell.appendChild(textArea);\r\n      textArea.focus();\r\n      this.currentEditableTextArea = textArea;\r\n\r\n      textArea.onblur = () => {\r\n        editableCell.editMode = false;\r\n        const newText = textArea.value;\r\n        textContainer.innerHTML = newText.replace(/\\n/g, '<br>');\r\n        if (this && textArea.parentNode) {\r\n          textArea.parentNode.removeChild(textArea);\r\n        }\r\n        this.currentEditableTextArea = null;\r\n        this.addEditableParameters(editableCell, newText);\r\n      };\r\n      let this_ = this;\r\n      let textArea_ = textArea as any;\r\n      textArea_.getPrevTextField = (index) => {\r\n        if (index > 0) {\r\n          for (var i = index - 1; i >= 0; i--) {\r\n            var field = this_.editableFields[i];\r\n            if (field.params.type == \"Text\") {\r\n              return field;\r\n            }\r\n          }\r\n        }\r\n        return null;\r\n      };\r\n\r\n      textArea_.getNextTextField = (index) => {\r\n        if (index < this_.editableFields.length - 1) {\r\n          for (var i = index + 1; i < this_.editableFields.length; i++) {\r\n            var field = this_.editableFields[i];\r\n            if (field.params.type == \"Text\") {\r\n              return field;\r\n            }\r\n          }\r\n        }\r\n        return null;\r\n      }\r\n\r\n      textArea_.onkeydown = function (e) {\r\n        if (e && e.keyCode == 9) {\r\n          if (this_.editableFields) {\r\n            var index = this_.editableFields.indexOf(editableCell);\r\n            var field = /*this_.SHIFT_pressed ? textArea_.getPrevTextField(index) : */textArea_.getNextTextField(index);\r\n            if (field) {\r\n              e.preventDefault();\r\n              field.onclick();\r\n            }\r\n          }\r\n        }\r\n      }\r\n    };\r\n\r\n    this.editableFields.push(editableCell);\r\n  }\r\n\r\n  private showRichTextEditableField(editableCell: any, params: any) {\r\n\r\n  }\r\n\r\n  private addEditableParameters(editableCell: any, newText?: any) {\r\n    if (!this.model.reportParams.editableParameters) { this.model.reportParams.editableParameters = {}; }\r\n    const params: any = {};\r\n    params.type = editableCell.params.type;\r\n    if (params.type === 'CheckBox') { params.checked = editableCell.checked; }\r\n    if (params.type === 'Text') { params.text = newText != null ? newText : editableCell.innerHTML; }\r\n\r\n    if (!this.model.reportParams.editableParameters[editableCell.params.pageIndex]) { this.model.reportParams.editableParameters[editableCell.params.pageIndex] = {}; }\r\n    this.model.reportParams.editableParameters[editableCell.params.pageIndex][editableCell.params.compIndex] = params;\r\n  }\r\n\r\n  private getSvgCheckBox(style: string, contourColor: string, size: number, backColor: string, width: number) {\r\n    const head = `<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0\" y=\"0\" width=\"${width}px\" height=\"${width}px\">`;\r\n    const path = `<path stroke=\"${contourColor}\" stroke-width=\"${size}\" fill=\"${backColor}\" stroke-linecap=\"round\" stroke-linejoin=\"round\" transform=\"scale(${(1 / (200 / width))})\" d=\"`;\r\n\r\n    let shape = '';\r\n    switch (style) {\r\n      case 'Cross':\r\n        shape = 'm 62.567796,147.97593 c -0.55,-0.14223 -2.162828,-0.5128 -3.584062,-0.82348 -3.647667,-0.79738 -9.670499,-5.83775 -14.242817,-11.91949 l ' +\r\n          '-3.902341,-5.19058 5.080199,-1.13481 c 7.353071,-1.64253 13.640456,-5.71752 21.826811,-14.14646 l 7.208128,-7.42171 ' +\r\n          '-6.410736,-7.513354 c -11.773129,-13.79803 -14.346726,-23.01954 -8.627769,-30.91434 2.894109,-3.9952 11.818482,-12.369333 ' +\r\n          '13.182086,-12.369333 0.411356,0 1.063049,1.6875 1.448207,3.750003 0.980474,5.25038 6.456187,16.76587 10.936694,23 2.075266,2.8875 ' +\r\n          '3.991125,5.25 4.257464,5.25 0.266339,0 3.775242,-3.4875 7.797566,-7.75 16.397034,-17.37615 29.674184,-19.76481 38.280564,-6.88699 ' +\r\n          '4.15523,6.21753 4.18631,8.07093 0.14012,8.3552 -5.84833,0.41088 -17.16241,8.5342 -25.51465,18.319104 l -4.63153,5.42599 ' +\r\n          '4.87803,4.31529 c 6.55108,5.79533 18.8991,11.89272 25.84076,12.76002 3.0455,0.38051 5.53727,1.10582 5.53727,1.6118 0,2.7809 ' +\r\n          '-9.26611,14.41872 -13.03,16.36511 -7.96116,4.11687 -16.36991,0.71207 -32.764584,-13.26677 l -4.985957,-4.25125 -7.086791,8.97188 c ' +\r\n          '-3.897736,4.93454 -8.82141,10.1198 -10.9415,11.52281 -3.906121,2.58495 -8.86588,4.41339 -10.691162,3.94136 z';\r\n        break;\r\n\r\n      case 'Check':\r\n        shape = 'M 60.972125,162.49704 C 51.172676,136.72254 43.561975,123.37669 35.370344,117.6027 l -4.45827,-3.14248 2.75159,-2.89559 c 3.875121,-4.07793 ' +\r\n          '10.034743,-7.49924 14.902472,-8.27747 3.859874,-0.61709 4.458306,-0.38024 8.535897,3.37835 2.660692,2.45254 6.265525,7.60856 9.167226,13.11196 ' +\r\n          '2.630218,4.98849 4.910542,9.06999 5.067388,9.06999 0.156846,0 2.31372,-3.0375 4.793052,-6.75 C 96.259164,91.956015 129.68299,58.786374 157.56485,41.281603 l ' +\r\n          '8.84913,-5.555656 2.2633,2.631238 2.26329,2.631237 -7.76266,6.294183 C 139.859,66.19023 108.01682,105.51363 89.042715,138.83563 c -6.680477,11.73214 ' +\r\n          '-7.172359,12.31296 -15.090788,17.81963 -4.501873,3.13071 -9.044031,6.30443 -10.093684,7.05271 -1.708923,1.21826 -2.010678,1.09165 -2.886118,-1.21093 z';\r\n        break;\r\n\r\n      case 'CrossRectangle':\r\n        shape = 'm 24.152542,102.04237 0,-72.499996 74.5,0 74.499998,0 0,72.499996 0,72.5 -74.499998,0 -74.5,0 0,-72.5 z m 133.758188,0.25 -0.25819,-57.249996 ' +\r\n          '-58.999998,0 -59,0 -0.259695,55.999996 c -0.142833,30.8 -0.04446,56.5625 0.218615,57.25 0.375181,0.98048 13.207991,1.25 59.517885,1.25 l ' +\r\n          '59.039573,0 -0.25819,-57.25 z m -90.574091,43.18692 c -1.823747,-0.3912 -4.926397,-1.85716 -6.894778,-3.25768 -3.319254,-2.36169 -12.289319,-12.40741 ' +\r\n          '-12.289319,-13.76302 0,-0.32888 2.417494,-1.13897 5.372209,-1.80021 7.185193,-1.60797 13.747505,-5.93496 21.803114,-14.3763 l 6.675323,-6.99496 ' +\r\n          '-6.379078,-7.31436 C 64.931387,85.71231 61.643682,76.29465 65.471903,68.89169 67.054097,65.83207 78.56175,54.542374 80.098251,54.542374 c 0.45744,0 ' +\r\n          '1.146839,1.6875 1.531997,3.75 0.980474,5.250386 6.456187,16.765876 10.936694,22.999996 2.075266,2.8875 3.991125,5.25 4.257464,5.25 0.266339,0 ' +\r\n          '3.775244,-3.4875 7.797564,-7.75 16.39704,-17.376139 29.67419,-19.764806 38.28057,-6.88698 4.15523,6.21752 4.18631,8.07092 0.14012,8.35519 -5.82996,0.40959 ' +\r\n          '-18.23707,9.34942 -25.91566,18.67328 -3.90068,4.73647 -3.97203,4.95414 -2.2514,6.86861 3.19054,3.54997 13.7039,10.54321 18.97191,12.61967 2.83427,1.11716 ' +\r\n          '7.43737,2.33421 10.22912,2.70455 2.79175,0.37034 5.07591,0.9956 5.07591,1.38947 0,2.11419 -8.37504,13.20895 -11.6517,15.4355 -8.39423,5.70403 ' +\r\n          '-16.63203,2.77 -34.14289,-12.16054 l -4.985955,-4.25125 -7.086791,8.97188 c -9.722344,12.3085 -16.524852,16.55998 -23.948565,14.96754 z';\r\n        break;\r\n\r\n      case 'CheckRectangle':\r\n        shape = 'm 19.915254,103.5 0,-72.5 71.942245,0 71.942241,0 6.55727,-4.11139 6.55726,-4.11139 1.96722,2.36139 c 1.08197,1.298765 1.98219,2.644166 2.00049,2.98978 ' +\r\n          '0.0183,0.345615 -2.44173,2.53784 -5.46673,4.87161 l -5.5,4.243219 0,69.378391 0,69.37839 -74.999991,0 -75.000005,0 0,-72.5 z m 133.999996,3.87756 c ' +\r\n          '0,-49.33933 -0.12953,-53.514947 -1.62169,-52.276568 -2.78014,2.307312 -15.68408,17.90053 -24.32871,29.399008 -10.4919,13.955575 -23.47926,33.53736 ' +\r\n          '-29.514025,44.5 -4.457326,8.09707 -5.134776,8.80812 -14.291256,15 -5.28667,3.575 -9.903486,6.62471 -10.259592,6.77712 -0.356107,0.15242 -1.912439,-2.99758 ' +\r\n          '-3.458515,-7 -1.546077,-4.00241 -5.258394,-12.41205 -8.249593,-18.68809 -4.285436,-8.99155 -6.676569,-12.64898 -11.27758,-17.25 C 47.70282,104.62757 ' +\r\n          '44.364254,102 43.495254,102 c -2.798369,0 -1.704872,-1.66044 3.983717,-6.049158 5.593548,-4.31539 13.183139,-7.091307 16.801313,-6.145133 3.559412,0.930807 ' +\r\n          '9.408491,8.154973 13.919775,17.192241 l 4.46286,8.94025 4.54378,-6.83321 C 95.518219,96.605618 108.21371,81.688517 125.80695,63.75 L 143.21531,46 l ' +\r\n          '-53.650021,0 -53.650035,0 0,57.5 0,57.5 59.000005,0 58.999991,0 0,-53.62244 z';\r\n        break;\r\n\r\n      case 'CrossCircle':\r\n        shape = 'M 83.347458,173.13597 C 61.069754,168.04956 42.193415,152.8724 32.202285,132.01368 23.4014,113.63986 23.679644,89.965903 32.91889,71.042373 ' +\r\n          '41.881579,52.685283 60.867647,37.139882 80.847458,31.799452 c 10.235111,-2.735756 31.264662,-2.427393 40.964762,0.600679 26.18668,8.174684 ' +\r\n          '46.06876,28.926852 51.62012,53.879155 2.43666,10.952327 1.56754,28.058524 -1.98036,38.977594 -6.65679,20.48707 -25.64801,38.95163 -47.32647,46.01402 ' +\r\n          '-6.3909,2.08202 -10.18566,2.59644 -21.27805,2.88446 -9.033911,0.23456 -15.484931,-0.10267 -19.500002,-1.01939 z M 112.4138,158.45825 c 17.13137,-3.13002 ' +\r\n          '33.71724,-15.96081 41.41353,-32.03742 14.8975,-31.119027 -1.10807,-67.659584 -34.40232,-78.540141 -6.71328,-2.193899 -9.93541,-2.643501 ' +\r\n          '-19.07755,-2.661999 -9.354252,-0.01893 -12.16228,0.37753 -18.768532,2.649866 -17.155451,5.900919 -29.669426,17.531424 -36.438658,33.866137 ' +\r\n          '-2.152301,5.193678 -2.694658,8.35455 -3.070923,17.89744 -0.518057,13.139047 0.741843,19.201887 6.111644,29.410237 4.106815,7.80733 15.431893,19.09359 ' +\r\n          '23.36818,23.28808 12.061362,6.37467 27.138828,8.6356 40.864629,6.1278 z M 69.097458,133.41654 c -2.8875,-2.75881 -5.25,-5.35869 -5.25,-5.77751 ' +\r\n          '0,-0.41882 5.658529,-6.30954 12.57451,-13.0905 l 12.57451,-12.329 L 76.198053,89.392633 63.399628,76.565738 68.335951,71.554056 c 2.714978,-2.756426 ' +\r\n          '5.304859,-5.011683 5.75529,-5.011683 0.450432,0 6.574351,5.611554 13.608709,12.470121 l 12.78974,12.470119 4.42889,-4.553471 c 2.43588,-2.50441 ' +\r\n          '8.39186,-8.187924 13.23551,-12.630032 l 8.80663,-8.076559 5.34744,5.281006 5.34743,5.281007 -12.96155,12.557899 -12.96154,12.557897 13.13318,13.16027 ' +\r\n          '13.13319,13.16027 -5.18386,4.66074 c -2.85112,2.5634 -5.70472,4.66073 -6.34134,4.66073 -0.63661,0 -6.5434,-5.4 -13.12621,-12 -6.58281,-6.6 -12.3871,-12 ' +\r\n          '-12.89844,-12 -0.511329,0 -6.593363,5.60029 -13.515627,12.44509 l -12.585935,12.44508 -5.25,-5.016 z';\r\n        break;\r\n\r\n      case 'DotCircle':\r\n        shape = 'M 81.652542,170.5936 C 59.374838,165.50719 40.498499,150.33003 30.507369,129.47131 21.706484,111.09749 21.984728,87.42353 31.223974,68.5 ' +\r\n          '40.186663,50.14291 59.172731,34.597509 79.152542,29.257079 89.387653,26.521323 110.4172,26.829686 120.1173,29.857758 c 26.18668,8.174684 ' +\r\n          '46.06876,28.926852 51.62012,53.879152 2.43666,10.95233 1.56754,28.05853 -1.98036,38.9776 -6.65679,20.48707 -25.64801,38.95163 -47.32647,46.01402 ' +\r\n          '-6.3909,2.08202 -10.18566,2.59644 -21.27805,2.88446 -9.033907,0.23456 -15.484927,-0.10267 -19.499998,-1.01939 z m 29.999998,-15.098 c 20.68862,-4.34363 ' +\r\n          '38.01874,-20.45437 44.09844,-40.9956 2.36228,-7.9813 2.36228,-22.0187 0,-30 C 150.08927,65.371023 134.63549,50.297336 114.65254,44.412396 ' +\r\n          '106.5531,42.027127 90.741304,42.026386 82.695253,44.4109 62.460276,50.407701 46.686742,66.039241 41.6053,85.13096 c -1.948821,7.32201 -1.86506,23.11641 ' +\r\n          '0.158766,29.93754 8.730326,29.42481 38.97193,46.91812 69.888474,40.4271 z M 90.004747,122.6703 C 76.550209,117.63801 69.825047,101.82445 ' +\r\n          '75.898143,89.5 c 2.136718,-4.33615 7.147144,-9.356192 11.754399,-11.776953 5.578622,-2.931141 16.413098,-2.927504 22.052908,0.0074 18.03,9.382663 ' +\r\n          '19.07573,32.784373 1.91442,42.841563 -5.57282,3.26589 -15.830952,4.2617 -21.615123,2.09829 z';\r\n        break;\r\n\r\n      case 'DotRectangle':\r\n        shape = 'm 23.847458,101.19491 0,-72.499995 74.5,0 74.499992,0 0,72.499995 0,72.5 -74.499992,0 -74.5,0 0,-72.5 z m 133.999992,-0.008 0,-57.507925 ' +\r\n          '-59.249992,0.25793 -59.25,0.25793 -0.25819,57.249995 -0.258189,57.25 59.508189,0 59.508182,0 0,-57.50793 z m -94.320573,33.85402 c -0.37368,-0.37368 ' +\r\n          '-0.679419,-15.67942 -0.679419,-34.01275 l 0,-33.333335 35.513302,0 35.51329,0 -0.2633,33.749995 -0.2633,33.75 -34.570573,0.26275 c -19.013819,0.14452 ' +\r\n          '-34.876319,-0.043 -35.25,-0.41666 z';\r\n        break;\r\n\r\n      case 'NoneCircle':\r\n        shape = 'M 83.5,170.5936 C 61.222296,165.50719 42.345957,150.33003 32.354827,129.47131 23.553942,111.09749 23.832186,87.423523 33.071432,68.5 ' +\r\n          '42.034121,50.14291 61.020189,34.597509 81,29.257079 c 10.235111,-2.735756 31.26466,-2.427393 40.96476,0.600679 26.18668,8.174684 46.06876,28.926852 ' +\r\n          '51.62012,53.879155 2.43666,10.95232 1.56754,28.058527 -1.98036,38.977597 -6.65679,20.48707 -25.64801,38.95163 -47.32647,46.01402 -6.3909,2.08202 ' +\r\n          '-10.18566,2.59644 -21.27805,2.88446 -9.033909,0.23456 -15.484929,-0.10267 -19.5,-1.01939 z m 30,-15.098 c 20.68862,-4.34363 38.01874,-20.45437 ' +\r\n          '44.09844,-40.9956 2.36228,-7.9813 2.36228,-22.018707 0,-29.999997 C 151.93673,65.371023 136.48295,50.297336 116.5,44.412396 108.40056,42.027127 ' +\r\n          '92.588762,42.026386 84.542711,44.410896 64.307734,50.407697 48.5342,66.039237 43.452758,85.130959 c -1.948821,7.322 -1.86506,23.116411 ' +\r\n          '0.158766,29.937541 8.730326,29.42481 38.97193,46.91812 69.888476,40.4271 z';\r\n        break;\r\n\r\n      case 'NoneRectangle':\r\n        shape = 'm 24.152542,102.04237 0,-72.499997 74.5,0 74.500008,0 0,72.499997 0,72.5 -74.500008,0 -74.5,0 0,-72.5 z m 133.758198,0.25 ' +\r\n          '-0.25819,-57.249997 -59.000008,0 -59,0 -0.259695,55.999997 c -0.142833,30.8 -0.04446,56.5625 0.218615,57.25 0.375181,0.98048 ' +\r\n          '13.207991,1.25 59.517885,1.25 l 59.039583,0 -0.25819,-57.25 z';\r\n        break;\r\n    }\r\n\r\n    return head + path + shape + '\" /></svg>';\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ModelService } from './model.service';\r\nimport { InteractionsService } from './interactions.service';\r\nimport { HelperService } from './helper.service';\r\nimport { EditableFieldsService } from './editable-fields.service';\r\nimport { ControllerService } from './controller.service';\r\nimport { ComponentDescription, Message } from './objects';\r\nimport { MenuItem } from '../menu/meni-item.component';\r\nimport { ExportService } from './export.service';\r\n\r\n@Injectable()\r\nexport class ToolbarService {\r\n\r\n  public comps: ComponentDescription[] = [];\r\n  public dopComps: ComponentDescription[] = [];\r\n\r\n  constructor(public model: ModelService, public controller: ControllerService, public editableFieldsService: EditableFieldsService,\r\n    public interactionService: InteractionsService, public helper: HelperService, public exportService: ExportService) {\r\n    this.controller.getMessage().subscribe((message: Message) => {\r\n      if (message.action !== 'viewer_loaded') {\r\n        this.updateButtons();\r\n      }\r\n    });\r\n  }\r\n\r\n  updateButtons() {\r\n    this.comps.filter(i => i.action === 'ViewMode').forEach(m => m.caption = this.model.loc(this.model.reportParams.viewMode));\r\n    this.comps.filter(i => i.action === 'Zoom').forEach((m) => {\r\n      m.menuItems.forEach(n => n.selected = n.name === ('Zoom' + this.model.reportParams.zoom));\r\n      m.caption = this.model.reportParams.zoom ? Math.round(this.model.reportParams.zoom) + '%' : '';\r\n    });\r\n\r\n    this.comps.filter(i => i.action === 'ShowFind').forEach((m) => {\r\n      m.selected = this.model.controls.findPanel.visible;\r\n    });\r\n  }\r\n\r\n  initButtons() {\r\n    const comps: ComponentDescription[] = [];\r\n    const dopComps: ComponentDescription[] = [];\r\n    let isFirst = false;\r\n\r\n    if (this.model.options.toolbar.showAboutButton) { dopComps.push({ type: 'button', action: 'About', img: 'Help.png' }); }\r\n    if (this.model.options.toolbar.showAboutButton && this.model.options.toolbar.showDesignButton) { dopComps.push({ type: 'separator' }); }\r\n    if (this.model.options.toolbar.showDesignButton) { dopComps.push({ type: 'button', action: 'Design', caption: this.model.loc('Design'), img: 'Design.png' }); }\r\n    if (this.model.options.toolbar.showPinToolbarButton && this.model.options.toolbar.showDesignButton) { dopComps.push({ type: 'separator' }); }\r\n    if (this.model.options.toolbar.showPinToolbarButton) { dopComps.push({ type: 'button', action: 'Pin', img: 'Pin.png' }); }\r\n\r\n\r\n    if (this.model.options.toolbar.showPrintButton) {\r\n      comps.push({\r\n        type: 'button', action: 'Print', caption: this.model.loc('Print'), img: 'Print.png', tooltip: true,\r\n        arrow: this.model.options.toolbar.printDestination === 'Default' ? 'Down' : null,\r\n        menuItems: this.model.options.toolbar.printDestination === 'Default' ?\r\n          [{ name: 'PrintPdf', caption: this.model.loc('PrintPdf'), img: 'Save.Small.Pdf.png' },\r\n          { name: 'PrintWithPreview', caption: this.model.loc('PrintWithPreview'), img: 'ViewMode.png' },\r\n          { name: 'PrintWithoutPreview', caption: this.model.loc('PrintWithoutPreview'), img: 'Print.png' }] :\r\n          null\r\n      });\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.toolbar.showOpenButton) {\r\n      comps.push({ type: 'button', action: 'Open', caption: this.model.loc('Open'), img: 'Open.png', tooltip: true });\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.toolbar.showSaveButton) {\r\n      comps.push({\r\n        type: 'button', action: 'Save', caption: this.model.loc('Save'), img: 'Save.png', tooltip: true, arrow: 'Down',\r\n        menuItems: this.getSaveMenuItems('saveMenu')\r\n      });\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.toolbar.showSendEmailButton) {\r\n      comps.push({\r\n        type: 'button', action: 'SendEmail', caption: this.model.loc('SendEmail'), img: 'SendEmail.png', tooltip: true, arrow: 'Down',\r\n        menuItems: this.getSaveMenuItems('sendEmailMenu')\r\n      });\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.toolbar.showBookmarksButton || this.model.options.toolbar.showParametersButton) {\r\n      if (!isFirst) {\r\n        comps.push({ type: 'separator' });\r\n      }\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.toolbar.showBookmarksButton) {\r\n      comps.push({ type: 'button', action: 'Bookmarks', caption: this.model.options.toolbar.displayMode === 'Separated' ? this.model.loc('Bookmarks') : null, img: 'Bookmarks.png', tooltip: true });\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.toolbar.showParametersButton) {\r\n      comps.push({ type: 'button', action: 'Parameters', caption: this.model.options.toolbar.displayMode === 'Separated' ? this.model.loc('Parameters') : null, img: 'Parameters.png', tooltip: true });\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.toolbar.showResourcesButton) {\r\n      comps.push({ type: 'button', action: 'Resources', caption: this.model.options.toolbar.displayMode === 'Separated' ? this.model.loc('Resources') : null, img: 'Resources.png', tooltip: true });\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.toolbar.showFindButton || this.model.options.toolbar.showEditorButton) {\r\n      if (!isFirst) {\r\n        comps.push({ type: 'separator' });\r\n      }\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.toolbar.showFindButton) {\r\n      comps.push({ type: 'button', action: 'Find', img: 'Find.png', tooltip: true });\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.toolbar.showEditorButton) {\r\n      comps.push({ type: 'button', action: 'Editor', img: 'Editor.png', tooltip: true });\r\n      isFirst = false;\r\n    }\r\n\r\n    if (this.model.options.toolbar.displayMode !== 'Separated') {\r\n      if (this.model.options.toolbar.showFirstPageButton || this.model.options.toolbar.showPreviousPageButton || this.model.options.toolbar.showNextPageButton ||\r\n        this.model.options.toolbar.showLastPageButton || this.model.options.toolbar.showCurrentPageControl) {\r\n        if (!isFirst) {\r\n          comps.push({ type: 'separator' });\r\n        }\r\n        isFirst = false;\r\n      }\r\n      if (this.model.options.toolbar.showFirstPageButton) { comps.push({ type: 'button', action: 'FirstPage', img: this.model.options.appearance.rightToLeft ? 'LastPage.png' : 'FirstPage.png', tooltip: true }); isFirst = false; }\r\n      if (this.model.options.toolbar.showPreviousPageButton) { comps.push({ type: 'button', action: 'PrevPage', img: this.model.options.appearance.rightToLeft ? 'NextPage.png' : 'PrevPage.png', tooltip: true }); isFirst = false; }\r\n      if (this.model.options.toolbar.showCurrentPageControl) { comps.push({ type: 'pageControl' }); isFirst = false; }\r\n\r\n      if (this.model.options.toolbar.showNextPageButton) { comps.push({ type: 'button', action: 'NextPage', img: this.model.options.appearance.rightToLeft ? 'PrevPage.png' : 'NextPage.png', tooltip: true }); isFirst = false; }\r\n      if (this.model.options.toolbar.showLastPageButton) { comps.push({ type: 'button', action: 'LastPage', img: this.model.options.appearance.rightToLeft ? 'FirstPage.png' : 'LastPage.png', tooltip: true }); isFirst = false; }\r\n      if (this.model.options.toolbar.showViewModeButton || this.model.options.toolbar.showZoomButton) {\r\n        if (!isFirst) {\r\n          comps.push({ type: 'separator' });\r\n        }\r\n        isFirst = false;\r\n      }\r\n    }\r\n\r\n    if (this.model.options.toolbar.showFullScreenButton) {\r\n      comps.push({ type: 'button', action: 'FullScreen', img: 'FullScreen.png', tooltip: true });\r\n      comps.push({ type: 'separator' });\r\n      isFirst = false;\r\n    }\r\n\r\n    if (this.model.options.toolbar.showZoomButton && this.model.options.toolbar.displayMode !== 'Separated') {\r\n      comps.push({\r\n        type: 'button', action: 'Zoom', caption: '100%', img: 'Zoom.png', tooltip: true, arrow: 'Down',\r\n        menuItems: this.helper.getZoomMenuItems()\r\n      });\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.toolbar.showViewModeButton) {\r\n      comps.push({\r\n        type: 'button', action: 'ViewMode', caption: this.model.loc('SinglePage'), img: 'SinglePage.png', tooltip: true, arrow: 'Down',\r\n        menuItems: [{ name: 'ViewModeSinglePage', caption: this.model.loc('SinglePage'), img: 'SinglePage.png' },\r\n        { name: 'ViewModeContinuous', caption: this.model.loc('Continuous'), img: 'Continuous.png' },\r\n        { name: 'ViewModeMultiplePages', caption: this.model.loc('MultiplePages'), img: 'MultiplePages.png' }]\r\n      });\r\n      isFirst = false;\r\n    }\r\n    if (typeof (this.model.options.toolbar.multiPageWidthCount) !== 'undefined') {\r\n      this.model.reportParams.multiPageWidthCount = this.model.options.toolbar.multiPageWidthCount;\r\n    }\r\n    if (typeof (this.model.options.toolbar.multiPageHeightCount) !== 'undefined') {\r\n      this.model.reportParams.multiPageHeightCount = this.model.options.toolbar.multiPageHeightCount;\r\n    }\r\n\r\n    if (!this.model.options.appearance.rightToLeft && this.model.options.toolbar.alignment === 'right' &&\r\n      (this.model.options.toolbar.showPinToolbarButton || this.model.options.toolbar.showAboutButton || this.model.options.toolbar.showDesignButton)) {\r\n      comps.push({ type: 'separator6' });\r\n    }\r\n\r\n    this.comps = this.model.options.appearance.rightToLeft ? comps.reverse() : comps;\r\n    this.dopComps = this.model.options.appearance.rightToLeft ? dopComps.reverse() : dopComps;\r\n  }\r\n\r\n  disableNaviButtons(): boolean {\r\n    return this.model.reportParams.viewMode === 'MultiplePages' || this.model.reportParams.viewMode === 'WholeReport' ||\r\n      (this.model.reportParams.viewMode === 'Continuous' && !this.model.options.appearance.scrollbarsMode && !this.model.options.appearance.fullScreenMode);\r\n  }\r\n\r\n  getImage(imageName: string): string {\r\n    switch (this.model.options.appearance.saveMenuImageSize) {\r\n      case 'Big':\r\n        return `Save.Big.${imageName}.png`;\r\n      case 'None':\r\n        return null;\r\n      default:\r\n        return `Save.Small.${imageName}.png`;\r\n    }\r\n  }\r\n\r\n  getSaveMenuItems(menuName: string): any {\r\n    let isFirst = true;\r\n    const items: MenuItem[] = [];\r\n    const imageSize = this.model.options.appearance.saveMenuImageSize;\r\n    if (this.model.options.exports.showExportToDocument && menuName === 'saveMenu') {\r\n      items.push({ name: menuName + 'Document', caption: this.model.loc('ReportSnapshot'), imageSize, img: this.getImage('Document') });\r\n      isFirst = false;\r\n    }\r\n    if (menuName === 'saveMenu' && this.model.options.exports.showExportToPdf || this.model.options.exports.showExportToXps || this.model.options.exports.showExportToPowerPoint) {\r\n      if (!isFirst) {\r\n        items.push({ imageSize, type: 'separator' });\r\n      }\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.exports.showExportToPdf) {\r\n      items.push({ name: menuName + 'Pdf', caption: 'Adobe PDF', imageSize, img: this.getImage('Pdf') });\r\n    }\r\n    if (this.model.options.exports.showExportToXps) {\r\n      items.push({ name: menuName + 'Xps', caption: 'Microsoft XPS', imageSize, img: this.getImage('Xps') });\r\n    }\r\n    if (this.model.options.exports.showExportToPowerPoint) {\r\n      items.push({ name: menuName + 'PowerPoint', caption: 'Microsoft PowerPoint', imageSize, img: this.getImage('Ppt') });\r\n    }\r\n\r\n    if (this.model.options.exports.showExportToHtml || this.model.options.exports.showExportToHtml5 || this.model.options.exports.showExportToMht) {\r\n      if (!isFirst) {\r\n        items.push({ imageSize, type: 'separator' });\r\n      }\r\n      isFirst = false;\r\n      let htmlType = this.model.options.exports.defaultSettings['StiHtmlExportSettings'].HtmlType;\r\n      if (!this.model.options.exports['showExportTo' + htmlType]) {\r\n        if (this.model.options.exports.showExportToHtml) {\r\n          htmlType = 'Html';\r\n        } else if (this.model.options.exports.showExportToHtml5) {\r\n          htmlType = 'Html5';\r\n        } else if (this.model.options.exports.showExportToMht) {\r\n          htmlType = 'Mht';\r\n        }\r\n      }\r\n      items.push({ name: menuName + htmlType, caption: 'HTML', imageSize, img: this.getImage('Html') });\r\n    }\r\n    if (this.model.options.exports.showExportToText || this.model.options.exports.showExportToRtf || this.model.options.exports.showExportToWord || this.model.options.exports.showExportToOdt) {\r\n      if (!isFirst) {\r\n        items.push({ imageSize, type: 'separator' });\r\n      }\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.exports.showExportToText) {\r\n      items.push({ name: menuName + 'Text', caption: this.model.loc('Text'), imageSize, img: this.getImage('Text') });\r\n    }\r\n    if (this.model.options.exports.showExportToRtf) {\r\n      items.push({ name: menuName + 'Rtf', caption: 'RTF', imageSize, img: this.getImage('Rtf') });\r\n    }\r\n    if (this.model.options.exports.showExportToWord) {\r\n      items.push({ name: menuName + 'Word', caption: 'Microsoft Word', imageSize, img: this.getImage('Word') });\r\n    }\r\n    if (this.model.options.exports.showExportToOpenDocumentWriter) {\r\n      items.push({ name: menuName + 'Odt', caption: 'OpenDocument Writer', imageSize, img: this.getImage('Odt') });\r\n    }\r\n    if (this.model.options.exports.showExportToExcelBiff || this.model.options.exports.showExportToExcel || this.model.options.exports.showExportToExcelXml || this.model.options.exports.showExportToOpenDocumentWriter) {\r\n      if (!isFirst) {\r\n        items.push({ imageSize, type: 'separator' });\r\n      }\r\n      isFirst = false;\r\n    }\r\n    if (this.model.options.exports.showExportToExcelBiff || this.model.options.exports.showExportToExcelXml || this.model.options.exports.showExportToExcel) {\r\n      let excelType = this.exportService.getStoredSettings('Excel')?.ExcelType ?? this.model.options.exports.defaultSettings['StiExcelExportSettings'].ExcelType;\r\n      if (!this.model.options.exports['showExportTo' + excelType]) {\r\n        if (this.model.options.exports.showExportToExcel) {\r\n          excelType = 'Excel';\r\n        } else if (this.model.options.exports.showExportToExcelBiff) {\r\n          excelType = 'ExcelBiff';\r\n        } else if (this.model.options.exports.showExportToExcelXml) {\r\n          excelType = 'ExcelXml';\r\n        }\r\n      }\r\n      items.push({ name: menuName + excelType, caption: 'Microsoft Excel', imageSize, img: this.getImage('Excel') });\r\n    }\r\n    if (this.model.options.exports.showExportToOpenDocumentCalc) {\r\n      items.push({ name: menuName + 'Ods', caption: 'OpenDocument Calc', imageSize, img: this.getImage('Ods') });\r\n    }\r\n    if (this.model.options.exports.showExportToCsv || this.model.options.exports.showExportToDbf || this.model.options.exports.showExportToXml ||\r\n      this.model.options.exports.showExportToDif || this.model.options.exports.showExportToSylk || this.model.options.exports.showExportToJson) {\r\n      if (!isFirst) {\r\n        items.push({ imageSize, type: 'separator' });\r\n      }\r\n      isFirst = false;\r\n      let dataType = this.model.options.exports.defaultSettings['StiDataExportSettings'].DataType;\r\n      if (!this.model.options.exports['showExportTo' + dataType]) {\r\n        if (this.model.options.exports.showExportToCsv) {\r\n          dataType = 'Csv';\r\n        } else if (this.model.options.exports.showExportToDbf) {\r\n          dataType = 'Dbf';\r\n        } else if (this.model.options.exports.showExportToXml) {\r\n          dataType = 'Xml';\r\n        } else if (this.model.options.exports.showExportToDif) {\r\n          dataType = 'Dif';\r\n        } else if (this.model.options.exports.showExportToSylk) {\r\n          dataType = 'Sylk';\r\n        } else if (this.model.options.exports.showExportToJson) {\r\n          dataType = 'Json';\r\n        }\r\n      }\r\n      items.push({ name: menuName + dataType, caption: this.model.loc('Data'), imageSize, img: this.getImage('Data') });\r\n    }\r\n    if (this.model.options.exports.showExportToImageBmp || this.model.options.exports.showExportToImageGif || this.model.options.exports.showExportToImageJpeg || this.model.options.exports.showExportToImagePcx ||\r\n      this.model.options.exports.showExportToImagePng || this.model.options.exports.showExportToImageTiff || this.model.options.exports.showExportToImageMetafile || this.model.options.exports.showExportToImageSvg || this.model.options.exports.showExportToImageSvgz) {\r\n      if (!isFirst) {\r\n        items.push({ imageSize, type: 'separator' });\r\n      }\r\n      isFirst = false;\r\n      let imageType = this.model.options.exports.defaultSettings['StiImageExportSettings'].ImageType;\r\n      let imageType_ = imageType === 'Emf' ? 'Metafile' : imageType;\r\n      if (!this.model.options.exports['showExportToImage' + imageType_]) {\r\n        if (this.model.options.exports.showExportToImageBmp) {\r\n          imageType = 'Bmp';\r\n        } else if (this.model.options.exports.showExportToImageGif) {\r\n          imageType = 'Gif';\r\n        } else if (this.model.options.exports.showExportToImageJpeg) {\r\n          imageType = 'Jpeg';\r\n        } else if (this.model.options.exports.showExportToImagePcx) {\r\n          imageType = 'Pcx';\r\n        } else if (this.model.options.exports.showExportToImagePng) {\r\n          imageType = 'Png';\r\n        } else if (this.model.options.exports.showExportToImageTiff) {\r\n          imageType = 'Tiff';\r\n        } else if (this.model.options.exports.showExportToImageMetafile) {\r\n          imageType = 'Emf';\r\n        } else if (this.model.options.exports.showExportToImageSvg) {\r\n          imageType = 'Svg';\r\n        } else if (this.model.options.exports.showExportToImageSvgz) { imageType = 'Svgz'; }\r\n      }\r\n      items.push({ name: menuName + 'Image' + imageType, caption: this.model.loc('Image'), imageSize, img: this.getImage('Image') });\r\n\r\n\r\n    }\r\n    return items;\r\n  }\r\n\r\n  enabled(desc: ComponentDescription): boolean {\r\n    const disableNaviButtons = this.disableNaviButtons();\r\n    switch (desc.action) {\r\n      case 'FirstPage':\r\n      case 'PrevPage':\r\n        return this.model.reportParams.pageNumber > 0 && !disableNaviButtons;\r\n      case 'NextPage':\r\n      case 'LastPage':\r\n        return this.model.reportParams.pageNumber < this.model.reportParams.pagesCount - 1 && !disableNaviButtons;\r\n      case 'Bookmarks':\r\n        return this.model.reportParams.bookmarksContent != null;\r\n      case 'Parameters':\r\n        return this.model.interactions?.paramsVariables != null;\r\n      case 'Resources':\r\n        return this.model.reportParams.resources?.length > 0;\r\n    }\r\n    return true;\r\n  }\r\n\r\n  selected(desc: ComponentDescription): boolean {\r\n    switch (desc.action) {\r\n      case 'Find':\r\n        return this.model.controls.findPanel.visible;\r\n      case 'Bookmarks':\r\n        return this.model.controls.bookmarksPanel.visible;\r\n      case 'Parameters':\r\n        return this.model.controls.parametersPanel.visible;\r\n      case 'Editor':\r\n        return this.editableFieldsService.visible;\r\n      case 'Resources':\r\n        return this.model.controls.resourcesPanel.visible;\r\n      case 'FullScreen':\r\n        return this.model.options.appearance.fullScreenMode;\r\n      case 'Pin':\r\n        return !this.model.options.toolbar.autoHide;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  display(desc: ComponentDescription): string {\r\n    switch (desc.action) {\r\n      case 'Editor':\r\n        return this.model.reportParams.isEditableReport ? '' : 'none';\r\n\r\n    }\r\n    return '';\r\n  }\r\n\r\n  getButonWidth(comp: ComponentDescription): string {\r\n    if (this.model.options.toolbar.displayMode === 'Separated') {\r\n      if (comp.action === 'Find' || comp.action === 'Editor' || comp.action === 'FullScreen' || comp.action === 'About') {\r\n        return '28px';\r\n      }\r\n      if (this.model.options.isMobileDevice) {\r\n        return '0.4in';\r\n      }\r\n    }\r\n    return null;\r\n  }\r\n\r\n  getInnerTableWidth(comp: ComponentDescription): string {\r\n    if (this.model.options.toolbar.displayMode === 'Separated' &&\r\n      (this.model.options.isMobileDevice || comp.action === 'Find' || comp.action === 'Editor' || comp.action === 'FullScreen' || comp.action === 'About')) {\r\n      return '100%';\r\n    }\r\n    return null;\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { MenuService, Menu } from '../menu/menu.service';\r\nimport { TooltipService } from '../services/tooltip.service';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { MenuItem } from '../menu/meni-item.component';\r\n\r\n@Component({\r\n  selector: 'sti-button',\r\n  template: `\r\n  <div #button\r\n    [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n    [style.cursor]=\"cursor\"\r\n    [style.borderColor]=\"borderColor\"\r\n    [class]=\"className\"\r\n    [style.height]=\"helper.val(height, '23px')\"\r\n    [style.boxSizing]=\"helper.val(boxSizing, 'content-box')\"\r\n    [style.margin]=\"helper.val(margin, '1px')\"\r\n    [style.minWidth]=\"minWidth\"\r\n    [style.width]=\"width\"\r\n    [style.display]=\"display\"\r\n    [style.fontSize]=\"fontSize\"\r\n    (mouseover)=\"mouseover()\"\r\n    (mouseout)=\"mouseout()\"\r\n    (click)=\"click()\" >\r\n    <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.height]=\"'100%'\" [style.width]=\"innerTableWidth\">\r\n      <tbody>\r\n        <tr class=\"stiJsViewerClearAllStyles\">\r\n          <td *ngIf=\"imageName != null\" [style.lineHeight]=\"0\" [style.padding]=\"helper.val(imageCellPadding, '0 3px')\" [style.textAlign]=\"imageCellTextAlign\"\r\n          [style.width]=\"imageCellWidth\" class=\"stiJsViewerClearAllStyles\">\r\n            <img src=\"{{model.img(imageName)}}\"\r\n                [style.opacity]=\"enabled ? '1' : '0.5'\"\r\n                [style.width.px]=\"imageSizesWidth\"\r\n                [style.height.px]=\"imageSizesHeight\"\r\n                [style.margin]=\"imageMargin\">\r\n          </td>\r\n          <td *ngIf=\"caption != null\"\r\n             [style.whiteSpace]=\"'nowrap'\"\r\n             [style.textAlign]=\"captionAlign || 'left'\"\r\n             [style.padding]=\"captionPadding || ((arrow ? '1px 0' : '1px 5px') + (imageName ? ' 0 0' : ' 0 5px'))\"\r\n             [style.width]=\"captionWidth\"\r\n             [style.maxWidth]=\"captionMaxWidth\"\r\n             [style.lineHeight]=\"captionLineHeight\"\r\n             [style.paddingLeft]=\"captionPaddingLeft\"\r\n             [style.whiteSpace]=\"captionWhiteSpace\"\r\n             [style.overflow]=\"captionOverflow\"\r\n             [style.textOverflow]=\"captionTextOverflow\"\r\n             class=\"stiJsViewerClearAllStyles\">\r\n            {{caption}}\r\n            <div *ngIf=\"caption2 != null\">\r\n            {{caption2}}\r\n            </div>\r\n          </td>\r\n          <td *ngIf=\"arrow\" class=\"stiJsViewerClearAllStyles\">\r\n            <img src=\"{{arrow == 'Up' || arrow == 'Down' ? model.img('Arrows.SmallArrow' + arrow + (arrow == 'Down' && styleColors && styleColors.isDarkStyle ? 'White.png' : '.png')) : model.img(arrow)}}\"\r\n            [style]=\"{lineHeight:'0', width:'8px', height:'8px', verticalAlign:'baseline', padding:caption ? '0 5px 0 5px' : '0 5px 0 2px', marginTop: arrowMarginTop}\"\r\n            [style.opacity]=\"enabled ? '1' : '0.5'\"/>\r\n          </td>\r\n\r\n          <td *ngIf=\"closeButton\" class=\"stiJsViewerClearAllStyles\">\r\n            <sti-button [imageName]=\"'CloseForm.png'\"\r\n              [imageMargin]=\"'1px 0 0 -1px'\"\r\n              [margin]=\"'0 2px 0 0'\"\r\n              [imageCellPadding]=\"'0'\"\r\n              [width]=\"model.options.isTouchDevice ? '22px' : '17px'\"\r\n              [height]=\"model.options.isTouchDevice ? '22px' : '17px'\"\r\n              (action)=\"closeButtonPressed = true; closeButtonAction.emit()\">\r\n            </sti-button>\r\n          </td>\r\n\r\n          <td #resButtonEl *ngIf=\"resourceButton\" [style.width.px]=\"1\">\r\n            <sti-button [imageName]=\"'Arrows.SmallArrowDown.png'\"\r\n              [styleName]=\"'stiJsViewerResourceDropDownButton'\"\r\n              [innerTableWidth]=\"'100%'\"\r\n              [margin]=\"'0 7px 0 3px'\"\r\n              [imageCellTextAlign]=\"'center'\"\r\n              [imageSizesWidth]=\"8\"\r\n              [imageSizesHeight]=\"8\"\r\n              [height]=\"model.options.isTouchDevice ? '23px' : '17px'\"\r\n              [width]=\"model.options.isTouchDevice ? '23px' : '17px'\"\r\n              (action)=\"resourceButtonPressed = true;\">>\r\n            </sti-button>\r\n          </td>\r\n\r\n        </tr>\r\n      </tbody>\r\n    </table>\r\n  </div>\r\n  `\r\n})\r\nexport class ButtonComponent implements OnInit {\r\n\r\n  @Input() caption: string;\r\n  @Input() caption2: string;\r\n  @Input() captionAlign: string;\r\n  @Input() captionPadding: string;\r\n  @Input() captionPaddingLeft: string;\r\n  @Input() captionWhiteSpace: string;\r\n  @Input() captionOverflow: string;\r\n  @Input() captionTextOverflow: string;\r\n  @Input() captionWidth: string;\r\n  @Input() captionMaxWidth: string;\r\n  @Input() captionLineHeight: string;\r\n  @Input() imageName: string;\r\n  @Input() arrow: string;\r\n  @Input() arrowMarginTop: string;\r\n  @Input() margin = '1px';\r\n  @Input() height = '23px';\r\n  @Input() selected = false;\r\n  @Input() minWidth: string;\r\n  @Input() innerTableWidth: string;\r\n  @Input() menuItems: MenuItem[];\r\n  @Input() actionName: string;\r\n  @Input() tooltip: any;\r\n  @Input() imageCellTextAlign = 'center';\r\n  @Input() imageCellWidth: string;\r\n  @Input() imageCellPadding: string;\r\n  @Input() imageSizesWidth = 16;\r\n  @Input() imageSizesHeight = 16;\r\n  @Input() imageMargin: string;\r\n  @Input() width: string;\r\n  @Input() display: string;\r\n  @Input() closeButton = false;\r\n  @Input() resourceButton = false;\r\n  @Input() styleColors: any;\r\n  @Input() boxSizing: string;\r\n  @Input() navagationPanelTooltip = false;\r\n  @Input() cursor: string;\r\n  @Input() fontSize: string;\r\n  @Input() helpLink = 'user-manual/index.html?viewer_reports.htm';\r\n  @Input() borderColor;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n  @Output() closeButtonAction: EventEmitter<any> = new EventEmitter();\r\n  @ViewChild('button') button: ElementRef;\r\n  @ViewChild('resButtonEl') resButtonEl: ElementRef;\r\n\r\n  over = false;\r\n  showMenu = false;\r\n  closeButtonPressed = false;\r\n  resourceButtonPressed = false;\r\n  private _enabled = true;\r\n  private _styleName: string;\r\n  private menuObj: Menu;\r\n  private canShowTooltip = true;\r\n\r\n  constructor(public model: ModelService, public menuService: MenuService, private tooltipService: TooltipService,\r\n    public helper: HelperService) { }\r\n\r\n  ngOnInit(): void {\r\n    if (this.menuItems) {\r\n      setTimeout(() => {\r\n        this.menuObj = { type: 'buttonMenu', name: this.actionName, items: this.menuItems, parent: !this.resourceButton ? this.button : this.resButtonEl, state: '' };\r\n        this.menuService.addMenu(this.menuObj);\r\n      }, 500);\r\n    }\r\n  }\r\n\r\n  @Input() get styleName(): string {\r\n    return this._styleName || 'stiJsViewerStandartSmallButton';\r\n  }\r\n\r\n  set styleName(value: string) {\r\n    this._styleName = value;\r\n  }\r\n\r\n  @Input() get enabled(): boolean {\r\n    return this._enabled;\r\n  }\r\n\r\n  set enabled(value: boolean) {\r\n    if (!value) {\r\n      this.over = false;\r\n    }\r\n    this._enabled = value;\r\n  }\r\n\r\n  mouseover() {\r\n    if (!this.enabled) {\r\n      return;\r\n    }\r\n    this.over = true;\r\n\r\n    if (this.model.options.toolbar.showMenuMode === 'Hover' && ['Print', 'Save', 'SendEmail', 'Zoom', 'ViewMode'].some(a => a === this.actionName)) {\r\n      this.tooltipService.hideImmediately();\r\n      this.menuService.showMenu(this.actionName);\r\n    } else if (this.tooltip && !this.menuService.menus.some(e => e.state === 'expanded') && this.canShowTooltip) {\r\n      const top = !this.navagationPanelTooltip ? this.model.controls.toolbar.offsetHeight + this.model.controls.dashboardsPanel.offsetHeight :\r\n        this.helper.findPosY(this.model.controls.navigatePanel.el.nativeElement, 'stiJsViewerMainPanel');\r\n      const tooltip = this.tooltip === true ? (this.model.localization[this.actionName + 'ToolTip'] != null ? this.model.loc(this.actionName + 'ToolTip') : this.model.loc(this.actionName)) : this.tooltip;\r\n      this.tooltipService.show(this.helper.findPosX(this.button.nativeElement, 'stiJsViewerMainPanel'),\r\n        top, tooltip, !this.navagationPanelTooltip, this.helpLink);\r\n    }\r\n  }\r\n\r\n  mouseout() {\r\n    if (!this.enabled) {\r\n      return;\r\n    }\r\n    this.over = false;\r\n    this.tooltipService.hide();\r\n    setTimeout(() => {\r\n      this.canShowTooltip = true;\r\n    }, 1000);\r\n  }\r\n\r\n  click() {\r\n    if (this.enabled && !this.closeButtonPressed) {\r\n      this.tooltipService.hideImmediately();\r\n      if (this.menuItems == null || (this.resourceButton && !this.resourceButtonPressed)) {\r\n        this.action.emit();\r\n      } else {\r\n        this.menuService.showMenu(this.actionName);\r\n      }\r\n    }\r\n    this.canShowTooltip = false;\r\n    this.closeButtonPressed = false;\r\n    this.resourceButtonPressed = false;\r\n  }\r\n\r\n  get className(): string {\r\n    return this.styleName ? this.styleName + ' ' + (this.enabled ? (this.styleName + ((this.selected || this.menuObj?.state === 'expanded') ? 'Selected' : (this.over ? 'Over' : 'Default'))) : this.styleName + 'Disabled') : '';\r\n  }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\n\r\n@Component({\r\n  selector: 'sti-toolbar-separator',\r\n  template: `\r\n    <div [style.width.px]=\"1\" [style.height]=\"model.options.isMobileDevice ? '0.4in' : (model.options.isTouchDevice ? '26px' : '21px')\" class=\"stiJsViewerToolBarSeparator\"></div>\r\n  `\r\n})\r\n\r\nexport class ToolbarSeparatorComponent implements OnInit {\r\n  constructor(public model: ModelService) { }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\n\r\n@Component({\r\n  selector: 'sti-check-box',\r\n  template: `\r\n    <table cellpadding=\"0\" cellspacing=\"0\"\r\n      [class]=\"isEnabled ? 'stiJsViewerCheckBox' : 'stiJsViewerCheckBoxDisabled'\"\r\n      [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n      [style.color]=\"model.options.toolbar.fontColor\"\r\n      [attr.title]=\"tooltip\"\r\n      [style.margin]=\"margin\"\r\n      [style.width]=\"width\"\r\n      [style.boxSizing]=\"'content-box'\"\r\n      (mouseover)=\"mouseover()\"\r\n      (mouseleave)=\"mouseleave()\"\r\n      (click)=\"click()\">\r\n       <tbody>\r\n          <tr class=\"stiJsViewerClearAllStyles\">\r\n             <td [style.lineHeight] = \"0\"\r\n                 [style.padding]=\"model.options.isTouchDevice ? '1px 3px 1px 1px' : ''\"\r\n                 [style.width]=\"imageBlockParentWidth\"\r\n                 class=\"stiJsViewerClearAllStyles\">\r\n                <div [style.width.px]=\"model.options.isTouchDevice ? 16 : 13\"\r\n                     [style.height.px]=\"model.options.isTouchDevice ? 16 : 13\"\r\n                     [class]=\"isEnabled ? (over ? 'stiJsViewerCheckBoxImageBlockOver' : 'stiJsViewerCheckBoxImageBlock') : 'stiJsViewerCheckBoxImageBlockDisabled'\"\r\n                     [style.boxSizing]=\"'content-box'\">\r\n                     <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.width]=\"'100%'\" [style.height]=\"'100%'\">\r\n                        <tbody>\r\n                          <tr class=\"stiJsViewerClearAllStyles\">\r\n                            <td [style.textAlign]=\"model.options.isTouchDevice ? 'center' : 'right'\"\r\n                                [style.verticalAlign]=\"model.options.isTouchDevice ? 'middle' : 'top'\"\r\n                                [style.position]=\"'relative'\">\r\n                                <img *ngIf=\"!isNull\" [src]=\"model.img((indeterminate ? 'CheckBoxIndeterminate' : 'CheckBox') + (styleColors && styleColors.isDarkStyle ? 'White.png' : '.png'))\"\r\n                                    [style.visibility]=\"isChecked ? 'visible' : 'hidden'\"\r\n                                    [style.width.px]=\"indeterminate ? 13 : 12\"\r\n                                    [style.height.px]=\"indeterminate ? 13 : 12\"\r\n                                    [style.opacity]=\"isEnabled ? 1 : 0.5\"\r\n                                    [style.verticalAlign]=\"'baseline'\"/>\r\n                                <div *ngIf=\"isNull\" class=\"stiJsViewerCheckBoxNullBlock\" [style.left.px]=\"2\" [style.top.px]=\"6\"  [style.width.px]=\"9\" [style.opacity]=\"isEnabled ? 1 : 0.5\"></div>\r\n                            </td>\r\n                          </tr>\r\n                        </tbody>\r\n                      </table>\r\n                </div>\r\n             </td>\r\n             <td *ngIf=\"captionText != null\"\r\n                 [style.padding]=\"!model.options.isTouchDevice ? '1px 0 0 4px' : ''\"\r\n                 [style.whiteSpace]=\"'nowrap'\">\r\n                 {{captionText}}\r\n             </td>\r\n          </tr>\r\n       </tbody>\r\n    </table>\r\n  `\r\n})\r\n\r\nexport class CheckboxComponent implements OnInit {\r\n\r\n  @Input() isEnabled = true;\r\n  @Input() isChecked = false;\r\n  @Input() indeterminate = false;\r\n  @Input() captionText: string;\r\n  @Input() tooltip: string;\r\n  @Input() margin: string;\r\n  @Input() width: string;\r\n  @Input() styleColors: any;\r\n  @Input() imageBlockParentWidth: string;\r\n  @Input() nullable = false;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  public over = false;\r\n  isNull = false;\r\n\r\n  constructor(public model: ModelService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  mouseover() {\r\n    this.over = true;\r\n  }\r\n\r\n  mouseleave() {\r\n    this.over = false;\r\n  }\r\n\r\n  click() {\r\n    if (this.isEnabled) {\r\n      this.isChecked = !this.isChecked || this.isNull;\r\n      this.isNull = this.nullable && this.isChecked && !this.isNull;\r\n      this.action.emit(this.isNull ? null : this.isChecked);\r\n    }\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Variable } from '../../services/objects';\r\n\r\n@Component({\r\n  selector: 'sti-parameter-checkbox',\r\n  template: `\r\n    <sti-check-box [isEnabled]=\"isEnabled\"\r\n                   [isChecked]=\"checked\"\r\n                   [nullable]=\"nullable\"\r\n                   [captionText]=\"captionText\"\r\n                   [margin]=\"margin\"\r\n                   [width]=\"width\"\r\n                   [imageBlockParentWidth]=\"imageBlockParentWidth\"\r\n                   (action)=\"onAction($event)\">\r\n    </sti-check-box>\r\n    `\r\n})\r\n\r\nexport class ParameterCheckboxComponent implements OnInit {\r\n\r\n  @Input() params: Variable;\r\n  @Input() captionText: string;\r\n  @Input() margin: string;\r\n  @Input() width: string;\r\n  @Input() imageBlockParentWidth: string;\r\n  @Input() isEnabled = true;\r\n  @Input() isMenuParameter = false;\r\n  @Input() paramNull = false;\r\n  @Input() nullable = false;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() { }\r\n\r\n  onAction(checked: boolean) {\r\n    this.action.emit(checked);\r\n  }\r\n\r\n  get checked(): boolean {\r\n    if (this.paramNull) {\r\n      return this.params.isNull;\r\n    } else {\r\n      return this.isMenuParameter ? this.params.isChecked : (typeof (this.params.value) === 'boolean' && this.params.value) || this.params.value === 'true' || this.params.value === 'True';\r\n    }\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter, AfterViewInit } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { Variable } from '../services/objects';\r\n\r\n@Component({\r\n  selector: 'sti-text-box',\r\n  template: `\r\n    <input #element\r\n    [style]=\"{fontFamily:model.options.toolbar.fontFamily, height: height, lineHeight: height, boxSizing:'content-box'}\"\r\n    [style.color]=\"color ? color : (model.options.toolbar.fontColor != '' ? model.options.toolbar.fontColor : '')\"\r\n    [style.width]=\"width != null ? width + 'px' : ''\"\r\n    [style.margin]=\"margin\"\r\n    [style.cursor]=\"readOnly ? 'default' : ''\"\r\n    [style.padding]=\"paddingInt\"\r\n    [style.border]=\"border\"\r\n    [style.textAlign]=\"textAlign\"\r\n    [title]=\"tooltip || ''\"\r\n    [class]=\"className\"\r\n    [value]=\"value || ''\"\r\n    [attr.maxLength]=\"maxLength\"\r\n    [attr.type]=\"type\"\r\n    [autocomplete]=\"autocomplete\"\r\n    (mouseover)=\"over=true\"\r\n    (mouseleave)=\"over=false\"\r\n    (focused)=\"focused=true; selected=true\"\r\n    (blur)=\"focused=false; selected=false; onblur.emit($event.target)\"\r\n    (keypress)=\"keypress($event)\"\r\n    (keyup)=\"onchanged($event)\"\r\n    (focus)=\"focus()\"/>\r\n    <sti-parameter-checkbox *ngIf=\"isNullableParam\"\r\n      [style]=\"{left: '6px', top: 'calc(50% - 7px)', position: 'absolute'}\"\r\n      [params]=\"variable\"\r\n      [isEnabled]=\"variable.allowUserValues\"\r\n      (action)=\"nullableAction($event)\"\r\n      [paramNull]=\"true\" >\r\n    </sti-parameter-checkbox>\r\n  `\r\n})\r\n\r\nexport class TextBoxComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  @Input() width: number;\r\n  @Input() actionLostFocus: any;\r\n  @Input() tooltip: string;\r\n  @Input() enabled = true;\r\n  @Input() value: string;\r\n  @Input() margin: string;\r\n  @Input() focusOnCreate = false;\r\n  @Input() maxLength: number;\r\n  @Input() color: string;\r\n  @Input() type: string;\r\n  @Input() padding: string;\r\n  @Input() border: string;\r\n  @Input() variable: Variable;\r\n  @Input() textAlign: string;\r\n  @Input() autocomplete: string;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n  @Output() onchange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onblur: EventEmitter<any> = new EventEmitter();\r\n\r\n  public oldValue: string;\r\n\r\n  selected = false;\r\n  focused = false;\r\n  over = false;\r\n  _readOnly = false;\r\n\r\n  styleName = 'stiJsViewerTextBox';\r\n\r\n  constructor(public model: ModelService) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    if (this.focusOnCreate) {\r\n      setTimeout(() => {\r\n        this.element.nativeElement.focus();\r\n      });\r\n    }\r\n  }\r\n\r\n  keypress(event: KeyboardEvent) {\r\n    if (!this.enabled) {\r\n      return false;\r\n    }\r\n    if (event.keyCode === 13) {\r\n      this.action.emit(event.target);\r\n    }\r\n  }\r\n\r\n  onchanged(event: KeyboardEvent) {\r\n    this.onchange.emit(event.target);\r\n  }\r\n\r\n  get paddingInt(): string {\r\n    return this.isNullableParam ? \"0 0 0 22px\" : this.padding;\r\n  }\r\n\r\n  focus() {\r\n    this.oldValue = this.element.nativeElement.value;\r\n  }\r\n\r\n  get isNullableParam(): boolean {\r\n    return this.variable?.basicType == 'NullableValue' || this.variable?.allowNullableString;\r\n  }\r\n\r\n  nullableAction(checked: boolean) {\r\n    this.variable.isNull = !this.variable.isNull;\r\n  }\r\n\r\n  get height(): string {\r\n    return this.model.options.isTouchDevice ? '26px' : '21px';\r\n  }\r\n\r\n  get className(): string {\r\n    if (this._readOnly) {\r\n      return this.styleName + ' ' + this.styleName + 'Default';\r\n    }\r\n    return this.styleName + ' ' + this.styleName + (this.selected ? 'Over' : (this.enabled ? (this.over ? 'Over' : 'Default') : 'Disabled'));\r\n  }\r\n\r\n  @Input()\r\n  set readOnly(value: boolean) {\r\n    this._readOnly = value;\r\n    setTimeout(() => {\r\n      try {\r\n        this.element.nativeElement.setAttribute('unselectable', value ? 'on' : 'off');\r\n        this.element.nativeElement.setAttribute('onselectstart', value ? 'return false' : '');\r\n        this.element.nativeElement.readOnly = value;\r\n      } catch (e) { }\r\n    });\r\n  }\r\n\r\n  get readOnly(): boolean {\r\n    return this._readOnly;\r\n  }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { HelperService } from '../services/helper.service';\r\n\r\n@Component({\r\n  selector: 'sti-page-control',\r\n  template: `\r\n    <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.margin]=\"helper.val(margin, '1px')\">\r\n      <tbody>\r\n          <tr class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'0 2px 0 2px'\">\r\n              {{model.loc('Page')}}\r\n            </td>\r\n            <td *ngIf=\"model.options.isMobileDevice\" class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'0 2px 0 2px'\">\r\n              <span>{{model.reportParams.pageNumber + 1}}</span>\r\n            </td>\r\n            <td *ngIf=\"!model.options.isMobileDevice\" class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'0 2px 0 2px'\">\r\n              <sti-text-box [width]=\"45\" [enabled]=\"enabled\" [style.color]=\"textBoxColor\" [style.opacity]=\"enabled ? 1 : 0.5\"\r\n              (action)=\"textBoxAction($event)\" [value]=\"model.reportParams.pageNumber + 1\" [border]=\"textBoxBorder\"></sti-text-box>\r\n            </td>\r\n            <td class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'0 2px 0 2px'\">\r\n              {{model.loc('PageOf')}}\r\n            </td>\r\n            <td class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'0 2px 0 2px'\">\r\n              {{count}}\r\n            </td>\r\n          </tr>\r\n      </tbody>\r\n    </table>\r\n  `\r\n})\r\n\r\nexport class PageControlComponent implements OnInit {\r\n\r\n  @Input() enabled = true;\r\n  @Input() count = '?';\r\n  @Input() textBoxBorder: string;\r\n  @Input() margin: string;\r\n\r\n  constructor(public model: ModelService, public controller: ControllerService, public helper: HelperService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  textBoxAction(target: any): void {\r\n    if (this.model.reportParams.pagesCount > 0 && this.model.reportParams.pageNumber !== this.getCorrectValue(target.value) - 1) {\r\n      this.controller.action({ name: 'GoToPage', value: this.getCorrectValue(target.value) - 1 });\r\n    }\r\n  }\r\n\r\n  getCorrectValue(value: any): number {\r\n    value = parseInt(value, 10);\r\n    if (value < 1 || !value) {\r\n      value = 1;\r\n    }\r\n    if (value > this.model.reportParams.pagesCount) {\r\n      value = this.model.reportParams.pagesCount;\r\n    }\r\n    return value;\r\n  }\r\n\r\n  get textBoxColor(): string {\r\n    const toolbarFontColor = this.model.options.toolbar.fontColor;\r\n    return this.enabled ? (toolbarFontColor && toolbarFontColor !== 'Empty' ? toolbarFontColor : '#444444')\r\n      : (this.model.reportParams && this.model.reportParams.viewMode !== 'SinglePage' ? 'transparent' : toolbarFontColor);\r\n  }\r\n}\r\n","import { Component, OnInit, Input, ElementRef, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { ToolbarService } from '../services/toolbar.service';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { ComponentDescription } from '../services/objects';\r\n\r\n@Component({\r\n  selector: 'sti-toolbar-dop',\r\n  template: `\r\n    <table #mainTable\r\n      class=\"stiJsViewerClearAllStyles\"\r\n      cellpadding=\"0\"\r\n      cellspacing=\"0\"\r\n      [style.margin.px]=\"1\"\r\n      [attr.align]=\"align\"\r\n      [style.marginLeft]=\"marginLeft\">\r\n      <tbody>\r\n        <tr class=\"stiJsViewerClearAllStyles\">\r\n          <td *ngFor=\"let comp of comps\" class=\"stiJsViewerClearAllStyles\">\r\n            <sti-button *ngIf=\"comp.type=='button'\"\r\n              [caption]=\"model.options.toolbar.showButtonCaptions ? comp.caption : null\"\r\n              [imageName]=\"comp.img\"\r\n              [arrow]=\"!model.options.isMobileDevice ? comp.arrow : null\"\r\n              [menuItems]=\"comp.menuItems\"\r\n              [actionName]=\"comp.action\"\r\n              [tooltip]=\"comp.tooltip\"\r\n              [enabled]=\"toolbarService.enabled(comp)\"\r\n              [display]=\"toolbarService.display(comp)\"\r\n              [innerTableWidth]=\"toolbarService.getInnerTableWidth(comp)\"\r\n              [width]=\"toolbarService.getButonWidth(comp)\"\r\n              [height]=\"model.options.toolbar.displayMode == 'Separated' ? (model.options.isMobileDevice ? '0.5in' : '28px') : null\"\r\n              (action)=\"controller.action({ name: comp.action });\"\r\n              [selected]=\"toolbarService.selected(comp)\"></sti-button>\r\n            <sti-toolbar-separator *ngIf=\"comp.type=='separator'\"></sti-toolbar-separator>\r\n            <sti-page-control *ngIf=\"comp.type=='pageControl'\" [enabled]=\"!(model.reportParams.pagesCount <= 1 || toolbarService.disableNaviButtons())\" [count]=\"model.reportParams.pagesCount\" ></sti-page-control>\r\n        </td>\r\n      </tr>\r\n    </tbody>\r\n  </table>\r\n  `\r\n})\r\n\r\nexport class ToolbarDopComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('mainTable') mainTable: ElementRef;\r\n\r\n  @Input() comps: ComponentDescription[];\r\n  @Input() align: string;\r\n\r\n  public marginLeft = '1px';\r\n\r\n  viewInit = false;\r\n\r\n  constructor(public model: ModelService, public controller: ControllerService, public toolbarService: ToolbarService) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.viewInit = true;\r\n\r\n    setTimeout(() => {\r\n      const width = this.mainTable?.nativeElement?.offsetWidth;\r\n      this.marginLeft = this.viewInit && this.model.options.toolbar.alignment === 'Center' && width ? `calc(50% - ${Math.trunc(width / 2)}px)` : '1px';\r\n    });\r\n\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { ToolbarService } from '../services/toolbar.service';\r\n\r\n@Component({\r\n  selector: 'sti-toolbar',\r\n  template: `\r\n    <div #element [class]=\"'stiJsViewerToolBar' + (model.options.toolbar.displayMode === 'Separated' ? '  stiJsViewerToolBarSeparated' : '')\"\r\n         [style.display]=\"'block'\"\r\n         [style.width.px]=\"!model.controls.toolbar.visible ? '0px' : ''\"\r\n         [style.height.px]=\"!model.controls.toolbar.visible ? '0px' : ''\"\r\n         [style.display]=\"!model.options.isMobileDevice ? (this.model.controls.toolbar.visible ? '' : 'none') : ''\"\r\n         [style.transition]=\"model.options.isMobileDevice ? 'margin 300ms ease, opacity 300ms ease' : null\"\r\n         [style.zIndex]=\"model.options.toolbar.autoHide ? 5 : 2\"\r\n         [style.position]=\"model.options.toolbar.autoHide ? 'absolute' : 'relative'\"\r\n         [style.opacity]=\"model.options.isMobileDevice ? (model.controls.toolbar.visible ? (model.options.toolbar.autoHide ? 0.9 : 1) : 0) : 1\"\r\n         [style.marginTop]=\"model.options.isMobileDevice && !model.controls.toolbar.visible ? '-0.55in' : 0\">\r\n      <div [style]=\"model.options.toolbar.displayMode === 'Simple' ? 'paddingTop: 2px' : ''\">\r\n        <table class=\"stiJsViewerToolBarTable\" [style.margin.px]=\"0\" [style.boxSizing]=\"'border-box'\"\r\n               cellpadding=\"0\" cellspacing=\"0\"\r\n               [style.background]=\"model.options.toolbar.backgroundColor !== '' ? model.options.toolbar.backgroundColor : ''\"\r\n               [style.border]=\"model.options.toolbar.displayMode === 'Separated' ? '0px' : (model.options.toolbar.borderColor !== '' ?  '1px solid ' + model.options.toolbar.borderColor : '')\"\r\n               [style.color]=\"model.options.toolbar.fontColor !== '' ? model.options.toolbar.fontColor : ''\"\r\n               [style.fontFamily]=\"model.options.toolbar.fontFamily\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td *ngIf=\"model.options.appearance.rightToLeft\">\r\n              <sti-toolbar-dop [comps]=\"toolbarService.dopComps\" ></sti-toolbar-dop>\r\n              </td>\r\n\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.width]=\"'100%'\">\r\n                <sti-toolbar-dop\r\n                  [align]=\"model.options.appearance.rightToLeft ? 'right' : (model.options.toolbar.alignment === 'default' ? 'left' : model.options.toolbar.alignment)\"\r\n                  [comps]=\"toolbarService.comps\">\r\n                </sti-toolbar-dop>\r\n              </td>\r\n\r\n              <td *ngIf=\"!model.options.appearance.rightToLeft\">\r\n                <sti-toolbar-dop [comps]=\"toolbarService.dopComps\" ></sti-toolbar-dop>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n      </div>\r\n      <div class=\"stiJsViewerDisabledPanel\" [style.display]=\"this.model.controls.toolbar.enabled ? 'none' : 'block'\"></div>\r\n    </div>\r\n  `\r\n})\r\n\r\nexport class ToolbarComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  constructor(public model: ModelService, public controller: ControllerService, public toolbarService: ToolbarService) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.model.controls.toolbar.el = this.element;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.toolbarService.initButtons();\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { ControllerService } from '../services/controller.service';\r\n\r\n@Component({\r\n  selector: 'sti-page',\r\n  template: `\r\n    <div #element\r\n      [style.overflow]=\"'hidden'\"\r\n      [style.textAlign]=\"'left'\"\r\n      [style.verticalAlign]=\"'top'\"\r\n      [style.color]=\"'#000000'\"\r\n      [style.boxSizing]=\"'content-box'\"\r\n      [style.display]=\"'inline-block'\"\r\n      [style.margin]=\"model.reportParams.viewMode === 'Continuous' ? '10px auto 10px auto' : '10px'\"\r\n      [style.display]=\"this.model.reportParams.viewMode === 'Continuous' ? 'table' : 'inline-block'\"\r\n      [style.border]=\"'1px solid ' + this.model.options.appearance.pageBorderColor\"\r\n      [style.background]=\"pageAttributes['background'] == 'Transparent' || pageAttributes.background == 'rgba(255,255,255,0)' ? 'White' : pageAttributes['background']\"\r\n      [style.padding]=\"pageAttributes['margins']\"\r\n      [style.width]=\"!pageAttributes['content'] ? pageWidth + 'px' : ''\"\r\n      [style.height]=\"!pageAttributes['content'] ? pageHeight + 'px' : ''\"\r\n      [class]=\"model.options.appearance.showPageShadow ? 'stiJsViewerPageShadow' : 'stiJsViewerPage'\"\r\n      (touchstart)=\"eventTouchStart($event)\"\r\n      (touchmove)=\"eventTouchMove($event)\"\r\n      (touchend)=\"eventTouchEnd($event)\">\r\n      </div>\r\n  `\r\n})\r\n\r\nexport class PageComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n  @Input() pageAttributes: any;\r\n\r\n  private touchesLength = 0;\r\n  private lastTouches = [{ x: 0, y: 0, time: 0 }, { x: 0, y: 0, time: 0 }];\r\n  private touchAllowPageAction = false;\r\n  private touchAllowScroll = false;\r\n  private touchStartX: number;\r\n  private touchStartScrollY: number;\r\n  private touchPosX: number;\r\n\r\n  constructor(public model: ModelService, public controller: ControllerService) { }\r\n\r\n  ngOnInit() {\r\n\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    const page = this.element.nativeElement;\r\n    page.innerHTML = this.pageAttributes.content;\r\n    this.pageAttributes.page = page;\r\n\r\n    // Correct Watermark\r\n    if (this.pageAttributes.existsWatermark) {\r\n      page.style.position = 'relative';\r\n      for (const childNode of page.childNodes) {\r\n        if (childNode.className === 'stiWatermarkImage') {\r\n          childNode.style.width = 'auto';\r\n          childNode.style.height = 'auto';\r\n          break;\r\n        }\r\n      }\r\n    }\r\n\r\n    let reportDisplayMode = this.model.options.displayModeFromReport || this.model.options.appearance.reportDisplayMode;\r\n\r\n    if (reportDisplayMode == \"Div\" || reportDisplayMode == \"Span\") {\r\n      const childs = page.getElementsByClassName('StiPageContainer');\r\n      if (childs && childs.length > 0) {\r\n        const pageContainer = childs[0];\r\n        pageContainer.style.position = 'relative';\r\n        if (reportDisplayMode == \"Span\") {\r\n          pageContainer.style.margin = '0 1px'; // fix Chrome bug with SPAN position\r\n        }\r\n        page.style.width = (this.pageWidth - this.margins[1] - this.margins[3]) + 'px';\r\n        page.style.height = (this.pageHeight - this.margins[0] - this.margins[2]) + 'px';\r\n      }\r\n    }\r\n\r\n    this.element.nativeElement.pageAttributes = this.pageAttributes;\r\n\r\n    /*const pageHeight = this.pageHeight;\r\n    if (pageHeight !== 0) {\r\n      // fixed bug with long time execute\r\n      if (this.model.options.appearance.reportDisplayMode !== 'Table' && this.model.reportParams.viewMode !== 'SinglePage') {\r\n        setTimeout(() => {\r\n          const currentPageHeight = page.offsetHeight - this.margins[0] - this.margins[2];\r\n          if (this.reportPanel.maxHeights[pageHeight] == null || currentPageHeight > this.reportPanel.maxHeights[pageHeight]) {\r\n            this.reportPanel.maxHeights[pageHeight] = currentPageHeight;\r\n          }\r\n        });\r\n      } else {\r\n        const currentPageHeight = page.offsetHeight - this.margins[0] - this.margins[2];\r\n        if (this.reportPanel.maxHeights[pageHeight] === null || currentPageHeight > this.reportPanel.maxHeights[pageHeight]) {\r\n          this.reportPanel.maxHeights[pageHeight] = currentPageHeight;\r\n        }\r\n      }\r\n    }*/\r\n  }\r\n\r\n  public get margins(): number[] {\r\n    const margins = [0, 0, 0, 0];\r\n    if (this.pageAttributes.margins) {\r\n      const marginsPx = this.pageAttributes.margins.split(' ');\r\n      for (let i = 0; i < marginsPx.length; i++) {\r\n        margins[i] = parseInt(marginsPx[i].replace('px', ''), 10);\r\n      }\r\n    }\r\n    return margins;\r\n  }\r\n\r\n  public get pageWidth(): number {\r\n    const pageSizes: string[] = this.pageAttributes.sizes ? this.pageAttributes.sizes.split(';') : null;\r\n    if (pageSizes) {\r\n      return parseInt(pageSizes[0], 10);\r\n    }\r\n    return 0;\r\n  }\r\n\r\n  public get pageHeight(): number {\r\n    const pageSizes: string[] = this.pageAttributes.sizes ? this.pageAttributes.sizes.split(';') : null;\r\n    if (pageSizes) {\r\n      return parseInt(pageSizes[1], 10);\r\n    }\r\n    return 0;\r\n  }\r\n\r\n  public eventTouchStart(e: any) {\r\n    const reportPanel = this.model.controls.reportPanel.el.nativeElement;\r\n    this.touchAllowPageAction = this.touchesLength === 0 && Math.abs(reportPanel.offsetWidth - reportPanel.scrollWidth) <= 10;\r\n    this.touchAllowScroll = reportPanel.offsetWidth === reportPanel.scrollWidth;\r\n    this.touchesLength++;\r\n\r\n    if (this.touchAllowPageAction) {\r\n      this.touchStartX = parseInt(e.changedTouches[0].clientX, 10);\r\n      this.touchStartScrollY = reportPanel.scrollTop;\r\n    }\r\n  }\r\n\r\n  public eventTouchMove(e: any) {\r\n    const reportPanel = this.model.controls.reportPanel.el.nativeElement;\r\n    if (this.touchAllowPageAction) {\r\n      this.lastTouches.shift();\r\n      this.lastTouches.push({\r\n        x: e.changedTouches[0].clientX,\r\n        y: e.changedTouches[0].clientY,\r\n        time: new Date().getTime()\r\n      });\r\n      if (this.touchAllowScroll && this.touchStartScrollY === reportPanel.scrollTop) {\r\n        this.touchPosX = Math.trunc(this.lastTouches[1].x - this.touchStartX);\r\n        if (scrollX === 0) {\r\n          this.element.nativeElement.style.transform = `translateX(${this.touchPosX}px)`;\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  public eventTouchEnd(e: any) {\r\n    const reportPanel = this.model.controls.reportPanel.el.nativeElement;\r\n    if (this.touchesLength > 0) { this.touchesLength--; }\r\n    if (this.touchAllowPageAction && this.touchesLength === 0) {\r\n      const dX = this.lastTouches[1].x - this.lastTouches[0].x;\r\n      const dT = new Date().getTime() - this.lastTouches[1].time;\r\n\r\n      if (this.touchStartScrollY !== reportPanel.scrollTop ||\r\n        (dX <= 0 && this.model.reportParams.pageNumber >= this.model.reportParams.pagesCount - 1) ||\r\n        (dX >= 0 && this.model.reportParams.pageNumber <= 0)) {\r\n        this.translateX(0);\r\n      } else if ((dX < -5 && dT <= 14 && this.lastTouches[1].x < this.touchStartX) ||\r\n        (dX < 0 && this.touchPosX < -this.pageWidth / 3)) {\r\n        this.controller.action({ name: 'NextPage' });\r\n        this.translateX(-this.pageWidth);\r\n      } else if ((dX > 5 && dT <= 14 && this.lastTouches[1].x > this.touchStartX) ||\r\n        (dX > 0 && this.touchPosX > this.pageWidth / 3)) {\r\n        this.controller.action({ name: 'PrevPage' });\r\n        this.translateX(this.pageWidth);\r\n      } else {\r\n        this.translateX(0);\r\n      }\r\n    }\r\n  }\r\n\r\n  public translateX(value: number) {\r\n    this.element.nativeElement.style.transitionDuration = '300ms';\r\n    this.element.nativeElement.style.transform = value === 0 ? '' : `translateX(${value}px)`;\r\n    setTimeout(() => {\r\n      this.element.nativeElement.style.transitionDuration = '';\r\n    }, 300);\r\n  }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { ModelService } from '../services/model.service';\r\nimport { StylesService } from '../services/styles.service';\r\nimport { InteractionsService } from '../services/interactions.service';\r\nimport { Message } from '../services/objects';\r\n\r\n@Component({\r\n  selector: 'sti-report-panel',\r\n  template: `\r\n    <div #element\r\n         [style.textAlign]=\"model.options.appearance.pageAlignment == 'default' ? 'center' : model.options.appearance.pageAlignment\"\r\n         [style.top]=\"0\"\r\n         [style.bottom]=\"0\"\r\n         [style.position]=\"position\"\r\n         [style.height]=\"model.options.heightType != 'Percentage' || model.options.appearance.scrollbarsMode ? 'auto' : 'calc(100% - 35px)'\"\r\n         [style.overflow] = \"model.reportParams.type == 'Report' && model.options.appearance.scrollbarsMode ? 'auto' : 'hidden'\"\r\n         [style.marginTop.px]=\"model.controls.reportPanel.layout.top\"\r\n         [style.marginLeft.px]=\"model.controls.reportPanel.layout.left\"\r\n         [style.marginBottom.px]=\"position == 'absolute' ? model.controls.reportPanel.layout.bottom : 0\"\r\n         [style.paddingBottom.px]=\"position == 'relative' ? model.controls.reportPanel.layout.bottom : 0\"\r\n         [style.transition]=\"model.options.isMobileDevice ? 'margin 200ms ease' : null\"\r\n         (scroll)=\"scroll()\"\r\n         class=\"stiJsViewerReportPanel\"\r\n         (touchstart)=\"eventTouchStart($event)\"\r\n         (touchmove)=\"eventTouchMove($event)\"\r\n         (touchend)=\"eventTouchEnd($event)\">\r\n      <sti-page *ngFor=\"let page of model.pages\" [pageAttributes]=\"page\"></sti-page>\r\n    </div>\r\n  `\r\n})\r\n\r\nexport class ReportPanelComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  private scrollTimeout: any;\r\n  private touchesLength: number;\r\n  private touchZoomFirstDistance = 0;\r\n  private touchZoomSecondDistance = 0;\r\n  private touchZoomValue = 0;\r\n  private touchStartX: number;\r\n\r\n  public maxHeights = {};\r\n\r\n  constructor(private controller: ControllerService, public model: ModelService, private stylesService: StylesService, private interactionService: InteractionsService) {\r\n\r\n    controller.getMessage().subscribe((message: Message) => {\r\n\r\n      if (message.action !== 'viewer_loaded' && this.model.reportParams.pagesArray) {\r\n        if (this.model.reportParams.repaintOnlyDashboardContent) {\r\n          // jsObject.controls.reportPanel.repaintDashboardContent(parameters);\r\n        } else {\r\n          this.loadPages();\r\n        }\r\n      }\r\n\r\n      if (message.action === 'GetReport' || message.action === 'OpenReport') {\r\n        setTimeout(() => {\r\n          if (!this.model.options.isParametersReceived && ((this.model.reportParams.type === 'Report' && this.model.options.toolbar.showParametersButton) || this.model.reportParams.type === 'Dashboard')) {\r\n            interactionService.postInteraction({ action: 'InitVars' });\r\n          }\r\n\r\n          if (this.model.reportParams.autoZoom) {\r\n            this.controller.action({ name: this.model.reportParams.autoZoom === -1 ? 'ZoomPageWidth' : 'ZoomOnePage' });\r\n            this.model.reportParams.autoZoom = null;\r\n          }\r\n        });\r\n      }\r\n\r\n    });\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.model.controls.reportPanel.el = this.element;\r\n  }\r\n\r\n  loadPages() {\r\n    this.maxHeights = {};\r\n    const pagesArray: [] = this.model.reportParams.pagesArray;\r\n    this.stylesService.setupStyle(pagesArray[pagesArray.length - 2], 'page');\r\n    const chartScript = pagesArray[pagesArray.length - 1];\r\n    this.model.pages = pagesArray.slice(0, pagesArray.length - 2);\r\n\r\n    setTimeout(() => {\r\n      this.model.pages.forEach(page => this.interactionService.initializeInteractions(page.page));\r\n      this.interactionService.updateAllHyperLinks();\r\n      this.stylesService.addChartScript(chartScript);\r\n    });\r\n\r\n  }\r\n\r\n  get position(): string {\r\n    return this.model.options.heightType !== 'Percentage' || this.model.options.appearance.scrollbarsMode ? 'absolute' : 'relative';\r\n  }\r\n\r\n  scroll() {\r\n    if (this.model.pagesNavigationIsActive()) {\r\n      clearTimeout(this.scrollTimeout);\r\n\r\n      // update current page number\r\n      this.scrollTimeout = setTimeout(() => {\r\n        let commonPagesHeight = 0;\r\n        let index = 0;\r\n\r\n        for (index = 0; index < this.model.pages.length; index++) {\r\n          commonPagesHeight += this.model.pages[index].page.offsetHeight + 10;\r\n          if (commonPagesHeight > this.element.nativeElement.scrollTop) {\r\n            break;\r\n          }\r\n        }\r\n\r\n        if (index < this.model.reportParams.pagesCount && index >= 0 && index !== this.model.reportParams.pageNumber) {\r\n          this.model.reportParams.pageNumber = index;\r\n        }\r\n      }, 300);\r\n    }\r\n  }\r\n\r\n  public eventTouchStart(e: any) {\r\n    this.touchesLength++;\r\n    this.touchStartX = parseInt(e.changedTouches[0].clientX, 10);\r\n\r\n    if (this.model.options.appearance.allowTouchZoom && this.touchesLength === 1) {\r\n      this.touchZoomFirstDistance = 0;\r\n      this.touchZoomSecondDistance = 0;\r\n      this.touchZoomValue = 0;\r\n    }\r\n  }\r\n\r\n  public eventTouchMove(e: any) {\r\n    if (this.model.options.appearance.allowTouchZoom && e.touches.length > 1) {\r\n      if ('preventDefault' in e) { e.preventDefault(); }\r\n\r\n      this.touchZoomSecondDistance = Math.sqrt(Math.pow(e.touches[0].pageX - e.touches[1].pageX, 2) + Math.pow(e.touches[0].pageY - e.touches[1].pageY, 2));\r\n      if (this.touchZoomFirstDistance === 0) {\r\n        this.touchZoomFirstDistance = Math.sqrt(Math.pow(e.touches[0].pageX - e.touches[1].pageX, 2) + Math.pow(e.touches[0].pageY - e.touches[1].pageY, 2));\r\n      }\r\n\r\n      const touchZoomOffset = Math.trunc((this.touchZoomSecondDistance - this.touchZoomFirstDistance) / 2.5);\r\n      if (Math.abs(touchZoomOffset) >= 5) {\r\n        this.touchZoomValue = Math.trunc((this.model.reportParams.zoom + touchZoomOffset) / 5) * 5;\r\n        this.touchZoomValue = Math.min(Math.max(this.touchZoomValue, 20), 200);\r\n        this.controller.actionSubject.next({ action: 'centerText', data: this.touchZoomValue.toString() });\r\n      }\r\n    }\r\n  }\r\n\r\n  public eventTouchEnd(e: any) {\r\n    if (this.touchesLength > 0) { this.touchesLength--; }\r\n\r\n    if (this.model.options.isMobileDevice && this.model.options.toolbar.autoHide) {\r\n      if (Math.trunc(this.touchStartX - e.changedTouches[0].clientX) !== 0) {\r\n        this.controller.keepToolbar();\r\n      } else {\r\n        if (!this.model.controls.toolbar.visible) {\r\n          this.controller.showToolbar();\r\n        } else {\r\n          this.controller.hideToolbar();\r\n        }\r\n      }\r\n    }\r\n\r\n    if (this.model.options.appearance.allowTouchZoom && this.touchZoomValue !== 0 && this.touchesLength === 0) {\r\n      this.controller.actionSubject.next({ action: 'hideCenterText' });\r\n      this.model.reportParams.zoom = this.touchZoomValue;\r\n      this.controller.post('GetPages');\r\n    }\r\n  }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\n\r\nexport class MenuItem {\r\n  constructor(public name?: string, public caption?: string, public img?: string, public type?: string, public selected?: boolean, public imageSize?: string,\r\n    public value?: any) { }\r\n}\r\n\r\n@Component({\r\n  selector: 'sti-menu-item',\r\n  template: `\r\n    <div *ngIf=\"item.type!='separator'\" [class]=\"className\" (mouseover)=\"mouseover()\"\r\n         (mouseout)=\"mouseout()\" [style.height]=\"height\">\r\n         <table [style.height]=\"'100%'\" [style.width]=\"'100%'\" class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\">\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n                <td *ngIf=\"item.img != null && !model.options.appearance.rightToLeft\" class=\"stiJsViewerClearAllStyles\" [style.width.px]=\"22\" [style.minWidth.px]=\"22\" [style.padding]=\"0\"\r\n                [style.textAlign]=\"'center'\" [style.lineHeight]=\"0\">\r\n                  <img *ngIf=\"item.img != ''\" [style.height.px]=\"item.imageSize === 'Big' ? 32 : 16\" [style.width.px]=\"item.imageSize === 'Big' ? 32 : 16\" src=\"{{model.img(item.img)}}\" />\r\n                </td>\r\n\r\n                <td *ngIf=\"item.caption != null\" class=\"stiJsViewerClearAllStyles\" [style.whiteSpace]=\"'nowrap'\"\r\n                  [style.textAlign]=\"model.options.appearance.rightToLeft ? 'right' : 'left'\"\r\n                  [style.padding]=\"item.imageSize == 'None' ? '0 20px 0 30px' : '0 20px 0 7px'\">\r\n                  {{item.caption}}\r\n                </td>\r\n\r\n                <td *ngIf=\"item.img != null && model.options.appearance.rightToLeft\" class=\"stiJsViewerClearAllStyles\" [style.width.px]=\"22\" [style.minWidth.px]=\"22\" [style.padding]=\"'0'\"\r\n                [style.textAlign]=\"'center'\" [style.lineHeight]=\"0\">\r\n                  <img *ngIf=\"item.img != ''\" [style.height.px]=\"item.imageSize === 'Big' ? 32 : 16\" [style.width.px]=\"item.imageSize === 'Big' ? 32 : 16\" src=\"{{model.img(item.img)}}\" />\r\n                </td>\r\n            </tr>\r\n         </table>\r\n    </div>\r\n    <div *ngIf=\"item.type=='separator'\" class=\"stiJsViewerVerticalMenuSeparator\" [style.margin]=\"item.imageSize == 'Big' ? '1px 2px 1px 2px' : ''\">\r\n    </div>\r\n  `\r\n})\r\n\r\nexport class MenuItemComponent implements OnInit {\r\n\r\n  @Input() item: MenuItem;\r\n  @Input() styleName = 'stiJsViewerMenuStandartItem';\r\n\r\n  selected = false;\r\n  over = false;\r\n\r\n  private _enabled = true;\r\n\r\n  constructor(public model: ModelService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  @Input() get enabled(): boolean {\r\n    return this._enabled;\r\n  }\r\n\r\n  set enabled(value: boolean) {\r\n    if (!value) {\r\n      this.over = false;\r\n    }\r\n    this._enabled = value;\r\n  }\r\n\r\n  mouseover() {\r\n    if (!this.enabled || !this.enabled) {\r\n      return;\r\n    }\r\n    this.over = true;\r\n  }\r\n\r\n  mouseout() {\r\n    if (!this.enabled || !this.enabled) {\r\n      return;\r\n    }\r\n    this.over = false;\r\n  }\r\n\r\n  get height(): string {\r\n    if (this.item.imageSize === 'Big') {\r\n      return '38px';\r\n    } else {\r\n      return this.model.options.isMobileDevice ? '0.4in' : (this.model.options.isTouchDevice ? '30px' : '24px');\r\n    }\r\n  }\r\n\r\n  get className(): string {\r\n    return this.styleName ? this.styleName + ' ' + (this.enabled ? (this.styleName + ((this.selected || this.item.selected) ? 'Selected' : (this.over ? 'Over' : ''))) : this.styleName + 'Disabled') : '';\r\n  }\r\n}\r\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { Variable } from '../../services/objects';\r\nimport { TextBoxComponent } from '../text-box.componet';\r\nimport { HelperService } from '../../services/helper.service';\r\nimport { ModelService } from '../../services/model.service';\r\n\r\n@Component({\r\n  selector: 'sti-parameter-text-box',\r\n  template: `\r\n    <sti-text-box #element\r\n      [maxLength]=\"variable.type === 'Char' ? 1 : ''\"\r\n      [value]=\"isMenu ? helper.getStringKey(item.key, variable): value\"\r\n      [width]=\"width\"\r\n      [readOnly]=\"readOnly\"\r\n      [focusOnCreate]=\"focusOnCreate\"\r\n      [enabled]=\"!variable?.isNull\"\r\n      [color]=\"color\"\r\n      [variable]=\"variable\"\r\n      [textAlign]=\"model.options.currentParameterAlignment?.toLowerCase()\"\r\n      (onblur)=\"onchange($event)\">\r\n    </sti-text-box>\r\n  `\r\n})\r\n\r\nexport class ParameterTextBoxComponent implements OnInit {\r\n\r\n  @ViewChild('element') element: TextBoxComponent;\r\n\r\n  @Input() item: Variable;\r\n  @Input() variable: Variable;\r\n  @Input() readOnly: boolean;\r\n  @Input() focusOnCreate = false;\r\n  @Input() isMenu = false;\r\n  @Input() value = '';\r\n  @Input() secondTextBox = false;\r\n\r\n  constructor(public helper: HelperService, public model: ModelService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  onchange(target: any) {\r\n    if (this.element.oldValue === target.value) {\r\n      return;\r\n    }\r\n    const value = this.getValue(target);\r\n    if (this.isMenu) {\r\n      if (!this.secondTextBox) {\r\n        this.item.key = value;\r\n      } else {\r\n        this.item.keyTo = value;\r\n      }\r\n    } else {\r\n      if (!this.secondTextBox) {\r\n        if (this.variable.basicType === 'Range' || this.variable.type === 'DateTime') {\r\n          this.variable.key = value;\r\n        } else {\r\n          this.variable.value = value;\r\n          if (this.variable.basicType === 'Value') {\r\n            this.variable.key = value;\r\n          }\r\n        }\r\n      } else {\r\n        this.variable.keyTo = value;\r\n      }\r\n    }\r\n  }\r\n\r\n  getValue(target: any): any {\r\n    if (this.variable.type === 'DateTime') {\r\n      if (this.element.oldValue === target.value) {\r\n        return;\r\n      }\r\n      try {\r\n        const timeString = new Date().toLocaleTimeString();\r\n        const isAmericanFormat = timeString.toLowerCase().indexOf('am') >= 0 || timeString.toLowerCase().indexOf('pm') >= 0;\r\n        const formatDate = isAmericanFormat ? 'MM/dd/yyyy' : 'dd.MM.yyyy';\r\n        let format = formatDate + (isAmericanFormat ? ' h:mm:ss tt' : ' hh:mm:ss');\r\n        if (this.variable.dateTimeType === 'Date') {\r\n          format = formatDate;\r\n        }\r\n        if (this.variable.dateTimeType === 'Time') {\r\n          format = 'hh:mm:ss';\r\n        }\r\n        const date = this.helper.getDateTimeFromString(target.value, this.model.options.appearance.parametersPanelDateFormat || format);\r\n        return this.helper.getDateTimeObject(date);\r\n      } catch (e) {\r\n        alert(e);\r\n      }\r\n    } else {\r\n      return target.value;\r\n    }\r\n  }\r\n\r\n  get width(): number {\r\n    let width = 210;\r\n    if (this.variable.basicType === 'Range') {\r\n      width = 140;\r\n      if (this.variable.type === 'Guid' || this.variable.type === 'String') {\r\n        width = 190;\r\n      }\r\n      if (this.variable.type === 'DateTime') {\r\n        width = 235;\r\n      }\r\n      if (this.variable.type === 'Char') {\r\n        width = 60;\r\n      }\r\n    } else {\r\n      if (this.variable.type === 'Guid') {\r\n        width = 265;\r\n      } else {\r\n        width = 210;\r\n      }\r\n    }\r\n    return width;\r\n  }\r\n\r\n  get color(): string {\r\n    return !this.variable.isNull\r\n      ? (this.model.options.toolbar.fontColor && this.model.options.toolbar.fontColor !== 'Empty' ? this.model.options.toolbar.fontColor : '#444444')\r\n      : this.variable.type === 'DateTime' ? 'transparent' : '#c6c6c6';\r\n  }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Variable } from '../../services/objects';\r\nimport { ModelService } from '../../services/model.service';\r\n\r\n@Component({\r\n  selector: 'sti-parameter-button',\r\n  template: `\r\n    <sti-button [imageName]=\"buttonType + '.png'\"\r\n        [styleName]=\"'stiJsViewerFormButton'\"\r\n        [height]=\"model.options.isTouchDevice ? '26px' : '21px'\"\r\n        [innerTableWidth]=\"'100%'\"\r\n        [enabled]=\"!params?.isNull\"\r\n        (action)=\"onaction()\">\r\n    </sti-button>\r\n  `\r\n})\r\n\r\nexport class ParameterButtonComponent implements OnInit {\r\n\r\n  @Input() params: Variable;\r\n  @Input() buttonType: string;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor(public model: ModelService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  onaction() {\r\n    this.action.emit(this.params);\r\n  }\r\n}\r\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\n\r\n@Component({\r\n  selector: 'sti-parameter-menu-item',\r\n  template: `\r\n      <div [class]=\"className\"\r\n        [style.height.px]=\"model.options.isTouchDevice ? 30 : 24\"\r\n        (mouseover)=\"mouseover()\"\r\n        (mouseout)=\"mouseout()\"\r\n        (mousedown)=\"mousedown()\"\r\n        (mouseup)=\"mouseup()\">\r\n        <table class=\"stiJsViewerClearAllStyles stiJsViewerParametersMenuItemInnerTable\" cellpadding=\"0\" cellspacing=\"0\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.padding]=\"padding\">\r\n                <ng-content>\r\n                </ng-content>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n\r\n      </div>\r\n  `\r\n})\r\n\r\nexport class ParameterMenuItemComponent implements OnInit {\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  @Input() active = true;\r\n  @Input() padding = '0px 5px';\r\n\r\n  isOver = false;\r\n  mouseDown = false;\r\n\r\n  constructor(public model: ModelService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  mouseover() {\r\n    this.isOver = true;\r\n  }\r\n\r\n  mouseout() {\r\n    this.isOver = false;\r\n    this.mouseDown = false;\r\n  }\r\n\r\n  mousedown() {\r\n    this.mouseDown = true;\r\n  }\r\n\r\n  mouseup() {\r\n    this.mouseDown = false;\r\n    this.action.emit();\r\n  }\r\n\r\n  get className(): string {\r\n    return this.active ? this.mouseDown ? 'stiJsViewerParametersMenuItemPressed' : (this.isOver ? 'stiJsViewerParametersMenuItemOver' : 'stiJsViewerParametersMenuItem') : 'stiJsViewerParametersMenuItem';\r\n  }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'sti-parameter-menu-separator',\r\n  template: `\r\n        <div class=\"stiJsViewerParametersMenuSeparator\">\r\n        </div>\r\n  `\r\n})\r\n\r\nexport class ParameterMenuSeparatorComponent implements OnInit {\r\n  constructor() { }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { MenuItem } from './meni-item.component';\r\nimport { Menu, MenuService } from './menu.service';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { Variable } from '../services/objects';\r\n\r\n@Component({\r\n  selector: 'sti-parameter-menu-edit-list',\r\n  template: `\r\n        <table class=\"stiJsViewerClearAllStyles stiJsViewerParametersMenuInnerTable\" cellpadding=\"0\" cellspacing=\"0\"\r\n        [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n        [style.color]=\"model.options.toolbar.fontColor\"\r\n        [style.fontSize]=\"'12px'\"\r\n        [style.width]=\"(menu.parent.nativeElement.offsetWidth - 5) + 'px'\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                <!--New Item Button -->\r\n                <sti-parameter-menu-item (action)=\"newItem($event)\">\r\n                  {{model.loc('NewItem')}}\r\n                </sti-parameter-menu-item>\r\n              </td>\r\n            </tr>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                <sti-parameter-menu-item *ngFor=\"let item of menu.params.items\" [active]=\"false\">\r\n                  <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\">\r\n                    <tbody>\r\n                      <tr class=\"stiJsViewerClearAllStyles\">\r\n                         <td class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'0px 1px 0px 0px'\">\r\n                            <sti-parameter-text-box [item]=\"item\" [isMenu]=\"true\"\r\n                              [variable]=\"menu.params\" [focusOnCreate]=\"item.focusOnCreate\">\r\n                            </sti-parameter-text-box>\r\n                         </td>\r\n\r\n                         <td *ngIf=\"menu.params.type == 'DateTime'\" class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'0 1px 0 1px'\" #dateTimeButton>\r\n                           <sti-parameter-button [buttonType]=\"'DateTimeButton'\" (action)=\"dateTimeButtonAction(item)\">\r\n                           </sti-parameter-button>\r\n                         </td>\r\n\r\n                         <td *ngIf=\"menu.params.type == 'Guid'\" class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'0 1px 0 1px'\">\r\n                           <sti-parameter-button [buttonType]=\"'GuidButton'\" (action)=\"guidButtonAction(item)\">\r\n                           </sti-parameter-button>\r\n                         </td>\r\n\r\n                         <td class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'0 1px 0 1px'\">\r\n                           <sti-parameter-button [buttonType]=\"'RemoveItemButton'\" (action)=\"removeButtonAction(item)\" [params]=\"item\">\r\n                           </sti-parameter-button>\r\n                         </td>\r\n                       </tr>\r\n                     </tbody>\r\n                  </table>\r\n                </sti-parameter-menu-item>\r\n              </td>\r\n            </tr>\r\n\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                  <sti-parameter-menu-item (action)=\"removeAllAction()\">\r\n                      {{model.loc('RemoveAll')}}\r\n                  </sti-parameter-menu-item>\r\n\r\n                  <sti-parameter-menu-separator></sti-parameter-menu-separator>\r\n\r\n                  <sti-parameter-menu-item (action)=\"closeAction()\">\r\n                      {{model.loc('Close')}}\r\n                  </sti-parameter-menu-item>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n  `\r\n})\r\n\r\nexport class ParameterMenuEditListComponent implements OnInit {\r\n\r\n  @ViewChild('dateTimeButton') dateTimeButton: ElementRef;\r\n\r\n  @Input() menu: Menu;\r\n\r\n  constructor(public model: ModelService, public helper: HelperService, public menuService: MenuService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  newItem(event: any) {\r\n    const item: any = new Variable();\r\n    if (this.menu.params.type === 'DateTime') {\r\n      item.key = this.helper.getDateTimeObject();\r\n      item.value = this.helper.dateTimeObjectToString(item.key);\r\n    } else if (this.menu.params.type === 'TimeSpan') {\r\n      item.key = '00:00:00';\r\n      item.value = '00:00:00';\r\n    } else if (this.menu.params.type === 'Bool') {\r\n      item.key = 'False';\r\n      item.value = 'False';\r\n    } else {\r\n      item.key = '';\r\n      item.value = '';\r\n    }\r\n    item.focusOnCreate = true;\r\n    if (!this.menu.params.items) {\r\n      this.menu.params.items = [];\r\n    }\r\n    this.menu.params.items.push(item);\r\n    setTimeout(() => {\r\n      item.focusOnCreate = false;\r\n    });\r\n  }\r\n\r\n  dateTimeButtonAction(item: Variable) {\r\n    this.menuService.addMenu({\r\n      type: 'datePickerMenu', name: 'datePickerMenu', items: [], parent: this.dateTimeButton,\r\n      params: item,\r\n      state: ''\r\n    });\r\n\r\n    setTimeout(() => {\r\n      this.menuService.showMenu('datePickerMenu');\r\n    });\r\n  }\r\n\r\n  guidButtonAction(item: Variable) {\r\n    item.key = this.helper.newGuid();\r\n  }\r\n\r\n  removeButtonAction(item: Variable) {\r\n    this.menu.params.items.splice(this.menu.params.items.indexOf(item), 1);\r\n  }\r\n\r\n  removeAllAction() {\r\n    this.menu.params.items.splice(0, this.menu.params.items.length);\r\n  }\r\n\r\n  closeAction() {\r\n    this.menu.state = 'initialDown';\r\n  }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\n\r\n@Component({\r\n  selector: 'sti-text-block',\r\n  template: `\r\n    <div [style]=\"{fontFamily: model.options.toolbar.fontFamily, fontSize: '12px', paddingTop: '2px', margin: margin}\">\r\n      {{text || ''}}\r\n    </div>\r\n  `\r\n})\r\n\r\nexport class TextBlockComponent implements OnInit {\r\n\r\n  @Input() text: string;\r\n  @Input() margin: string;\r\n\r\n  constructor(public model: ModelService) { }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ModelService } from '../../services/model.service';\r\nimport { Variable } from '../../services/objects';\r\nimport { HelperService } from '../../services/helper.service';\r\n\r\n@Component({\r\n  selector: 'sti-parameter-find',\r\n  template: `\r\n      <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.paddingLeft.px]=\"8\">\r\n                <sti-text-block [text]=\"model.loc('FindWhat')\"></sti-text-block>\r\n              </td>\r\n\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.paddingLeft.px]=\"8\">\r\n                <sti-text-box [width]=\"80\"\r\n                  [margin]=\"'4px'\"\r\n                  [focusOnCreate]=\"true\"\r\n                  (onchange)=\"onchange($event)\">\r\n                </sti-text-box>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n      </table>\r\n\r\n  `\r\n})\r\n\r\nexport class ParameterFindComponent implements OnInit {\r\n\r\n  @Input() variable: Variable;\r\n\r\n  constructor(public model: ModelService, public helper: HelperService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  onchange(event: any) {\r\n    const text = event.value.toLowerCase();\r\n    this.variable.items.forEach((item) => {\r\n      const itemText = this.helper.val(item.value, this.helper.getStringKey(item.key, this.variable)).toLowerCase();\r\n      item.visible = itemText.indexOf(text) >= 0;\r\n    });\r\n  }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Menu } from './menu.service';\r\nimport { ModelService } from '../services/model.service';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { Variable } from '../services/objects';\r\n\r\n@Component({\r\n  selector: 'sti-parameter-menu-not-edit-list',\r\n  template: `\r\n      <sti-parameter-find *ngIf=\"menu.params.items.length > 10\" [variable]=\"menu.params\"></sti-parameter-find>\r\n\r\n      <sti-parameter-menu-separator *ngIf=\"menu.params.items.length > 10\"></sti-parameter-menu-separator>\r\n\r\n      <div [style.max-height.px]=\"400\" [style.overflow]=\"'hidden auto'\">\r\n        <table class=\"stiJsViewerClearAllStyles stiJsViewerParametersMenuInnerTable\" cellpadding=\"0\" cellspacing=\"0\"\r\n          [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n          [style.color]=\"model.options.toolbar.fontColor\"\r\n          [style.fontSize]=\"'12px'\"\r\n          [style.width]=\"(menu.parent.nativeElement.offsetWidth - 5) + 'px'\">\r\n            <tbody>\r\n              <tr class=\"stiJsViewerClearAllStyles\">\r\n                <td class=\"stiJsViewerClearAllStyles\">\r\n                  <sti-check-box [captionText]=\"model.loc('SelectAll')\"\r\n                    [margin]=\"'8px 7px 8px 7px'\"\r\n                    [isChecked]=\"isAllSelected()\"\r\n                    (action)=\"selectAll()\" >\r\n                  </sti-check-box>\r\n                </td>\r\n              </tr>\r\n\r\n              <tr class=\"stiJsViewerClearAllStyles\">\r\n                <td class=\"stiJsViewerClearAllStyles\">\r\n                  <sti-parameter-menu-separator></sti-parameter-menu-separator>\r\n                </td>\r\n              </tr>\r\n\r\n              <tr *ngFor=\"let item of menu.params.items\" class=\"stiJsViewerClearAllStyles\" [style.display]=\"item.visible ? '' : 'none'\">\r\n                <td class=\"stiJsViewerClearAllStyles\">\r\n                  <sti-parameter-menu-item>\r\n                      <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.width]=\"'100%'\">\r\n                          <tbody>\r\n                            <tr class=\"stiJsViewerClearAllStyles\">\r\n                              <td class=\"stiJsViewerClearAllStyles\">\r\n                                  <sti-parameter-checkbox [params]=\"item\"\r\n                                      [captionText]=\"helper.val(item.value, helper.getStringKey(item.key, menu.params))\"\r\n                                      [margin]=\"'0 5px 0 0'\"\r\n                                      [width]=\"'100%'\"\r\n                                      [imageBlockParentWidth]=\"'1px'\"\r\n                                      [isMenuParameter]=\"true\"\r\n                                      (action)=\"check(item)\">\r\n                                  </sti-parameter-checkbox>\r\n                              </td>\r\n                            </tr>\r\n                          </tbody>\r\n                      </table>\r\n                  </sti-parameter-menu-item>\r\n                </td>\r\n              </tr>\r\n\r\n              <tr class=\"stiJsViewerClearAllStyles\">\r\n                <td class=\"stiJsViewerClearAllStyles\">\r\n                  <sti-parameter-menu-separator></sti-parameter-menu-separator>\r\n                </td>\r\n              </tr>\r\n\r\n              <tr class=\"stiJsViewerClearAllStyles\">\r\n                <td class=\"stiJsViewerClearAllStyles\">\r\n                    <sti-parameter-menu-item [padding]=\"'0px 5px 0px 13px'\" (action)=\"closeAction()\">\r\n                      {{model.loc('Close')}}\r\n                    </sti-parameter-menu-item>\r\n                </td>\r\n              </tr>\r\n            </tbody>\r\n          </table>\r\n      </div>\r\n  `\r\n})\r\n\r\nexport class ParameterMenuNotEditListComponent implements OnInit {\r\n\r\n  @Input() menu: Menu;\r\n\r\n  constructor(public model: ModelService, public helper: HelperService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  selectAll() {\r\n    const isAllSelected = this.isAllSelected();\r\n    if (this.menu.params.items) {\r\n      this.menu.params.items.forEach(e => e.isChecked = !isAllSelected);\r\n    }\r\n  }\r\n\r\n  isAllSelected() {\r\n    return this.menu.params.items.every(e => e.isChecked);\r\n  }\r\n\r\n  check(item: Variable) {\r\n    item.isChecked = !item.isChecked;\r\n  }\r\n\r\n  closeAction() {\r\n    this.menu.state = 'initialDown';\r\n  }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Menu } from './menu.service';\r\nimport { ModelService } from '../services/model.service';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { Variable } from '../services/objects';\r\nimport { InteractionsService } from '../services/interactions.service';\r\n\r\n@Component({\r\n  selector: 'sti-parameter-menu-for-value',\r\n  template: `\r\n      <sti-parameter-find *ngIf=\"menu.params.items.length > 10\" [variable]=\"menu.params\"></sti-parameter-find>\r\n\r\n      <sti-parameter-menu-separator *ngIf=\"menu.params.items.length > 10\"></sti-parameter-menu-separator>\r\n\r\n      <div [style.maxHeight.px]=\"400\" [style.overflow]=\"menu.params.items.length > 10 ? 'hidden auto' : 'hidden'\">\r\n        <table class=\"stiJsViewerClearAllStyles stiJsViewerParametersMenuInnerTable\" cellpadding=\"0\" cellspacing=\"0\"\r\n          [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n          [style.color]=\"model.options.toolbar.fontColor\"\r\n          [style.fontSize]=\"'12px'\"\r\n          [style.width]=\"(menu.parent.nativeElement.offsetWidth - 5) + 'px'\">\r\n            <tbody>\r\n              <tr *ngFor=\"let item of menu.params.items\" class=\"stiJsViewerClearAllStyles\" [style.display]=\"item.visible ? '' : 'none'\">\r\n                <td class=\"stiJsViewerClearAllStyles\">\r\n                  <sti-parameter-menu-item>\r\n                      <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.width]=\"'100%'\">\r\n                          <tbody>\r\n                            <tr class=\"stiJsViewerClearAllStyles\">\r\n                              <td class=\"stiJsViewerClearAllStyles\">\r\n                                  <sti-parameter-menu-item (action)=\"action(item)\">\r\n                                    {{getValue(item)}}\r\n                                  </sti-parameter-menu-item>\r\n                              </td>\r\n                            </tr>\r\n                          </tbody>\r\n                      </table>\r\n                  </sti-parameter-menu-item>\r\n                </td>\r\n              </tr>\r\n            </tbody>\r\n          </table>\r\n      </div>\r\n  `\r\n})\r\n\r\nexport class ParameterMenuForValueComponent implements OnInit {\r\n\r\n  @Input() menu: Menu;\r\n\r\n  constructor(public model: ModelService, public helper: HelperService, public intearctionService: InteractionsService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  action(item: Variable) {\r\n    this.menu.params.value = this.menu.params.allowUserValues ? item.key : item.value;\r\n    this.menu.params.key = item.key;\r\n    this.menu.params.isChanged = true;\r\n    this.menu.state = 'initialDown';\r\n\r\n    if (this.menu.params.binding) {\r\n      if (!this.model.options.paramsVariablesStartValues) {\r\n        this.model.options.paramsVariablesStartValues = this.helper.copyObject(this.model.options.paramsVariables);\r\n      }\r\n\r\n      this.intearctionService.postInteraction({ action: 'InitVars', variables: this.intearctionService.getParametersValues() });\r\n    }\r\n\r\n  }\r\n\r\n  getValue(item: Variable) {\r\n    return (item.value !== '' && this.menu.params.type !== 'DateTime' && this.menu.params.type !== 'TimeSpan')\r\n      ? item.value\r\n      : this.helper.getStringKey(item.key, this.menu.params);\r\n  }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Menu } from './menu.service';\r\nimport { ModelService } from '../services/model.service';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { Variable } from '../services/objects';\r\n\r\n@Component({\r\n  selector: 'sti-parameter-menu-for-range',\r\n  template: `\r\n      <sti-parameter-find *ngIf=\"menu.params.items.length > 10\" [variable]=\"menu.params\"></sti-parameter-find>\r\n\r\n      <sti-parameter-menu-separator *ngIf=\"menu.params.items.length > 10\"></sti-parameter-menu-separator>\r\n\r\n      <div [style.maxHeight.px]=\"400\" [style.overflow]=\"menu.params.items.length > 10 ? 'hidden auto' : 'hidden'\">\r\n        <table class=\"stiJsViewerClearAllStyles stiJsViewerParametersMenuInnerTable\" cellpadding=\"0\" cellspacing=\"0\"\r\n          [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n          [style.color]=\"model.options.toolbar.fontColor\"\r\n          [style.fontSize]=\"'12px'\"\r\n          [style.width]=\"(menu.parent.nativeElement.offsetWidth - 5) + 'px'\">\r\n            <tbody>\r\n              <tr *ngFor=\"let item of menu.params.items\" class=\"stiJsViewerClearAllStyles\" [style.display]=\"item.visible ? '' : 'none'\">\r\n                <td class=\"stiJsViewerClearAllStyles\">\r\n                  <sti-parameter-menu-item>\r\n                      <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.width]=\"'100%'\">\r\n                          <tbody>\r\n                            <tr class=\"stiJsViewerClearAllStyles\">\r\n                              <td class=\"stiJsViewerClearAllStyles\">\r\n                                  <sti-parameter-menu-item (action)=\"action(item)\">\r\n                                    {{getValue(item)}}\r\n                                  </sti-parameter-menu-item>\r\n                              </td>\r\n                            </tr>\r\n                          </tbody>\r\n                      </table>\r\n                  </sti-parameter-menu-item>\r\n                </td>\r\n              </tr>\r\n            </tbody>\r\n          </table>\r\n      </div>\r\n  `\r\n})\r\n\r\nexport class ParameterMenuForRangeComponent implements OnInit {\r\n\r\n  @Input() menu: Menu;\r\n\r\n  constructor(public model: ModelService, public helper: HelperService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  action(item: Variable) {\r\n    this.menu.params.key = item.key;\r\n    this.menu.params.keyTo = item.keyTo;\r\n    this.menu.state = 'initialDown';\r\n  }\r\n\r\n  getValue(item: Variable) {\r\n    return `${item.value} [${this.helper.getStringKey(item.key, this.menu.params)} - ${this.helper.getStringKey(item.keyTo, this.menu.params)}]`;\r\n  }\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { Item } from '../services/objects';\r\nimport { MouseService } from '../services/mouse.service';\r\nimport { MenuService } from '../menu/menu.service';\r\n\r\n@Component({\r\n  selector: 'sti-drop-down-list',\r\n  template: `\r\n        <table #element [class]=\"className\" cellpadding=\"0\" cellspacing=\"0\"\r\n              [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n              [style.color]=\"model.options.toolbar.fontColor\"\r\n              [style.margin]=\"margin\"\r\n              [style.verticalAlign]=\"verticalAlign\"\r\n              [style.display]=\"styleDisplay\"\r\n              [attr.title]=\"toolTip\"\r\n              (mouseover)=\"mouseover()\"\r\n              (mouseout)=\"mouseout()\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                <input #input\r\n                [style.width.px]=\"width - (model.options.isTouchDevice ? 23 : 15) - (showImage ? 38 : 0)\"\r\n                [style.border]=\"0\"\r\n                [style.cursor]=\"readOnly ? 'default' : 'text'\"\r\n                [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n                [style.color]=\"model.options.toolbar.fontColor\"\r\n                [style.height]=\"model.options.isTouchDevice ? '23px' : '18px'\"\r\n                [style.lineHeight]=\"model.options.isTouchDevice ? '23px' : '18px'\"\r\n                [style.visibility]=\"enabled ? 'visible' : 'hidden'\"\r\n                [value]=\"inputValue\"\r\n                (click)=\"inputClick()\"\r\n                class=\"stiJsViewerDropDownList_TextBox\">\r\n              </td>\r\n\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                  <sti-button [imageName]=\"'Arrows.' + (model.options.isTouchDevice ? 'Big' : 'Small') + 'ArrowDown.png'\"\r\n                     [styleName]=\"'stiJsViewerDropDownListButton'\"\r\n                     [imageSizesWidth]=\"model.options.isTouchDevice ? 16 : 8\"\r\n                     [imageSizesHeight]=\"model.options.isTouchDevice ? 16 : 8\"\r\n                     [height]=\"model.options.isTouchDevice ? '26px' : '21px'\"\r\n                     [enabled]=\"enabled\"\r\n                     [selected]=\"selected\"\r\n                     [margin]=\"'0'\"\r\n                     (action)=\"showListMenu()\">\r\n                  </sti-button>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n\r\n  `\r\n})\r\n\r\nexport class DropDownListComponent implements OnInit {\r\n\r\n  @ViewChild('input') input: ElementRef;\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  @Input() toolTip: string;\r\n  @Input() showImage = false;\r\n  @Input() width: number;\r\n  @Input() margin: string;\r\n  @Input() items: Item[];\r\n  @Input() styleDisplay: string;\r\n  @Input() verticalAlign: string;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  over = false;\r\n  private _readOnly = false;\r\n  private _enabled = true;\r\n  private _key: any;\r\n\r\n  constructor(public model: ModelService, public mouseService: MouseService, public menuService: MenuService) {\r\n    this.mouseService.getDocumentMouseUp().subscribe(() => {\r\n      this.hideListMenu();\r\n    });\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  set readOnly(value: boolean) {\r\n    this._readOnly = value;\r\n    setTimeout(() => {\r\n      try {\r\n        this.input.nativeElement.setAttribute('unselectable', value ? 'on' : 'off');\r\n        this.input.nativeElement.setAttribute('onselectstart', value ? 'return false' : '');\r\n        this.input.nativeElement.readOnly = value;\r\n      } catch (e) { }\r\n    });\r\n  }\r\n\r\n  @Input() get readOnly(): boolean {\r\n    return this._readOnly;\r\n  }\r\n\r\n  @Input() get enabled(): boolean {\r\n    return this._enabled;\r\n  }\r\n\r\n  set enabled(value: boolean) {\r\n    if (!value) {\r\n      this.over = false;\r\n    }\r\n    this._enabled = value;\r\n  }\r\n\r\n  @Input() get key(): any {\r\n    return this._key;\r\n  }\r\n\r\n  set key(key: any) {\r\n    if (this.items != null) {\r\n      this.items.forEach(i => i.selected = i.key === key);\r\n    }\r\n    this._key = key;\r\n  }\r\n\r\n  get inputValue(): string {\r\n    if (this.items != null) {\r\n      return this.items.find(i => i.key === this._key)?.caption || '';\r\n    }\r\n    return '';\r\n  }\r\n\r\n  get selected(): boolean {\r\n    const vm = this.menuService.getVerticalMenu();\r\n    return vm?.state === 'expanded' && vm?.parent === this.element;\r\n  }\r\n\r\n  get className(): string {\r\n    return this.selected ? 'stiJsViewerDropDownListOver' : (this.enabled ? (this.over ? 'stiJsViewerDropDownListOver' : 'stiJsViewerDropDownList') : 'stiJsViewerDropDownListDisabled');\r\n  }\r\n\r\n  mouseover() {\r\n    if (!this.enabled) {\r\n      return;\r\n    }\r\n    this.over = true;\r\n  }\r\n\r\n  mouseout() {\r\n    if (!this.enabled) {\r\n      return;\r\n    }\r\n    this.over = false;\r\n  }\r\n\r\n  inputClick() {\r\n    if (this.readOnly) {\r\n      this.showListMenu();\r\n    }\r\n  }\r\n\r\n  showListMenu() {\r\n    this.menuService.addMenu({\r\n      type: this.menuService.VERTICAL_MENU_NAME, name: this.menuService.VERTICAL_MENU_NAME, items: [], parent: this.element,\r\n      verticalItems: this.items, itemStyleName: 'stiJsViewerMenuStandartItem', menuStyleName: 'stiJsViewerDropdownMenu',\r\n      action: this.action, width: this.element.nativeElement.offsetWidth,\r\n      state: ''\r\n    });\r\n\r\n    setTimeout(() => {\r\n      this.menuService.showMenu(this.menuService.VERTICAL_MENU_NAME);\r\n    });\r\n  }\r\n\r\n  hideListMenu() {\r\n    if (this.menuService.getVerticalMenu()) {\r\n      this.menuService.getVerticalMenu().state = 'initialDown';\r\n    }\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { DateTimeObject } from '../services/objects';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { MenuService } from '../menu/menu.service';\r\n\r\n@Component({\r\n  selector: 'sti-date-picker-day-button',\r\n  template: `\r\n    <sti-button [styleName]=\"'stiJsViewerDatePickerDayButton'\"\r\n                [width]=\"model.options.isTouchDevice ? '25px' : '23px'\"\r\n                [height]=\"model.options.isTouchDevice ? '25px' : '23px'\"\r\n                [captionAlign]=\"'center'\"\r\n                [innerTableWidth]=\"'100%'\"\r\n                [captionPadding]=\"'0px'\"\r\n                [margin]=\"'1px'\"\r\n                [caption]=\"caption\"\r\n                [enabled]=\"enabled\"\r\n                [selected]=\"selected\"\r\n                (action)=\"action()\">\r\n    </sti-button>\r\n  `\r\n})\r\n\r\nexport class DatePickerDayButtonComponent implements OnInit {\r\n\r\n  @Input() col: number;\r\n  @Input() row: number;\r\n  @Input() caption = '';\r\n  @Input() enabled = false;\r\n  @Input() selected = false;\r\n  @Input() date: DateTimeObject;\r\n  @Input() closeOnAction = true;\r\n\r\n  constructor(public model: ModelService, public helper: HelperService, public menuService: MenuService) { }\r\n\r\n  action() {\r\n    this.date.day = this.row * 7 + this.col - this.getFirstDay() + 1;\r\n    if (this.closeOnAction && this.menuService.getMenu('datePickerMenu') != null) {\r\n      this.menuService.getMenu('datePickerMenu').state = 'initialUp';\r\n    }\r\n  }\r\n\r\n  getFirstDay(): number {\r\n    let firstDay = new Date(this.date.year, this.date.month - 1, 1).getDay();\r\n    if (firstDay === 0) {\r\n      firstDay = 7;\r\n    }\r\n    if (this.model.options.appearance.datePickerFirstDayOfWeek !== 'Sunday') {\r\n      firstDay--;\r\n    }\r\n    return firstDay;\r\n  }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { Menu } from './menu.service';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { Item, DateTimeObject } from '../services/objects';\r\n\r\n@Component({\r\n  selector: 'sti-date-picker-menu',\r\n  template: `\r\n        <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                <sti-button [imageName]=\"'Arrows.BigArrowLeft.png'\" [margin]=\"'1px 2px 0 1px'\" (action)=\"prevMonthButtonAction()\">\r\n                </sti-button>\r\n              </td>\r\n\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                <sti-drop-down-list\r\n                  [width]=\"model.options.isTouchDevice ? 79 : 81\"\r\n                  [readOnly]=\"true\"\r\n                  [margin]=\"'1px 2px 0 0'\"\r\n                  [items]=\"monthesForDatePickerItems\"\r\n                  [key]=\"key.month - 1\"\r\n                  (action)=\"key.month = $event.key + 1\">\r\n                </sti-drop-down-list>\r\n              </td>\r\n\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                <sti-text-box [width]=\"40\" [margin]=\"'1px 2px 0 0'\" [value]=\"key.year\" (onchange)=\"yearAction($event)\">\r\n                </sti-text-box>\r\n              </td>\r\n\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                <sti-button [imageName]=\"'Arrows.BigArrowRight.png'\" [margin]=\"'1px 1px 0 0'\" (action)=\"nextMonthButtonAction()\">\r\n                </sti-button>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n        <div class=\"stiJsViewerDatePickerSeparator\" [style.margin]=\"'2px 0px'\"></div>\r\n\r\n        <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td *ngFor=\"let item of model.dayOfWeek; let i = index\" class=\"stiJsViewerDatePickerDayOfWeekCell\"\r\n                  [style.fontSize]=\"countLetters == 2 ? '11px' : ''\"\r\n                  [style.color]=\"getShortDayColor(i)\">\r\n                  {{getShortDayName(i)}}\r\n              </td>\r\n            </tr>\r\n            <tr *ngFor=\"let row of rows\" class=\"stiJsViewerClearAllStyles\">\r\n                <td *ngFor=\"let col of cols\" class=\"stiJsViewerClearAllStyles\">\r\n                  <sti-date-picker-day-button\r\n                      [col]=\"col\"\r\n                      [row]=\"row\"\r\n                      [date]=\"key\"\r\n                      [selected]=\"getButtonSelected(col, row)\"\r\n                      [caption]=\"getButtonCaption(col, row)\"\r\n                      [enabled]=\"getButtonCaption(col, row) != ''\">\r\n                      [closeOnAction]=\"closeOnAction\"\r\n                  </sti-date-picker-day-button>\r\n                </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n\r\n        <div *ngIf=\"showTime\" class=\"stiJsViewerDatePickerSeparator\" [style.margin]=\"'2px 0px'\"></div>\r\n        <table *ngIf=\"showTime\" class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.width]=\"'100%'\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'0 4px 0 4px'\" [style.whiteSpace]=\"'nowrap'\">\r\n                {{this.model.loc('Time') + ':'}}\r\n              </td>\r\n\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.textAlign]=\"'right'\">\r\n                <sti-text-box [width]=\"90\"\r\n                    [margin]=\"'1px 2px 2px 2px'\"\r\n                    [value]=\"getTime()\"\r\n                    (action)=\"timeAction($event)\">\r\n                </sti-text-box>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n  `\r\n})\r\n\r\nexport class DatePickerMenuComponent implements OnInit {\r\n\r\n  @Input() menu: Menu;\r\n  @Input() keyTo = false;\r\n  @Input() closeOnAction = true;\r\n\r\n  public monthesForDatePickerItems: Item[] = [];\r\n  public countLetters: number;\r\n  public cols = [0, 1, 2, 3, 4, 5, 6];\r\n  public rows = [0, 1, 2, 3, 4, 5];\r\n\r\n  constructor(public model: ModelService, public helper: HelperService) {\r\n    this.model.months.forEach((m, i) => this.monthesForDatePickerItems.push({ name: 'Month' + i, caption: this.model.loc('Month' + m), key: i }));\r\n\r\n    const firstLetters = {};\r\n    this.model.dayOfWeek.forEach((d) => {\r\n      const dayName = this.model.loc('Day' + d);\r\n      firstLetters[dayName.toString().substring(0, 1).toUpperCase()] = true;\r\n    });\r\n    this.countLetters = Object.keys(firstLetters).length < 5 ? 2 : 1;\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  getButtonSelected(col: number, row: number): boolean {\r\n    const firstDay = this.getFirstDay();\r\n    const curDay = row * 7 + col;\r\n    const day = curDay - firstDay + 1;\r\n\r\n    return day === this.key.day;\r\n  }\r\n\r\n  getButtonCaption(col: number, row: number): string {\r\n    const firstDay = this.getFirstDay();\r\n    const daysInMonth = this.helper.getCountDaysOfMonth(this.key.year, this.key.month - 1);\r\n    const curDay = row * 7 + col;\r\n    const day = curDay - firstDay + 1;\r\n    if (curDay >= firstDay && day <= daysInMonth) {\r\n      return day.toString();\r\n    }\r\n    return '';\r\n  }\r\n\r\n\r\n  getTime(): string {\r\n    return this.helper.formatDate(this.helper.getDate(this.key), 'H:mm:ss');\r\n  }\r\n\r\n  getFirstDay(): number {\r\n    let firstDay = new Date(this.key.year, this.key.month - 1, 1).getDay();\r\n    if (firstDay === 0) {\r\n      firstDay = 7;\r\n    }\r\n    if (this.model.options.appearance.datePickerFirstDayOfWeek !== 'Sunday') {\r\n      firstDay--;\r\n    }\r\n    return firstDay;\r\n  }\r\n\r\n  get showTime(): boolean {\r\n    return this.menu?.params?.dateTimeType !== 'Date';\r\n  }\r\n\r\n  get key(): DateTimeObject {\r\n    return this.keyTo ? this.menu.params.keyTo : this.menu.params.key;\r\n  }\r\n\r\n  yearAction(input: any) {\r\n    try {\r\n      this.key.year = parseInt(input.value, 10);\r\n    } catch { }\r\n  }\r\n\r\n  timeAction(input: any) {\r\n    const time = this.helper.stringToTime(input.value);\r\n    this.key.seconds = time.seconds;\r\n    this.key.minutes = time.minutes;\r\n    this.key.hours = time.hours;\r\n  }\r\n\r\n  getShortDayName(index: number): string {\r\n    const dayName = this.model.loc('Day' + this.model.dayOfWeek[index]);\r\n    if (dayName) {\r\n      return dayName.toString().substring(0, this.countLetters <= dayName.length ? this.countLetters : 1).toUpperCase();\r\n    }\r\n    return '';\r\n  }\r\n\r\n  getShortDayColor(index: number): string {\r\n    if (index === (this.model.options.appearance.datePickerFirstDayOfWeek === 'Sunday' ? 6 : 5)) {\r\n      return '#0000ff';\r\n    }\r\n\r\n    if (index === (this.model.options.appearance.datePickerFirstDayOfWeek === 'Sunday' ? 0 : 6)) {\r\n      return '#ff0000';\r\n    }\r\n    return '';\r\n  }\r\n\r\n  prevMonthButtonAction() {\r\n    let month = this.key.month;\r\n    let year = this.key.year;\r\n    month--;\r\n    if (month === 0) {\r\n      month = 12;\r\n      year--;\r\n    }\r\n    const countDaysInMonth = this.helper.getCountDaysOfMonth(year, month - 1);\r\n    if (countDaysInMonth < this.key.day) {\r\n      this.key.day = countDaysInMonth;\r\n    }\r\n    this.key.month = month;\r\n    this.key.year = year;\r\n  }\r\n\r\n  nextMonthButtonAction() {\r\n    let month = this.key.month;\r\n    let year = this.key.year;\r\n    month++;\r\n    if (month === 13) {\r\n      month = 1;\r\n      year++;\r\n    }\r\n    const countDaysInMonth = this.helper.getCountDaysOfMonth(year, month - 1);\r\n    if (countDaysInMonth < this.key.day) {\r\n      this.key.day = countDaysInMonth;\r\n    }\r\n    this.key.month = month;\r\n    this.key.year = year;\r\n  }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { Item } from '../services/objects';\r\nimport { MenuService } from './menu.service';\r\n\r\n@Component({\r\n  selector: 'sti-vertical-menu-item',\r\n  template: `\r\n    <div [style.height]=\"item?.type == 'DigitalSignature' ? 'auto' :(model.options.isMobileDevice ? '0.4in' : (model.options.isTouchDevice ? '30px' : '24px'))\"\r\n         [class]=\"className\"\r\n         [style.width]=\"item?.type == 'DigitalSignature' ? '100%' :  menuService.getVerticalMenu().width + 'px'\"\r\n         [style.lineHeight]=\"item?.type == 'DigitalSignature' ? 1.3 : null\"\r\n         (mouseover)=\"mouseover()\"\r\n         (mouseout)=\"mouseout()\"\r\n         (click)=\"click()\">\r\n         <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.height]=\"'100%'\" [style.width]=\"'100%'\">\r\n            <tbody>\r\n              <tr class=\"stiJsViewerClearAllStyles\">\r\n                 <td *ngIf=\"item?.imageName != null && !model.options.appearance.rightToLeft\"\r\n                     [style.width.px]=\"22\" [style.minWidth.px]=\"22\" [style.padding]=\"0\" [style.textAlign]=\"'center'\" [style.lineHeight]=\"0\"\r\n                     class=\"stiJsViewerClearAllStyles\">\r\n                     <img [style.width.px]=\"(imageSizesWidth ? imageSizesWidth : (isSmallItem ? 16 : 32))\"\r\n                          [style.height.px]=\"(imageSizesHeight ? imageSizesHeight : (isSmallItem ? 16 : 32))\"\r\n                          [src]=\"model.img(item?.imageName)\"\r\n                          [style.visible]=\"model.img(item?.imageName) === '' ? 'none' : ''\" />\r\n                </td>\r\n\r\n                <td *ngIf=\"item?.caption != null && !model.options.appearance.rightToLeft && item?.type != 'DigitalSignature'\"\r\n                     [style.padding]=\"'0px 20px 0px 7px'\" [style.textAlign]=\"'left'\" [style.whiteSpace]=\"'nowrap'\"\r\n                     [style.fontSize]=\"model.options.isMobileDevice ? '0.16in' : ''\"\r\n                     class=\"stiJsViewerClearAllStyles\">\r\n                     {{item?.caption}}\r\n                </td>\r\n\r\n                <td *ngIf=\"item?.caption != null && !model.options.appearance.rightToLeft && item?.type == 'DigitalSignature'\"\r\n                     [style.padding]=\"'8px 20px 8px 8px'\" [style.textAlign]=\"'left'\" [style.whiteSpace]=\"'nowrap'\"\r\n                     [style.fontSize]=\"model.options.isMobileDevice ? '0.16in' : ''\"\r\n                     class=\"stiJsViewerClearAllStyles\" [innerHtml]=\"item?.caption\">\r\n                </td>\r\n\r\n                <!-- right-to-left -->\r\n                <td *ngIf=\"item?.caption != null && model.options.appearance.rightToLeft && item?.type == 'DigitalSignature'\"\r\n                     [style.padding]=\"'8px 20px 8px 8px'\" [style.textAlign]=\"'right'\" [style.whiteSpace]=\"'nowrap'\"\r\n                     [style.fontSize]=\"model.options.isMobileDevice ? '0.16in' : ''\"\r\n                     class=\"stiJsViewerClearAllStyles\" [innerHtml]=\"item?.caption\">\r\n                </td>\r\n\r\n                <td *ngIf=\"item?.caption != null && model.options.appearance.rightToLeft && item?.type != 'DigitalSignature'\"\r\n                     [style.padding]=\"'0 7px 0 20px'\" [style.textAlign]=\"'right'\" [style.whiteSpace]=\"'nowrap'\"\r\n                     [style.fontSize]=\"model.options.isMobileDevice ? '0.16in' : ''\"\r\n                     class=\"stiJsViewerClearAllStyles\">\r\n                     {{item?.caption}}\r\n                </td>\r\n\r\n                <td *ngIf=\"item?.imageName != null && model.options.appearance.rightToLeft\"\r\n                     [style.width.px]=\"22\" [style.minWidth.px]=\"22\" [style.padding]=\"0\" [style.textAlign]=\"'center'\" [style.lineHeight]=\"0\"\r\n                     class=\"stiJsViewerClearAllStyles\">\r\n                     <img [style.width.px]=\"(imageSizesWidth ? imageSizesWidth : (isSmallItem ? 16 : 32))\"\r\n                          [style.height.px]=\"(imageSizesHeight ? imageSizesHeight : (isSmallItem ? 16 : 32))\"\r\n                          [src]=\"model.img(item?.imageName)\"\r\n                          [style.visible]=\"model.img(item?.imageName) === '' ? 'none' : ''\" />\r\n                </td>\r\n              </tr>\r\n            </tbody>\r\n          </table>\r\n    </div>\r\n  `\r\n})\r\n\r\nexport class VerticalMenuItemComponent implements OnInit {\r\n\r\n  @Input() styleName = 'stiJsViewerMenuStandartItem';\r\n  @Input() item: Item;\r\n  @Input() imageSizesWidth: number;\r\n  @Input() imageSizesHeight: number;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  over = false;\r\n  private _enabled = true;\r\n\r\n  constructor(public model: ModelService, public menuService: MenuService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  @Input() get enabled(): boolean {\r\n    return this._enabled;\r\n  }\r\n\r\n  set enabled(value: boolean) {\r\n    if (!value) {\r\n      this.over = false;\r\n    }\r\n    this._enabled = value;\r\n  }\r\n\r\n  get className(): string {\r\n    return this.styleName ? this.styleName + ' ' + (this.enabled ? (this.styleName + (this.over ? 'Over' : (this.item?.selected ? 'Selected' : 'Default'))) : this.styleName + 'Disabled') : '';\r\n  }\r\n\r\n  mouseover() {\r\n    if (!this.enabled) {\r\n      return;\r\n    }\r\n    this.over = true;\r\n  }\r\n\r\n  mouseout() {\r\n    if (!this.enabled) {\r\n      return;\r\n    }\r\n    this.over = false;\r\n  }\r\n\r\n  click() {\r\n    if (this._enabled) {\r\n      this.action.emit(this.item);\r\n    }\r\n  }\r\n\r\n  get isSmallItem(): boolean {\r\n    return this.styleName && this.styleName.indexOf('MenuStandartItem') >= 0;\r\n  }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Item } from '../services/objects';\r\nimport { Menu } from './menu.service';\r\n\r\n@Component({\r\n  selector: 'sti-vertical-menu',\r\n  template: `\r\n    <sti-vertical-menu-item *ngFor=\"let item of menu.verticalItems\" [item]=\"item\" [styleName]=\"menu.itemStyleName\" (action)=\"action(item)\">\r\n    </sti-vertical-menu-item>\r\n  `\r\n})\r\n\r\nexport class VerticalMenuComponent implements OnInit {\r\n\r\n  @Input() menu: Menu;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() { }\r\n\r\n  action(item: Item) {\r\n    this.menu?.action?.emit(item);\r\n  }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Menu } from './menu.service';\r\nimport { ModelService } from '../services/model.service';\r\nimport { HelperService } from '../services/helper.service';\r\n\r\n@Component({\r\n  selector: 'sti-double-date-picker-menu',\r\n  template: `\r\n      <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.margin.px]=\"4\" [style.border]=\"'1px dotted rgb(198, 198, 198)'\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.verticalAlign]=\"'top'\">\r\n                  <div [style.margin.px]=\"4\">\r\n                    <sti-date-picker-menu [menu]=\"menu\" [closeOnAction]=\"false\">\r\n                    </sti-date-picker-menu>\r\n                  </div>\r\n              </td>\r\n\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.borderLeft]=\"'1px dotted rgb(198, 198, 198)'\" [style.verticalAlign]=\"'top'\">\r\n                  <div [style.margin.px]=\"4\">\r\n                    <sti-date-picker-menu [menu]=\"menu\" [keyTo]=\"true\" [closeOnAction]=\"false\">\r\n                    </sti-date-picker-menu>\r\n                  </div>\r\n              </td>\r\n\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.borderLeft]=\"'1px dotted rgb(198, 198, 198)'\" [style.verticalAlign]=\"'top'\">\r\n                <div [style.width.px]=\"150\" [style.overflow]=\"'auto'\" [style.margin.px]=\"4\" [style.height.px]=\"showTime ? 250 : 220\">\r\n                    <ng-container *ngFor=\"let item of model.dateRanges\">\r\n                        <sti-button [caption]=\"model.loc(item)\" (action)=\"getValuesByDateRangeName(item)\">\r\n                        </sti-button>\r\n\r\n                        <div *ngIf=\"item=='Yesterday' || item=='PreviousWeek' || item=='PreviousMonth' || item=='PreviousQuarter' || item=='PreviousYear' || item=='FourthQuarter' || item=='Last30Days'\"\r\n                            class=\"stiJsViewerVerticalMenuSeparator\" [style.margin.px]=\"2\"></div>\r\n                    </ng-container>\r\n                </div>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n      </table>\r\n  `\r\n})\r\n\r\nexport class DoubleDatePickerMenuComponent implements OnInit {\r\n\r\n  @Input() menu: Menu;\r\n\r\n  constructor(public model: ModelService, public helper: HelperService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  get showTime(): boolean {\r\n    return this.menu?.params?.dateTimeType !== 'Date';\r\n  }\r\n\r\n  setTimeInterval(firstDate: Date, secondDate: Date) {\r\n    firstDate.setHours(0);\r\n    firstDate.setMinutes(0);\r\n    firstDate.setSeconds(0);\r\n    secondDate.setHours(23);\r\n    secondDate.setMinutes(59);\r\n    secondDate.setSeconds(59);\r\n  }\r\n\r\n  getFirstDayOfWeek() {\r\n    const date = new Date();\r\n    const timeString = date.toLocaleTimeString();\r\n    return (timeString.toLowerCase().indexOf('am') >= 0 || timeString.toLowerCase().indexOf('pm') >= 0 ? 0 : 1);\r\n  }\r\n\r\n  getWeekInterval(now: Date) {\r\n    const startDay = this.getFirstDayOfWeek();\r\n    let dayWeek = startDay === 0 ? now.getDay() : now.getDay() - 1;\r\n    if (dayWeek < 0) { dayWeek = 6; }\r\n    const values = [new Date(now.valueOf() - dayWeek * 86400000)];\r\n    values.push(new Date(values[0].valueOf() + 6 * 86400000));\r\n    this.setTimeInterval(values[0], values[1]);\r\n\r\n    return values;\r\n  }\r\n\r\n\r\n  getValuesByDateRangeName(item: string) {\r\n    const now = new Date();\r\n    let values = [new Date(), new Date()];\r\n\r\n    switch (item) {\r\n      case 'CurrentMonth': {\r\n        values[0].setDate(1);\r\n        values[1].setDate(this.helper.getCountDaysOfMonth(now.getFullYear(), now.getMonth()));\r\n        break;\r\n      }\r\n      case 'CurrentQuarter': {\r\n        const firstMonth = parseInt((now.getMonth() / 3).toString(), 10) * 3;\r\n        values[0] = new Date(now.getFullYear(), firstMonth, 1);\r\n        values[1] = new Date(now.getFullYear(), firstMonth + 2, this.helper.getCountDaysOfMonth(now.getFullYear(), firstMonth + 2));\r\n        break;\r\n      }\r\n      case 'CurrentWeek': {\r\n        values = this.getWeekInterval(now);\r\n        break;\r\n      }\r\n      case 'CurrentYear': {\r\n        values[0] = new Date(now.getFullYear(), 0, 1);\r\n        values[1] = new Date(now.getFullYear(), 11, 31);\r\n        break;\r\n      }\r\n      case 'NextMonth': {\r\n        let month = now.getMonth() + 1;\r\n        let year = now.getFullYear();\r\n        if (month > 11) {\r\n          month = 0;\r\n          year++;\r\n        }\r\n        values[0] = new Date(year, month, 1);\r\n        values[1] = new Date(year, month, this.helper.getCountDaysOfMonth(year, month));\r\n        break;\r\n      }\r\n      case 'NextQuarter': {\r\n        let year = now.getFullYear();\r\n        let firstMonth = parseInt((now.getMonth() / 3).toString(), 10) * 3 + 3;\r\n        if (firstMonth > 11) {\r\n          firstMonth = 0;\r\n          year++;\r\n        }\r\n        values[0] = new Date(year, firstMonth, 1);\r\n        values[1] = new Date(year, firstMonth + 2, this.helper.getCountDaysOfMonth(year, firstMonth + 2));\r\n        break;\r\n      }\r\n      case 'NextWeek': {\r\n        values = this.getWeekInterval(now);\r\n        values[0] = new Date(values[0].valueOf() + 7 * 86400000);\r\n        values[1] = new Date(values[1].valueOf() + 7 * 86400000);\r\n        break;\r\n      }\r\n      case 'NextYear': {\r\n        values[0] = new Date(now.getFullYear() + 1, 0, 1);\r\n        values[1] = new Date(now.getFullYear() + 1, 11, 31);\r\n        break;\r\n      }\r\n      case 'PreviousMonth': {\r\n        let month = now.getMonth() - 1;\r\n        let year = now.getFullYear();\r\n        if (month < 0) {\r\n          month = 11;\r\n          year--;\r\n        }\r\n        values[0] = new Date(year, month, 1);\r\n        values[1] = new Date(year, month, this.helper.getCountDaysOfMonth(year, month));\r\n        break;\r\n      }\r\n      case 'PreviousQuarter': {\r\n        let year = now.getFullYear();\r\n        let firstMonth = parseInt((now.getMonth() / 3).toString(), 10) * 3 - 3;\r\n        if (firstMonth < 0) {\r\n          firstMonth = 9;\r\n          year--;\r\n        }\r\n        values[0] = new Date(year, firstMonth, 1);\r\n        values[1] = new Date(year, firstMonth + 2, this.helper.getCountDaysOfMonth(year, firstMonth + 2));\r\n        break;\r\n      }\r\n      case 'PreviousWeek': {\r\n        values = this.getWeekInterval(now);\r\n        values[0] = new Date(values[0].valueOf() - 7 * 86400000);\r\n        values[1] = new Date(values[1].valueOf() - 7 * 86400000);\r\n        break;\r\n      }\r\n      case 'PreviousYear': {\r\n        values[0] = new Date(now.getFullYear() - 1, 0, 1);\r\n        values[1] = new Date(now.getFullYear() - 1, 11, 31);\r\n        break;\r\n      }\r\n      case 'FirstQuarter': {\r\n        values[0] = new Date(now.getFullYear(), 0, 1);\r\n        values[1] = new Date(now.getFullYear(), 2, this.helper.getCountDaysOfMonth(now.getFullYear(), 2));\r\n        break;\r\n      }\r\n      case 'SecondQuarter': {\r\n        values[0] = new Date(now.getFullYear(), 3, 1);\r\n        values[1] = new Date(now.getFullYear(), 5, this.helper.getCountDaysOfMonth(now.getFullYear(), 5));\r\n        break;\r\n      }\r\n      case 'ThirdQuarter': {\r\n        values[0] = new Date(now.getFullYear(), 6, 1);\r\n        values[1] = new Date(now.getFullYear(), 8, this.helper.getCountDaysOfMonth(now.getFullYear(), 8));\r\n        break;\r\n      }\r\n      case 'FourthQuarter': {\r\n        values[0] = new Date(now.getFullYear(), 9, 1);\r\n        values[1] = new Date(now.getFullYear(), 11, this.helper.getCountDaysOfMonth(now.getFullYear(), 11));\r\n        break;\r\n      }\r\n      case 'MonthToDate': {\r\n        values[0].setDate(1);\r\n        break;\r\n      }\r\n      case 'QuarterToDate': {\r\n        const firstMonth = parseInt((now.getMonth() / 3).toString(), 10) * 3;\r\n        values[0].setDate(1);\r\n        values[0].setMonth(firstMonth);\r\n        break;\r\n      }\r\n      case 'WeekToDate': {\r\n        const weekValues = this.getWeekInterval(now);\r\n        values[0] = weekValues[0];\r\n        break;\r\n      }\r\n      case 'YearToDate': {\r\n        values[0].setDate(1);\r\n        values[0].setMonth(0);\r\n        break;\r\n      }\r\n      case 'Today': {\r\n        break;\r\n      }\r\n      case 'Tomorrow': {\r\n        values[0] = new Date(values[0].valueOf() + 86400000);\r\n        values[1] = new Date(values[1].valueOf() + 86400000);\r\n        break;\r\n      }\r\n      case 'Yesterday': {\r\n        values[0] = new Date(values[0].valueOf() - 86400000);\r\n        values[1] = new Date(values[1].valueOf() - 86400000);\r\n        break;\r\n      }\r\n      case 'Last7Days': {\r\n        if (this.model.options.appearance.datePickerIncludeCurrentDayForRanges) {\r\n          values[0] = new Date(values[0].valueOf() - 6 * 86400000);\r\n        } else {\r\n          values[0] = new Date(values[0].valueOf() - 7 * 86400000);\r\n        }\r\n        break;\r\n      }\r\n      case 'Last14Days': {\r\n        if (this.model.options.appearance.datePickerIncludeCurrentDayForRanges) {\r\n          values[0] = new Date(values[0].valueOf() - 13 * 86400000);\r\n        } else {\r\n          values[0] = new Date(values[0].valueOf() - 14 * 86400000);\r\n        }\r\n        break;\r\n      }\r\n      case 'Last30Days': {\r\n        if (this.model.options.appearance.datePickerIncludeCurrentDayForRanges) {\r\n          values[0] = new Date(values[0].valueOf() - 29 * 86400000);\r\n        } else {\r\n          values[0] = new Date(values[0].valueOf() - 30 * 86400000);\r\n        }\r\n        break;\r\n      }\r\n    }\r\n\r\n    this.setTimeInterval(values[0], values[1]);\r\n\r\n    this.menu.params.key = this.helper.getDateTimeObject(values[0]);\r\n    this.menu.params.keyTo = this.helper.getDateTimeObject(values[1]);\r\n  }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Item } from '../services/objects';\r\n\r\n@Component({\r\n  selector: 'sti-drop-down-list-for-export-form',\r\n  template: `\r\n    <sti-drop-down-list [items]=\"items\"\r\n      [width]=\"width\"\r\n      [readOnly]=\"true\"\r\n      [key]=\"key\"\r\n      [margin]=\"margin\"\r\n      [enabled]=\"enabled\"\r\n      [styleDisplay]=\"styleDisplay\"\r\n      [verticalAlign]=\"verticalAlign\"\r\n      (action)=\"key = $event.key; action.emit($event)\">\r\n    </sti-drop-down-list>\r\n  `\r\n})\r\n\r\nexport class DropDownListForExportFormComponent implements OnInit {\r\n\r\n  @Input() items: Item[];\r\n  @Input() width: number;\r\n  @Input() key: string;\r\n  @Input() margin: string;\r\n  @Input() enabled = true;\r\n  @Input() styleDisplay: string;\r\n  @Input() verticalAlign: string;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { FormService } from '../forms/form.service';\r\nimport { ExportService } from '../services/export.service';\r\nimport { CollectionsService } from '../services/collections.service';\r\nimport { CheckboxComponent } from '../controls/checkbox.component';\r\n\r\n@Component({\r\n  selector: 'sti-document-security-menu',\r\n  template: `\r\n    <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.width]=\"'100%'\">\r\n                  <tbody>\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td [style.padding]=\"'0px 8px'\" [style.minWidth.px]=\"150\" [attr.title]=\"model.loc('UserPasswordTooltip')\">\r\n                        {{model.loc('UserPassword')}}\r\n                      </td>\r\n                      <td class=\"stiJsViewerClearAllStyles\">\r\n                        <sti-text-box\r\n                           [width]=\"160\"\r\n                           [tooltip]=\"model.loc('UserPasswordTooltip')\"\r\n                           [margin]=\"'8px 8px 2px 8px'\"\r\n                           [type]=\"getTextBoxType()\"\r\n                           [value]=\"exportService.exportSettings?.PasswordInputUser\"\r\n                           (onchange)=\"exportService.exportSettings.PasswordInputUser =  $event.value\">\r\n                        </sti-text-box>\r\n                      </td>\r\n                    </tr>\r\n\r\n                    <tr class=\"stiJsViewerClearAllStyles\" [attr.title]=\"model.loc('OwnerPasswordTooltip')\">\r\n                      <td [style.padding]=\"'0px 8px'\" [style.minWidth.px]=\"150\">\r\n                        {{model.loc('OwnerPassword')}}\r\n                      </td>\r\n                      <td class=\"stiJsViewerClearAllStyles\">\r\n                        <sti-text-box\r\n                           [width]=\"160\"\r\n                           [tooltip]=\"model.loc('OwnerPasswordTooltip')\"\r\n                           [margin]=\"'2px 8px 2px 8px'\"\r\n                           [type]=\"getTextBoxType()\"\r\n                           [value]=\"exportService.exportSettings?.PasswordInputOwner\"\r\n                           (onchange)=\"exportService.exportSettings.PasswordInputOwner =  $event.value\">\r\n                        </sti-text-box>\r\n                      </td>\r\n                    </tr>\r\n\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n                        <sti-check-box #AllowPrintDocument\r\n                           [captionText]=\"model.loc('AllowPrintDocument')\"\r\n                           [tooltip]=\"model.loc('AllowPrintDocumentTooltip')\"\r\n                           [margin]=\"'4px 8px 4px 8px'\"\r\n                           [isChecked]=\"getUserAccessPrivileges('PrintDocument')\"\r\n                           (action)=\"updateUserAccessPrivileges()\">\r\n                        </sti-check-box>\r\n                      </td>\r\n                    </tr>\r\n\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n                        <sti-check-box #AllowModifyContents\r\n                           [captionText]=\"model.loc('AllowModifyContents')\"\r\n                           [tooltip]=\"model.loc('AllowModifyContentsTooltip')\"\r\n                           [margin]=\"'4px 8px 4px 8px'\"\r\n                           [isChecked]=\"getUserAccessPrivileges('ModifyContents')\"\r\n                           (action)=\"updateUserAccessPrivileges()\">\r\n                        </sti-check-box>\r\n                      </td>\r\n                    </tr>\r\n\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n                        <sti-check-box #AllowCopyTextAndGraphics\r\n                           [captionText]=\"model.loc('AllowCopyTextAndGraphics')\"\r\n                           [tooltip]=\"model.loc('AllowCopyTextAndGraphicsTooltip')\"\r\n                           [margin]=\"'4px 8px 4px 8px'\"\r\n                           [isChecked]=\"getUserAccessPrivileges('CopyTextAndGraphics')\"\r\n                           (action)=\"updateUserAccessPrivileges()\">\r\n                        </sti-check-box>\r\n                      </td>\r\n                    </tr>\r\n\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n                        <sti-check-box #AllowAddOrModifyTextAnnotations\r\n                           [captionText]=\"model.loc('AllowAddOrModifyTextAnnotations')\"\r\n                           [tooltip]=\"model.loc('AllowAddOrModifyTextAnnotationsTooltip')\"\r\n                           [margin]=\"'4px 8px 4px 8px'\"\r\n                           [isChecked]=\"getUserAccessPrivileges('AddOrModifyTextAnnotations')\"\r\n                           (action)=\"updateUserAccessPrivileges()\">\r\n                        </sti-check-box>\r\n                      </td>\r\n                    </tr>\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'0px 8px'\" [style.minWidth.px]=\"150\" [attr.title]=\"model.loc('EncryptionKeyLengthTooltip')\">\r\n                        {{model.loc('EncryptionKeyLength')}}\r\n                      </td>\r\n                      <td>\r\n                        <sti-drop-down-list-for-export-form\r\n                           [width]=\"160\"\r\n                           [items]=\"collections.getEncryptionKeyLengthItems()\"\r\n                           [key]=\"exportService.exportSettings?.KeyLength\"\r\n                           [margin]=\"'2px 8px 4px 8px'\"\r\n                           (action)=\"exportService.exportSettings.KeyLength = $event.key\">\r\n                        </sti-drop-down-list-for-export-form>\r\n                      </td>\r\n                    </tr>\r\n                  </tbody>\r\n                </table>\r\n`\r\n})\r\n\r\nexport class DocumentSecurityMenuComponent implements OnInit {\r\n\r\n  @ViewChild('AllowPrintDocument') allowPrintDocument: CheckboxComponent;\r\n  @ViewChild('AllowModifyContents') allowModifyContents: CheckboxComponent;\r\n  @ViewChild('AllowCopyTextAndGraphics') allowCopyTextAndGraphics: CheckboxComponent;\r\n  @ViewChild('AllowAddOrModifyTextAnnotations') allowAddOrModifyTextAnnotations: CheckboxComponent;\r\n\r\n  constructor(public model: ModelService, public formService: FormService, public exportService: ExportService, public collections: CollectionsService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  getTextBoxType() {\r\n    return this.formService.form?.name === 'exportForm' ? 'password' : '';\r\n  }\r\n\r\n  updateUserAccessPrivileges() {\r\n    const privileges = [];\r\n    if (this.allowPrintDocument.isChecked) { privileges.push('PrintDocument'); }\r\n    if (this.allowModifyContents.isChecked) { privileges.push('ModifyContents'); }\r\n    if (this.allowCopyTextAndGraphics.isChecked) { privileges.push('CopyTextAndGraphics'); }\r\n    if (this.allowAddOrModifyTextAnnotations.isChecked) { privileges.push('AddOrModifyTextAnnotations'); }\r\n    this.exportService.exportSettings.UserAccessPrivileges = privileges.join(',');\r\n  }\r\n\r\n  getUserAccessPrivileges(name: string) {\r\n    return this.exportService.exportSettings?.UserAccessPrivileges === 'All' || this.exportService.exportSettings?.UserAccessPrivileges?.indexOf(name) >= 0;\r\n  }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { ExportService } from '../services/export.service';\r\n\r\n@Component({\r\n  selector: 'sti-digital-signature-menu',\r\n  template: `\r\n    <div *ngFor=\"let item of model.pdfSecurityCertificates\" class=\"stiJsViewerMenuStandartItem stiJsViewerMenuStandartItemSelected\" [style.height]=\"'auto'\" [style.lineHeight]=\"1.3\">\r\n      <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.height]=\"'100%'\" [style.width]=\"'100'\">\r\n        <tbody>\r\n          <tr class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'8px 20px 8px 8px'\" [style.textAlign]=\"'left'\" [style.whiteSpace]=\"'nowrap'\">\r\n            </td>\r\n          </tr>\r\n        </tbody>\r\n      </table>\r\n    </div>\r\n`\r\n})\r\n\r\nexport class DigitalSignatureMenuComponent implements OnInit {\r\n\r\n  constructor(public model: ModelService, public exportService: ExportService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n}\r\n","import { Component, OnInit, Input, ElementRef, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { MenuItem } from './meni-item.component';\r\nimport { Menu, MenuService } from './menu.service';\r\nimport { trigger, state, style, transition, animate, AnimationEvent } from '@angular/animations';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { HelperService } from '../services/helper.service';\r\n\r\n@Component({\r\n  selector: 'sti-menu',\r\n  template: `\r\n      <div #menuEl class=\"stiJsViewerParentMenu\"\r\n      [style]=\"menu.sizeStyle || style\"\r\n      [style.top.px]=\"menu.top\"\r\n      [style.left.px]=\"menu.left\"\r\n      [style.zIndex]=\"zIndex\"\r\n      [style.height]=\"menu.type=='buttonMenu' && model.options.isMobileDevice ? '100%' : menu.height + 'px'\"\r\n      [@.disabled]=\"!model.options.toolbar.menuAnimation\"\r\n      (mouseup)=\"mouseup()\">\r\n        <div #innerContent [style]=\"{overflowX: 'hidden', overflowY: overflow}\"\r\n        [style.color]=\"model.options.toolbar.fontColor\"\r\n        [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n        [style.maxHeight]=\"menu.type=='buttonMenu' && model.options.isMobileDevice ? '100%' : '450px'\"\r\n        [style.height]=\"menu.type=='buttonMenu' && model.options.isMobileDevice ? '100%' : null\"\r\n        [@expand]=\"menu.state || 'initialDown'\"\r\n        (@expand.start)=\"startAnimation($event)\"\r\n        (@expand.done)=\"doneAnimation($event)\"\r\n        [class]=\"helper.val(menu.menuStyleName, 'stiJsViewerMenu')\">\r\n            <ng-container *ngIf=\"menu.type=='buttonMenu'\">\r\n              <sti-menu-item *ngFor=\"let item of menu.items\" [item]=\"item\" (click)=\"menuClick(item)\"></sti-menu-item>\r\n            </ng-container>\r\n\r\n            <sti-parameter-menu-edit-list *ngIf=\"menu.type=='parameterMenuForEditList'\" [menu]=\"menu\">\r\n            </sti-parameter-menu-edit-list>\r\n\r\n            <sti-parameter-menu-not-edit-list *ngIf=\"menu.type=='parameterMenuForNotEditList'\" [menu]=\"menu\">\r\n            </sti-parameter-menu-not-edit-list>\r\n\r\n            <sti-parameter-menu-for-value *ngIf=\"menu.type=='parameterMenuForValue'\" [menu]=\"menu\">\r\n            </sti-parameter-menu-for-value>\r\n\r\n            <sti-parameter-menu-for-range *ngIf=\"menu.type=='parameterMenuForRange'\" [menu]=\"menu\">\r\n            </sti-parameter-menu-for-range>\r\n\r\n            <sti-date-picker-menu *ngIf=\"menu.type=='datePickerMenu'\" [menu]=\"menu\">\r\n            </sti-date-picker-menu>\r\n\r\n            <sti-double-date-picker-menu *ngIf=\"menu.type=='doubleDatePickerMenu'\" [menu]=\"menu\">\r\n            </sti-double-date-picker-menu>\r\n\r\n            <sti-document-security-menu *ngIf=\"menu.type=='documentSecurityMenu'\">\r\n            </sti-document-security-menu>\r\n\r\n            <sti-digital-signature-menu *ngIf=\"menu.type=='useDigitalSignatureMenu'\">\r\n            </sti-digital-signature-menu>\r\n\r\n            <sti-vertical-menu *ngIf=\"menu.type=='verticalMenu'\" [menu]=\"menu\">\r\n            </sti-vertical-menu>\r\n        </div>\r\n      </div>\r\n  `,\r\n  animations: [\r\n    trigger('expand', [\r\n      state('initialDown', style({ transform: 'translateY(-100%)' })),\r\n      state('initialUp', style({ transform: 'translateY(100%)' })),\r\n      state('initialLeft', style({ transform: 'translateX(-100%)' })),\r\n      state('expanded', style({ transform: 'translateY(0) translateX(0)' })),\r\n      transition('initialUp => expanded', [\r\n        animate('150ms ease-in-out')]),\r\n      transition('initialDown => expanded', [\r\n        animate('150ms ease-in-out')]),\r\n      transition('initialLeft => expanded', [\r\n        animate('150ms ease-in-out')]),\r\n      transition('expanded => initialLeft', [\r\n        animate('150ms ease-in-out')])\r\n    ])\r\n  ]\r\n})\r\n\r\nexport class MenuComponent implements OnInit, AfterViewInit {\r\n\r\n  @Input() menu: Menu;\r\n\r\n  @ViewChild('menuEl') menuEl: ElementRef;\r\n  @ViewChild('innerContent') innerContent: ElementRef;\r\n\r\n  style = 'display: none';\r\n  overflow = 'hidden';\r\n\r\n  constructor(public model: ModelService, public controller: ControllerService, public helper: HelperService, public menuService: MenuService) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.menu.menuEl = this.menuEl;\r\n    this.menu.innerContent = this.innerContent;\r\n  }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n  startAnimation(event: AnimationEvent) {\r\n    if (event.toState === 'expanded') {\r\n      this.style = 'width: 350px; overflow: hidden';\r\n      this.overflow = 'hidden';\r\n    }\r\n  }\r\n\r\n  doneAnimation(event: AnimationEvent) {\r\n    if (event.toState === 'expanded') {\r\n      this.style = 'overflow: visible;';\r\n      this.overflow = this.menu.type.indexOf('parameterMenu') === 0 || this.model.options.isMobileDevice ? 'auto' : 'hidden';\r\n    } else if (event.toState === 'initialUp' || event.toState === 'initialDown') {\r\n      this.style = 'display: none';\r\n      this.overflow = 'hidden';\r\n    }\r\n  }\r\n\r\n  menuClick(item: MenuItem) {\r\n    this.menuService.closeAllMenus();\r\n    this.controller.action({ name: item.name, value: item.value });\r\n  }\r\n\r\n  mouseup() {\r\n    this.menuService.menuMouseUp = this.menu.type;\r\n  }\r\n\r\n  get zIndex() {\r\n    return this.menu.type === 'datePickerMenu' ? 36 : (this.menu.type === 'verticalMenu' ? 37 : 35);\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { trigger, state, transition, animate, style, keyframes } from '@angular/animations';\r\nimport { TooltipService } from '../services/tooltip.service';\r\nimport { HelperService } from '../services/helper.service';\r\n\r\n@Component({\r\n  selector: 'sti-tooltip',\r\n  template: `\r\n      <div #element class='stiJsViewerToolTip' [@expandDown]=\"tooltipService.state\"\r\n        [style.left.px]='tooltipService.left' [style.top.px]='tooltipService.top'\r\n        (mouseover)=\"tooltipService.showFromTooltip()\" (mouseout)=\"tooltipService.hide()\">\r\n        <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.height]=\"'100%'\"\r\n          [style.border]=\"model.options.appearance.showTooltipsHelp ? '' : 0\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerToolTipTextCell\">\r\n                {{tooltipService.caption}}\r\n              </td>\r\n            </tr>\r\n            <tr *ngIf=\"model.options.appearance.showTooltipsHelp\" class=\"stiJsViewerClearAllStyles\">\r\n              <td  class=\"stiJsViewerClearAllStyles\">\r\n                <sti-button [caption]=\"model.loc('TellMeMore')\"\r\n                    [imageName]=\"'HelpIcon.png'\"\r\n                    [margin]=\"'4px 8px 4px 8px'\"\r\n                    (action)='action()'\r\n                    [styleName]=\"'stiJsViewerHyperlinkButton'\">\r\n                </sti-button>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n    </div>\r\n  `,\r\n  animations: [\r\n    trigger('expandDown', [\r\n      state('initial', style({ opacity: 0, display: 'none' })),\r\n      state('preInitial', style({ opacity: 0, display: 'block' })),\r\n      state('preInitial2', style({ opacity: 0, display: 'block' })),\r\n      state('expanded', style({ opacity: 1, display: 'block' })),\r\n      transition('preInitial => expanded', [\r\n        animate('300ms 300ms ease-in-out', keyframes([\r\n          style({ display: 'block', opacity: 0, offset: 0 }),\r\n          style({ display: 'block', opacity: 1, offset: 1 }),\r\n        ]))\r\n      ])\r\n    ])\r\n  ]\r\n})\r\n\r\nexport class TooltipComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  constructor(public model: ModelService, public tooltipService: TooltipService, public helper: HelperService) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.model.controls.tooltip.el = this.element;\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  action() {\r\n    this.helper.showHelpWindow(this.tooltipService.helpLink);\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { ComponentDescription, Message } from '../services/objects';\r\nimport { FindService } from '../services/find.service';\r\nimport { TextBoxComponent } from '../controls/text-box.componet';\r\nimport { ControllerService } from '../services/controller.service';\r\n\r\n@Component({\r\n  selector: 'sti-find-panel',\r\n  template: `\r\n    <div #element [style.display]=\"model.controls.findPanel.visible ? '' : 'none'\"\r\n    [class]=\"'stiJsViewerToolBar' + (model.options.toolbar.displayMode == 'Separated' ? ' stiJsViewerToolBarSeparated' : '')\">\r\n      <div [style.paddingTop]=\"model.options.toolbar.displayMode == 'Simple' ? '2px' : ''\">\r\n        <div class=\"stiJsViewerToolBarTable\" [style.border]=\"model.options.toolbar.displayMode == 'Separated' ? '0px' : ''\" [style.boxSizing]=\"'border-box'\">\r\n          <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.margin.px]=\"0\">\r\n            <tbody>\r\n                <tr class=\"stiJsViewerClearAllStyles\">\r\n                   <td *ngFor=\"let item of items\"  class=\"stiJsViewerClearAllStyles\">\r\n                      <sti-button *ngIf=\"item.type=='button'\"\r\n                        [actionName]=\"item.action\"\r\n                        [imageName]=\"item.img\"\r\n                        [caption]=\"item.caption\"\r\n                        [margin]=\"item.margin\"\r\n                        [height]=\"model.options.toolbar.displayMode == 'Separated' ? '28px' : ''\"\r\n                        (action)=\"action(item.action)\"\r\n                        [selected]=\"selected(item)\"\r\n                        ></sti-button>\r\n                      <sti-text-box #textBox *ngIf=\"item.type=='textBox'\" [width]=\"170\"\r\n                        [margin]=\"item.margin\"\r\n                        [focusOnCreate]=\"true\"\r\n                        (action)=\"textBoxAction($event)\"\r\n                        [value]=\"findService.text\"></sti-text-box>\r\n                      <sti-text-block *ngIf=\"item.type=='textBlock'\" [margin]=\"item.margin\" [text]=\"item.caption\"></sti-text-block>\r\n                  </td>\r\n                </tr>\r\n            </tbody>\r\n          </table>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  `\r\n})\r\n\r\nexport class FindPanelComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n  @ViewChild('textBox') textBox: TextBoxComponent;\r\n\r\n  items: ComponentDescription[];\r\n  private changeFind = false;\r\n\r\n  constructor(public model: ModelService, public findService: FindService, public controller: ControllerService) {\r\n    this.initItems();\r\n\r\n    controller.getMessage().subscribe((message: Message) => {\r\n      switch (message.action) {\r\n        case 'GetReport':\r\n        case 'GetPages':\r\n        case 'OpenReport':\r\n        case 'Variables':\r\n          if (model.controls.findPanel.visible) {\r\n            setTimeout(() => {\r\n              this.findService.hideFindLabels();\r\n              this.find('Next');\r\n            });\r\n          }\r\n          break;\r\n      }\r\n    });\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.model.controls.findPanel.el = this.element;\r\n\r\n    this.model.controls.findPanel.getVisibility().subscribe(() => {\r\n      if (this.model.controls.findPanel.visible) {\r\n        this.findService.text = '';\r\n        setTimeout(() => {\r\n          this.textBox.element.nativeElement.focus();\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  selected(item: ComponentDescription): boolean {\r\n    switch (item.action) {\r\n      case 'MatchCase':\r\n        return this.findService.matchCase;\r\n      case 'MatchWholeWord':\r\n        return this.findService.matchWholeWord;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  textBoxAction(target: any) {\r\n    this.findService.text = target.value;\r\n    this.find('Next');\r\n  }\r\n\r\n  find(direction: string) {\r\n    if (this.findService.text === '') {\r\n      this.findService.hideFindLabels();\r\n      return;\r\n    }\r\n    if (this.findService.lastFindText !== this.findService.text || this.changeFind) {\r\n      this.changeFind = false;\r\n      this.findService.showFindLabels();\r\n    } else {\r\n      this.findService.selectFindLabel(direction);\r\n    }\r\n  }\r\n\r\n  initItems() {\r\n    this.items = [\r\n      { type: 'button', action: 'close', img: 'CloseForm.png', margin: '2px' },\r\n      { type: 'textBlock', action: 'text', caption: this.model.loc('FindWhat').replace(\":\", \"\"), margin: '2px' },\r\n      { type: 'textBox', action: 'findTextBox', margin: '2px' },\r\n      { type: 'button', action: 'FindPreviows', caption: this.model.loc('FindPrevious'), img: 'Arrows.ArrowUpBlue.png', margin: '2px' },\r\n      { type: 'button', action: 'FindNext', caption: this.model.loc('FindNext'), img: 'Arrows.ArrowDownBlue.png', margin: '2px' },\r\n      { type: 'button', action: 'MatchCase', caption: this.model.loc('MatchCase').replace('&', ''), margin: '2px' },\r\n      { type: 'button', action: 'MatchWholeWord', caption: this.model.loc('MatchWholeWord').replace('&', ''), margin: '2px' }\r\n    ];\r\n  }\r\n\r\n  action(action: string) {\r\n    switch (action) {\r\n      case 'close':\r\n        this.model.controls.findPanel.visible = false;\r\n        break;\r\n      case 'MatchCase':\r\n        this.findService.matchCase = !this.findService.matchCase;\r\n        this.changeFind = true;\r\n        break;\r\n      case 'MatchWholeWord':\r\n        this.findService.matchWholeWord = !this.findService.matchWholeWord;\r\n        this.changeFind = true;\r\n        break;\r\n      case 'FindPreviows':\r\n        this.findService.text = this.textBox.element.nativeElement.value;\r\n        this.find('Previous');\r\n        break;\r\n      case 'FindNext':\r\n        this.findService.text = this.textBox.element.nativeElement.value;\r\n        this.find('Next');\r\n        break;\r\n    }\r\n  }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { BookmarkNode, Message } from '../services/objects';\r\nimport { trigger, state, transition, animate, style, keyframes, AnimationEvent } from '@angular/animations';\r\n\r\n@Component({\r\n  selector: 'sti-bookmarks-panel',\r\n  template: `\r\n    <div #element [style]=\"{fontFamily: model.options.toolbar.fontFamily, fontColor: helper.val(model.options.toolbar.fontColor)}\"\r\n      [class]=\"'stiJsViewerBookmarksPanel' + (model.options.toolbar.displayMode == 'Separated' ? ' stiJsViewerBookmarksPanelSeparated' : '')\"\r\n      [style.width.px]=\"model.options.appearance.bookmarksTreeWidth - (model.options.toolbar.displayMode == 'Simple' ? 0 : 1)\"\r\n      [style.bottom]=\"bottom\"\r\n      [style.top.px]=\"model.controls.bookmarksPanel.layout.top\"\r\n      [style.transition]=\"model.options.isMobileDevice ? 'opacity 300ms ease' : null\"\r\n      [style.display]=\"!this.model.options.isMobileDevice ? (model.controls.bookmarksPanel.visible ? '' : 'none') : null\"\r\n      [@visibility]=\"!this.model.options.isMobileDevice ? null : (model.controls.bookmarksPanel.visible ? 'visible' : 'hidden')\">\r\n      <div #bookmarksPanel [class]=\"'stiJsViewerBookmarksContainer' + (model.options.toolbar.displayMode == 'Simple' ? ' stiJsViewerBookmarksContainerSimple' : '')\"\r\n           [style.background]=\"helper.val(model.options.toolbar.backgroundColor)\"\r\n           [style.border]=\"helper.val(model.options.toolbar.borderColor) != '' ? '1px solid ' + helper.val(model.options.toolbar.borderColor): ''\">\r\n           <div class=\"stiTree\">\r\n              <div class=\"stiTreeNode\">\r\n                <img [style.width.px]=\"16\" [style.height.px]=\"16\" [src]=\"model.imagesForBookmark['root']\"/>\r\n                <a class=\"node\">{{rootName}}</a>\r\n              </div>\r\n              <div class=\"clip\" [style.display]=\"'block'\">\r\n                <ng-container *ngFor=\"let node of model.nodes; index as i\">\r\n                    <div class=\"stiTreeNode\">\r\n                        <a (click)=\"node.open = !node.open\">\r\n                            <img [style.width.px]=\"18\" [style.height.px]=\"18\"\r\n                             [src]=\"getImg1(node, i)\"/>\r\n                        </a>\r\n                        <img [style.width.px]=\"16\" [style.height.px]=\"16\" [src]=\"node.nodes?.length == 0 ? model.imagesForBookmark['node'] :(node.open ? model.imagesForBookmark['folderOpen'] : model.imagesForBookmark['folder'])\"/>\r\n                        <a [class]=\"node.selected ? 'nodeSel' : 'node'\" (click)=\"postAction(node)\">{{node.name}}</a>\r\n                    </div>\r\n                    <div class=\"clip\" [style.display]=\"node.open ? 'block' : 'none'\">\r\n                      <div *ngFor=\"let subNode of node.nodes; index as k\" class=\"stiTreeNode\">\r\n                        <img [style.width.px]=\"18\" [style.height.px]=\"18\" [src]=\"i != model.nodes.length - 1 ? model.imagesForBookmark['line'] : model.imagesForBookmark['empty']\"/>\r\n                        <img [style.width.px]=\"18\" [style.height.px]=\"18\" [src]=\"k == node.nodes.length - 1 ? model.imagesForBookmark['joinBottom'] : model.imagesForBookmark['join']\"/>\r\n                        <img [style.width.px]=\"16\" [style.height.px]=\"16\" [src]=\"model.imagesForBookmark['node']\" />\r\n                        <a [class]=\"subNode.selected ? 'nodeSel' : 'node'\" (click)=\"postAction(subNode)\">{{subNode.name}}</a>\r\n                      </div>\r\n                    </div>\r\n                </ng-container>\r\n              </div>\r\n          </div>\r\n      </div>\r\n    </div>\r\n  `,\r\n  animations: [\r\n    trigger('visibility', [\r\n      state('visible', style({ opacity: 1, display: 'block' })),\r\n      state('hidden', style({ opacity: 0, display: 'none' })),\r\n      transition('hidden => visible', [\r\n        animate('300ms ease-in-out', keyframes([\r\n          style({ display: 'block', opacity: 0, offset: 0 }),\r\n          style({ display: 'block', opacity: 1, offset: 1 }),\r\n        ]))\r\n      ]),\r\n      transition('visible => hidden', [\r\n        animate('300ms ease-in-out', keyframes([\r\n          style({ display: 'block', opacity: 1, offset: 0 }),\r\n          style({ display: 'none', opacity: 0, offset: 1 }),\r\n        ]))\r\n      ])\r\n    ])\r\n  ]\r\n})\r\n\r\nexport class BookmarksPanelComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n  @ViewChild('bookmarksPanel') bookmarksPanel: ElementRef;\r\n\r\n  public rootName: string;\r\n\r\n  constructor(public model: ModelService, public helper: HelperService, public controller: ControllerService) {\r\n    controller.getMessage().subscribe((message: Message) => {\r\n      if (message.action === 'GetReport' || message.action === 'OpenReport') {\r\n        setTimeout(() => {\r\n          if (this.model.reportParams.bookmarksContent != null) {\r\n            this.create();\r\n          }\r\n          this.model.controls.bookmarksPanel.visible = this.model.reportParams.bookmarksContent !== null && !this.model.options.isMobileDevice;\r\n        });\r\n      } else {\r\n        // Go to the bookmark, if it present\r\n        setTimeout(() => {\r\n          if (this.model.options.bookmarkAnchor != null) {\r\n            this.helper.scrollToAnchor(this.model.options.bookmarkAnchor, this.model.options.componentGuid);\r\n            this.model.options.bookmarkAnchor = null;\r\n            this.model.options.componentGuid = null;\r\n          }\r\n        });\r\n      }\r\n    });\r\n\r\n    this.model.controls.bookmarksPanel.getVisibility().subscribe((value) => {\r\n      if (!value) {\r\n        this.helper.removeBookmarksLabel();\r\n        this.clearSelected();\r\n      }\r\n    });\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.model.controls.bookmarksPanel.el = this.element;\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  public getImg1(node: BookmarkNode, i: number): string {\r\n    if (node.nodes?.length === 0) {\r\n      return i !== this.model.nodes.length - 1 ? this.model.imagesForBookmark['join'] : this.model.imagesForBookmark['joinBottom'];\r\n    }\r\n    return node.open ? (i === this.model.nodes.length - 1 ? this.model.imagesForBookmark['minusBottom'] : this.model.imagesForBookmark['minus']) :\r\n      (i === this.model.nodes.length - 1 ? this.model.imagesForBookmark['plusBottom'] : this.model.imagesForBookmark['plus']);\r\n  }\r\n\r\n  public postAction(node: BookmarkNode) {\r\n    this.clearSelected();\r\n    this.controller.postBookmarkNodeAction(node);\r\n  }\r\n\r\n  clearSelected() {\r\n    this.model.nodes?.forEach((n) => {\r\n      n.selected = false;\r\n      n.nodes.forEach(element => element.selected = false);\r\n    });\r\n  }\r\n\r\n  create() {\r\n    let bookmarks = JSON.parse(this.model.reportParams.bookmarksContent);\r\n    this.rootName = bookmarks.bookmarksTree[0].title;\r\n\r\n    const nodes: BookmarkNode[] = [];\r\n    this.parseNodes(bookmarks, 0, nodes);\r\n    this.model.nodes = nodes;\r\n  }\r\n\r\n  parseNodes(bookmarks: any, index: number, nodes: BookmarkNode[]) {\r\n    let folder: BookmarkNode;\r\n    bookmarks.bookmarksTree.splice(1).forEach((bookmark) => {\r\n      let page = bookmark.componentGuid != null && bookmarks.bookmarksPageIndexes != null ? (bookmarks.bookmarksPageIndexes[bookmark.componentGuid] - 1 ?? 0) : 0;\r\n      const node: BookmarkNode = { name: bookmark.title, url: bookmark.url, page: page, compunentGuid: bookmark.componentGuid, nodes: [], open: false, selected: false };\r\n      if (bookmark.parent === 0) {\r\n        nodes.push(node);\r\n        folder = node;\r\n      } else {\r\n        folder.nodes.push(node);\r\n      }\r\n    });\r\n  }\r\n\r\n  unescape(str: string): string {\r\n    return str.replace(/\\\\&apos;/g, '\\'')\r\n      .replace(/\\\\&quot;/g, '\"')\r\n      .replace(/\\\\&gt;/g, '>')\r\n      .replace(/\\\\&lt;/g, '<')\r\n      .replace(/\\\\&amp;/g, '&');\r\n  }\r\n\r\n  get bottom(): string {\r\n    if (this.model.options.isMobileDevice) {\r\n      return this.model.options.toolbar.autoHide ? '0' : '0.5in';\r\n    } else {\r\n      return this.model.options.toolbar.displayMode === 'Separated' && this.model.options.toolbar.visible ? '35px' : '0';\r\n    }\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'sti-form-button',\r\n  template: `\r\n      <sti-button [styleName]=\"'stiJsViewerFormButton'\"\r\n                  [caption]=\"caption\"\r\n                  [actionName]=\"actionName\"\r\n                  [captionAlign]=\"captionAlign\"\r\n                  [innerTableWidth]=\"'100%'\"\r\n                  [minWidth]=\"'80px'\"\r\n                  [imageName]=\"imageName\"\r\n                  [imageCellWidth]=\"imageCellWidth\"\r\n                  [captionPadding]=\"captionPadding\"\r\n                  [margin]=\"margin\"\r\n                  (action)=\"onaction($event)\">\r\n      </sti-button>\r\n  `\r\n})\r\nexport class FormButtonComponent implements OnInit {\r\n\r\n  @Input() caption: string;\r\n  @Input() actionName: string;\r\n  @Input() imageName: string;\r\n  @Input() imageCellWidth: string;\r\n  @Input() captionPadding: string;\r\n  @Input() margin: string;\r\n  @Input() captionAlign = 'center';\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() { }\r\n\r\n  onaction(event: any) {\r\n    this.action.emit(event);\r\n  }\r\n}\r\n","import { Component, OnInit, Input, ElementRef, ViewChild } from '@angular/core';\r\nimport { ModelService } from '../../services/model.service';\r\nimport { Variable } from '../../services/objects';\r\nimport { HelperService } from '../../services/helper.service';\r\nimport { MenuService } from '../../menu/menu.service';\r\nimport { InteractionsService } from '../../services/interactions.service';\r\n\r\n@Component({\r\n  selector: 'sti-parameter',\r\n  template: `\r\n    <table #element class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" #rangeFrom>\r\n       <tbody>\r\n          <tr class=\"stiJsViewerClearAllStyles\" >\r\n            <td *ngIf=\"params.type == 'Bool' && (params.basicType == 'Value' || params.basicType == 'NullableValue')\"\r\n                [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n                <sti-parameter-checkbox [params]=\"params\" [isEnabled]=\"params.allowUserValues\" (action)=\"params.value = $event\" [nullable]=\"params.basicType == 'NullableValue'\">\r\n                </sti-parameter-checkbox>\r\n            </td>\r\n\r\n            <td *ngIf=\"params.basicType == 'Range' && model.options.appearance.currentParametersPanelPosition === 'Top'\"  [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n                {{model.loc('RangeFrom')}}\r\n            </td>\r\n\r\n            <td *ngIf=\"params.type != 'Bool' || params.basicType == 'List'\"\r\n                [style.position]=\"(params.basicType == 'NullableValue' || params.allowNullableString) && params.allowUserValues ? 'relative' : ''\"\r\n                [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n                <sti-parameter-text-box [variable]=\"params\"\r\n                    [readOnly]=\"getReadOnlyCheckbox()\"\r\n                    [value]=\"getFirstTextBoxValue()\">\r\n                </sti-parameter-text-box>\r\n            </td>\r\n\r\n            <td *ngIf=\"params.type == 'DateTime' && params.allowUserValues && params.basicType != 'List' && params.basicType != 'Range'\"\r\n                [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\" #firstDateTimeButton>\r\n                <sti-parameter-button [buttonType]=\"'DateTimeButton'\" [params]=\"params\"  (action)=\"firstDateTimeAction($event)\">\r\n                </sti-parameter-button>\r\n            </td>\r\n\r\n            <td *ngIf=\"params.type == 'Guid' && params.allowUserValues && params.basicType != 'List'\"\r\n                [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n                <sti-parameter-button  [buttonType]=\"'GuidButton'\" [params]=\"params\" (action)=\"firstGuidAction()\">\r\n                </sti-parameter-button>\r\n            </td>\r\n\r\n            <td *ngIf=\"!showParameterInTwoRows && params.basicType == 'Range' && model.options.appearance.currentParametersPanelPosition === 'Top'\" [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n              {{model.loc('RangeTo')}}\r\n            </td>\r\n\r\n            <!-- second -->\r\n            <td *ngIf=\"!showParameterInTwoRows && params.basicType == 'Range'\" [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n              <sti-parameter-text-box [variable]=\"params\"\r\n                    [readOnly]=\"!params.allowUserValues\"\r\n                    [value]=\"helper.getStringKey(params.keyTo, params)\"\r\n                    [secondTextBox]=\"true\">\r\n              </sti-parameter-text-box>\r\n            </td>\r\n\r\n            <td *ngIf=\"!showParameterInTwoRows && params.basicType == 'Range' && params.type == 'DateTime' && params.allowUserValues\" #doubleDateTimeButton\r\n              [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n              <sti-parameter-button  [buttonType]=\"'DateTimeButton'\" [params]=\"params\" (action)=\"doubleDateTimeAction($event)\">\r\n              </sti-parameter-button>\r\n            </td>\r\n\r\n            <td *ngIf=\"!showParameterInTwoRows && params.basicType == 'Range' && params.type == 'Guid' && params.allowUserValues\"\r\n              [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n              <sti-parameter-button  [buttonType]=\"'GuidButton'\" [params]=\"params\" (action)=\"params.keyTo=helper.newGuid()\">\r\n              </sti-parameter-button>\r\n            </td>\r\n\r\n            <td *ngIf=\"!showParameterInTwoRows && params.items != null || (params.basicType == 'List' && params.allowUserValues)\"\r\n                [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n              <sti-parameter-button [buttonType]=\"'DropDownButton'\" [params]=\"params\" (action)=\"dropDownButtonAction($event)\">\r\n              </sti-parameter-button>\r\n            </td>\r\n          </tr>\r\n\r\n          <!-- NEW LINE -->\r\n          <tr *ngIf=\"showParameterInTwoRows\">\r\n            <td *ngIf=\"params.basicType == 'Range' && model.options.appearance.currentParametersPanelPosition === 'Top'\" [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n              {{model.loc('RangeTo')}}\r\n            </td>\r\n\r\n            <!-- second -->\r\n            <td *ngIf=\"params.basicType == 'Range'\" [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n              <sti-parameter-text-box [variable]=\"params\"\r\n                    [readOnly]=\"!params.allowUserValues\"\r\n                    [value]=\"helper.getStringKey(params.keyTo, params)\"\r\n                    [secondTextBox]=\"true\">\r\n              </sti-parameter-text-box>\r\n            </td>\r\n\r\n            <td *ngIf=\"params.basicType == 'Range' && params.type == 'DateTime' && params.allowUserValues\" #doubleDateTimeButton\r\n              [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n              <sti-parameter-button  [buttonType]=\"'DateTimeButton'\" [params]=\"params\" (action)=\"doubleDateTimeAction($event)\">\r\n              </sti-parameter-button>\r\n            </td>\r\n\r\n            <td *ngIf=\"params.basicType == 'Range' && params.type == 'Guid' && params.allowUserValues\"\r\n              [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n              <sti-parameter-button  [buttonType]=\"'GuidButton'\" [params]=\"params\" (action)=\"params.keyTo=helper.newGuid()\">\r\n              </sti-parameter-button>\r\n            </td>\r\n\r\n            <td *ngIf=\"params.items != null || (params.basicType == 'List' && params.allowUserValues)\"\r\n                [style.padding]=\"'0 2px 0 2px'\" [style.height.px]=\"model.options.parameterRowHeight\">\r\n              <sti-parameter-button [buttonType]=\"'DropDownButton'\" [params]=\"params\" (action)=\"dropDownButtonAction($event)\">\r\n              </sti-parameter-button>\r\n            </td>\r\n          </tr>\r\n       </tbody>\r\n    </table>\r\n  `\r\n})\r\n\r\nexport class ParameterComponent implements OnInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n  @ViewChild('firstDateTimeButton') firstDateTimeButton: ElementRef;\r\n  @ViewChild('doubleDateTimeButton') doubleDateTimeButton: ElementRef;\r\n  @ViewChild('rangeFrom') rangeFrom: ElementRef;\r\n\r\n  private _params: Variable;\r\n\r\n  constructor(public model: ModelService, public helper: HelperService, public menuService: MenuService, public intearctionService: InteractionsService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  @Input() get params(): Variable {\r\n    return this._params;\r\n  }\r\n\r\n  set params(params: Variable) {\r\n    this._params = params;\r\n\r\n    if (params.basicType === 'Range') {\r\n      if (params.type === 'DateTime' && params.keyTo && params.keyTo.isNull) {\r\n        params.keyTo = this.helper.getDateTimeObject(new Date());\r\n      }\r\n    }\r\n  }\r\n\r\n  get showParameterInTwoRows(): boolean {\r\n    return this.params.basicType === 'Range' && this.model.options.appearance.currentParametersPanelPosition === 'Left';\r\n  }\r\n\r\n  getReadOnlyCheckbox(): boolean {\r\n    return this.params.basicType === 'List' || !this.params.allowUserValues;\r\n  }\r\n\r\n  getFirstTextBoxValue(): string {\r\n    let value = '';\r\n    if (this.params.basicType === 'Value' || this.params.basicType === 'NullableValue') {\r\n      if (this.params.type === 'DateTime' && this.params.value === null) {\r\n        this.params.value = new Date();\r\n        this.params.key = this.helper.getDateTimeObject(this.params.value);\r\n      }\r\n\r\n      value = (this.params.type === 'DateTime') ? this.helper.getStringKey(this.params.key, this.params) : (this.params.allowUserValues ? this.params.key :\r\n        (this.params.value != \"\" || !this.params.isChanged ? this.params.value : this.params.key));\r\n    }\r\n\r\n    // Range\r\n    if (this.params.basicType === 'Range') {\r\n      if (this.params.type === 'DateTime' && this.params.key && this.params.key.isNull) {\r\n        this.params.key = this.helper.getDateTimeObject(new Date());\r\n      }\r\n      value = this.helper.getStringKey(this.params.key, this.params);\r\n    }\r\n\r\n    // List\r\n    if (this.params.basicType === 'List' && this.params.items) {\r\n      this.params.items.forEach((item) => {\r\n        if (item.isChecked) {\r\n          if (value !== '') {\r\n            value += (this.model.options.listSeparator ? this.model.options.listSeparator + \" \" : \"; \");\r\n          }\r\n\r\n          if (this.params.allowUserValues) {\r\n            value += this.helper.getStringKey(item.key, this.params);\r\n          } else {\r\n            value += item.value !== '' ? item.value : this.helper.getStringKey(item.key, this.params);\r\n          }\r\n        }\r\n      });\r\n    }\r\n\r\n    return value != null ? value.toString() : value;\r\n  }\r\n\r\n  firstGuidAction() {\r\n    if (this.params.basicType === 'Range') {\r\n      this.params.key = this.helper.newGuid();\r\n    } else {\r\n      this.params.key = this.params.value = this.helper.newGuid();\r\n    }\r\n  }\r\n\r\n  doubleDateTimeAction(event: any) {\r\n    this.menuService.addMenu({\r\n      type: 'doubleDatePickerMenu', name: 'doubleDatePickerMenu', items: [], parent: this.rangeFrom,\r\n      params: this.params,\r\n      state: ''\r\n    });\r\n\r\n    setTimeout(() => {\r\n      this.menuService.showMenu('doubleDatePickerMenu');\r\n    });\r\n  }\r\n\r\n  firstDateTimeAction(event: any) {\r\n    this.menuService.addMenu({\r\n      type: 'datePickerMenu', name: 'datePickerMenu', items: [], parent: this.firstDateTimeButton,\r\n      params: this.params,\r\n      state: ''\r\n    });\r\n\r\n    setTimeout(() => {\r\n      this.menuService.showMenu('datePickerMenu');\r\n    });\r\n  }\r\n\r\n  dropDownButtonAction(event: any) {\r\n    let menuType = 'parameterMenuForValue';\r\n    switch (this.params.basicType) {\r\n      case 'Range':\r\n        menuType = 'parameterMenuForRange';\r\n        break;\r\n      case 'List':\r\n        menuType = this.params.allowUserValues ? 'parameterMenuForEditList' : 'parameterMenuForNotEditList';\r\n        break;\r\n    }\r\n\r\n    if (this.params.items) {\r\n      this.params.items.forEach(i => i.visible = true);\r\n    }\r\n\r\n    let this_ = this;\r\n\r\n    this.menuService.addMenu({\r\n      type: menuType, name: 'parameterMenu', items: [], parent: this.element,\r\n      params: this.params,\r\n      state: '',\r\n      onCloseEvent: () => {\r\n        this_.onCloseMenuEvent();\r\n      }\r\n    });\r\n\r\n    setTimeout(() => {\r\n      this.menuService.showMenu('parameterMenu');\r\n    });\r\n  }\r\n\r\n  onCloseMenuEvent() {\r\n    if (this.params.binding) {\r\n      if (!this.model.options.paramsVariablesStartValues) {\r\n        this.model.options.paramsVariablesStartValues = this.helper.copyObject(this.model.options.paramsVariables);\r\n      }\r\n      this.intearctionService.postInteraction({ action: 'InitVars', variables: this.intearctionService.getParametersValues(), isBindingVariable: true });\r\n    }\r\n  }\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { InteractionsService } from '../services/interactions.service';\r\nimport { MenuService } from '../menu/menu.service';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { trigger, state, transition, style, keyframes, animate } from '@angular/animations';\r\n\r\n@Component({\r\n  selector: 'sti-interactions-panel',\r\n  template: `\r\n    <div #element [class]=\"className\"\r\n       [style.display]=\"!this.model.options.isMobileDevice ? (model.controls.parametersPanel.visible ? '' : 'none') : null\"\r\n       [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n       [style.color]=\"model.options.toolbar.fontColor\"\r\n       [style.top.px]=\"top\"\r\n       [style.left.px]=\"model.controls.parametersPanel.layout.left\"\r\n       [style.bottom]=\"bottom\"\r\n       [style.transition]=\"model.options.isMobileDevice ? 'opacity 300ms ease' : null\"\r\n       [@visibility]=\"!this.model.options.isMobileDevice ? null : (model.controls.parametersPanel.visible ? 'visible' : 'hidden')\">\r\n       <div [class]=\"innerClassName\" [style.marginTop]=\"model.options.toolbar.displayMode == 'Simple' ? '2px' : ''\" (scroll)=\"menuService.closeAllMenus()\">\r\n         <div class=\"stiJsViewerInnerContainerParametersPanel\"\r\n              [style.background]=\"helper.val(model.options.toolbar.backgroundColor, '')\"\r\n              [style.border]=\"helper.val(model.options.toolbar.backgroundColor, '') != '' ? '1px solid ' + helper.val(model.options.toolbar.backgroundColor, '') : ''\"\r\n              [style.maxHeight]=\"model.options.appearance.currentParametersPanelPosition == 'Top' ? model.options.appearance.parametersPanelMaxHeight + 'px' : ''\"\r\n              (scroll)=\"menuService.closeAllMenus()\">\r\n            <table *ngIf=\"model.interactions\" class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.border.px]=\"0\">\r\n              <tbody>\r\n                <tr *ngFor=\"let item of model.interactions.countInColumn; let indexRow=index\" >\r\n                  <ng-container *ngFor=\"let item2 of model.interactions.countColumns; let indexColumn=index\">\r\n                    <ng-container *ngIf=\"index(indexRow, indexColumn) < length()\">\r\n                        <td [style.padding]=\"'0 10px 0 ' + (indexColumn > 0 ? '30px' : '0')\"\r\n                            [style.whiteSpace]=\"'nowrap'\"\r\n                            [style.verticalAlign]='getNameAlign(indexRow, indexColumn)'\r\n                            [style.paddingTop]='getNamePadding(indexRow, indexColumn)'\r\n                            [attr.title]='getTitle(indexRow, indexColumn)'>\r\n                            {{getCaption(indexRow, indexColumn)}}\r\n                              <table *ngIf=\"ifLeftRange(indexRow, indexColumn)\" class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.height.px]=\"60\">\r\n                                <tbody>\r\n                                  <tr class=\"stiJsViewerClearAllStyles\">\r\n                                    <td class=\"stiJsViewerClearAllStyles\" rowspan=\"2\" [style.verticalAlign]=\"'top'\" [style.paddingTop.px]=\"9\">\r\n                                      {{getCaption(indexRow, indexColumn, false)}}\r\n                                    </td>\r\n                                    <td class=\"stiJsViewerClearAllStyles\" [style.paddingLeft.px]=\"12\">\r\n                                      {{model.loc('RangeFrom')}}\r\n                                    </td>\r\n                                  </tr>\r\n                                  <tr class=\"stiJsViewerClearAllStyles\">\r\n                                    <td class=\"stiJsViewerClearAllStyles\" [style.paddingLeft.px]=\"12\">\r\n                                      {{model.loc('RangeTo')}}\r\n                                    </td>\r\n                                  </tr>\r\n                                </tbody>\r\n                              </table>\r\n                            </td>\r\n                        <td [style.padding]=\"'0px'\">\r\n                          <sti-parameter *ngIf=\"index(indexRow, indexColumn) != length()\"  [params]=\"model.interactions.paramsVariables[index(indexRow, indexColumn)]\"></sti-parameter>\r\n\r\n                          <!--table *ngIf=\"index(indexRow, indexColumn) == length()\" class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\"\r\n                            align=\"right\" [style.margin]=\"'5px 2px 10px 0px'\">\r\n                            <tr class=\"stiJsViewerClearAllStyles\">\r\n                              <td class=\"stiJsViewerClearAllStyles\">\r\n                                <sti-form-button [caption]=\"model.loc('Reset')\" (action)=\"controller.action({name: 'Reset'})\"></sti-form-button>\r\n                              </td>\r\n                              <td class=\"stiJsViewerClearAllStyles\" [style.paddingLeft.px]=\"10\">\r\n                                <sti-form-button [caption]=\"model.loc('Submit')\" (action)=\"controller.action({name: 'Submit'})\"></sti-form-button>\r\n                              </td>\r\n                            </tr>\r\n                          </table-->\r\n                        </td>\r\n                    </ng-container>\r\n                  </ng-container>\r\n                </tr>\r\n                <tr><!--*ngIf=\"length() == model.interactions.countInColumn.length * model.interactions.countColumns.length\"-->\r\n                  <td></td>\r\n                  <td *ngIf=\"model.interactions.countColumns.length > 1\"></td>\r\n                  <td *ngIf=\"model.interactions.countColumns.length > 1\"></td>\r\n                  <td [style.padding]=\"'0px'\">\r\n                      <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\"\r\n                         align=\"right\" [style.margin]=\"'5px 2px 10px 0px'\">\r\n                         <tr class=\"stiJsViewerClearAllStyles\">\r\n                           <td class=\"stiJsViewerClearAllStyles\">\r\n                             <sti-form-button [caption]=\"model.loc('Reset')\" (action)=\"controller.action({name: 'Reset'})\"></sti-form-button>\r\n                           </td>\r\n                           <td class=\"stiJsViewerClearAllStyles\" [style.paddingLeft.px]=\"10\">\r\n                              <sti-form-button [caption]=\"model.loc('Submit')\" (action)=\"controller.action({name: 'Submit'})\"></sti-form-button>\r\n                           </td>\r\n                         </tr>\r\n                       </table>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n          </div>\r\n      </div>\r\n    </div>\r\n  `,\r\n  animations: [\r\n    trigger('visibility', [\r\n      state('visible', style({ opacity: 1, display: 'block' })),\r\n      state('hidden', style({ opacity: 0, display: 'none' })),\r\n      transition('hidden => visible', [\r\n        animate('300ms ease-in-out', keyframes([\r\n          style({ display: 'block', opacity: 0, offset: 0 }),\r\n          style({ display: 'block', opacity: 1, offset: 1 }),\r\n        ]))\r\n      ]),\r\n      transition('visible => hidden', [\r\n        animate('300ms ease-in-out', keyframes([\r\n          style({ display: 'block', opacity: 1, offset: 0 }),\r\n          style({ display: 'none', opacity: 0, offset: 1 }),\r\n        ]))\r\n      ])\r\n    ])\r\n  ]\r\n})\r\n\r\nexport class InteractionsPanelComponent implements OnInit, AfterViewInit {\r\n\r\n  currentOpeningParameter = null;\r\n  dropDownButtonWasClicked = false;\r\n  dateTimeButtonWasClicked = false;\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  constructor(public model: ModelService, public helper: HelperService, public interactionService: InteractionsService, public menuService: MenuService,\r\n    public controller: ControllerService) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.model.controls.parametersPanel.el = this.element;\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  getNameAlign(indexRow: number, indexColumn: number): string {\r\n    const index = this.index(indexRow, indexColumn);\r\n    if (index < this.length() &&\r\n      this.model.interactions.paramsVariables[index].basicType === 'Range' &&\r\n      this.model.options.appearance.currentParametersPanelPosition === 'Left') {\r\n      return 'top';\r\n    }\r\n    return '';\r\n  }\r\n\r\n  getNamePadding(indexRow: number, indexColumn: number): string {\r\n    const index = this.index(indexRow, indexColumn);\r\n    if (index < this.length() &&\r\n      this.model.interactions.paramsVariables[index].basicType === 'Range' &&\r\n      this.model.options.appearance.currentParametersPanelPosition === 'Left') {\r\n      return this.model.options.isTouchDevice ? '11px' : '9px';\r\n    }\r\n    return '';\r\n  }\r\n\r\n  getCaption(indexRow: number, indexColumn: number, checkLeft = true): string {\r\n    const index = this.index(indexRow, indexColumn);\r\n    if (checkLeft && this.ifLeftRange(indexRow, indexColumn)) {\r\n      return '';\r\n    }\r\n    return index < this.length() ? this.model.interactions.paramsVariables[index].alias : '';\r\n  }\r\n\r\n  ifLeftRange(indexRow: number, indexColumn: number): boolean {\r\n    const index = this.index(indexRow, indexColumn);\r\n    return this.model.interactions.paramsVariables[index].basicType === 'Range' && this.model.options.appearance.currentParametersPanelPosition === 'Left';\r\n  }\r\n\r\n  getTitle(indexRow: number, indexColumn: number): string {\r\n    const index = this.index(indexRow, indexColumn);\r\n    return index < this.length() ? this.model.interactions.paramsVariables[index].description : '';\r\n  }\r\n\r\n  index(indexRow: number, indexColumn: number): number {\r\n    return indexColumn * this.model.interactions.countInColumn.length + indexRow;\r\n  }\r\n\r\n  length(): number {\r\n    return this.model.interactions?.paramsVariables != null ? Object.keys(this.model.interactions?.paramsVariables).length : 0;\r\n  }\r\n\r\n  get className(): string {\r\n    let className = 'stiJsViewerParametersPanel';\r\n\r\n    if (this.model.options.appearance.currentParametersPanelPosition === 'Top') {\r\n      className += ' stiJsViewerParametersPanelTop';\r\n\r\n      if (this.model.options.toolbar.displayMode === 'Separated') {\r\n        className += ' stiJsViewerParametersPanelSeparatedTop';\r\n      }\r\n    }\r\n\r\n    return className;\r\n  }\r\n\r\n  get top(): number {\r\n    let styleTop = this.model.options.toolbar.visible ? this.model.controls.toolbar.offsetHeight : 0;\r\n    if (this.model.options.isMobileDevice && this.model.options.toolbar.autoHide) {\r\n      styleTop = 0;\r\n    }\r\n    styleTop += this.model.controls.drillDownPanel.exists ? this.model.controls.drillDownPanel.offsetHeight : 0;\r\n    styleTop += this.model.controls.findPanel.exists ? this.model.controls.findPanel.offsetHeight : 0;\r\n    styleTop += this.model.controls.resourcesPanel.exists ? this.model.controls.resourcesPanel.offsetHeight : 0;\r\n    return styleTop;\r\n  }\r\n\r\n  get bottom(): string {\r\n    if (this.model.options.appearance.currentParametersPanelPosition === 'Left') {\r\n      if (this.model.options.isMobileDevice) {\r\n        return this.model.options.toolbar.autoHide ? '0' : '0.5in';\r\n      } else {\r\n        return this.model.options.toolbar.displayMode === 'Separated' && this.model.options.toolbar.visible ? '35px' : '0';\r\n      }\r\n    }\r\n    return '';\r\n  }\r\n\r\n  get innerClassName(): string {\r\n    let className = this.model.options.toolbar.displayMode === 'Simple' ? 'stiJsViewerInnerParametersPanelSimple' : '';\r\n\r\n    if (this.model.options.appearance.currentParametersPanelPosition === 'Left') {\r\n      className += ' stiJsViewerInnerParametersPanelLeft';\r\n      if (this.model.options.toolbar.displayMode === 'Separated') {\r\n        className += ' stiJsViewerInnerParametersPanelSeparatedLeft';\r\n      }\r\n    }\r\n    return className;\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, Input, EventEmitter, Output, ViewChild, ElementRef } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { trigger, state, transition, style, animate, AnimationEvent } from '@angular/animations';\r\nimport { FormService } from './form.service';\r\n\r\n@Component({\r\n  selector: 'sti-base-form',\r\n  template: `\r\n    <div #element class=\"stiJsViewerForm\"\r\n      [style.zIndex]=\"level * 10 + 1\"\r\n      [@.disabled]=\"!model.options.toolbar.menuAnimation\"\r\n      [style.fontFamily]=\"fontFamily\"\r\n      [style.color]=\"color\"\r\n      [style.fontSize]=\"fontSize\"\r\n      [style.left.px]=\"formService.form?.left\"\r\n      [style.top.px]=\"formService.form?.top\"\r\n      [style.display]=\"display\"\r\n      [@showForm]=\"formService.form?.name == name ? 'visible' : 'hidden'\"\r\n      (@showForm.start)=\"startAnimation($event)\"\r\n      (@showForm.done)=\"doneAnimation($event)\">\r\n      <div class=\"stiJsViewerFormHeader\"\r\n        (mousedown)=\"formService.startMove(name, $event)\"\r\n        (touchstart)=\"formService.startMove(name, null, $event)\"\r\n        (touchmove)=\"formService.move($event)\"\r\n        (touchend)=\"formService.stopMove()\">\r\n        <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.width]=\"'100%'\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.textAlign]=\"'left'\" [style.padding]=\"'5px 10px 8px 15px'\">\r\n                {{caption}}\r\n              </td>\r\n              <td *ngIf=\"helpUrl != null && model.options.appearance.showDialogsHelp\" class=\"stiJsViewerClearAllStyles\" [style.width.px]=\"20\" [style.textAlign]=\"'right'\" [style.padding]=\"'2px 0px 1px 0px'\"\r\n              [style.verticalAlign]=\"'top'\">\r\n                <sti-button [imageMargin]=\"'0 2px 0 2px'\" [display]=\"'inline-block'\" (action)=\"helper.showHelpWindow(helpUrl)\">\r\n                </sti-button>\r\n              </td>\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.verticalAlign]=\"'top'\" [style.width.px]=\"30\" [style.textAlign]=\"'right'\" [style.padding]=\"'2px 1px 1px'\">\r\n                <sti-button [imageMargin]=\"'0 2px 0 2px'\" [display]=\"'inline-block'\" [imageName]=\"'CloseForm.png'\" (action)=\"formService.closeForm(name)\">\r\n                </sti-button>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n      </div>\r\n\r\n      <div class=\"stiJsViewerFormContainer\" [style.padding]=\"containerPadding\">\r\n        <ng-content>\r\n        </ng-content>\r\n      </div>\r\n\r\n      <div *ngIf=\"showSeparator\" class=\"stiJsViewerFormSeparator\"></div>\r\n\r\n      <div *ngIf=\"showButtons\" class=\"stiJsViewerFormButtonsPanel\">\r\n        <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.padding.px]=\"8\">\r\n                <sti-form-button [caption]=\"model.loc('ButtonOk')\" (action)=\"action.emit()\">\r\n                </sti-form-button>\r\n              </td>\r\n              <td *ngIf=\"showCancel\" class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'8px 8px 8px 0px'\">\r\n                <sti-form-button [caption]=\"model.loc('ButtonCancel')\" (action)=\"formService.closeForm(name)\">\r\n                </sti-form-button>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n      </div>\r\n\r\n    </div>\r\n  `,\r\n  animations: [\r\n    trigger('showForm', [\r\n      state('hidden', style({ opacity: '0' })),\r\n      state('visible', style({ opacity: '1' })),\r\n      transition('hidden => visible', [\r\n        animate('200ms ease-in-out')])\r\n    ])\r\n  ]\r\n})\r\n\r\nexport class BaseFormComponent implements OnInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  @Output() changeVisibility: EventEmitter<any> = new EventEmitter();\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  @Input() level = 1;\r\n  @Input() caption: string;\r\n  @Input() helpUrl: string;\r\n  @Input() fontFamily: string;\r\n  @Input() color: string;\r\n  @Input() fontSize: string;\r\n  @Input() containerPadding: string;\r\n  @Input() name: string;\r\n  @Input() defaultTop: number;\r\n  @Input() showCancel = true;\r\n  @Input() showButtons = true;\r\n  @Input() showSeparator = true;\r\n\r\n  display = 'none';\r\n\r\n  constructor(public model: ModelService, public helper: HelperService, public formService: FormService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  startAnimation(event: AnimationEvent) {\r\n    if (event.toState === 'visible') {\r\n      this.display = '';\r\n      if (this.defaultTop != null) {\r\n        this.formService.centerForm(this, this.defaultTop);\r\n      }\r\n    }\r\n  }\r\n\r\n  doneAnimation(event: AnimationEvent) {\r\n    if (event.toState === 'hidden') {\r\n      this.display = 'none';\r\n    }\r\n    this.changeVisibility.emit(event.toState);\r\n  }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { trigger, state, transition, animate, style, AnimationEvent } from '@angular/animations';\r\n\r\n@Component({\r\n  selector: 'sti-group-panel',\r\n  template: `\r\n  <div #groupPanel [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n       [style.color]=\"model.options.toolbarFontColor\"\r\n       [style.minWidth.px]=\"width\"\r\n       [style.margin]=\"margin\"\r\n       [style.overflow]=\"'hidden'\">\r\n      <sti-form-button [caption]=\"caption\"\r\n          [imageName]=\"opened ? 'Arrows.BigArrowDown.png' : 'Arrows.BigArrowRight.png'\"\r\n          [imageCellWidth]=\"'1px'\"\r\n          [captionPadding]=\"'0 15px 0 5px'\"\r\n          [margin]=\"'0px'\"\r\n          [captionAlign]=\"'left'\"\r\n          (action)=\"opened = !opened; action.emit(opened)\">\r\n      </sti-form-button>\r\n\r\n      <div class=\"stiJsViewerGroupPanelContainer\"\r\n           [style.padding]=\"innerPadding\"\r\n           [style.display]=\"display\"\r\n           [@state]=\"opened ? 'opened' : 'closed'\"\r\n           (@state.start)=\"startAnimation($event)\"\r\n           (@state.done)=\"doneAnimation($event)\">\r\n          <ng-content>\r\n\r\n          </ng-content>\r\n      </div>\r\n\r\n\r\n  </div>\r\n  `,\r\n  animations: [\r\n    trigger('state', [\r\n      state('opened', style({ height: '*' })),\r\n      state('closed', style({ height: '0px' })),\r\n      transition('* => *', [\r\n        animate('150ms ease-in-out')])\r\n    ])\r\n  ]\r\n})\r\n\r\nexport class GroupPanelComponent implements OnInit {\r\n\r\n  @Input() width: number;\r\n  @Input() caption: string;\r\n  @Input() innerPadding: string;\r\n  @Input() opened = false;\r\n  @Input() margin: string;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  display = 'none';\r\n\r\n  constructor(public model: ModelService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  startAnimation(event: AnimationEvent) {\r\n    if (event.toState === 'opened') {\r\n      this.display = '';\r\n    }\r\n  }\r\n\r\n  doneAnimation(event: AnimationEvent) {\r\n    if (event.toState === 'closed') {\r\n      this.display = 'none';\r\n    }\r\n  }\r\n}\r\n","import { Component, OnInit, Input, OnDestroy, AfterViewInit, Output, EventEmitter } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { RadioButtonService } from '../services/radio-button.service';\r\n\r\n@Component({\r\n  selector: 'sti-radio-button',\r\n  template: `\r\n    <table [class]=\"enabled ? 'stiJsViewerRadioButton' : 'stiJsViewerRadioButtonDisabled'\" cellpadding=\"0\" cellspacing=\"0\"\r\n      [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n      [style.margin]=\"margin\"\r\n      [attr.title]=\"tooltip\"\r\n      (mouseover)=\"mouseover()\" (mouseout)=\"mouseout()\" (click)=\"click()\">\r\n      <tbody>\r\n        <tr class=\"stiJsViewerClearAllStyles\">\r\n          <td class=\"stiJsViewerClearAllStyles\">\r\n            <div class=\"stiJsViewerRadioButtonOutCircle\" [class]=\"outClass\">\r\n              <div class=\"stiJsViewerRadioButtonInnerCircle\"\r\n                  [style.margin]=\"model.options.isTouchDevice ? '4px' : '3px'\"\r\n                  [style.width]=\"model.options.isTouchDevice ? '9px' : '7px'\"\r\n                  [style.height]=\"model.options.isTouchDevice ? '9px' : '7px'\"\r\n                  [style.visibility]=\"checked ? 'visible' : 'hidden'\"\r\n                  [style.opacity]=\"enabled ? 1 : 0.5\">\r\n              </div>\r\n            </div>\r\n          </td>\r\n          <td *ngIf=\"caption != null\" class=\"stiJsViewerClearAllStyles\" [style.paddingLeft.px]=\"4\" [style.whiteSpace]=\"'nowrap'\">\r\n            {{caption}}\r\n          </td>\r\n          <td class=\"stiJsViewerClearAllStyles\" [style.paddingLeft]=\"paddingLeftLastCell\">\r\n            <ng-content></ng-content>\r\n          </td>\r\n        </tr>\r\n      </tbody>\r\n    </table>\r\n  `\r\n})\r\n\r\nexport class RadioButtonComponent implements OnInit, OnDestroy, AfterViewInit {\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n\r\n  @Input() groupName: string;\r\n  @Input() name: string;\r\n  @Input() enabled = true;\r\n  @Input() checked = false;\r\n  @Input() tooltip: string;\r\n  @Input() caption: string;\r\n  @Input() margin: string;\r\n  @Input() paddingLeftLastCell: string;\r\n\r\n  over = false;\r\n\r\n  constructor(public model: ModelService, public radioService: RadioButtonService) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.radioService.addButton(this);\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.radioService.removeButton(this);\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  mouseover() {\r\n    if (!this.enabled) {\r\n      return;\r\n    }\r\n    this.over = true;\r\n  }\r\n\r\n  mouseout() {\r\n    if (!this.enabled) {\r\n      return;\r\n    }\r\n    this.over = false;\r\n  }\r\n\r\n  click() {\r\n    if (this.enabled) {\r\n      this.checked = true;\r\n      this.radioService.check(this);\r\n      this.action.emit(true);\r\n    }\r\n  }\r\n\r\n  public uncheck() {\r\n    this.checked = false;\r\n    this.action.emit(false);\r\n  }\r\n\r\n  get outClass(): string {\r\n    return !this.enabled ? 'stiJsViewerRadioButtonOutCircleDisabled' : (this.over ? 'stiJsViewerRadioButtonOutCircleOver' : 'stiJsViewerRadioButtonOutCircle');\r\n  }\r\n}\r\n","import { Component, OnInit, Input, OnChanges, ViewChild } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { ExportFormSettings, ExportComponent, ExportGroup } from '../services/objects';\r\nimport { ExportService } from '../services/export.service';\r\nimport { BaseFormComponent } from './base-form.component';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { FormService } from './form.service';\r\nimport { MenuService } from '../menu/menu.service';\r\nimport { ButtonComponent } from '../controls/button.component';\r\nimport { CollectionsService } from '../services/collections.service';\r\nimport { RadioButtonComponent } from '../controls/radio-button.components';\r\nimport { ControllerService } from '../services/controller.service';\r\n\r\n@Component({\r\n  selector: 'sti-export-form',\r\n  template: `\r\n    <sti-base-form #baseForm [fontFamily]=\"model.options.toolbar.fontFamily\"\r\n    [color]=\"model.options.toolbar.fontColor\"\r\n    [fontSize]=\"'12px'\"\r\n    [containerPadding]=\"'3px'\"\r\n    [name]=\"'exportForm'\"\r\n    [caption]=\"model.loc('ExportFormTitle')\"\r\n    [defaultTop]=\"150\"\r\n    (changeVisibility)=\"changeVisibility($event)\"\r\n    (action)=\"action()\">\r\n    <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.width]=\"'100%'\">\r\n      <tbody>\r\n          <tr *ngIf=\"exportFormSettings?.groups.savingReportGroup.visible\" class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n              <sti-group-panel [caption]=\"model.loc('SavingReport')\"\r\n               [width]=\"390\"\r\n               [margin]=\"'4px'\"\r\n               [innerPadding]=\"'4px 0 4px 0'\"\r\n               [opened]=\"exportFormSettings.groups.savingReportGroup.opened\"\r\n               (action)=\"exportFormSettings.groups.savingReportGroup.opened=$event\">\r\n                <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.width]=\"'100%'\">\r\n                  <tbody>\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n                        <sti-radio-button #saveReportMdc\r\n                           [name]=\"baseForm.name + 'SaveReportMdc'\"\r\n                           [groupName]=\"baseForm.name + 'SavingReportGroup'\"\r\n                           [caption]=\"model.loc('SaveReportMdc')\"\r\n                           [margin]=\"'6px 8px 3px 8px'\"\r\n                           [checked]=\"true\"\r\n                           (action)=\"exportService.exportSettings.Format = 'Mdc'\">\r\n                        </sti-radio-button>\r\n                      </td>\r\n                    </tr>\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n                        <sti-radio-button\r\n                           [name]=\"baseForm.name + 'SaveReportMdz'\"\r\n                           [groupName]=\"baseForm.name + 'SavingReportGroup'\"\r\n                           [caption]=\"model.loc('SaveReportMdz')\"\r\n                           [margin]=\"'3px 8px 3px 8px'\"\r\n                           (action)=\"exportService.exportSettings.Format = 'Mdz'\">\r\n                        </sti-radio-button>\r\n                      </td>\r\n                    </tr>\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n                        <sti-radio-button\r\n                           [name]=\"baseForm.name + 'SaveReportMdx'\"\r\n                           [groupName]=\"baseForm.name + 'SavingReportGroup'\"\r\n                           [caption]=\"model.loc('SaveReportMdx')\"\r\n                           [margin]=\"'3px 8px 0px 8px'\"\r\n                           (action)=\"exportService.exportSettings.Format = 'Mdx'\">\r\n                        </sti-radio-button>\r\n                      </td>\r\n                    </tr>\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td class=\"stiJsViewerClearAllStyles\" [style.padding]=\"'0px 8px'\" [style.minWidth.px]=\"150\" [attr.title]=\"model.loc('PasswordSaveReportTooltip')\">\r\n                      {{model.loc('PasswordSaveReport')}}\r\n                      </td>\r\n                      <td>\r\n                        <sti-text-box\r\n                           [width]=\"140\"\r\n                           [tooltip]=\"model.loc('PasswordSaveReportTooltip')\"\r\n                           [margin]=\"'4px 8px 0px 8px'\"\r\n                           [type]=\"getTextBoxType('SaveReportPassword')\"\r\n                           [enabled]=\"exportService.exportSettings.Format == 'Mdx'\"\r\n                           (onchange)=\"exportService.exportSettings.Password = $event.value\">\r\n                        </sti-text-box>\r\n                      </td>\r\n                    </tr>\r\n                  </tbody>\r\n                </table>\r\n              </sti-group-panel>\r\n            </td>\r\n          </tr>\r\n\r\n          <tr *ngIf=\"exportFormSettings?.groups.pageRangeGroup.visible\" class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n              <sti-group-panel [caption]=\"model.loc('PagesRange')\"\r\n               [width]=\"390\"\r\n               [margin]=\"'4px'\"\r\n               [innerPadding]=\"'4px 0 4px 0'\"\r\n               [opened]=\"exportFormSettings.groups.pageRangeGroup.opened\"\r\n               (action)=\"exportFormSettings.groups.pageRangeGroup.opened=$event\">\r\n                <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.width]=\"'100%'\">\r\n                  <tbody>\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n                        <sti-radio-button #pagesRangeAll\r\n                           [name]=\"baseForm.name + 'PagesRangeAll'\"\r\n                           [groupName]=\"baseForm.name + 'PageRangeGroup'\"\r\n                           [caption]=\"model.loc('PagesRangeAll')\"\r\n                           [tooltip]=\"model.loc('PagesRangeAllTooltip')\"\r\n                           [margin]=\"'6px 8px 6px 8px'\"\r\n                           [checked]=\"!exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled\"\r\n                           [enabled]=\"!exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled\"\r\n                           (action)=\"exportService.exportSettings.PageRange = 'All'\">\r\n                        </sti-radio-button>\r\n                      </td>\r\n                    </tr>\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n                        <sti-radio-button #pageRangeCurrentPage\r\n                           [name]=\"baseForm.name + 'PageRangeCurrentPage'\"\r\n                           [groupName]=\"baseForm.name + 'PageRangeGroup'\"\r\n                           [caption]=\"model.loc('PagesRangeCurrentPage')\"\r\n                           [tooltip]=\"model.loc('PagesRangeCurrentPageTooltip')\"\r\n                           [margin]=\"'0px 8px 4px 8px'\"\r\n                           [checked]=\"exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled\"\r\n                           (action)=\"exportService.exportSettings.PageRange = (model.reportParams.pageNumber + 1).toString()\">\r\n                        </sti-radio-button>\r\n                      </td>\r\n                    </tr>\r\n                    <tr class=\"stiJsViewerClearAllStyles\">\r\n                      <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n                        <sti-radio-button\r\n                           [name]=\"baseForm.name + 'PageRangePages'\"\r\n                           [groupName]=\"baseForm.name + 'PageRangeGroup'\"\r\n                           [caption]=\"model.loc('PagesRangePages')\"\r\n                           [tooltip]=\"model.loc('PagesRangePagesTooltip')\"\r\n                           [margin]=\"'0px 8px 0px 8px'\"\r\n                           [paddingLeftLastCell]=\"'60px'\"\r\n                           (action)=\"exportService.exportSettings.PageRange = pagesRange.element.nativeElement.value\">\r\n                              <sti-text-box #pagesRange\r\n                                [width]=\"130\"\r\n                                [tooltip]=\"model.loc('PagesRangePagesTooltip')\"\r\n                                [margin]=\"'0px 0px 0px 30px'\"\r\n                                (onchange)=\"exportService.exportSettings.PageRange = $event.value\"\r\n                                (onblur)=\"exportService.exportSettings.PageRange = $event.value\">\r\n                              </sti-text-box>\r\n                        </sti-radio-button>\r\n                      </td>\r\n                    </tr>\r\n                  </tbody>\r\n                </table>\r\n              </sti-group-panel>\r\n            </td>\r\n          </tr>\r\n\r\n        <tr *ngIf=\"exportFormSettings?.groups.settingsGroup.visible\"class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n              <sti-group-panel [caption]=\"model.loc('SettingsGroup')\"\r\n                [opened]=\"exportFormSettings.groups.settingsGroup.opened\"\r\n                [width]=\"390\"\r\n                [margin]=\"'4px'\"\r\n                [innerPadding]=\"'4px 0 4px 0'\"\r\n                (action)=\"exportFormSettings.groups.settingsGroup.opened=$event\">\r\n                <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.width]=\"'100%'\">\r\n                  <tbody>\r\n                    <tr *ngFor=\"let comp of exportFormSettings.components\">\r\n                      <td *ngIf=\"comp.label != null\" [style.padding]=\"'0px 8px'\" [style.minWidth.px]=\"150\" [attr.title]=\"comp.tooltip\">\r\n                        {{comp.label}}\r\n                      </td>\r\n\r\n                      <td *ngIf=\"comp.name == 'UseDigitalSignature'\">\r\n                        <sti-check-box\r\n                           [tooltip]=\"comp.tooltip\"\r\n                           [margin]=\"comp.margin\"\r\n                           [captionText]=\"comp.caption\"\r\n                           [isChecked]=\"getValue(comp)\"\r\n                           (action)=\"componentAction(comp, $event)\">\r\n                        </sti-check-box>\r\n                      </td>\r\n\r\n                      <td [attr.colSpan]=\"comp.label != null || comp.name == 'DocumentSecurityButton' || comp.name == 'UseDigitalSignature' ? 1 : 2\">\r\n                        <sti-drop-down-list-for-export-form *ngIf=\"comp.type == 'DropDownListForExportForm'\"\r\n                           [width]=\"comp.width\"\r\n                           [items]=\"comp.items\"\r\n                           [key]=\"getValue(comp, 'dropDownList')\"\r\n                           [margin]=\"comp.margin\"\r\n                           [verticalAlign]=\"comp.name == 'ImageQuality' || comp.name == 'ImageResolution' ? 'middle' : null\"\r\n                           [styleDisplay]=\"comp.name == 'ImageQuality' || comp.name == 'ImageResolution' ? 'inline-block' : null\"\r\n                           [enabled]=\"!disabledComponents[comp.name]\"\r\n                           (action)=\"componentAction(comp, $event.key)\">\r\n                        </sti-drop-down-list-for-export-form>\r\n\r\n                        <div *ngIf=\"comp.name == 'ImageQuality' || comp.name == 'ImageResolution'\"\r\n                           [style.display]=\"'inline-block'\">\r\n                          {{comp.name == 'ImageQuality' ? '%' : 'dpi'}}\r\n                        </div>\r\n\r\n                        <sti-text-box *ngIf=\"comp.type == 'TextBox'\"\r\n                           [width]=\"comp.width\"\r\n                           [tooltip]=\"comp.tooltip\"\r\n                           [margin]=\"comp.margin\"\r\n                           [type]=\"getTextBoxType(comp.name)\"\r\n                           [enabled]=\"!comp.disabled\"\r\n                           [value]=\"getValue(comp)\"\r\n                           [enabled]=\"!disabledComponents[comp.name]\"\r\n                           (onchange)=\"componentAction(comp, $event.value)\">\r\n                        </sti-text-box>\r\n\r\n                        <sti-check-box *ngIf=\"comp.type == 'CheckBox' || comp.type == 'DigitalSignature'\"\r\n                           [tooltip]=\"comp.tooltip\"\r\n                           [margin]=\"comp.margin\"\r\n                           [captionText]=\"comp.caption\"\r\n                           [isChecked]=\"getValue(comp)\"\r\n                           [isEnabled]=\"!disabledComponents[comp.name]\"\r\n                           (action)=\"componentAction(comp, $event)\">\r\n                        </sti-check-box>\r\n\r\n                      </td>\r\n\r\n                      <td *ngIf=\"comp.name == 'DocumentSecurityButton'\">\r\n                        <sti-button #button\r\n                           [width]=\"comp.width\"\r\n                           [arrow]=\"'Down'\"\r\n                           [minWidth]=\"'163px'\"\r\n                           [captionAlign]=\"'center'\"\r\n                           [display]=\"'inline-block'\"\r\n                           [styleName]=\"'stiJsViewerFormButton'\"\r\n                           [margin]=\"'2px 8px'\"\r\n                           [innerTableWidth]=\"'100%'\"\r\n                           [captionWidth]=\"'100%'\"\r\n                           [caption]=\"comp.name == 'DocumentSecurityButton' ? comp.caption : ''\"\r\n                           [enabled]=\"!disabledComponents[comp.name + 'Button']\"\r\n                           (action)=\"showMenu(comp, button)\">\r\n                        </sti-button>\r\n                      </td>\r\n                    </tr>\r\n                  </tbody>\r\n                </table>\r\n\r\n              </sti-group-panel>\r\n            </td>\r\n        </tr>\r\n\r\n        <tr *ngIf=\"model.options.exports.showOpenAfterExport && exportFormSettings?.openAfterExport && !exportService.sendMail\" class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerClearAllStyles\" colspan=\"2\">\r\n                <sti-check-box [captionText]=\"model.loc('OpenAfterExport')\"\r\n                  [tooltip]=\"model.loc('OpenAfterExportTooltip')\"\r\n                  [margin]=\"'4px 8px 4px 8px'\"\r\n                  [isChecked]=\"exportService.exportSettings.OpenAfterExport\"\r\n                  (action)=\"exportService.exportSettings.OpenAfterExport = $event\">\r\n                </sti-check-box>\r\n            </td>\r\n        </tr>\r\n      </tbody>\r\n    </table>\r\n\r\n    </sti-base-form>\r\n  `\r\n})\r\n\r\nexport class ExportFormComponent implements OnInit, OnChanges {\r\n\r\n  private PROPERTY_ALIAS = {\r\n    ImageFormatForHtml: 'ImageFormat',\r\n    EncodingTextOrCsvFile: 'Encoding',\r\n    ExportModeRtf: 'ExportMode',\r\n    EncodingDifFile: 'Encoding',\r\n    EncodingDbfFile: 'CodePage'\r\n  };\r\n\r\n  @ViewChild('baseForm') baseForm: BaseFormComponent;\r\n  @ViewChild('saveReportMdc') saveReportMdc: RadioButtonComponent;\r\n  @ViewChild('pagesRangeAll') pagesRangeAll: RadioButtonComponent;\r\n  @ViewChild('pageRangeCurrentPage') pageRangeCurrentPage: RadioButtonComponent;\r\n\r\n  @Input() exportFormSettings: ExportFormSettings;\r\n\r\n  formVisible = false;\r\n  disabledComponents: any = {};\r\n\r\n  constructor(public model: ModelService, public exportService: ExportService, public helper: HelperService, public formService: FormService,\r\n    public menuService: MenuService, public collections: CollectionsService, public controller: ControllerService) { }\r\n\r\n  ngOnChanges(changes: import('@angular/core').SimpleChanges): void {\r\n    if (this.baseForm && this.formService?.form?.name === this.baseForm.name) {\r\n      setTimeout(() => this.updateDisabledComponents());\r\n    }\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  action() {\r\n    this.formService.closeForm(this.baseForm.name);\r\n\r\n    if (this.model.options.exports.storeExportSettings) {\r\n      this.helper.setCookie('StimulsoftWebViewerExportSettings' + this.exportService.getCommonExportFormat(), JSON.stringify(this.exportService.exportSettings));\r\n    }\r\n\r\n    this.exportService.postExport();\r\n  }\r\n\r\n  updateDisabledComponents() {\r\n    ['StandardPdfFonts', 'EmbeddedFonts', 'UseUnicode'].forEach(n => this.disabledComponents[n] = (this.exportService.exportSettings.PdfACompliance === true));\r\n\r\n    this.disabledComponents.ImageQuality = this.exportService.exportSettings.ImageCompressionMethod && this.exportService.exportSettings.ImageCompressionMethod !== 'Jpeg';\r\n\r\n    this.disabledComponents.ExportObjectFormatting = this.exportService.exportSettings.DataExportMode === 'AllBands';\r\n    this.disabledComponents.UseOnePageHeaderAndFooter = this.exportService.exportSettings.DataExportMode != 'AllBands';\r\n\r\n    this.disabledComponents.EncodingDifFile = this.exportService.exportSettings.UseDefaultSystemEncoding;\r\n\r\n    this.disabledComponents.TiffCompressionScheme = this.exportService.exportSettings.ImageType !== 'Tiff';\r\n\r\n    this.disabledComponents.UseDigitalSignature = !this.exportService.exportSettings.UseDigitalSignature || !(this.model.pdfSecurityCertificates?.length > 0);\r\n\r\n    this.disabledComponents.RemoveEmptySpaceAtBottom = this.exportService.exportSettings.UsePageHeadersAndFooters;\r\n\r\n    if (this.exportService.exportSettings.ImageType != null) {\r\n      const ifComponent = this.exportService.exportFormSettings.components.find(c => c.name === 'ImageFormat');\r\n      if (ifComponent != null) {\r\n        ifComponent.items = this.collections.getImageFormatItems(this.exportService.exportSettings.ImageType === 'Emf');\r\n      }\r\n    }\r\n\r\n    this.disabledComponents.DitheringType = this.exportService.exportSettings.ImageFormat !== 'Monochrome';\r\n\r\n    if (this.saveReportMdc) { this.saveReportMdc.click(); }\r\n    if (this.pagesRangeAll && !this.exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled) {\r\n      this.pagesRangeAll.click();\r\n    }\r\n    if (this.pageRangeCurrentPage && this.exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled) {\r\n      this.pageRangeCurrentPage.click();\r\n    }\r\n\r\n    if (this.exportService.exportSettings.CompressToArchive === true) {\r\n      this.exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled = false;\r\n    }\r\n\r\n    if (this.exportService.exportSettings.CompressToArchive === false) {\r\n      this.exportFormSettings.groups.pageRangeGroup.pageRangeAllIsDisabled = true;\r\n    }\r\n  }\r\n\r\n  componentAction(comp: ExportComponent, value?: any) {\r\n    let property = this.PROPERTY_ALIAS[comp.name] || comp.name;\r\n\r\n    switch (property) {\r\n      case 'EmbeddedFonts':\r\n      case 'UseUnicode':\r\n        if (value) {\r\n          this.exportService.exportSettings.StandardPdfFonts = false;\r\n        }\r\n        break;\r\n\r\n      case 'StandardPdfFonts':\r\n        if (value) {\r\n          this.exportService.exportSettings.EmbeddedFonts = false;\r\n          this.exportService.exportSettings.UseUnicode = false;\r\n        }\r\n        break;\r\n\r\n      case 'ImageType':\r\n        this.exportService.export('Image' + value, true);\r\n        break;\r\n\r\n      case 'DataType':\r\n      case 'HtmlType':\r\n        this.exportService.export(value, true);\r\n        break;\r\n\r\n      case 'ExcelType':\r\n        const exportFormat = value === 'ExcelBinary' ? 'Excel' : value;\r\n        this.exportService.export(exportFormat, true);\r\n        break;\r\n\r\n      case 'UseDigitalSignature':\r\n        if (!(value === true || value === false)) {\r\n          property = 'CertificateThumbprint';\r\n        }\r\n        if (value === true && this.collections.getPdfSecurityCertificatesItems().length == 0) {\r\n          value = false;\r\n          this.controller.showError('Warning', 'Certificate Not Found!');\r\n        }\r\n        break;\r\n\r\n      case 'UsePageHeadersAndFooters':\r\n        if (value === true) {\r\n          this.exportService.exportSettings.RemoveEmptySpaceAtBottom = true;\r\n        }\r\n        break;\r\n    }\r\n\r\n    this.exportService.exportSettings[property] = value;\r\n\r\n    this.updateDisabledComponents();\r\n  }\r\n\r\n  getValue(comp: ExportComponent, component?: string): string {\r\n    const property = this.PROPERTY_ALIAS[comp.name] || comp.name;\r\n    switch (property) {\r\n      case 'Zoom2':\r\n        return this.exportService.exportSettings[property].toString();\r\n\r\n      case 'UseDigitalSignature':\r\n        if (component == 'dropDownList') {\r\n          return this.exportService.exportSettings['CertificateThumbprint'];\r\n        }\r\n      default:\r\n        return this.exportService.exportSettings[property];\r\n    }\r\n  }\r\n\r\n  changeVisibility(state: string) {\r\n    this.formVisible = state === 'visible';\r\n\r\n    if (state === 'hidden' && this.exportFormSettings?.groups?.savingReportGroup) {\r\n      this.helper.setCookie('StimulsoftWebViewerExportSettingsOpeningGroups', JSON.stringify({\r\n        SavingReportGroup: this.exportFormSettings.groups.savingReportGroup.opened,\r\n        PageRangeGroup: this.exportFormSettings.groups.pageRangeGroup.opened,\r\n        SettingsGroup: this.exportFormSettings.groups.settingsGroup.opened\r\n      }));\r\n    }\r\n    if (state === 'visible') {\r\n      this.updateDisabledComponents();\r\n    }\r\n  }\r\n\r\n  showMenu(comp: ExportComponent, button: ButtonComponent) {\r\n    let menuName = 'documentSecurityMenu';\r\n    if (comp.name === 'DocumentSecurityButton') {\r\n      this.menuService.addMenu({\r\n        type: menuName, name: menuName, items: [], parent: button.button,\r\n        itemStyleName: 'stiJsViewerMenuStandartItem', menuStyleName: 'stiJsViewerDropdownMenu',\r\n        state: ''\r\n      });\r\n    } else {\r\n      menuName = this.menuService.VERTICAL_MENU_NAME;\r\n      this.menuService.addMenu({\r\n        type: 'buttonMenu', name: menuName, items: this.collections.getPdfSecurityCertificatesItems(), parent: button.button,\r\n        itemStyleName: 'stiJsViewerMenuStandartItem', menuStyleName: 'stiJsViewerDropdownMenu',\r\n        state: ''\r\n      });\r\n    }\r\n\r\n    setTimeout(() => {\r\n      this.menuService.showMenu(menuName);\r\n    });\r\n  }\r\n\r\n  getTextBoxType(name: string) {\r\n    if (name === 'SaveReportPassword' || name === 'PasswordInputUser' || name === 'PasswordInputOwner') {\r\n      return this.formVisible ? 'password' : '';\r\n    }\r\n    return null;\r\n  }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'sti-text-area',\r\n  template: `\r\n    <textarea\r\n      [style.width.px]=\"width\"\r\n      [style.minWidth.px]=\"width\"\r\n      [style.height.px]=\"height\"\r\n      [style.minHeight.px]=\"height\"\r\n      [class]=\"className\"\r\n      [value]=\"value || ''\"\r\n      [style.margin]=\"margin\"\r\n      [style.cursor]=\"readOnly ? 'default' : ''\"\r\n      [style.padding]=\"padding\"\r\n      [style.paddingTop.px]=\"3\"\r\n      [style.fontFamily]=\"'Arial'\"\r\n      (mouseover)=\"over=true\"\r\n      (mouseleave)=\"over=false\"\r\n      (focused)=\"focused=true; selected=true\"\r\n      (blur)=\"focused=false; selected=false; onblur.emit($event.target)\"\r\n      (keypress)=\"keypress($event)\"\r\n      (keyup)=\"onchanged($event)\">\r\n    </textarea>\r\n  `\r\n})\r\n\r\nexport class TextAreaComponent implements OnInit {\r\n\r\n  @Input() width: number;\r\n  @Input() height: number;\r\n  @Input() enabled = true;\r\n  @Input() value: string;\r\n  @Input() padding: string;\r\n  @Input() margin: string;\r\n\r\n  @Output() action: EventEmitter<any> = new EventEmitter();\r\n  @Output() onchange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onblur: EventEmitter<any> = new EventEmitter();\r\n\r\n  selected = false;\r\n  focused = false;\r\n  over = false;\r\n\r\n  _readOnly = false;\r\n\r\n  styleName = 'stiJsViewerTextBox';\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() { }\r\n\r\n  keypress(event: KeyboardEvent) {\r\n    if (!this.enabled) {\r\n      return false;\r\n    }\r\n    if (event.keyCode === 13) {\r\n      this.action.emit(event.target);\r\n    }\r\n  }\r\n\r\n  onchanged(event: KeyboardEvent) {\r\n    this.onchange.emit(event.target);\r\n  }\r\n\r\n  get className(): string {\r\n    if (this._readOnly) {\r\n      return this.styleName + ' ' + this.styleName + 'Default';\r\n    }\r\n    return this.styleName + ' ' + this.styleName + (this.selected ? 'Over' : (this.enabled ? (this.over ? 'Over' : 'Default') : 'Disabled'));\r\n  }\r\n\r\n  get readOnly(): boolean {\r\n    return this._readOnly;\r\n  }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { MailService } from '../services/mail.service';\r\nimport { ExportService } from '../services/export.service';\r\n\r\n@Component({\r\n  selector: 'sti-send-email-form',\r\n  template: `\r\n    <sti-base-form #baseForm [fontFamily]=\"model.options.toolbar.fontFamily\"\r\n      [color]=\"model.options.toolbar.fontColor\"\r\n      [fontSize]=\"'12px'\"\r\n      [name]=\"'sendEmailForm'\"\r\n      [caption]=\"model.loc('EmailOptions')\"\r\n      [level]=\"1\"\r\n      [defaultTop]=\"150\"\r\n      (action)=\"this.mailService.sendMail()\">\r\n      <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.width]=\"'100%'\">\r\n        <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerCaptionControls\" [style.padding]=\"model.options.isMobileDevice ? '0 25px 0 4px' : ''\">\r\n                {{model.loc('Email')}}\r\n              </td>\r\n              <td *ngIf=\"!model.options.isMobileDevice\">\r\n                <sti-text-box [margin]=\"model.options.isMobileDevice ? '4px 4px 12px 4px' : '4px'\"\r\n                  [value]=\"exportService.exportSettings.Email\"\r\n                  [width]=\"model.options.isMobileDevice ? 200 : 280\"\r\n                  (onchange)=\"exportService.exportSettings.Email = $event.value\">\r\n                </sti-text-box>\r\n              </td>\r\n            </tr>\r\n            <tr class=\"stiJsViewerClearAllStyles\" *ngIf=\"model.options.isMobileDevice\">\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                <sti-text-box [margin]=\"model.options.isMobileDevice ? '4px 4px 12px 4px' : '4px'\"\r\n                  [value]=\"exportService.exportSettings.Email\"\r\n                  [width]=\"model.options.isMobileDevice ? 200 : 280\"\r\n                  (onchange)=\"exportService.exportSettings.Email = $event.value\">\r\n                </sti-text-box>\r\n              </td>\r\n            </tr>\r\n\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerCaptionControls\" [style.padding]=\"model.options.isMobileDevice ? '0 25px 0 4px' : ''\">\r\n                {{model.loc('Subject')}}\r\n              </td>\r\n              <td *ngIf=\"!model.options.isMobileDevice\">\r\n                <sti-text-box [margin]=\"model.options.isMobileDevice ? '4px 4px 12px 4px' : '4px'\"\r\n                  [value]=\"exportService.exportSettings.Subject\"\r\n                  [width]=\"model.options.isMobileDevice ? 200 : 280\"\r\n                  (onchange)=\"exportService.exportSettings.Subject = $event.value\">\r\n                </sti-text-box>\r\n              </td>\r\n            </tr>\r\n            <tr class=\"stiJsViewerClearAllStyles\" *ngIf=\"model.options.isMobileDevice\">\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                <sti-text-box [margin]=\"model.options.isMobileDevice ? '4px 4px 12px 4px' : '4px'\"\r\n                  [value]=\"exportService.exportSettings.Subject\"\r\n                  [width]=\"model.options.isMobileDevice ? 200 : 280\"\r\n                  (onchange)=\"exportService.exportSettings.Subject = $event.value\">\r\n                </sti-text-box>\r\n              </td>\r\n            </tr>\r\n\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerCaptionControls\" [style.padding]=\"model.options.isMobileDevice ? '0 25px 0 4px' : ''\">\r\n                {{model.loc('Message')}}\r\n              </td>\r\n              <td *ngIf=\"!model.options.isMobileDevice\">\r\n                <sti-text-area [margin]=\"model.options.isMobileDevice ? '4px 4px 12px 4px' : '4px'\"\r\n                  [value]=\"exportService.exportSettings.Message\"\r\n                  [height]=\"70\"\r\n                  [width]=\"model.options.isMobileDevice ? 200 : 280\"\r\n                  (onchange)=\"exportService.exportSettings.Message = $event.value\">\r\n                </sti-text-area>\r\n              </td>\r\n            </tr>\r\n            <tr class=\"stiJsViewerClearAllStyles\" *ngIf=\"model.options.isMobileDevice\">\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                <sti-text-area [margin]=\"model.options.isMobileDevice ? '4px 4px 12px 4px' : '4px'\"\r\n                  [value]=\"exportService.exportSettings.Message\"\r\n                  [height]=\"70\"\r\n                  [width]=\"model.options.isMobileDevice ? 200 : 280\"\r\n                  (onchange)=\"exportService.exportSettings.Message = $event.value\">\r\n                </sti-text-area>\r\n              </td>\r\n            </tr>\r\n\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerCaptionControls\" [style.padding]=\"model.options.isMobileDevice ? '0 25px 0 4px' : ''\">\r\n                {{model.loc('Attachment')}}\r\n              </td>\r\n              <td *ngIf=\"!model.options.isMobileDevice\">\r\n                <div [style.margin.px]=\"4\">\r\n                  {{exportService.exportSettings.Attachment}}\r\n                </div>\r\n              </td>\r\n            </tr>\r\n            <tr class=\"stiJsViewerClearAllStyles\" *ngIf=\"model.options.isMobileDevice\">\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                <div [style.margin.px]=\"4\">\r\n                  {{exportService.exportSettings.Attachment}}\r\n                </div>\r\n              </td>\r\n            </tr>\r\n        </tbody>\r\n      </table>\r\n    </sti-base-form>\r\n  `\r\n})\r\n\r\nexport class SendEmailFormComponent implements OnInit {\r\n\r\n  constructor(public model: ModelService, public mailService: MailService, public exportService: ExportService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { DrillDownService } from '../services/drill-down.service';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { Message, DrillDown } from '../services/objects';\r\n\r\n@Component({\r\n  selector: 'sti-drill-down-panel',\r\n  template: `\r\n  <div #element [class]=\"'stiJsViewerToolBar' + (model.options.toolbar.displayMode == 'Separated' ? ' stiJsViewerToolBarSeparated' : '')\"\r\n    [style.display]=\"model.controls.drillDownPanel.visible ? '' : 'none'\">\r\n    <div [style.paddingTop]=\"model.options.toolbar.displayMode == 'Simple' ? '2px' : ''\">\r\n      <table class=\"stiJsViewerToolBarTable\" cellpadding=\"0\" cellspacing=\"0\" [style.margin.px]=\"0\" [style.boxSizing]=\"'border-box'\"\r\n        [style.border]=\"model.options.toolbar.displayMode == 'Separated' ? '0px' : ''\"\r\n        [style.color]=\"model.options.toolbar.fontColor\"\r\n        [style.fontFamily]=\"model.options.toolbar.fontFamily\">\r\n        <tbody>\r\n          <tr class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerClearAllStyles\">\r\n              <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\">\r\n                <tbody>\r\n                  <tr class=\"stiJsViewerClearAllStyles\">\r\n                    <td *ngFor=\"let button of model.drillDownButtons; index as i\" class=\"stiJsViewerClearAllStyles\" [style.padding.px]=\"0\" [style.border.px]=\"0\" [style.lineHeight]=\"0\">\r\n                      <sti-button [display]=\"button.visible ? 'inline-block': 'none'\"\r\n                        [margin]=\"'2px 1px 2px 2px'\"\r\n                        [caption]=\"button.caption\"\r\n                        [height]=\"model.options.toolbar.displayMode == 'Separated' ? '28px' : null\"\r\n                        [display]=\"'inline-block'\"\r\n                        [selected]=\"button.selected\"\r\n                        [closeButton]=\"i > 0\"\r\n                        (action)=\"action(button)\"\r\n                        (closeButtonAction)=\"close(button)\">\r\n                      </sti-button>\r\n                    </td>\r\n                  </tr>\r\n                </tbody>\r\n              </table>\r\n            </td>\r\n          </tr>\r\n        </tbody>\r\n      </table>\r\n    </div>\r\n  </div>\r\n  `\r\n})\r\n\r\nexport class DrillDownPanelComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  constructor(public model: ModelService, public drillDownService: DrillDownService, public controller: ControllerService) {\r\n    controller.getMessage().subscribe((message: Message) => {\r\n      if (message?.action === 'DrillDown' && this.element) {\r\n        this.element.nativeElement.scrollTop = 0;\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.model.controls.drillDownPanel.el = this.element;\r\n  }\r\n\r\n  action(button: DrillDown) {\r\n    this.drillDownService.saveState();\r\n    this.model.drillDownButtons.forEach(b => b.selected = false);\r\n    button.selected = true;\r\n    this.model.setReportParams(button.reportParams);\r\n    this.element.nativeElement.scrollTop = 0;\r\n    this.controller.getPages();\r\n  }\r\n\r\n  close(button: DrillDown) {\r\n    this.model.drillDownButtons.splice(this.model.drillDownButtons.indexOf(button), 1);\r\n    button.visible = false;\r\n    if (button.selected) {\r\n      this.action(this.model.drillDownButtons[0]);\r\n    }\r\n  }\r\n}\r\n","import { Component, OnInit, Input, OnChanges, ViewChild, ElementRef } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { ControllerService } from '../services/controller.service';\r\n\r\n@Component({\r\n  selector: 'sti-open-dialog',\r\n  template: `\r\n    <input #element *ngIf=\"model.openDialogFileMask != null\"  type=\"file\" name=\"files[]\" multiple=\"\" [style.display]=\"'none'\"\r\n      [attr.accept]=\"model.openDialogFileMask\"\r\n      (change)=\"onchange($event)\">\r\n  `\r\n})\r\n\r\nexport class OpenDialogComponent implements OnInit, OnChanges {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  @Input() fileMask: string;\r\n\r\n  constructor(public model: ModelService, public controller: ControllerService) { }\r\n\r\n  ngOnChanges(changes: import('@angular/core').SimpleChanges): void {\r\n    if (this.fileMask != null && this.model.openDialogFileMask != null) {\r\n      setTimeout(() => {\r\n        this.element.nativeElement.focus();\r\n        this.element.nativeElement.click();\r\n      });\r\n    }\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  onchange(event: any) {\r\n    const files: any[] = event.target.files;\r\n    const fileName = files[0] ? files[0].name : 'Report';\r\n    const filePath = event.target.value;\r\n    const reader = new FileReader();\r\n\r\n    reader.onload = (e: any) => {\r\n      this.controller.loadFile(fileName, e.target.result);\r\n    };\r\n\r\n    this.model.openDialogFileMask = null;\r\n    reader.readAsDataURL(files[0]);\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { FormService } from './form.service';\r\nimport { TextBoxComponent } from '../controls/text-box.componet';\r\n\r\n@Component({\r\n  selector: 'sti-password-form',\r\n  template: `\r\n    <sti-base-form [fontFamily]=\"model.options.toolbar.fontFamily\"\r\n      [color]=\"model.options.toolbar.fontColor\"\r\n      [name]=\"'passwordForm'\"\r\n      [caption]=\"model.loc('PasswordSaveReport').replace(':', '')\"\r\n      [level]=\"2\"\r\n      [defaultTop]=\"150\"\r\n      (changeVisibility)=\"changeVisibility($event)\"\r\n      (action)=\"action()\">\r\n      <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\" [style.margin.px]=\"5\">\r\n        <tbody>\r\n          <tr class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerCaptionControls\">\r\n              {{model.loc('PasswordEnter')}}\r\n            </td>\r\n            <td class=\"stiJsViewerCaptionControls\">\r\n              <sti-text-box #textBox [type]=\"'password'\" [autocomplete]=\"'new-password'\" [width]=\"200\" [focusOnCreate]=\"true\" [value]=\"password\" (onchange)=\"password = $event.value\">\r\n              </sti-text-box>\r\n            </td>\r\n          </tr>\r\n        </tbody>\r\n      </table>\r\n    </sti-base-form>\r\n  `\r\n})\r\n\r\nexport class PasswordFormComponent implements OnInit {\r\n\r\n  @ViewChild('textBox') textBox: TextBoxComponent;\r\n\r\n  password: string;\r\n\r\n  constructor(public model: ModelService, public controller: ControllerService, public formService: FormService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  changeVisibility(state: string) {\r\n    if (state === 'visible') {\r\n      this.password = '';\r\n      this.textBox.element.nativeElement.focus();\r\n    }\r\n  }\r\n\r\n  action() {\r\n    const data = this.formService.form.formData;\r\n    data.openingFilePassword = this.password;\r\n    this.formService.closeForm('passwordForm');\r\n\r\n    this.controller.postOpen(data);\r\n  }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { FormService } from './form.service';\r\n\r\n@Component({\r\n  selector: 'sti-error-message-form',\r\n  template: `\r\n    <sti-base-form [fontFamily]=\"model.options.toolbar.fontFamily\"\r\n      [color]=\"model.options.toolbar.fontColor\"\r\n      [name]=\"'errorMessageForm'\"\r\n      [caption]=\"model.loc(model.errorMessage?.type == 'Error' ? 'Error' : 'FormViewerTitle')\"\r\n      [level]=\"4\"\r\n      [defaultTop]=\"150\"\r\n      [showCancel]=\"false\"\r\n      (action)=\"formService.closeForm('errorMessageForm')\">\r\n      <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\">\r\n        <tbody>\r\n          <tr class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerClearAllStyles\">\r\n              <img [attr.src]=\"getImage()\" [style.padding.px]=\"15\" [style.height.px]=\"32\" [style.width.px]=\"32\">\r\n            </td>\r\n            <td class=\"stiJsViewerMessagesFormDescription\" [style.maxWidth.px]=\"600\"\r\n              [style.color]=\"model.options.toolbar.fontColor\" [innerHTML]=\"model.errorMessage?.error\">\r\n            </td>\r\n          </tr>\r\n        </tbody>\r\n      </table>\r\n    </sti-base-form>\r\n  `\r\n})\r\n\r\nexport class ErrorMessageFormComponent implements OnInit {\r\n\r\n  constructor(public model: ModelService, public formService: FormService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  getImage() {\r\n    const messageType = this.model.errorMessage?.type;\r\n\r\n    if (messageType === 'Warning') {\r\n      return this.model.img('MsgFormWarning.png');\r\n    } else if (messageType === true || messageType === 'Info') {\r\n      return this.model.img('MsgFormInfo.png');\r\n    } else {\r\n      return this.model.img('MsgFormError.png');\r\n    }\r\n  }\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { Message, Resource } from '../services/objects';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { MenuItem } from '../menu/meni-item.component';\r\n\r\n@Component({\r\n  selector: 'sti-resources-panel',\r\n  template: `\r\n    <div #element [style.zIndex]=\"3\"\r\n      [style.display]=\"this.model.controls.resourcesPanel.visible ? '' : 'none'\"\r\n      [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n      [style.fontColor]=\"model.options.toolbar.fontColor\"\r\n      [class]=\"'stiJsViewerToolBar' + (model.options.toolbar.displayMode == 'Separated' ? ' stiJsViewerToolBarSeparated' : '')\">\r\n      <div [style.paddingTop]=\"model.options.toolbar.displayMode == 'Simple' ? '2px' : ''\">\r\n        <div class=\"stiJsViewerToolBarTable\" [style.boxSizing]=\"'border-box'\" [style.display]=\"'table'\"\r\n          [style.border]=\"model.options.toolbar.displayMode == 'Separated' ? '0px' : ''\">\r\n          <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\">\r\n            <tbody>\r\n              <tr class=\"stiJsViewerClearAllStyles\">\r\n                <td *ngFor=\"let resource of model.reportParams.resources\" class=\"stiJsViewerClearAllStyles\">\r\n                  <sti-button [caption]=\"resource.name\"\r\n                    [caption2]=\"helper.getHumanFileSize(resource.size, 1)\"\r\n                    [imageName]=\"getResourceImage(resource.type)\"\r\n                    [styleName]=\"'stiJsViewerFormButton'\"\r\n                    [height]=\"'auto'\"\r\n                    [margin]=\"'3px 0 3px 3px'\"\r\n                    [innerTableWidth]=\"'100%'\"\r\n                    [minWidth]=\"'80px'\"\r\n                    [captionAlign]=\"'left'\"\r\n                    [captionPaddingLeft]=\"'3px'\"\r\n                    [captionMaxWidth]=\"'150px'\"\r\n                    [captionLineHeight]=\"'14px'\"\r\n                    [captionWhiteSpace]=\"'nowrap'\"\r\n                    [captionOverflow]=\"'hidden'\"\r\n                    [captionTextOverflow]=\"'ellipsis'\"\r\n                    [imageCellWidth]=\"'1px'\"\r\n                    [imageCellPadding]=\"'4px 8px 4px 4px'\"\r\n                    [menuItems]=\"getMenuItems(resource)\"\r\n                    [resourceButton]=\"true\"\r\n                    [imageSizesWidth]=\"32\"\r\n                    [imageSizesHeight]=\"32\"\r\n                    [actionName]=\"getActionName(resource)\"\r\n                    (action)=\"action(resource)\">\r\n                  </sti-button>\r\n                </td>\r\n              </tr>\r\n            </tbody>\r\n          </table>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  `\r\n})\r\n\r\nexport class ResourcesPanelComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  constructor(public model: ModelService, public controller: ControllerService, public helper: HelperService) {\r\n    controller.getMessage().subscribe((message: Message) => {\r\n      if (message.action === 'GetReport' || message.action === 'OpenReport') {\r\n        this.model.controls.resourcesPanel.visible = this.model.reportParams.resources?.length > 0;\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.model.controls.resourcesPanel.el = this.element;\r\n  }\r\n\r\n  action(resource: Resource) {\r\n    const resTypesAllowedViewInBrowser = ['Image', 'Pdf', 'Txt'];\r\n    const viewType = resTypesAllowedViewInBrowser.indexOf(resource.type) >= 0 ? 'View' : 'SaveFile';\r\n    this.controller.postReportResource(resource.name, this.model.options.jsMode ? 'SaveFile' : viewType);\r\n  }\r\n\r\n  getResourceImage(resourceType: string): string {\r\n    if (this.model.img('BigResource' + resourceType + '.png') !== '') {\r\n      return 'BigResource' + resourceType + '.png';\r\n    } else {\r\n      return 'BigResource.png';\r\n    }\r\n  }\r\n\r\n  getMenuItems(resource: Resource): MenuItem[] {\r\n    const items: MenuItem[] = [];\r\n    items.push({ name: 'Resource' + 'View', caption: this.model.loc('ButtonView'), value: resource });\r\n    items.push({ name: 'Resource' + 'SaveFile', caption: this.model.loc('SaveFile'), value: resource });\r\n    return items;\r\n  }\r\n\r\n  getActionName(resource: Resource): string {\r\n    if (!resource.id) {\r\n      resource.id = Math.random().toString();\r\n    }\r\n    return 'resource' + resource.name + resource.id;\r\n  }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\n\r\n@Component({\r\n  selector: 'sti-progress',\r\n  template: `\r\n    <div [style.position]=\"'absolute'\"\r\n        [style.zIndex]=\"1000\"\r\n        [style.left]=\"'calc(50% - 35px)'\"\r\n        [style.top]=\"model.options.appearance.fullScreenMode ? 'calc(50% - 100px)' : '250px'\"\r\n        [style.display]=\"model.showProgress ? '' : 'none'\">\r\n      <div class=\"js_viewer_loader js_viewer_loader_default\"></div>\r\n    </div>\r\n  `\r\n})\r\n\r\nexport class ProgressComponent implements OnInit {\r\n\r\n  constructor(public model: ModelService) { }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { ComponentDescription, Message } from '../services/objects';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { PageService } from '../services/page.service';\r\n\r\n@Component({\r\n  selector: 'sti-navigate-panel',\r\n  template: `\r\n  <div #element class=\"stiJsViewerNavigatePanel\" [style.display]=\"'block'\"\r\n    [style.display]=\"!model.options.isMobileDevice ? (this.model.controls.navigatePanel.visible ? '' : 'none') : ''\"\r\n    [style.transition]=\"model.options.isMobileDevice ? 'margin 300ms ease, opacity 300ms ease' : null\"\r\n    [style.zIndex]=\"model.options.isMobileDevice ? (model.options.toolbar.autoHide ? 5 : 2) : null\"\r\n    [style.opacity]=\"model.options.isMobileDevice ? (model.controls.navigatePanel.visible ? (model.options.toolbar.autoHide ? 0.9 : 1) : 0) : 1\"\r\n    [style.marginBottom]=\"model.options.isMobileDevice && !model.controls.navigatePanel.visible ? '-0.55in' : 0\">\r\n    <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\">\r\n      <tbody>\r\n        <tr class=\"stiJsViewerClearAllStyles\">\r\n          <td *ngFor=\"let comp of comps\" class=\"stiJsViewerClearAllStyles\" [style.width]=\"comp.type == 'space' ? '100%' : null\">\r\n            <sti-button *ngIf=\"comp.type=='button'\"\r\n              [caption]=\"comp.caption\"\r\n              [imageName]=\"comp.img\"\r\n              [arrow]=\"comp.arrow\"\r\n              [menuItems]=\"comp.menuItems\"\r\n              [actionName]=\"comp.action\"\r\n              [tooltip]=\"comp.tooltip\"\r\n              [styleName]=\"'stiJsViewerNavigateButton'\"\r\n              [height]=\"model.options.isMobileDevice ? '0.5in' : '35px'\"\r\n              [width]=\"model.options.isMobileDevice ? '0.4in' : '35px'\"\r\n              [boxSizing]=\"'border-box'\"\r\n              [arrowMarginTop]=\"'1px'\"\r\n              [enabled]=\"enabled(comp)\"\r\n              [imageCellTextAlign]=\"'center'\"\r\n              [innerTableWidth]=\"'100%'\"\r\n              [navagationPanelTooltip]=\"true\"\r\n              [margin]=\"comp.action == 'FirstPage' ? '0 1px 0 3px' : (comp.action == 'Zoom' ? '0 3px 0 1px' : '0px 1px 0 1px')\"\r\n              [selected]=\"selected(comp)\"\r\n              (action)=\"controller.action({ name: comp.action })\">\r\n            </sti-button>\r\n\r\n            <div *ngIf=\"comp.type=='separator'\"\r\n              [style.height]=\"model.options.isMobileDevice ? '0.5in' : '35px'\"\r\n              [style.margin]=\"'0px 1px 0 1px'\"\r\n              class=\"stiJsViewerNavigatePanelSeparator\"></div>\r\n\r\n            <sti-page-control *ngIf=\"comp.type=='pageControl'\"\r\n              [enabled]=\"!(model.reportParams.pagesCount <= 1 || disableNaviButtons())\"\r\n              [count]=\"model.reportParams.pagesCount\"\r\n              [margin]=\"'0px 1px 0 1px'\"\r\n              [textBoxBorder]=\"'0px'\"></sti-page-control>\r\n          </td>\r\n        </tr>\r\n      </tbody>\r\n    </table>\r\n    <div class=\"stiJsViewerNavigatePanelDisabledPanel\" [style.display]=\"this.model.controls.navigatePanel.enabled ? 'none' : 'block'\"></div>\r\n  </div>\r\n  `\r\n})\r\n\r\nexport class NavigatePanelComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  public comps: ComponentDescription[] = [];\r\n\r\n  constructor(public model: ModelService, public controller: ControllerService, public helper: HelperService,\r\n    public pageService: PageService) { }\r\n\r\n  ngOnInit() {\r\n    if (this.model.options.toolbar.displayMode === 'Separated') {\r\n      this.initButtons();\r\n    }\r\n    this.controller.getMessage().subscribe((message: Message) => {\r\n      if (message.action !== 'viewer_loaded') {\r\n        this.updateButtons();\r\n      }\r\n    });\r\n    this.model.controls.navigatePanel.visible = this.model.options.toolbar.displayMode === 'Separated';\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.model.controls.navigatePanel.el = this.element;\r\n  }\r\n\r\n  updateButtons() {\r\n    this.comps.filter(i => i.action === 'ViewMode').forEach(m => m.caption = this.model.loc(this.model.reportParams.viewMode));\r\n    this.comps.filter(i => i.action === 'Zoom').forEach((m) => {\r\n      m.menuItems.forEach(n => n.selected = n.name === ('Zoom' + this.model.reportParams.zoom));\r\n      m.caption = Math.round(this.model.reportParams.zoom) + '%';\r\n    });\r\n\r\n    this.comps.filter(i => i.action === 'ShowFind').forEach((m) => {\r\n      m.selected = this.model.controls.findPanel.visible;\r\n    });\r\n  }\r\n\r\n  initButtons() {\r\n    const comps: ComponentDescription[] = [];\r\n    if (this.model.options.toolbar.showFirstPageButton) {\r\n      comps.push({ type: 'button', action: 'FirstPage', img: 'PageFirst20.png', tooltip: true });\r\n    }\r\n    if (this.model.options.toolbar.showPreviousPageButton) {\r\n      comps.push({ type: 'button', action: 'PrevPage', img: 'PagePrevious20.png', tooltip: true });\r\n    }\r\n\r\n    if (this.model.options.toolbar.showCurrentPageControl) {\r\n      comps.push({ type: 'separator' });\r\n      comps.push({ type: 'pageControl' });\r\n      comps.push({ type: 'separator' });\r\n    }\r\n\r\n    if (this.model.options.toolbar.showNextPageButton) {\r\n      comps.push({ type: 'button', action: 'NextPage', img: 'PageNext20.png', tooltip: true });\r\n    }\r\n\r\n    if (this.model.options.toolbar.showLastPageButton) {\r\n      comps.push({ type: 'button', action: 'LastPage', img: 'PageLast20.png', tooltip: true });\r\n    }\r\n\r\n    comps.push({ type: 'space' });\r\n    comps.push({ type: 'button', action: 'ZoomPageWidth', img: 'ZoomPageWidth20.png', tooltip: true });\r\n    comps.push({ type: 'button', action: 'ZoomOnePage', img: 'ZoomOnePage20.png', tooltip: true });\r\n\r\n    if (this.model.options.toolbar.showZoomButton) {\r\n      comps.push({ type: 'separator' });\r\n      comps.push({\r\n        type: 'button', action: 'Zoom', caption: '100%', tooltip: true, arrow: 'Arrows.SmallArrowUpWhite.png',\r\n        menuItems: this.helper.getZoomMenuItems()\r\n      });\r\n    }\r\n\r\n    this.comps = comps;\r\n  }\r\n\r\n  enabled(desc: ComponentDescription): boolean {\r\n    const disableNaviButtons = this.disableNaviButtons();\r\n    switch (desc.action) {\r\n      case 'FirstPage':\r\n      case 'PrevPage':\r\n        return this.model.reportParams.pageNumber > 0 && !disableNaviButtons;\r\n      case 'NextPage':\r\n      case 'LastPage':\r\n        return this.model.reportParams.pageNumber < this.model.reportParams.pagesCount - 1 && !disableNaviButtons;\r\n    }\r\n    return true;\r\n  }\r\n\r\n  selected(desc: ComponentDescription): boolean {\r\n    switch (desc.action) {\r\n      case 'ZoomPageWidth':\r\n        return Math.round(this.model.reportParams.zoom) === Math.round(this.pageService.getZoomByPageWidth());\r\n      case 'ZoomOnePage':\r\n        return Math.round(this.model.reportParams.zoom) === Math.round(this.pageService.getZoomByPageHeight());\r\n    }\r\n    return false;\r\n  }\r\n\r\n  disableNaviButtons(): boolean {\r\n    return this.model.reportParams.viewMode === 'MultiplePages' || this.model.reportParams.viewMode === 'WholeReport' ||\r\n      (this.model.reportParams.viewMode === 'Continuous' && !this.model.options.appearance.scrollbarsMode && !this.model.options.appearance.fullScreenMode);\r\n  }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { Message } from '../services/objects';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { FormService } from '../forms/form.service';\r\nimport { ModelService } from '../services/model.service';\r\n\r\n@Component({\r\n  selector: 'sti-about-panel',\r\n  template: `\r\n    <div #element class=\"stiJsViewerAboutPanel\" [style.backgroundSize]=\"'contain'\"\r\n      [style.display]=\"formService.form?.name == 'about' ? '' : 'none'\"\r\n      [style.left.px]=\"left\"\r\n      [style.top.px]=\"top\"\r\n      [style.opacity]=\"opacity\"\r\n      (click)=\"close()\" >\r\n      <div class=\"stiJsViewerAboutPanelHeader\">\r\n        Stimulsoft Reports\r\n      </div>\r\n      <img src=\"{{model.img('About.png')}}\"\r\n          [style.marginTop.px]=\"30\"\r\n          [style.height.px]=\"94\"\r\n          [style.width.px]=\"94\">\r\n      <div class=\"stiJsViewerAboutPanelCopyright\">\r\n        {{'Copyright 2003-' + year + ' Stimulsoft'}}\r\n      </div>\r\n      <div class=\"stiJsViewerAboutPanelVersion\">\r\n        {{model.options.productVersion?.trim()}}, {{model.options?.frameworkType}}, Angular\r\n      </div>\r\n      <div class=\"stiJsViewerAboutPanelVersion\">\r\n        All rights reserved\r\n      </div>\r\n      <div class=\"stiJsViewerAboutPanelVersion\"\r\n        [style.marginTop.px]=\"20\"\r\n        [style.fontWeight]=\"'bold'\"\r\n        [style.color]=\"isLicensed() ? 'red' : '#444444'\"\r\n        [style.display]=\"isLicensed() || userLabel ? '' : 'none'\">\r\n        {{userLabel}}\r\n      </div>\r\n      <div class=\"stiJsViewerFormSeparator\" [style.marginTop.px]=\"20\">\r\n      </div>\r\n      <div class=\"stiJsViewerAboutPanelStiLink\" (click)='click($event)'>\r\n        www.stimulsoft.com\r\n      </div>\r\n    </div>\r\n  `\r\n})\r\n\r\nexport class AboutPanelComponent implements OnInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  year: number = new Date().getFullYear();\r\n  jsHelper: any;\r\n  top = 0;\r\n  left = 0;\r\n  opacity = 0;\r\n\r\n  constructor(public model: ModelService, public controller: ControllerService, public helper: HelperService,\r\n    public formService: FormService) {\r\n    controller.getActionMessage().subscribe((message: Message) => {\r\n      if (message.action === 'About') {\r\n        this.formService.form = { name: 'about', left: 0, top: 0, isMooving: false, level: 2 };\r\n        this.opacity = 0;\r\n        setTimeout(() => {\r\n          this.top = this.model.viewerSize.height / 2 - this.element.nativeElement.offsetHeight / 2;\r\n          this.left = this.model.viewerSize.width / 2 - this.element.nativeElement.offsetWidth / 2;\r\n          this.opacity = 1;\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  close() {\r\n    this.formService.closeForm('about');\r\n  }\r\n\r\n  click(event: any) {\r\n    if (event) {\r\n      event.stopPropagation();\r\n      event.preventDefault();\r\n    }\r\n    this.helper.openNewWindow('https://www.stimulsoft.com');\r\n  }\r\n\r\n  isLicensed(): boolean {\r\n    return !this.model.options.cloudMode && !this.model.options.serverMode && !this.model.options.standaloneJsMode &&\r\n      !this.model.options.reportDesignerMode && !this.model.options.licenseIsValid;\r\n  }\r\n\r\n  get userLabel(): string {\r\n    let userName = this.model.options.licenseUserName || '';\r\n    if (this.isLicensed()) {\r\n      if (userName) {\r\n        userName += ', ';\r\n      }\r\n      return userName + this.helper.getBackText(true) + ' Version';\r\n    } else {\r\n      return userName;\r\n    }\r\n  }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { ControllerService } from '../services/controller.service';\r\nimport { Message } from '../services/objects';\r\nimport { HelperService } from '../services/helper.service';\r\n\r\n@Component({\r\n  selector: 'sti-center-text',\r\n  template: `\r\n    <div #element\r\n      [style.position]=\"'absolute'\"\r\n      [style.zIndex]=\"1000\"\r\n      [style.transitionProperty]=\"opacity\"\r\n      [style.transitionDuration]=\"'300ms'\"\r\n      [style.textShadow]=\"'rgb(0, 0, 0) -1px -1px 0px, rgb(0, 0, 0) 1px -1px 0px, rgb(0, 0, 0) -1px 1px 0px, rgb(0, 0, 0) 1px 1px 0px'\"\r\n      [style.fontSize.px]=\"100\"\r\n      [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n      [style.color]=\"model.options.toolbar.fontColor\"\r\n      [style.opacity]=\"opacity\"\r\n      [style.display]=\"display\">\r\n      <div>\r\n        {{text}}\r\n      </div>\r\n    </div>\r\n  `\r\n})\r\n\r\nexport class CenterTextComponent implements OnInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  public text = '';\r\n  public opacity = 0;\r\n  public display = 'none';\r\n\r\n  private hideTimer: any;\r\n\r\n  constructor(public model: ModelService, public controller: ControllerService, public helper: HelperService) {\r\n    controller.getActionMessage().subscribe((message: Message) => {\r\n      switch (message.action) {\r\n        case 'centerText':\r\n          this.show(message.data);\r\n          break;\r\n\r\n        case 'hideCenterText':\r\n          this.hide();\r\n          break;\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  public show(text: string) {\r\n    this.display = '';\r\n    this.opacity = 0;\r\n    this.text = text;\r\n    setTimeout(() => {\r\n      this.helper.setObjectToCenter(this.element.nativeElement);\r\n      this.opacity = 1;\r\n    });\r\n\r\n    if (this.hideTimer) { clearTimeout(this.hideTimer); }\r\n    this.hideTimer = setTimeout(() => {\r\n      this.hide();\r\n    }, 2000);\r\n  }\r\n\r\n  public hide() {\r\n    this.opacity = 0;\r\n    if (this.hideTimer) { clearTimeout(this.hideTimer); }\r\n    this.hideTimer = setTimeout(() => {\r\n      this.display = 'none';\r\n    }, 300);\r\n  }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { FormService } from './form.service';\r\n\r\n@Component({\r\n  selector: 'sti-notification-form',\r\n  template: `\r\n  <sti-base-form [fontFamily]=\"model.options.toolbar.fontFamily\"\r\n      [color]=\"model.options.toolbar.fontColor\"\r\n      [name]=\"'notificationForm'\"\r\n      [defaultTop]=\"150\"\r\n      [caption]=\"model.loc('Viewer')\"\r\n      [level]=\"4\"\r\n      [showButtons]=\"false\"\r\n      [showSeparator]=\"false\"\r\n      (changeVisibility)=\"changeVisibility($event)\">\r\n      <table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\" cellspacing=\"0\">\r\n        <tbody>\r\n          <tr *ngIf=\"model.notificationFormOptions?.image\" class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerClearAllStyles\" [style.textAlign]=\"'center'\">\r\n              <img src=\"{{model.img(model.notificationFormOptions?.image)}}\" [style.marginTop.px]=\"20\" [style.width.px]=\"112\" [style.height.px]=\"112\">\r\n            </td>\r\n          </tr>\r\n          <tr *ngIf=\"model.notificationFormOptions?.message\" class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerClearAllStyles\">\r\n              <div class=\"stiJsViewerNotificationFormMessage\">\r\n                {{model.notificationFormOptions?.message}}\r\n              </div>\r\n            </td>\r\n          </tr>\r\n          <tr *ngIf=\"model.notificationFormOptions?.description\" class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerClearAllStyles\">\r\n              <div class=\"stiJsViewerNotificationFormDescription\">\r\n                {{model.notificationFormOptions?.description}}\r\n              </div>\r\n            </td>\r\n          </tr>\r\n          <tr class=\"stiJsViewerClearAllStyles\">\r\n            <td class=\"stiJsViewerClearAllStyles\" [style.textAlign]=\"'center'\">\r\n              <sti-button\r\n                [caption]=\"model.notificationFormOptions?.buttonCaption\"\r\n                [styleName]=\"'stiJsViewerLoginButton'\"\r\n                [innerTableWidth]=\"'100%'\"\r\n                [height]=\"'40px'\"\r\n                [minWidth]=\"'80px'\"\r\n                [captionAlign]=\"'center'\"\r\n                [cursor]=\"'pointer'\"\r\n                [display]=\"'inline-block'\"\r\n                [minWidth]=\"'200px'\"\r\n                [width]=\"'auto'\"\r\n                [margin]=\"'20px 30px 30px 30px'\"\r\n                [fontSize]=\"'14px'\"\r\n                (action)=\"action()\">\r\n              </sti-button>\r\n            </td>\r\n          </tr>\r\n        </tbody>\r\n      </table>\r\n    </sti-base-form>\r\n    `\r\n})\r\n\r\nexport class NotificationFormComponent implements OnInit {\r\n\r\n  constructor(public model: ModelService, public formService: FormService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  changeVisibility(state: string) {\r\n    if (state === 'hidden' && this.model.notificationFormOptions?.cancelAction) {\r\n      this.model.notificationFormOptions.cancelAction();\r\n    }\r\n  }\r\n\r\n  action() {\r\n    this.model.notificationFormOptions?.action ? this.model.notificationFormOptions.action() : this.formService.closeForm('notificationForm');\r\n  }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\n\r\n@Component({\r\n  selector: 'sti-dashboard-button',\r\n  template: `\r\n    <sti-button\r\n      [margin]=\"'2px 1px 2px 2px'\"\r\n      [display]=\"display\"\r\n      [borderColor]=\"!dbsMode ? 'transparent' : ''\"\r\n      [height]=\"model.options.toolbar.displayMode == 'Separated' ? (dbsMode ? (model.options.isTouchDevice ? '28px' : '23px') : '28px') : null\">\r\n    </sti-button>\r\n  `\r\n})\r\n\r\nexport class DashboardButtonComponent implements OnInit {\r\n\r\n  constructor(public model: ModelService) { }\r\n\r\n  @Input() showCloseButton = false;\r\n  @Input() info: any;\r\n  @Input() dbsMode: boolean;\r\n  @Input() display: string;\r\n\r\n  ngOnInit() { }\r\n\r\n}\r\n","import { Component, OnInit, AfterViewInit, ElementRef, ViewChild } from '@angular/core';\r\nimport { ModelService } from '../services/model.service';\r\nimport { HelperService } from '../services/helper.service';\r\nimport { DashboardService } from '../services/dashboard.service';\r\n\r\n@Component({\r\n  selector: 'sti-dashboards-panel',\r\n  template: `\r\n    <div #element\r\n      [class]=\"'stiJsViewerToolBar' + (model.options.toolbar.displayMode == 'Separated' ? ' stiJsViewerToolBarSeparated' : '')\"\r\n      [style.fontFamily]=\"model.options.toolbar.fontFamily\"\r\n      [style.fontColor]=\"helper.val(model.options.toolbar.fontColor)\"\r\n      [style.display]=\"model.controls.dashboardsPanel.visible ? '' : 'none'\"\r\n      [style.background]=\"dbsMode ? 'transparent' : ''\"\r\n      [style.borderColor]=\"dbsMode ? 'transparent' : ''\">\r\n      <div [style.paddingTop]=\"model.options.toolbar.displayMode == 'Simple' ? '2px' : ''\">\r\n        <table class=\"stiJsViewerToolBarTable\" cellpadding=\"0\" cellspacing=\"0\" [style.margin.px]=\"0\" [style.boxSizing]=\"'border-box'\"\r\n          [style.border]=\"model.options.toolbar.displayMode == 'Separated' ? '0px' : ''\"\r\n          [style.background]=\"dbsMode ? 'transparent' : ''\"\r\n          [style.borderColor]=\"dbsMode ? 'transparent' : ''\">\r\n          <tbody>\r\n            <tr class=\"stiJsViewerClearAllStyles\">\r\n              <td class=\"stiJsViewerClearAllStyles\" [style.width]=\"'100%'\">\r\n                <table class=\"stiJsViewerToolBarTable\" cellpadding=\"0\" cellspacing=\"0\"\r\n                  [style.align]=\"model.options.appearance.rightToLeft ? 'right' : (model.options.toolbar.alignment == 'default' ? 'left' : model.options.toolbar.alignment)\">\r\n                  <tbody>\r\n                      <tr>\r\n                         <td *ngFor=\"let info of model.reportParams.dashboards; let i=index\">\r\n                            <sti-dashboard-button\r\n                              [info]=\"info\"\r\n                              [dbsMode]=\"dbsMode\"\r\n                              [display]=\"dashboardsCount == 1 && reportsCount == 0 ? 'none': null\">\r\n                            </sti-dashboard-button>\r\n                        </td>\r\n                      </tr>\r\n                  </tbody>\r\n                </table>\r\n              </td>\r\n\r\n              <!-- actions table -->\r\n              <td class=\"stiJsViewerClearAllStyles\">\r\n                <table class=\"stiJsViewerToolBarTable\" cellpadding=\"0\" cellspacing=\"0\" [style.marginRight.px]=\"2\">\r\n                  <tbody>\r\n                      <tr>\r\n                        <td *ngIf=\"model.options.toolbar.showRefreshButton && model.options.toolbar.visible\">\r\n                          <sti-button [imageName]=\"imagesPath + 'Refresh.png'\"\r\n                            [tooltip]=\"model.loc('Refresh')\"\r\n                            [helpLink]=\"helper.helpLinks['DashboardToolbar']\"\r\n                            [margin]=\"'2px 0 2px 2px'\"\r\n                            [actionName]=\"'Refresh'\"\r\n                            [height]=\"model.options.toolbar.displayMode == 'Separated' ? (dbsMode ? (model.options.isTouchDevice ? '28px' : '23px') : '28px') : null\"\r\n                            [width]=\"model.options.toolbar.displayMode == 'Separated' ? (dbsMode ? (model.options.isTouchDevice ? '28px' : '23px') : '28px') : null\"\r\n                            [innerTableWidth]=\"model.options.toolbar.displayMode == 'Separated' ? '100%': null\"\r\n                            [imageCellTextAlign]=\"model.options.toolbar.displayMode == 'Separated' ? 'center': null\"\r\n                            [display]=\"previewSettings.dashboardToolBar && previewSettings.dashboardRefreshButton ? '' : 'none'\">\r\n                          </sti-button>\r\n                        </td>\r\n\r\n                        <td *ngIf=\"model.options.toolbar.showParametersButton && model.options.toolbar.visible\">\r\n                          <sti-button [imageName]=\"imagesPath + 'Parameters.png'\"\r\n                            [tooltip]=\"model.loc('Parameters')\"\r\n                            [helpLink]=\"helper.helpLinks['DashboardToolbar']\"\r\n                            [margin]=\"'2px 0 2px 2px'\"\r\n                            [actionName]=\"'Parameters'\"\r\n                            [height]=\"model.options.toolbar.displayMode == 'Separated' ? (dbsMode ? (model.options.isTouchDevice ? '28px' : '23px') : '28px') : null\"\r\n                            [width]=\"model.options.toolbar.displayMode == 'Separated' ? (dbsMode ? (model.options.isTouchDevice ? '28px' : '23px') : '28px') : null\"\r\n                            [innerTableWidth]=\"model.options.toolbar.displayMode == 'Separated' ? '100%': null\"\r\n                            [imageCellTextAlign]=\"model.options.toolbar.displayMode == 'Separated' ? 'center': null\">\r\n                          </sti-button>\r\n                        </td>\r\n\r\n                        <td *ngIf=\"model.options.toolbar.showOpenButton && model.options.toolbar.visible\">\r\n                          <sti-button [imageName]=\"imagesPath + 'Open.png'\"\r\n                            [tooltip]=\"model.loc('Open')\"\r\n                            [helpLink]=\"helper.helpLinks['DashboardToolbar']\"\r\n                            [margin]=\"'2px 0 2px 2px'\"\r\n                            [actionName]=\"'OpenDashboard'\"\r\n                            [height]=\"model.options.toolbar.displayMode == 'Separated' ? (dbsMode ? (model.options.isTouchDevice ? '28px' : '23px') : '28px') : null\"\r\n                            [width]=\"model.options.toolbar.displayMode == 'Separated' ? (dbsMode ? (model.options.isTouchDevice ? '28px' : '23px') : '28px') : null\"\r\n                            [innerTableWidth]=\"model.options.toolbar.displayMode == 'Separated' ? '100%': null\"\r\n                            [imageCellTextAlign]=\"model.options.toolbar.displayMode == 'Separated' ? 'center': null\"\r\n                            [display]=\"previewSettings.dashboardToolBar && previewSettings.dashboardOpenButton ? '' : 'none'\">\r\n                          </sti-button>\r\n                        </td>\r\n\r\n                        <td *ngIf=\"model.options.toolbar.showDesignButton && model.options.toolbar.visible\">\r\n                          <sti-button [imageName]=\"imagesPath + 'Edit.png'\"\r\n                            [tooltip]=\"model.loc('Edit')\"\r\n                            [helpLink]=\"helper.helpLinks['DashboardToolbar']\"\r\n                            [margin]=\"'2px 0 2px 2px'\"\r\n                            [actionName]=\"'postDesign'\"\r\n                            [height]=\"model.options.toolbar.displayMode == 'Separated' ? (dbsMode ? (model.options.isTouchDevice ? '28px' : '23px') : '28px') : null\"\r\n                            [width]=\"model.options.toolbar.displayMode == 'Separated' ? (dbsMode ? (model.options.isTouchDevice ? '28px' : '23px') : '28px') : null\"\r\n                            [innerTableWidth]=\"model.options.toolbar.displayMode == 'Separated' ? '100%': null\"\r\n                            [imageCellTextAlign]=\"model.options.toolbar.displayMode == 'Separated' ? 'center': null\"\r\n                            [display]=\"previewSettings.dashboardToolBar && previewSettings.dashboardEditButton ? '' : 'none'\">\r\n                          </sti-button>\r\n                        </td>\r\n\r\n                        <td *ngIf=\"model.options.toolbar.showFullScreenButton && model.options.toolbar.visible\">\r\n                          <sti-button [imageName]=\"imagesPath + 'CloseFullScreen.png'\"\r\n                            [caption]=\"model.loc('Close')\"\r\n                            [tooltip]=\"model.loc('FullScreen')\"\r\n                            [helpLink]=\"helper.helpLinks['DashboardToolbar']\"\r\n                            [margin]=\"'2px 0 2px 2px'\"\r\n                            [actionName]=\"'postFullScreen'\"\r\n                            [height]=\"model.options.toolbar.displayMode == 'Separated' ? (dbsMode ? (model.options.isTouchDevice ? '28px' : '23px') : '28px') : null\"\r\n                            [innerTableWidth]=\"model.options.toolbar.displayMode == 'Separated' ? '100%': null\"\r\n                            [imageCellTextAlign]=\"model.options.toolbar.displayMode == 'Separated' ? 'center': null\"\r\n                            [display]=\"previewSettings.dashboardToolBar && previewSettings.dashboardFullScreenButton ? '' : 'none'\">\r\n                          </sti-button>\r\n                        </td>\r\n\r\n                        <td *ngIf=\"model.options.toolbar.showSaveButton && model.options.toolbar.visible\">\r\n                          <sti-button [imageName]=\"imagesPath + 'Menu.png'\"\r\n                            [tooltip]=\"model.loc('Save')\"\r\n                            [helpLink]=\"helper.helpLinks['DashboardToolbar']\"\r\n                            [margin]=\"'2px 0 2px 2px'\"\r\n                            [actionName]=\"'ExportDashboard'\"\r\n                            [height]=\"model.options.toolbar.displayMode == 'Separated' ? (dbsMode ? (model.options.isTouchDevice ? '28px' : '23px') : '28px') : null\"\r\n                            [width]=\"model.options.toolbar.displayMode == 'Separated' ? (dbsMode ? (model.options.isTouchDevice ? '28px' : '23px') : '28px') : null\"\r\n                            [innerTableWidth]=\"model.options.toolbar.displayMode == 'Separated' ? '100%': null\"\r\n                            [imageCellTextAlign]=\"model.options.toolbar.displayMode == 'Separated' ? 'center': null\"\r\n                            [display]=\"previewSettings.dashboardToolBar && previewSettings.dashboardMenuButton && ((previewSettings.dashboardShowReportSnapshots && !model.options.jsMode) || previewSettings.dashboardShowExports) ? '' :'none'\">\r\n                          </sti-button>\r\n                        </td>\r\n                      </tr>\r\n                  </tbody>\r\n                </table>\r\n              </td>\r\n            </tr>\r\n          </tbody>\r\n        </table>\r\n      </div>\r\n    </div>\r\n  `\r\n})\r\n\r\nexport class DashboardsPanelComponent implements OnInit, AfterViewInit {\r\n\r\n  @ViewChild('element') element: ElementRef;\r\n\r\n  public imagesPath = 'Dashboards.Actions.Light.';\r\n\r\n  constructor(public model: ModelService, public helper: HelperService, public dashboardService: DashboardService) { }\r\n\r\n  ngOnInit() { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.model.controls.navigatePanel.el = this.element;\r\n  }\r\n\r\n\r\n  get dbsMode(): boolean {\r\n    return this.dashboardsCount > 0 && this.reportsCount === 0;\r\n  }\r\n\r\n  get dashboardsCount(): number {\r\n    let count = 0;\r\n    if (this.model?.reportParams?.dashboards) {\r\n      (this.model.reportParams.dashboards as []).forEach(i => {\r\n        if (i['type'] === 'Dashboard') {\r\n          count++;\r\n        }\r\n      });\r\n    }\r\n    return count;\r\n  }\r\n\r\n  get reportsCount(): number {\r\n    if (this.model?.reportParams?.dashboards) {\r\n      return (this.model.reportParams.dashboards as []).length - this.dashboardsCount;\r\n    }\r\n    return 0;\r\n  }\r\n\r\n  get previewSettings(): any {\r\n    return this.model.reportParams.previewSettings || {};\r\n  }\r\n}\r\n","import { Component, OnInit, Input, AfterViewInit, ViewChild, ElementRef, OnChanges, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { ControllerService } from './services/controller.service';\r\nimport { MenuService } from './menu/menu.service';\r\nimport { ModelService } from './services/model.service';\r\nimport { Message } from './services/objects';\r\nimport { ExportService } from './services/export.service';\r\nimport { FormService } from './forms/form.service';\r\nimport { ApiService } from './services/api.service';\r\nimport { PrintService } from './services/print.service';\r\nimport { DashboardService } from './services/dashboard.service';\r\nimport { StiHttpClientService } from './services/http-client.service';\r\nimport { StylesService } from './services/styles.service';\r\nimport { HelperService } from './services/helper.service';\r\nimport { MouseService } from './services/mouse.service';\r\nimport { PageService } from './services/page.service';\r\nimport { TooltipService } from './services/tooltip.service';\r\nimport { FindService } from './services/find.service';\r\nimport { AnimationService } from './services/animation.service';\r\nimport { InteractionsService } from './services/interactions.service';\r\nimport { RadioButtonService } from './services/radio-button.service';\r\nimport { CollectionsService } from './services/collections.service';\r\nimport { MailService } from './services/mail.service';\r\nimport { EditableFieldsService } from './services/editable-fields.service';\r\nimport { DrillDownService } from './services/drill-down.service';\r\nimport { Md5Service } from './services/md5.service';\r\nimport { FullScreenService } from './services/full-screen.service';\r\nimport { ToolbarService } from './services/toolbar.service';\r\nimport { DashboardProxyService } from './services/dashboard-proxy.service';\r\nimport { ApiDashboardService } from './services/api.dashboard.service';\r\nimport { ApiAngularService } from './services/api.angular.service';\r\nimport { FileSaverService } from './services/file.saver.service';\r\n//1bfb351c1add27b1537ffce9c723e3cb1f5b27bb 02.03.2021 17:29:20\r\n\r\n@Component({\r\n  selector: 'stimulsoft-viewer-angular',\r\n  template: `\r\n    <span #viewer [style]=\"style\"\r\n      [style.top.px]=\"0\"\r\n      [style.right.px]=\"0\"\r\n      [style.bottom.px]=\"0\"\r\n      [style.left.px]=\"0\"\r\n      [style.display]=\"'inline-block'\"\r\n      [style.backgroundColor]=\"backgroundColor\"\r\n      [style.width]=\"this.width != null ? this.width : '100%'\"\r\n      [style.height]=\"this.height != null ? this.height : (model.options?.appearance.scrollbarsMode ? '650px' : '100%')\"\r\n      [id]=\"model.options?.viewerId\">\r\n      <div class=\"stiJsViewerMainPanel\" [style.display]=\"model.showDashboard ? 'none' : ''\">\r\n        <sti-center-text *ngIf=\"initialized\"></sti-center-text>\r\n        <sti-toolbar *ngIf=\"initialized\"></sti-toolbar>\r\n        <div *ngFor=\"let i of [1,2,3,4,5]\" [style.zIndex]=\"i * 10\" [style.display]=\"formService.form?.level == i ? '' : 'none'\" class=\"stiJsViewerDisabledPanel\"></div>\r\n        <sti-about-panel *ngIf=\"initialized\"></sti-about-panel>\r\n\r\n        <sti-dashboards-panel *ngIf=\"initialized\"></sti-dashboards-panel>\r\n        <sti-report-panel *ngIf=\"initialized\"></sti-report-panel>\r\n        <sti-progress *ngIf=\"initialized\"></sti-progress>\r\n        <sti-find-panel *ngIf=\"initialized\"></sti-find-panel>\r\n        <sti-drill-down-panel *ngIf=\"initialized\"></sti-drill-down-panel>\r\n        <sti-resources-panel *ngIf=\"initialized\"></sti-resources-panel>\r\n        <sti-navigate-panel *ngIf=\"initialized\"></sti-navigate-panel>\r\n\r\n        <sti-export-form *ngIf=\"initialized\" [exportFormSettings]=\"exportService.exportFormSettings\"></sti-export-form>\r\n        <sti-send-email-form *ngIf=\"initialized\"></sti-send-email-form>\r\n        <sti-password-form *ngIf=\"initialized\"></sti-password-form>\r\n        <sti-error-message-form *ngIf=\"initialized\"></sti-error-message-form>\r\n        <sti-notification-form *ngIf=\"initialized\"></sti-notification-form>\r\n\r\n        <sti-tooltip *ngIf=\"initialized\"></sti-tooltip>\r\n        <sti-menu *ngFor=\"let menu of menuService.menus\" [menu]=\"menu\"></sti-menu>\r\n        <sti-bookmarks-panel *ngIf=\"initialized\"></sti-bookmarks-panel>\r\n        <sti-interactions-panel *ngIf=\"initialized\"></sti-interactions-panel>\r\n\r\n        <sti-open-dialog *ngIf=\"initialized\" [fileMask]=\"model.openDialogFileMask\"></sti-open-dialog>\r\n      </div>\r\n      <div #dashboards>\r\n      </div>\r\n    </span>\r\n  `,\r\n  providers: [ModelService, StiHttpClientService, ControllerService, StylesService, HelperService, MenuService,\r\n    MouseService, PageService, TooltipService, FindService, AnimationService, Md5Service, InteractionsService, FormService, RadioButtonService, ExportService,\r\n    CollectionsService, MailService, EditableFieldsService, DrillDownService, PrintService, FullScreenService, ToolbarService, ApiService, DashboardService, DashboardProxyService,\r\n    ApiDashboardService, ApiAngularService, FileSaverService]\r\n})\r\nexport class StimulsoftViewerComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\r\n\r\n  @ViewChild('dashboards') private dashboardsElement: ElementRef;\r\n\r\n  /**\r\n   * Root viewer span\r\n   */\r\n  @ViewChild('viewer') viewerElement: ElementRef;\r\n\r\n  /**\r\n   * Occurs when report/dashboard loaded\r\n   */\r\n  @Output() loaded: EventEmitter<any> = new EventEmitter();\r\n\r\n  /**\r\n   * Occurs on error, $event is ErrorMessage object contains error: string & type: any  (if present)\r\n   */\r\n  @Output() error: EventEmitter<any> = new EventEmitter();\r\n\r\n  /**\r\n   * Occurs on export, $event object contains exportFormat: string & exportSettings: {}\r\n   */\r\n  @Output() export: EventEmitter<any> = new EventEmitter();\r\n\r\n  /**\r\n   * Occurs on export & email, $event object contains exportFormat: string & exportSettings: {}\r\n   */\r\n  @Output() email: EventEmitter<any> = new EventEmitter();\r\n\r\n  /**\r\n   * Occurs on export & email, $event object contains format: string : 'PrintPdf' or 'PrintWithoutPreview' or 'PrintWithPreview'\r\n   */\r\n  @Output() print: EventEmitter<any> = new EventEmitter();\r\n\r\n  /**\r\n   * Occurs on pressing 'Design' button\r\n   */\r\n  @Output() design: EventEmitter<any> = new EventEmitter();\r\n\r\n  /**\r\n   * Url to server instance, must contains placeholder {action} that will replace with action\r\n   * Example: http://server.url:51528/Viewer/{action}\r\n   */\r\n  @Input() requestUrl: string;\r\n\r\n  /**\r\n   * Controller action that handle viewer initial request\r\n   */\r\n  @Input() action = 'InitViewer';\r\n\r\n  /**\r\n   * Properties that will transfer to controller action as JSON object\r\n   */\r\n  @Input() properties: any;\r\n\r\n  /**\r\n   * Viewer width\r\n   */\r\n  @Input() width: string;\r\n\r\n  /**\r\n   * Viewer height\r\n   */\r\n  @Input() height: string;\r\n\r\n  /**\r\n   * Viewer background color\r\n   */\r\n  @Input() backgroundColor = 'White';\r\n\r\n  /**\r\n   * Style of viewer applied to main span as [style]=\"style\"\r\n   */\r\n  @Input() style: string;\r\n\r\n  @Input() postParametersFunction: any;\r\n\r\n  public initialized = false;\r\n\r\n  private viewInit = false;\r\n  private dashboardDiv: any;\r\n\r\n  constructor(private controller: ControllerService, public menuService: MenuService,\r\n    public model: ModelService, public exportService: ExportService, public formService: FormService,\r\n    public api: ApiService, private printService: PrintService, private dashboardService: DashboardService) {\r\n\r\n    window.onresize = () => this.resize();\r\n\r\n    this.initEvents();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    try {\r\n      clearInterval(this.model.timerAutoUpdateCache);\r\n      clearInterval(this.model.refreshReportTimer);\r\n    } catch { }\r\n  }\r\n\r\n  ngOnChanges(changes: import('@angular/core').SimpleChanges): void {\r\n    this.loadViewer();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.model.postParametersFunction = this.postParametersFunction;\r\n    this.controller.getMessage().subscribe((message: Message) => {\r\n      switch (message.action) {\r\n        case 'viewer_loaded':\r\n          this.initialized = true;\r\n          break;\r\n        case 'ShowDashboard':\r\n          this.dashboardsElement.nativeElement.innerHTML = this.model.dashboards;\r\n          this.dashboardDiv = this.dashboardsElement.nativeElement.firstChild.firstChild;\r\n          this.viewerElement.nativeElement.appendChild(this.dashboardDiv);\r\n          this.dashboardsElement.nativeElement.style.display = 'none';\r\n          break;\r\n      }\r\n    });\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.viewInit = true;\r\n    this.loadViewer();\r\n  }\r\n\r\n  initEvents() {\r\n    this.controller.getMessage().subscribe((message: Message) => {\r\n      switch (message.action) {\r\n        case 'GetReport':\r\n        case 'OpenReport':\r\n        case 'ShowDashboard':\r\n          setTimeout(() => {\r\n            this.loaded.next(null);\r\n          });\r\n          this.showTr();\r\n          break;\r\n      }\r\n    });\r\n\r\n    this.controller.getActionMessage().subscribe((message: Message) => {\r\n      switch (message.action) {\r\n        case 'Error':\r\n          setTimeout(() => {\r\n            this.error.next(this.model.errorMessage);\r\n          });\r\n          break;\r\n\r\n        case 'ExportReport':\r\n          setTimeout(() => {\r\n            this.export.next(message.data);\r\n          });\r\n          break;\r\n\r\n        case 'Email':\r\n          setTimeout(() => {\r\n            this.email.next(message.data);\r\n          });\r\n          break;\r\n\r\n        case 'Print':\r\n          setTimeout(() => {\r\n            this.print.next(message.data);\r\n          });\r\n          break;\r\n\r\n        case 'Design':\r\n          setTimeout(() => {\r\n            this.design.next(null);\r\n          });\r\n          break;\r\n      }\r\n      this.showTr();\r\n    });\r\n  }\r\n\r\n  loadViewer() {\r\n    if (this.viewInit) {\r\n      if (this.dashboardDiv?.parentElement) {\r\n        this.dashboardDiv?.parentElement.removeChild(this.dashboardDiv);\r\n        this.dashboardDiv = null;\r\n      }\r\n      this.model.requestUrl = this.requestUrl;\r\n      this.model.action = this.action || 'InitViewer';\r\n      this.model.properties = this.properties;\r\n      this.controller.loadViewer();\r\n      this.resize();\r\n      this.model.controls.viewer.el = this.viewerElement;\r\n    }\r\n  }\r\n\r\n  resize() {\r\n    if (this.viewerElement?.nativeElement) {\r\n      this.model.viewerSize = { width: this.viewerElement.nativeElement.offsetWidth, height: this.viewerElement.nativeElement.offsetHeight };\r\n      this.controller.viewerResized();\r\n    }\r\n  }\r\n\r\n  showTr() {\r\n    if (!this.model.options.alternateValid) {\r\n      console.warn(\"You are using a trial version of the Stimulsoft product!\");\r\n    }\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { StimulsoftViewerComponent } from './stimulsoft-viewer-angular.component';\r\nimport { StiHttpClientService } from './services/http-client.service';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ButtonComponent } from './controls/button.component';\r\nimport { PageComponent } from './components/page.component';\r\nimport { ReportPanelComponent } from './components/report-panel.component';\r\nimport { ModelService } from './services/model.service';\r\nimport { ControllerService } from './services/controller.service';\r\nimport { StylesService } from './services/styles.service';\r\nimport { ToolbarComponent } from './components/toolbar.component';\r\nimport { ToolbarSeparatorComponent } from './controls/toolbar-separator.component';\r\nimport { HelperService } from './services/helper.service';\r\nimport { PageControlComponent } from './controls/page-control.component';\r\nimport { TextBoxComponent } from './controls/text-box.componet';\r\nimport { MenuComponent } from './menu/menu.component';\r\nimport { MenuItemComponent } from './menu/meni-item.component';\r\nimport { MenuService } from './menu/menu.service';\r\nimport { MouseService } from './services/mouse.service';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { PageService } from './services/page.service';\r\nimport { TooltipComponent } from './controls/tooltip.component';\r\nimport { TooltipService } from './services/tooltip.service';\r\nimport { FindPanelComponent } from './components/find-panel.component';\r\nimport { TextBlockComponent } from './controls/text-block.component';\r\nimport { FindService } from './services/find.service';\r\nimport { AnimationService } from './services/animation.service';\r\nimport { BookmarksPanelComponent } from './components/bookmarks-panel.component';\r\nimport { Md5Service } from './services/md5.service';\r\nimport { InteractionsService } from './services/interactions.service';\r\nimport { InteractionsPanelComponent } from './components/interactions-panel.component';\r\nimport { FormButtonComponent } from './controls/form-button.component';\r\nimport { ParameterComponent } from './controls/parameters/parameter.component';\r\nimport { ParameterTextBoxComponent } from './controls/parameters/parameter-text-box.component';\r\nimport { CheckboxComponent } from './controls/checkbox.component';\r\nimport { ParameterCheckboxComponent } from './controls/parameters/parameter-checkbox.component';\r\nimport { ParameterButtonComponent } from './controls/parameters/parameter-button.component';\r\nimport { ParameterMenuEditListComponent } from './menu/parameter-menu-edit-list.component';\r\nimport { ParameterMenuItemComponent } from './menu/parameter-menu-item.component';\r\nimport { ParameterMenuSeparatorComponent } from './menu/parameter-menu-separator.component';\r\nimport { ParameterFindComponent } from './controls/parameters/parameter-find.component';\r\nimport { ParameterMenuNotEditListComponent } from './menu/parameter-menu-not-edit-list.component';\r\nimport { ParameterMenuForValueComponent } from './menu/parameter-menu-for-value.component';\r\nimport { ParameterMenuForRangeComponent } from './menu/parameter-menu-for-range.component';\r\nimport { DatePickerMenuComponent } from './menu/date-picker-menu.component';\r\nimport { DropDownListComponent } from './controls/drop-down-list.component';\r\nimport { VerticalMenuComponent } from './menu/vertical-menu.component';\r\nimport { VerticalMenuItemComponent } from './menu/vertical-menu-item.component';\r\nimport { DatePickerDayButtonComponent } from './controls/date-picker-day-button.component';\r\nimport { DoubleDatePickerMenuComponent } from './menu/double-date-picker-menu.component';\r\nimport { BaseFormComponent } from './forms/base-form.component';\r\nimport { FormService } from './forms/form.service';\r\nimport { ExportFormComponent } from './forms/export-form.component';\r\nimport { GroupPanelComponent } from './forms/group-panel.component';\r\nimport { RadioButtonComponent } from './controls/radio-button.components';\r\nimport { RadioButtonService } from './services/radio-button.service';\r\nimport { ExportService } from './services/export.service';\r\nimport { DropDownListForExportFormComponent } from './controls/drop-down-list-for-export-form.component';\r\nimport { CollectionsService } from './services/collections.service';\r\nimport { DocumentSecurityMenuComponent } from './menu/document-security-menu.component';\r\nimport { DigitalSignatureMenuComponent } from './menu/digital-signature-menu.component copy';\r\nimport { SendEmailFormComponent } from './forms/send-email-form.component';\r\nimport { MailService } from './services/mail.service';\r\nimport { TextAreaComponent } from './controls/text-area.component';\r\nimport { EditableFieldsService } from './services/editable-fields.service';\r\nimport { DrillDownPanelComponent } from './components/drill-down-panel.component';\r\nimport { DrillDownService } from './services/drill-down.service';\r\nimport { PrintService } from './services/print.service';\r\nimport { OpenDialogComponent } from './components/open-dialog.component';\r\nimport { PasswordFormComponent } from './forms/password-form.component';\r\nimport { ErrorMessageFormComponent } from './forms/error-message-form.component';\r\nimport { ResourcesPanelComponent } from './components/resources-panel.component';\r\nimport { FullScreenService } from './services/full-screen.service';\r\nimport { ProgressComponent } from './components/progress.component';\r\nimport { NavigatePanelComponent } from './components/navigate-panel.component';\r\nimport { AboutPanelComponent } from './components/about-panel.component';\r\nimport { ToolbarDopComponent } from './components/toolbar-dop.component';\r\nimport { ToolbarService } from './services/toolbar.service';\r\nimport { CenterTextComponent } from './components/center-text.component';\r\nimport { NotificationFormComponent } from './forms/notification-form.component';\r\nimport { ApiService } from './services/api.service';\r\nimport { DashboardsPanelComponent } from './components/dashboards-panel.component';\r\nimport { DashboardService } from './services/dashboard.service';\r\nimport { DashboardButtonComponent } from './controls/dashboard-panel-button.component';\r\n\r\n@NgModule({\r\n  declarations: [StimulsoftViewerComponent, ToolbarComponent, ButtonComponent, PageComponent, ReportPanelComponent, ToolbarSeparatorComponent, PageControlComponent, TextBoxComponent,\r\n    MenuComponent, MenuItemComponent, TooltipComponent, FindPanelComponent, TextBlockComponent, BookmarksPanelComponent, InteractionsPanelComponent, FormButtonComponent,\r\n    ParameterComponent, ParameterTextBoxComponent, CheckboxComponent, ParameterCheckboxComponent, ParameterButtonComponent, ParameterMenuEditListComponent,\r\n    ParameterMenuItemComponent, ParameterMenuSeparatorComponent, ParameterFindComponent, ParameterMenuNotEditListComponent, ParameterMenuForValueComponent,\r\n    ParameterMenuForRangeComponent, DatePickerMenuComponent, DropDownListComponent, VerticalMenuComponent, VerticalMenuItemComponent, DatePickerDayButtonComponent,\r\n    DoubleDatePickerMenuComponent, BaseFormComponent, ExportFormComponent, GroupPanelComponent, RadioButtonComponent, DropDownListForExportFormComponent,\r\n    DocumentSecurityMenuComponent, DigitalSignatureMenuComponent, SendEmailFormComponent, TextAreaComponent, DrillDownPanelComponent, OpenDialogComponent,\r\n    PasswordFormComponent, ErrorMessageFormComponent, ResourcesPanelComponent, ProgressComponent, NavigatePanelComponent, AboutPanelComponent, ToolbarDopComponent,\r\n    CenterTextComponent, NotificationFormComponent, DashboardsPanelComponent, DashboardButtonComponent],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  providers: [],\r\n  exports: [StimulsoftViewerComponent]\r\n})\r\nexport class StimulsoftViewerModule { }\r\n","/*\r\n * Public API Surface of stimulsoft-viewer-angular\r\n */\r\n\r\nexport * from './lib/stimulsoft-viewer-angular.component';\r\nexport * from './lib/stimulsoft-viewer-angular.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ModelService","i2.AnimationService","i2.ModelService","i3.HelperService","i4.FileSaverService","i2.HelperService","i1.HelperService","i3.MouseService","i1.MouseService","i2.MenuService","i4.ModelService","i2.PageService","i1.StiHttpClientService","i3.StylesService","i4.PageService","i5.HelperService","i6.FormService","i7.FullScreenService","i8.MenuService","i9.AnimationService","i1.FormService","i3.ModelService","i4.CollectionsService","i5.ControllerService","i2.ExportService","i3.FormService","i4.ControllerService","i3.AnimationService","i2.ControllerService","i3.ExportService","i4.HelperService","i5.MailService","i6.FindService","catchError","i3.ControllerService","i7.DashboardProxyService","i1.ApiAngularService","i2.ApiDashboardService","i4.StiHttpClientService","i1.ControllerService","i3.DashboardProxyService","i2.Md5Service","i5.DrillDownService","i3.EditableFieldsService","i4.InteractionsService","i6.ExportService","i3.TooltipService","i5","i2","i1.CheckboxComponent","i3.ParameterCheckboxComponent","i5.TextBoxComponent","i3.ToolbarService","i5.ButtonComponent","i6.ToolbarSeparatorComponent","i7.PageControlComponent","i5.ToolbarDopComponent","i6.PageComponent","i3.TextBoxComponent","i2.ButtonComponent","i3.MenuService","i5.ParameterTextBoxComponent","i6.ParameterButtonComponent","i7.ParameterMenuItemComponent","i8.ParameterMenuSeparatorComponent","i4.TextBlockComponent","i3","i4.CheckboxComponent","i5.ParameterCheckboxComponent","i6.ParameterMenuItemComponent","i7.ParameterMenuSeparatorComponent","i8.ParameterFindComponent","i3.InteractionsService","i5.ParameterMenuItemComponent","i6.ParameterMenuSeparatorComponent","i7.ParameterFindComponent","i4.ParameterMenuItemComponent","i5.ParameterMenuSeparatorComponent","i6.ParameterFindComponent","i2.MouseService","i4.ButtonComponent","i6.DropDownListComponent","i7.DatePickerDayButtonComponent","i1","i2.VerticalMenuItemComponent","i5.DatePickerMenuComponent","i1.DropDownListComponent","i2.FormService","i6.CheckboxComponent","i7.DropDownListForExportFormComponent","i4.MenuService","i6.MenuItemComponent","i7.ParameterMenuEditListComponent","i8.ParameterMenuNotEditListComponent","i9.ParameterMenuForValueComponent","i10.ParameterMenuForRangeComponent","i11.DatePickerMenuComponent","i12.VerticalMenuComponent","i13.DoubleDatePickerMenuComponent","i14.DocumentSecurityMenuComponent","i15.DigitalSignatureMenuComponent","i2.TooltipService","i2.FindService","i6.TextBoxComponent","i7.TextBlockComponent","i1.ButtonComponent","i6.ParameterTextBoxComponent","i7.ParameterCheckboxComponent","i8.ParameterButtonComponent","i6","i7.FormButtonComponent","i8.ParameterComponent","i6.FormButtonComponent","i2.FormButtonComponent","i2.RadioButtonService","i4.FormService","i5.MenuService","i6.CollectionsService","i7.ControllerService","i8","i9.ButtonComponent","i10.TextBoxComponent","i11.CheckboxComponent","i12.BaseFormComponent","i13.GroupPanelComponent","i14.RadioButtonComponent","i15.DropDownListForExportFormComponent","i2.MailService","i6.BaseFormComponent","i7.TextAreaComponent","i2.DrillDownService","i4.TextBoxComponent","i5.BaseFormComponent","i3.BaseFormComponent","i6.ButtonComponent","i3.DashboardService","i6.DashboardButtonComponent","i4.ExportService","i5.FormService","i6.ApiService","i7.PrintService","i8.DashboardService","i9","i10.ToolbarComponent","i11.ReportPanelComponent","i12.MenuComponent","i13.TooltipComponent","i14.FindPanelComponent","i15.BookmarksPanelComponent","i16.InteractionsPanelComponent","i17.ExportFormComponent","i18.SendEmailFormComponent","i19.DrillDownPanelComponent","i20.OpenDialogComponent","i21.PasswordFormComponent","i22.ErrorMessageFormComponent","i23.ResourcesPanelComponent","i24.ProgressComponent","i25.NavigatePanelComponent","i26.AboutPanelComponent","i27.CenterTextComponent","i28.NotificationFormComponent","i29.DashboardsPanelComponent"],"mappings":"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AI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC;QAAE,CAAC,GA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"}