UNPKG

@mescius/activereportsjs-angular

Version:

ActiveReportsJS components for Angular

1 lines 39.2 kB
{"version":3,"file":"grapecity-activereports-angular.mjs","sources":["../../../projects/activereports/src/lib/export-injectiontoken.ts","../../../projects/activereports/src/lib/viewer/viewer.component.ts","../../../projects/activereports/src/lib/viewer/viewer.component.html","../../../projects/activereports/src/lib/designer/designer.component.ts","../../../projects/activereports/src/lib/designer/designer.component.html","../../../projects/activereports/src/lib/activereports.module.ts","../../../projects/activereports/src/lib/pdf-export.service.ts","../../../projects/activereports/src/lib/xlsx-export.service.ts","../../../projects/activereports/src/lib/html-export.service.ts","../../../projects/activereports/src/lib/tabular-data-export.service.ts","../../../projects/activereports/src/public-api.ts","../../../projects/activereports/src/grapecity-activereports-angular.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const AR_EXPORTS = new InjectionToken<Export[]>('AR_EXPORTS');\n\nexport abstract class Export {\n readonly key: string;\n abstract init(): Promise<void>;\n}\n","import { Component, AfterViewInit, Input, ViewEncapsulation, SimpleChanges, OnChanges, EventEmitter, Output, OnDestroy, Inject, Optional, ElementRef, ViewChild } from '@angular/core';\n\nimport { ReportViewer as ViewerNs, Core } from '@mescius/activereportsjs';\n\nimport { Export, AR_EXPORTS } from '../export-injectiontoken';\n\nexport type IReport = Core.Rdl.Report | string;\n\n@Component({\n selector: 'gc-activereports-viewer',\n templateUrl: './viewer.component.html',\n encapsulation: ViewEncapsulation.None,\n})\n\nexport class ViewerComponent implements AfterViewInit, OnChanges, OnDestroy {\n\n @ViewChild('viewerRoot', { static: false }) rootElement: ElementRef;\n\n private _viewer: ViewerNs.Viewer;\n\n private _initProps: Array<() => void> = [];\n\n private get supportedExportKeys() {\n return (this.supportedExports || []).map(e => e.key);\n }\n\n constructor(@Inject(AR_EXPORTS) @Optional() private readonly supportedExports?: Export[]) {}\n\n @Input() width = '100%';\n @Input() height = '100%';\n\n @Input() language?: string;\n\n /** UI theme */\n @Input() theme?: ViewerNs.UITheme;\n\n /** Initial UI themes settings */\n @Input() themeConfig?: ViewerNs.UIThemeConfig;\n\n /** Layout of panels bar. Cannot be changed on the fly. */\n @Input() panelsLayout?: ViewerNs.PanelsLocation;\n\n /** Parameters panel location. */\n @Input() parameterPanelLocation?: ViewerNs.ParameterPanelLocation\n /** Parameters panel behaviour. */\n @Input() showParametersOnOpen?: ViewerNs.ShowParametersOnOpen\n @Input() memoizeData?: boolean;\n @Input() toolbarLayout?: ViewerNs.ToolbarLayout;\n @Input() exportsSettings?: Record<string, ViewerNs.ExportSettings>;\n\n @Input() availableExports?: string[] = [];\n @Input() mouseMode?: ViewerNs.ViewerMouseMode;\n @Input() renderMode?: ViewerNs.ViewerRenderMode;\n @Input() viewMode?: ViewerNs.ViewerViewMode | ViewerNs.ViewMode;\n @Input() zoom?: ViewerNs.ViewerZoomMode;\n @Input() fullscreen?: boolean;\n @Input() toolbarVisible?: boolean;\n @Input() sidebarVisible?: boolean;\n @Input() errorHandler?: () => void;\n\n @Output() init = new EventEmitter<ViewerComponent>();\n\n @Output() reportLoaded = new EventEmitter<ViewerNs.ReportLoadEventArgs>();\n @Output() documentLoaded = new EventEmitter<ViewerNs.DocumentLoadEventArgs>();\n\n private _propSetters: Record<string, (value: any) => void> = {\n sidebarVisible: (value) => { this._viewer.toggleSidebar(value); },\n toolbarVisible: (value) => { this._viewer.toggleToolbar(value); },\n fullscreen: (value) => { this._viewer.toggleFullScreen(value); },\n availableExports: (value) => {\n if (value && value.length > 0) {\n const supportedValues = value.filter((v: string) => this.supportedExportKeys.indexOf(v) >= 0);\n // set ['disabled'] to hide export panel if no exports supported\n this._viewer.availableExports = supportedValues.length ? supportedValues : ['disabled'];\n } else {\n // set explicit list to avoid side effects of global exports initialization\n this._viewer.availableExports = this.supportedExportKeys.length ? this.supportedExportKeys : ['disabled'];\n }\n },\n mouseMode: (value) => { this._viewer.mouseMode = value; },\n theme: (value) => { this._viewer.theme = value; },\n renderMode: (value) => { this._viewer.renderMode = value; },\n viewMode: (value) => { this._viewer.viewMode = value; },\n zoom: (value) => { this._viewer.zoom = value; },\n errorHandler: (value) => { this._viewer.errorHandler = value; },\n showParametersOnOpen: (value) => { this._viewer.showParametersOnOpen = value; },\n };\n\n private _disposables: Array<() => void> = [];\n\n ngOnChanges(changes: SimpleChanges) {\n for (const prop of Object.keys(changes)) {\n const setter = this._propSetters[prop];\n if (!setter) { continue; }\n\n const value = changes[prop].currentValue;\n if (this._viewer) {\n setter(value);\n } else {\n this._initProps.push(() => setter(value));\n }\n }\n }\n\n ngAfterViewInit() {\n this.initViewer()\n .then(() => this.init.emit(this));\n }\n\n ngOnDestroy() {\n while (this._disposables.length) {\n this._disposables.shift()!();\n }\n this._viewer.dispose();\n }\n\n get ref(): ViewerNs.Viewer {\n return this._viewer;\n }\n\n private async initViewer() {\n for (const supportedExport of this.supportedExports || []) {\n await supportedExport.init();\n }\n\n this._viewer = new ViewerNs.Viewer(this.rootElement.nativeElement, {\n language: this.language,\n themeConfig: this.themeConfig,\n PanelsLayout: this.panelsLayout,\n ParameterPanelLocation: this.parameterPanelLocation,\n memoizeData: this.memoizeData,\n ToolbarLayout: this.toolbarLayout,\n ExportsSettings: this.exportsSettings,\n });\n\n this._disposables.push(\n this._viewer.reportLoaded.register(args => this.reportLoaded.emit(args)),\n this._viewer.documentLoaded.register(args => this.documentLoaded.emit(args)),\n );\n\n this._propSetters.availableExports(this.availableExports);\n\n while (this._initProps.length) {\n this._initProps.shift()!();\n }\n }\n\n /**\n * Opens report from file or as definition (json string)).\n *\n * @param report The report template. Can be report URI, or report definition, or instance of PageReport class.\n * @param settings Additional settings for report (name, parameters).\n */\n open(report: IReport, settings?: Partial<ViewerNs.ReportSettings>): Promise<ViewerNs.LoadResult> {\n return this._viewer.open(report, settings);\n }\n\n /**\n * Exports currently displayed report to specified output format. Returns object which contains\n * result data as blob object | string and download function. So you could either use this blob object or download file immediately.\n * Please note that you can specify settings in PDF export as plain list\n * (like **{title: 'Title', author: 'Author Name', ownerPassword: '1'}** etc...\n *\n * ```javascript\n * var options = {filename:\"Invoice List\"};\n * var cancelCallback = function(){\n * return false; // continue export. Return true to cancel export process\n * }\n * viewer.export('pdf', options, {cancel: cancelCallback }).then(result => doSmthWithBlob(result.data));\n * //or you can download file\n * viewer.export('pdf', options, {cancel: cancelCallback }).then(result => result.download('Invoice List'));\n * ```\n *\n * @param format Export format identifier. One of 'pdf', 'xlsx', 'html', 'tabular-data'.\n * @param settings Format specific export settings.\n * @param params Additional export customization.\n */\n export(format: string, settings: Record<string, string|boolean|number>, params?: { cancel?: () => boolean }): Promise<ViewerNs.ExportResult> {\n return this._viewer.export(format, settings, params);\n }\n\n /**\n * Resets current viewer document\n */\n resetDocument(): Promise<void> {\n return this._viewer.resetDocument();\n }\n\n /**\n * Prints currently displayed report.\n */\n print(): void {\n return this._viewer.print();\n }\n\n /** Gets current page number (1-based). Returns 0 if no document loaded. */\n get currentPage(): number {\n return this._viewer.currentPage;\n }\n /** Gets the total number of pages available in report. */\n get pageCount(): number {\n return this._viewer.pageCount;\n }\n /** Provides access to the \"history\" API. */\n get history(): ViewerNs.HistoryApi {\n return this._viewer.history;\n }\n /** Gets the toolbar API */\n get toolbar(): ViewerNs.Toolbar {\n return this._viewer.toolbar;\n }\n\n /** Navigates to the first page. */\n goToFirstPage(): void {\n return this._viewer.goToFirstPage();\n }\n\n /** Navigates to the previous page. */\n goToPrevPage(): void {\n return this._viewer.goToPrevPage();\n }\n /** Navigates to the next page. */\n goToNextPage(): void {\n return this._viewer.goToNextPage();\n }\n /** Navigates to the last page. */\n goToLastPage(): void {\n return this._viewer.goToLastPage();\n }\n /** Navigates to the specified page (starting from 1). */\n goToPage(pageNumber: number): void {\n return this._viewer.goToPage(pageNumber);\n }\n /** Performs backToParent action which will return user to parent report. */\n backToParent(): void {\n return this._viewer.backToParent();\n }\n /** Performs refresh operation in report (re-render report). */\n refresh(): void {\n return this._viewer.refresh();\n }\n\n /** Gets **true** if backToParent command is applicable to current document. */\n get canBackToParent(): boolean {\n return this._viewer.canBackToParent();\n }\n\n /**\n * Performs search operation in currently rendered report. Allows you to create your own custom search pane.\n */\n search(options: ViewerNs.SearchOptions,\n resultFn: (result: ViewerNs.SearchResult) => void,\n progressFn?: (progress: { pageIndex: number; pageCount: number | null; }) => void,\n cancel?: ViewerNs.CancellationToken): Promise<ViewerNs.SearchStatus> {\n return this._viewer.search(options, resultFn, progressFn, cancel);\n }\n\n /**\n * Highlights the search result returned by a search method.\n */\n highlight(result: ViewerNs.SearchResult | null): Promise<void> {\n return this._viewer.highlight(result);\n }\n}\n","<div #viewerRoot [style.width]=\"width\" [style.height]=\"height\"></div>","import {\n Component,\n AfterViewInit,\n ViewChild,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n OnDestroy,\n} from '@angular/core';\n\nimport { ReportDesigner as DesignerNS } from '@mescius/activereportsjs';\nimport { DocumentChangedEventArgs } from '@mescius/activereportsjs/reportdesigner';\n\nexport { ColorThemes } from '@mescius/activereportsjs/reportdesigner';\nexport type { ColorTheme } from '@mescius/activereportsjs/reportdesigner';\n\nfunction isReportDef(report?: DesignerNS.Report): report is DesignerNS.ReportDefinition {\n return !!(report && (report as DesignerNS.ReportDefinition).definition);\n}\n\nfunction hasReportChanged(curr: DesignerNS.Report, prev: DesignerNS.Report) {\n const definitionChanged = (isReportDef(curr) && curr.definition) !== (isReportDef(curr) && curr.definition);\n return (\n definitionChanged || (curr && curr.id) !== (prev && prev.id) || (curr && curr.displayName) !== (prev && prev.displayName)\n );\n}\n\n@Component({\n selector: 'gc-activereports-designer',\n templateUrl: './designer.component.html',\n styleUrls: ['./designer.component.css']\n})\nexport class DesignerComponent implements AfterViewInit, OnDestroy {\n\n @ViewChild('designerRoot', { static: false }) rootElement: ElementRef;\n\n private _designer?: DesignerNS.Designer;\n\n constructor() { }\n\n /** Sets componets width */\n @Input() width = '100%';\n /** Sets componets height */\n @Input() height = '100%';\n\n \t/**\n\t * Called before designer initialization.\n\t * @returns DesignerConfig to initialize designer instance.\n\t */\n\t@Input() onInit?: () => DesignerNS.DesignerConfig;\n\n private _dataSources?: DesignerNS.DataSourceTemplate[];\n\t/**\n\t * Sets DataSource templates\n\t * @param value List of DataSource templates\n\t */\n @Input() set dataSources(value) {\n this._dataSources = value;\n if (this._designer) this._designer.setDataSourceTemplates(this._dataSources || []);\n }\n\t/* Gets DataSource templates */\n get dataSources() {\n return this._dataSources;\n }\n\n\t/** Sets external report list. */\n @Input() reportList?: DesignerNS.ReportResourceInfo[];\n /** Sets external master report list. */\n @Input() masterReportList?: DesignerNS.ReportResourceInfo[];\n\t/** Sets external image list. */\n @Input() imageList?: DesignerNS.ImageResourceInfo[];\n\t/** Sets theme list. */\n @Input() themeList?: DesignerNS.ThemeResourceInfo[];\n\n private _actionHandlers: DesignerNS.ActionHandlers = {};\n\n\t/**\n\t * Sets handler to be called on open report.\n\t * Handler return Promise with report info or 'undefined' if operation was cancelled.\n\t */\n @Input() set onCreate(value: DesignerNS.ActionHandlers['onCreate']) {\n this._actionHandlers.onCreate = value;\n if (this._designer) this._designer.setActionHandlers(this._actionHandlers);\n }\n get onCreate() {\n return this._actionHandlers.onCreate;\n }\n\n\t/**\n\t * Sets handler to be called on opening report.\n\t * Handler returns Promise with report info or 'undefined' if operation was cancelled.\n\t */\n @Input() set onOpen(value: DesignerNS.ActionHandlers['onOpen']) {\n this._actionHandlers.onOpen = value;\n if (this._designer) this._designer.setActionHandlers(this._actionHandlers);\n }\n get onOpen() {\n return this._actionHandlers.onOpen;\n }\n\n\t/**\n\t * Sets handler to be called on request to render current report.\n\t */\n @Input() set onRender(value: DesignerNS.ActionHandlers['onRender']) {\n this._actionHandlers.onRender = value;\n if (this._designer) this._designer.setActionHandlers(this._actionHandlers);\n }\n get onRender() {\n return this._actionHandlers.onRender;\n }\n\n\t/**\n\t * Sets handler to be called on saving report.\n\t * Handler returns Promise with new report info if report was saved or 'undefined' if operation was cancelled.\n\t */\n @Input() set onSave(value: DesignerNS.ActionHandlers['onSave']) {\n this._actionHandlers.onSave = value;\n if (this._designer) this._designer.setActionHandlers(this._actionHandlers);\n }\n get onSave() {\n return this._actionHandlers.onSave;\n }\n\n\t/**\n\t * Sets handler to be called on saving report as new.\n\t * Handler returns Promise with new report info if report was saved or 'undefined' if operation was cancelled.\n\t */\n @Input() set onSaveAs(value: DesignerNS.ActionHandlers['onSaveAs']) {\n this._actionHandlers.onSaveAs = value;\n if (this._designer) this._designer.setActionHandlers(this._actionHandlers);\n }\n get onSaveAs() {\n return this._actionHandlers.onSaveAs;\n }\n\n\t/**\n\t * Sets handler to be called on open custom file menu.\n\t */\n @Input() set onOpenFileMenu(value: DesignerNS.ActionHandlers['onOpenFileMenu']) {\n this._actionHandlers.onOpenFileMenu = value;\n if (this._designer) this._designer.setActionHandlers(this._actionHandlers);\n }\n get onOpenFileMenu() {\n return this._actionHandlers.onOpenFileMenu;\n }\n\n private _report: DesignerNS.Report;\n\n private _disposables: Array<() => void> = [];\n\n /**\n * Watch report property\n */\n @Input() set report(value: DesignerNS.Report) {\n if (hasReportChanged(value, this._report)) {\n this._report = value;\n if (value) this.setReport(value , 'override');\n else {\n if (!this._designer) return;\n this._designer.createReport({ reportType: 'CPL' }, 'override');\n }\n }\n }\n\n /** documentChanged event. */\n @Output() documentChanged = new EventEmitter<DocumentChangedEventArgs>();\n\n ngAfterViewInit() {\n const config = this.onInit?.();\n this._designer = new DesignerNS.Designer(this.rootElement.nativeElement, config);\n this._designer.setResourceProvider({\n getImagesList: async () => this.imageList || [],\n getReportsList: async () => this.reportList || [],\n getMasterReportList: async () => this.masterReportList || [],\n getThemesList: async () => this.themeList || [],\n });\n this._designer.setActionHandlers(this._actionHandlers);\n if (this.dataSources) this._designer.setDataSourceTemplates(this._dataSources || []);\n if (this._report) this.setReport(this._report, 'override');\n\n this._disposables.push(\n this._designer.documentChanged.register(args => this.documentChanged.emit(args)),\n );\n }\n\n\t/**\n\t * Sets report.\n\t * @param report Report info to load.\n\t * @param whenDirty Action to perform in case of 'dirty' report.\n * @param isDirtyInitial Initial value for 'dirty' state after load.\n\t */\n setReport(report: DesignerNS.Report, whenDirty?: DesignerNS.WhenDirty, isDirtyInitial?: boolean): Promise<void> {\n if (!this._designer) return Promise.resolve();\n\n return this._designer.setReport(report, whenDirty, isDirtyInitial);\n }\n\n /** Gets current report. */\n getReport(): Promise<DesignerNS.ReportInfo> {\n if (!this._designer) return Promise.resolve() as any;\n\n return this._designer.getReport();\n }\n\n /**\n * Creates report.\n * @param reportInfo Report info to load.\n * @param whenDirty Action to perform in case of 'dirty' report.\n */\n createReport(reportInfo: DesignerNS.NewReportInfo, whenDirty?: DesignerNS.WhenDirty): Promise<void> {\n if (!this._designer) return Promise.resolve();\n return this._designer.createReport(reportInfo, whenDirty);\n }\n\n\t/**\n\t * Process command.\n\t * @param cmd Command name.\n\t */\n processCommand(cmd: DesignerNS.DesignerCommand) {\n if (!this._designer) return Promise.resolve();\n\n return this._designer.processCommand(cmd);\n }\n\n /**\n * Returns focus to Designer.\n */\n\tfocus() {\n\t\tif(this._designer == null) throw new Error(\"Designer is not initialized yet\");\n\t\tthis._designer.focus();\n\t}\n\n\t/**\n * Gets API to manipulate designer.\n */\n getEditorAPI(): Promise<DesignerNS.EditorAPI> {\n\t\tif(this._designer == null) throw new Error(\"Designer is not initialized yet\");\n\t\treturn this._designer.getEditorAPI();\n\t}\n\n\t/*\n * Access to the menu and sidebar panels\n */\n\tgetPanelsAPI(): Promise<DesignerNS.PanelsAPI> {\n\t\tif(this._designer == null) throw new Error(\"Designer is not initialized yet\");\n\t\treturn this._designer.getPanelsAPI();\n\t}\n\n\t/*\n * Manipulate notifications panel.\n */\n\tgetNotificationsAPI(): Promise<DesignerNS.NotificationsAPI> {\n\t\tif(this._designer == null) throw new Error(\"Designer is not initialized yet\");\n\t\treturn this._designer.getNotificationsAPI();\n\t}\n\n ngOnDestroy() {\n while (this._disposables.length) {\n this._disposables.shift()!();\n }\n // this._designer.dispose();\n }\n}\n","<div #designerRoot [style.width]=\"width\" [style.height]=\"height\"></div>\n","import { NgModule } from '@angular/core';\nimport { ViewerComponent } from './viewer/viewer.component';\nimport { DesignerComponent } from './designer/designer.component';\n\n@NgModule({\n declarations: [ViewerComponent, DesignerComponent],\n imports: [\n ],\n exports: [ViewerComponent, DesignerComponent]\n})\nexport class ActiveReportsModule { }\n","import { PdfExport } from '@mescius/activereportsjs';\n\nimport { Injectable } from '@angular/core';\nimport { Export } from './export-injectiontoken';\n\nimport { ViewerComponent } from './viewer/viewer.component';\n\n@Injectable({\n providedIn: ViewerComponent\n})\nexport class PdfExportService extends Export {\n\n constructor() { super(); }\n\n override readonly key = 'pdf';\n async init() {\n // 'exportDocument' must be used to avoid tree-shaking\n if (typeof PdfExport.exportDocument !== 'function') {\n console.error(`Invalid \"${this.key}\" export module.`);\n }\n }\n}\n","import { XlsxExport } from '@mescius/activereportsjs';\n\nimport { Injectable } from '@angular/core';\nimport { Export } from './export-injectiontoken';\nimport { ViewerComponent } from './viewer/viewer.component';\n\n@Injectable({\n providedIn: ViewerComponent\n})\nexport class XlsxExportService extends Export {\n\n constructor() { super(); }\n\n override readonly key = 'xlsx';\n async init() {\n // 'exportDocument' must be used to avoid tree-shaking\n if (typeof XlsxExport.exportDocument !== 'function') {\n console.error(`Invalid \"${this.key}\" export module.`);\n }\n }\n}\n","import { HtmlExport } from '@mescius/activereportsjs';\n\nimport { Injectable } from '@angular/core';\n\nimport { Export } from './export-injectiontoken';\nimport { ViewerComponent } from './viewer/viewer.component';\n\n@Injectable({\n providedIn: ViewerComponent\n})\nexport class HtmlExportService extends Export {\n\n constructor() { super(); }\n\n override readonly key = 'html';\n async init() {\n // 'exportDocument' must be used to avoid tree-shaking\n if (typeof HtmlExport.exportDocument !== 'function') {\n console.error(`Invalid \"${this.key}\" export module.`);\n }\n }\n}\n","import { TabularDataExport } from '@mescius/activereportsjs';\n\nimport { Injectable } from '@angular/core';\nimport { Export } from './export-injectiontoken';\nimport { ViewerComponent } from './viewer/viewer.component';\n\n@Injectable({\n providedIn: ViewerComponent\n})\nexport class TabularDataExportService extends Export {\n\n constructor() { super(); }\n\n override readonly key = 'tabular-data';\n async init() {\n // 'exportDocument' must be used to avoid tree-shaking\n if (typeof TabularDataExport.exportDocument !== 'function') {\n console.error(`Invalid \"${this.key}\" export module.`);\n }\n }\n}\n","/*\n * Public API Surface of activereports\n */\n\nexport * from './lib/viewer/viewer.component';\nexport * from './lib/designer/designer.component';\nexport * from './lib/activereports.module';\nexport * from './lib/pdf-export.service';\nexport * from './lib/xlsx-export.service';\nexport * from './lib/html-export.service';\nexport * from './lib/tabular-data-export.service';\nexport * from './lib/export-injectiontoken';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ViewerNs","DesignerNS"],"mappings":"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"}