UNPKG

stimulsoft-designer-angular

Version:

The Angular Designer component is developed to create reports and dashboards in web browser.

1 lines 35.3 kB
{"version":3,"file":"stimulsoft-designer-angular.mjs","sources":["../../../projects/stimulsoft-designer-angular/src/lib/file.saver.service.ts","../../../projects/stimulsoft-designer-angular/src/lib/proxy.service.ts","../../../projects/stimulsoft-designer-angular/src/lib/stimulsoft-designer-angular.component.ts","../../../projects/stimulsoft-designer-angular/src/lib/stimulsoft-designer-angular.module.ts","../../../projects/stimulsoft-designer-angular/src/public-api.ts","../../../projects/stimulsoft-designer-angular/src/stimulsoft-designer-angular.ts"],"sourcesContent":["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 { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { catchError, Observable, EMPTY } from 'rxjs';\r\nimport { FileSaverService } from './file.saver.service';\r\n\r\n@Injectable()\r\nexport class ProxyService {\r\n\r\n public jsObject: any;\r\n public openReport = false;\r\n public postParametersFunction_: any;\r\n\r\n constructor(private httpClient: HttpClient, 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 formData = new FormData();\r\n Object.keys(data).forEach(key => formData.append(key, data[key]));\r\n }\r\n\r\n let needGet = data && data[\"stiweb_action\"] === \"Resource\";\r\n let observable: Observable<any>;\r\n if (needGet) {\r\n observable = this.httpClient.get(request.url, formData ?? data).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n return this.catchError(error, request);\r\n }));\r\n } else {\r\n observable = this.httpClient.post(request.url, formData ?? data, { responseType: request.responseType }).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n return this.catchError(error, request);\r\n }));\r\n }\r\n\r\n let downloadFileName;\r\n try {\r\n let dataObj = JSON.parse(window[\"StiBase64\"].decode(data.stiweb_parameters));\r\n downloadFileName = dataObj.command == \"DownloadReport\" ? dataObj.reportFile : null;\r\n } catch { }\r\n\r\n observable.subscribe(data => {\r\n request.readyState = 4;\r\n let resultData = needGet ? JSON.stringify(data) : data;\r\n if (request.responseType == \"text\") request.responseText = resultData;\r\n else request.response = resultData;\r\n request.status = 200;\r\n\r\n if (downloadFileName) {\r\n let blob = new Blob([data], { type: \"application/xml\", });\r\n this.fileSaver.saveAs(blob, downloadFileName);\r\n request.responseText = \"{\\\"command\\\":\\\"SaveReport\\\"}\";\r\n }\r\n\r\n request.onreadystatechange();\r\n });\r\n }\r\n\r\n return request;\r\n\r\n };\r\n\r\n public catchError(error: HttpErrorResponse, request: any) {\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 public error(message: any) {\r\n }\r\n\r\n public export(data: any) {\r\n }\r\n\r\n public email(data: any) {\r\n }\r\n\r\n public print(data: any) {\r\n }\r\n\r\n public design() {\r\n }\r\n\r\n public postParametersFunction(data) {\r\n return this.postParametersFunction_ ? this.postParametersFunction_(data) : {};\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\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}\r\n","import { Component, OnInit, Input, ElementRef, ViewChild, OnChanges, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { ProxyService } from './proxy.service';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { EMPTY, catchError } from 'rxjs';\r\nimport { FileSaverService } from './file.saver.service';\r\n\r\ndeclare var Stimulsoft: any;\r\n\r\n@Component({\r\n selector: 'stimulsoft-designer-angular',\r\n template: `\r\n <div #designer [attr.id]=\"id\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n styles: [],\r\n providers: [ProxyService, FileSaverService]\r\n})\r\nexport class StimulsoftDesignerComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n @ViewChild('designer') designerEl: ElementRef;\r\n\r\n /**\r\n * Occurs when designer loaded\r\n */\r\n @Output() designerLoaded: EventEmitter<any> = new EventEmitter();\r\n\r\n /**\r\n * Url to server instance (designer controller)\r\n * Example: http://server.url:51528/api/designer\r\n */\r\n @Input() requestUrl: string;\r\n\r\n /**\r\n * The width of Designer\r\n */\r\n @Input() width: string;\r\n\r\n /**\r\n * The height of Designer\r\n */\r\n @Input() height: string;\r\n\r\n @Input() postParametersFunction: any;\r\n\r\n id = 'aDesigner' + (Math.random() * 10000000).toString();\r\n designer: any;\r\n chartScripts: any;\r\n scriptLoading = false;\r\n\r\n private loaded = false;\r\n\r\n constructor(private proxy: ProxyService, private httpClient: HttpClient) { }\r\n ngOnDestroy(): void {\r\n if (this.chartScripts) {\r\n this.head.removeChild(this.chartScripts);\r\n }\r\n\r\n let options = this.designerEl.nativeElement?.firstChild?.jsObject?.options;\r\n try {\r\n clearTimeout(options.timerAjax);\r\n } catch { }\r\n\r\n try {\r\n clearTimeout(options.timerUpdateCache);\r\n } catch { }\r\n\r\n try {\r\n clearTimeout(options.timerAutoSave);\r\n } catch { }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addScript();\r\n }\r\n\r\n ngOnChanges(changes: import('@angular/core').SimpleChanges): void {\r\n this.addScript();\r\n }\r\n\r\n addScript() {\r\n if (this.scriptLoading) return;\r\n this.scriptLoading = true;\r\n\r\n if (this.chartScripts) {\r\n this.head.removeChild(this.chartScripts);\r\n }\r\n this.chartScripts = document.createElement('Script') as HTMLScriptElement;\r\n this.chartScripts.setAttribute('type', 'text/javascript');\r\n this.head.appendChild(this.chartScripts);\r\n\r\n let observable = this.httpClient.get(this.requestUrl, { responseType: 'text' }).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n console.log(error);\r\n this.scriptLoading = false;\r\n return EMPTY;\r\n }));\r\n\r\n observable.subscribe(data => {\r\n if (!this.loaded) {\r\n try {\r\n this.chartScripts.innerHTML = data;\r\n const options = new Stimulsoft.Designer.StiDesignerOptions();\r\n this.loaded = true;\r\n setTimeout(() => {\r\n this.scriptLoading = false;\r\n });\r\n this.showDesigner();\r\n this.designerLoadedF();\r\n } catch {\r\n this.scriptLoading = false;\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n designerLoadedF() {\r\n let jsObject = this.designerEl.nativeElement?.firstChild?.jsObject;\r\n if (!jsObject) {\r\n setTimeout(() => {\r\n this.designerLoadedF();\r\n });\r\n return;\r\n }\r\n this.designerLoaded.next(null);\r\n }\r\n\r\n showDesigner() {\r\n const options = new Stimulsoft.Designer.StiDesignerOptions();\r\n let defaultOptions = Stimulsoft?.Designer?.defaultOptions;\r\n if (defaultOptions) {\r\n for (let k in defaultOptions)\r\n options[k] = defaultOptions[k];\r\n\r\n options.useAliasesDictionary = defaultOptions.dictionary.useAliases;\r\n }\r\n\r\n if (this.width) {\r\n options.width = this.width;\r\n }\r\n if (this.height) {\r\n options.height = this.height;\r\n }\r\n\r\n this.designer = new Stimulsoft.Designer.StiDesigner(options, 'StiDesigner', false);\r\n\r\n this.proxy.postParametersFunction_ = this.postParametersFunction;\r\n this.designerEl.nativeElement.proxy = this.proxy;\r\n\r\n this.designer.renderHtml(this.designerEl.nativeElement);\r\n }\r\n\r\n public get head(): HTMLHeadElement {\r\n return document.getElementsByTagName('head')[0];\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { StimulsoftDesignerComponent } from './stimulsoft-designer-angular.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [StimulsoftDesignerComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [StimulsoftDesignerComponent]\r\n})\r\nexport class StimulsoftDesignerModule { }\r\n","/*\r\n * Public API Surface of stimulsoft-designer-angular\r\n */\r\n\r\nexport * from './lib/stimulsoft-designer-angular.component';\r\nexport * from './lib/stimulsoft-designer-angular.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.FileSaverService","i1.ProxyService","i2"],"mappings":"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"}