diff --git a/CSETWebNg/src/app/app.module.ts b/CSETWebNg/src/app/app.module.ts
index 5a2c67f4f2..bfd5e58ae7 100644
--- a/CSETWebNg/src/app/app.module.ts
+++ b/CSETWebNg/src/app/app.module.ts
@@ -688,6 +688,8 @@ import { RolesChangedComponent } from './dialogs/roles-changed/roles-changed.com
import { AnalyticsResultsComponent } from './assessment/results/analytics-results/analytics-results.component';
import { firstValueFrom } from 'rxjs';
import { UpgradeComponent } from './assessment/upgrade/upgrade.component';
+import { CodeEditorModule } from '@ngstack/code-editor';
+import { ImportComponent } from './import/import.component';
@NgModule({
declarations: [
@@ -1228,7 +1230,8 @@ import { UpgradeComponent } from './assessment/upgrade/upgrade.component';
QuestionsReviewedComponent,
RolesChangedComponent,
AnalyticsResultsComponent,
- UpgradeComponent
+ UpgradeComponent,
+ ImportComponent
],
bootstrap: [AppComponent], imports: [BrowserModule,
BrowserAnimationsModule,
@@ -1292,7 +1295,11 @@ import { UpgradeComponent } from './assessment/upgrade/upgrade.component';
TooltipModule,
SwiperModule,
EllipsisModule,
- HotkeyModule.forRoot(),],
+ HotkeyModule.forRoot(),
+ CodeEditorModule.forRoot({
+ typingsWorkerUrl: 'assets/workers/typings-worker.js',
+ baseUrl: 'assets/monaco'
+ })],
providers: [
TranslocoService,
provideTranslocoScope('tutorial', 'reports'),
diff --git a/CSETWebNg/src/app/import/import.component.html b/CSETWebNg/src/app/import/import.component.html
index 7d06d40706..c433bcfa65 100644
--- a/CSETWebNg/src/app/import/import.component.html
+++ b/CSETWebNg/src/app/import/import.component.html
@@ -185,7 +185,7 @@
Warning: This will clear the code editor
- -->
+
diff --git a/CSETWebNg/src/app/import/import.component.ts b/CSETWebNg/src/app/import/import.component.ts
index 037d866051..6bc92335f5 100644
--- a/CSETWebNg/src/app/import/import.component.ts
+++ b/CSETWebNg/src/app/import/import.component.ts
@@ -22,21 +22,19 @@
//
////////////////////////////////
import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';
-import { CodeEditorComponent, CodeEditorService, CodeModel, provideCodeEditor } from '@ngstack/code-editor';
+import { CodeEditorComponent, CodeEditorService, CodeModel } from '@ngstack/code-editor';
import { saveAs } from 'file-saver';
import { editor } from 'monaco-editor/esm/vs/editor/editor.api';
import { Subject, Subscription } from 'rxjs';
import { debounceTime } from 'rxjs/operators';
import screenfull from 'screenfull';
import { Screenfull } from "screenfull";
-import { FileItem, FileUploader, FileUploadModule } from 'ng2-file-upload';
+import { FileItem, FileUploader } from 'ng2-file-upload';
import { XmlCompletionItemProvider } from '../models/xmlCompletionItemProvider.model';
import { ConfigService } from '../services/config.service';
import { FileUploadClientService, LinkedSet } from '../services/file-client.service';
import { XmlFormatterFactory } from './formatting/xml-formatter';
import { XmlFormattingEditProvider } from './formatting/xml-formatting-edit-provider';
-import { CommonModule } from '@angular/common';
-import { FormsModule } from '@angular/forms';
export class ImportFormData {
@@ -49,12 +47,7 @@ export class ImportFormData {
templateUrl: './import.component.html',
// eslint-disable-next-line
host: { class: 'd-flex flex-11a w-100' },
- standalone: true,
- imports: [CommonModule, CodeEditorComponent, FormsModule, FileUploadModule],
- providers: [provideCodeEditor({
- typingsWorkerUrl: 'assets/workers/typings-worker.js',
- baseUrl: 'assets/monaco'
- })]
+ standalone: false,
})
export class ImportComponent implements OnInit, OnDestroy {
public uploader: FileUploader;
@@ -371,20 +364,12 @@ export class ImportComponent implements OnInit, OnDestroy {
uri: 'http://custom/schema.xsd',
schema: s
});
- if (t?.monaco?.languages) {
+
+ if (t?.monaco) {
this.monaco = t.monaco;
- t.monaco.languages.registerCompletionItemProvider(
- 'xml',
- new XmlCompletionItemProvider(t, s)
- );
- t.monaco.languages.registerDocumentFormattingEditProvider(
- 'xml',
- new XmlFormattingEditProvider(XmlFormatterFactory.getXmlFormatter())
- );
- t.monaco.languages.registerDocumentRangeFormattingEditProvider(
- 'xml',
- new XmlFormattingEditProvider(XmlFormatterFactory.getXmlFormatter())
- );
+ this.registerXmlProviders(s);
+ } else {
+ console.warn("Monaco not fully initialized");
}
});
});
@@ -398,6 +383,27 @@ export class ImportComponent implements OnInit, OnDestroy {
});
}
+ private registerXmlProviders(schemaContent: string) {
+ try {
+ if (this.monaco?.languages) {
+ this.monaco.languages.registerCompletionItemProvider(
+ 'xml',
+ new XmlCompletionItemProvider(this.monaco, schemaContent)
+ );
+ this.monaco.languages.registerDocumentFormattingEditProvider(
+ 'xml',
+ new XmlFormattingEditProvider(XmlFormatterFactory.getXmlFormatter())
+ );
+ this.monaco.languages.registerDocumentRangeFormattingEditProvider(
+ 'xml',
+ new XmlFormattingEditProvider(XmlFormatterFactory.getXmlFormatter())
+ );
+ }
+ } catch (err) {
+ console.error('Failed to register XML providers:', err);
+ }
+ }
+
public showError(): boolean {
if (this.state === 'Processing') {
return false;