stimulsoft-viewer-angular
Version:
The Viewer component is designed to view reports and dashboards in the web browser.
1 lines • 1.07 MB
Source Map (JSON)
{"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 && !(this.model.options.toolbar?.showBookmarksButton === false);\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(/\\\\'/g, '\\'')\r\n .replace(/\\\\"/g, '\"')\r\n .replace(/\\\\>/g, '>')\r\n .replace(/\\\\</g, '<')\r\n .replace(/\\\\&/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: 'NavigatePanel.PageFirst.png', tooltip: true });\r\n }\r\n if (this.model.options.toolbar.showPreviousPageButton) {\r\n comps.push({ type: 'button', action: 'PrevPage', img: 'NavigatePanel.PagePrevious.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: 'NavigatePanel.PageNext.png', tooltip: true });\r\n }\r\n\r\n if (this.model.options.toolbar.showLastPageButton) {\r\n comps.push({ type: 'button', action: 'LastPage', img: 'NavigatePanel.PageLast.png', tooltip: true });\r\n }\r\n\r\n comps.push({ type: 'space' });\r\n comps.push({ type: 'button', action: 'ZoomPageWidth', img: 'NavigatePanel.ZoomPageWidth.png', tooltip: true });\r\n comps.push({ type: 'button', action: 'ZoomOnePage', img: 'NavigatePanel.ZoomOnePage.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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C,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,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,CAAC;QAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAA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"}