UNPKG

devexpress-reporting

Version:

DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.

62 lines (61 loc) 2.6 kB
/** * DevExpress HTML/JS Reporting (designer\internal\scripting\_languageHelper.js) * Version: 25.2.3 * Build date: Dec 15, 2025 * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * License: https://www.devexpress.com/Support/EULAs/universal.xml */ import { aceAvailable } from '@devexpress/analytics-core/analytics-widgets-internal'; import ace from 'ace-builds/src-noconflict/ace'; import 'ace-builds/src-noconflict/mode-csharp'; import 'ace-builds/src-noconflict/mode-vbscript'; import { ReportCompleter } from './_reportCompleter'; aceAvailable(!!ace); export class LanguageHelper { getLanguageMode() { if (this._report()) { const scriptLanguage = this._report().scriptLanguage(); switch (scriptLanguage) { case 'CSharp': return 'ace/mode/csharp'; case 'VisualBasic': return 'ace/mode/vbscript'; default: return 'ace/mode/text'; } } } createNewHandler(eventName, eventArgsType) { if (this._report()) { const scriptLanguage = this._report().scriptLanguage(); switch (scriptLanguage) { case 'CSharp': return '\r\nprivate void ' + eventName + '(object sender, ' + eventArgsType + ' e) {\r\n\r\n}\r\n'; case 'VisualBasic': return '\r\nPrivate Sub ' + eventName + '(ByVal sender As Object, ByVal e As ' + eventArgsType + ')\r\n\r\nEnd Sub\r\n'; case 'JScript': return '\r\nprivate final function ' + eventName + '(sender : System.Object, e : ' + eventArgsType + ') {\r\n\r\n}\r\n'; } } } getFunctionNamesFromScript(scripts) { if (this._report()) { const keyWords = { 'CSharp': 'void ', 'VisualBasic': 'Sub ', 'JScript': 'function ' }; const scriptLanguage = this._report().scriptLanguage(); const events = []; if (scripts) { const lines = scripts.match(new RegExp(keyWords[scriptLanguage] + '(([A-Z])|[a-z])\\w+\\(', 'g')); lines && lines.forEach((line) => { events.push(line.substring(keyWords[scriptLanguage].length, line.length - 1)); }); } return events; } } constructor(report) { this._report = report; } createCompleters(editor, bindingContext, viewModel) { return [new ReportCompleter(bindingContext.$root.model, editor, viewModel.guid)]; } }