{"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 '@grapecity/activereports';\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 '@grapecity/activereports';\nimport { DocumentChangedEventArgs } from '@grapecity/activereports/reportdesigner';\n\nexport { ColorThemes } from '@grapecity/activereports/reportdesigner';\nexport type { ColorTheme } from '@grapecity/activereports/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 '@grapecity/activereports';\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 '@grapecity/activereports';\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 '@grapecity/activereports';\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 '@grapecity/activereports';\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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"}