UNPKG

stimulsoft-reports-js-angular

Version:

Stimulsoft Reports.JS is a reporting tool for Angular

147 lines (138 loc) 5.42 kB
import * as i0 from "@angular/core"; import { EventEmitter } from "@angular/core"; import { } from "./stimulsoft.reports.engine.mjs"; import { } from "./stimulsoft.reports.chart.mjs"; import { } from "./stimulsoft.reports.export.mjs"; import { } from "./stimulsoft.reports.import.xlsx.mjs"; import { } from "./stimulsoft.reports.maps.mjs"; import { } from "./stimulsoft.viewer.mjs"; import { } from "./stimulsoft.designer.mjs"; import { Stimulsoft } from "./stimulsoft.blockly.editor.mjs"; export { Stimulsoft } export class Designer { #designer; #parentRef; #createDesigner() { this.#designer = new Stimulsoft.Designer.StiDesigner(this.options, this.id, false); this.#designer.renderHtml(this.#parentRef.nativeElement); this.#bindEvents(); this.#designer.visible = this.visible; } #bindEvents() { if (this.#designer) { this.#designer.onPrepareVariables = (args) => this.onPrepareVariables.emit(args); this.#designer.onBeginProcessData = (args) => this.onBeginProcessData.emit(args); this.#designer.onEndProcessData = (args) => this.onEndProcessData.emit(args); this.#designer.onCreateReport = (args) => this.onCreateReport.emit(args); this.#designer.onCloseReport = (args) => this.onCloseReport.emit(args); this.#designer.onOpenReport = (args) => { args.preventDefault = false; this.onOpenReport.emit(args); } this.#designer.onOpenedReport = (args) => this.onOpenedReport.emit(args); this.#designer.onSaveReport = (args) => { args.preventDefault = false; this.onSaveReport.emit(args); } this.#designer.onSaveAsReport = (args) => this.onSaveAsReport.emit(args); this.#designer.onPreviewReport = (args) => this.onPreviewReport.emit(args); this.#designer.onExit = (args) => this.onExit.emit(args); this.#designer.onAssignedReport = (args) => { this.onAssignedReport.emit(args); this.reportChange.emit(args.report); } } } ngAfterViewInit() { this.#createDesigner(); this.#designer.report = this.report; } ngOnChanges(changes) { for (let propName in changes) { switch (propName) { case "options": { if (this.#designer) { this.#createDesigner(); this.#designer.report = this.report; } break; } case "report": { if (this.#designer) this.#designer.report = changes[propName].currentValue; break; } case "visible": { if (this.#designer) this.#designer.visible = changes[propName].currentValue; break; } case "id": { if (this.#designer) { this.#createDesigner(); this.#designer.report = this.report; } break; } } } } ngOnDestroy() { if (this.#designer != null) this.#designer.dispose(); } report = undefined; reportChange = new EventEmitter(); visible = true; options = undefined; id = undefined; onPrepareVariables = new EventEmitter(); onBeginProcessData = new EventEmitter(); onEndProcessData = new EventEmitter(); onCreateReport = new EventEmitter(); onCloseReport = new EventEmitter(); onOpenReport = new EventEmitter(); onOpenedReport = new EventEmitter(); onSaveReport = new EventEmitter(); onSaveAsReport = new EventEmitter(); onPreviewReport = new EventEmitter(); onExit = new EventEmitter(); onAssignedReport = new EventEmitter(); static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: Designer, deps: [], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: Designer, isStandalone: true, selector: "sti-designer", inputs: { report: "report", visible: "visible", options: "options", id: "id" }, outputs: { reportChange: "reportChange", onPrepareVariables: "onPrepareVariables", onBeginProcessData: "onBeginProcessData", onEndProcessData: "onEndProcessData", onCreateReport: "onCreateReport", onCloseReport: "onCloseReport", onOpenReport: "onOpenReport", onOpenedReport: "onOpenedReport", onSaveReport: "onSaveReport", onSaveAsReport: "onSaveAsReport", onPreviewReport: "onPreviewReport", onExit: "onExit", onAssignedReport: "onAssignedReport" }, viewQueries: [{ propertyName: "#parentRef", first: true, predicate: ["parentRef"], descendants: true }], usesOnChanges: true, template: `<div #parentRef></div>`, isInline: true }); }