@dotglitch/ngx-common 1.0.42 → 1.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,13 +44,9 @@ export declare class VscodeComponent implements AfterViewInit, OnDestroy {
44
44
  ngOnDestroy(): void;
45
45
  private createEditor;
46
46
  private configureLanguageSupport;
47
- /**
48
- * true if the monaco UMD files are injected into the webpage
49
- */
50
- private static isMonacoInstalled;
51
- private installMonaco;
52
47
  download(): void;
53
48
  resize: () => void;
54
49
  static ɵfac: i0.ɵɵFactoryDeclaration<VscodeComponent, never>;
55
50
  static ɵcmp: i0.ɵɵComponentDeclaration<VscodeComponent, "app-vscode", never, { "code": "code"; "customLanguage": "customLanguage"; "language": "language"; "installationLocation": "installationLocation"; "tabSize": "tabSize"; "readOnly": "readOnly"; "theme": "theme"; "fontFamily": "fontFamily"; "fontSize": "fontSize"; "automaticLayout": "automaticLayout"; "colorDecorators": "colorDecorators"; "folding": "folding"; "minimapEnabled": "minimapEnabled"; "minimap": "minimap"; "scrollbar": "scrollbar"; "smoothScrolling": "smoothScrolling"; "mouseWheelScrollSensitivity": "mouseWheelScrollSensitivity"; "scrollBeyondLastLine": "scrollBeyondLastLine"; "scrollBeyondLastColumn": "scrollBeyondLastColumn"; "lineNumbers": "lineNumbers"; "restSettings": "restSettings"; }, { "codeChange": "codeChange"; }, never, never, true, never>;
56
51
  }
52
+ export declare const InstallMonacoUMD: (path?: string) => Promise<any>;
@@ -75,7 +75,7 @@ export class VscodeComponent {
75
75
  this.resize = () => {
76
76
  this.editor?.layout();
77
77
  };
78
- this.installMonaco();
78
+ InstallMonacoUMD(this.installationLocation);
79
79
  this._sub = this.typeDebounce.subscribe(t => {
80
80
  this.codeChange.next(this._code = this.editor.getValue());
81
81
  });
@@ -92,21 +92,7 @@ export class VscodeComponent {
92
92
  Monaco?.editor.setTheme(this.theme);
93
93
  }
94
94
  async ngAfterViewInit() {
95
- await new Promise((res, rej) => {
96
- let count = 0;
97
- let i = window.setInterval(() => {
98
- count++;
99
- if (window['monaco'] != undefined) {
100
- window.clearInterval(i);
101
- Monaco = window['monaco'];
102
- res(true);
103
- }
104
- if (count >= 100) {
105
- window.clearInterval(i);
106
- res(false);
107
- }
108
- }, 100);
109
- });
95
+ await InstallMonacoUMD();
110
96
  this.createEditor();
111
97
  }
112
98
  ngOnDestroy() {
@@ -130,35 +116,6 @@ export class VscodeComponent {
130
116
  }
131
117
  configureLanguageSupport() {
132
118
  }
133
- installMonaco() {
134
- if (VscodeComponent.isMonacoInstalled)
135
- return;
136
- if (window['monaco']) {
137
- VscodeComponent.isMonacoInstalled = true;
138
- return;
139
- }
140
- // Monaco has a UMD loader that requires this
141
- // Merge with any pre-existing global require objects.
142
- if (!window['require'])
143
- window['require'] = {};
144
- if (!window['require']['paths'])
145
- window['require']['paths'] = {};
146
- if (this.installationLocation.endsWith('/'))
147
- this.installationLocation = this.installationLocation.slice(0, -1);
148
- window['require']['paths'].vs = this.installationLocation;
149
- const monacoFiles = [
150
- 'loader.js',
151
- 'editor/editor.main.nls.js',
152
- 'editor/editor.main.js',
153
- ];
154
- for (let i = 0; i < monacoFiles.length; i++) {
155
- const script = document.createElement("script");
156
- script.setAttribute("defer", "");
157
- script.setAttribute("src", this.installationLocation + '/' + monacoFiles[i]);
158
- document.body.append(script);
159
- }
160
- VscodeComponent.isMonacoInstalled = true;
161
- }
162
119
  download() {
163
120
  const code = this.editor.getValue();
164
121
  let blob = new Blob([code], { type: 'text/log' });
@@ -174,10 +131,6 @@ export class VscodeComponent {
174
131
  URL.revokeObjectURL(blobURL);
175
132
  }
176
133
  }
177
- /**
178
- * true if the monaco UMD files are injected into the webpage
179
- */
180
- VscodeComponent.isMonacoInstalled = false;
181
134
  VscodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: VscodeComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
182
135
  VscodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: VscodeComponent, isStandalone: true, selector: "app-vscode", inputs: { code: "code", customLanguage: "customLanguage", language: "language", installationLocation: "installationLocation", tabSize: "tabSize", readOnly: "readOnly", theme: "theme", fontFamily: "fontFamily", fontSize: "fontSize", automaticLayout: "automaticLayout", colorDecorators: "colorDecorators", folding: "folding", minimapEnabled: "minimapEnabled", minimap: "minimap", scrollbar: "scrollbar", smoothScrolling: "smoothScrolling", mouseWheelScrollSensitivity: "mouseWheelScrollSensitivity", scrollBeyondLastLine: "scrollBeyondLastLine", scrollBeyondLastColumn: "scrollBeyondLastColumn", lineNumbers: "lineNumbers", restSettings: "restSettings" }, outputs: { codeChange: "codeChange" }, host: { listeners: { "window:resize": "resize($event)" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":host{display:block;height:100%;max-height:100vh;max-width:100vw}\n"] });
183
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: VscodeComponent, decorators: [{
@@ -231,4 +184,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
231
184
  type: HostListener,
232
185
  args: ['window:resize', ['$event']]
233
186
  }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnNjb2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy92c2NvZGUvdnNjb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBRzNKLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRXBDLElBQUksTUFBMkIsQ0FBQztBQWVoQyxNQUFNLE9BQU8sZUFBZTtJQU14QixJQUFhLElBQUksQ0FBQyxLQUFhO1FBQzNCLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQ25CLE9BQU87UUFDWCxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVE7WUFDeEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQUEsQ0FBQztJQUNGLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFTeEMsSUFBYSxRQUFRLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2IsSUFBSSxFQUFFLFlBQVk7WUFDbEIsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsS0FBSztTQUNoQixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxNQUFNLENBQUE7SUFDL0IsQ0FBQztJQUNELElBQUksUUFBUSxL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QkFBbkMsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkE2Sk4sTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgKiBhcyBNb25hY29FZGl0b3IgZnJvbSAnbW9uYWNvLWVkaXRvcic7XHJcbmltcG9ydCB7IE1vbmFjb0F1dG9UeXBlSW1wb3J0ZXIgfSBmcm9tICcuL3RzLXR5cGUtcmVzb2x2ZXIvbWFpbic7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xyXG5cclxubGV0IE1vbmFjbzogdHlwZW9mIE1vbmFjb0VkaXRvcjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtdnNjb2RlJyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIHN0eWxlczogW2BcclxuOmhvc3Qge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDB2aDtcclxuICAgIG1heC13aWR0aDogMTAwdnc7XHJcbn1cclxuICAgIGBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVnNjb2RlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIGlzRGlydHkgPSBmYWxzZTtcclxuICAgIGVkaXRvcjogTW9uYWNvRWRpdG9yLmVkaXRvci5JU3RhbmRhbG9uZUNvZGVFZGl0b3I7XHJcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xyXG5cclxuICAgIHByaXZhdGUgX2NvZGU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHNldCBjb2RlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT0gdGhpcy5fY29kZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT0gXCJzdHJpbmdcIilcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlZhbHVlIG11c3QgYmUgb2YgdHlwZSBzdHJpbmdcIik7XHJcblxyXG4gICAgICAgIHRoaXMuX2NvZGUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmVkaXRvcj8uc2V0VmFsdWUodGhpcy5jb2RlKTtcclxuICAgIH07XHJcbiAgICBnZXQgY29kZSgpIHsgcmV0dXJuIHRoaXMuX2NvZGU/LnRyaW0oKSB9XHJcbiAgICBAT3V0cHV0KCkgY29kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgcHJpdmF0ZSBvbkNvZGVUeXBlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgICBwcml2YXRlIHR5cGVEZWJvdW5jZSA9IHRoaXMub25Db2RlVHlwZS5waXBlKGRlYm91bmNlVGltZSgxMDApKTtcclxuXHJcbiAgICBASW5wdXQoKSBjdXN0b21MYW5ndWFnZTogeyBpbml0OiBGdW5jdGlvbjsgfTtcclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2U6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHNldCBsYW5ndWFnZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UgPSB7XHJcbiAgICAgICAgICAgICd0cyc6IFwidHlwZXNjcmlwdFwiLFxyXG4gICAgICAgICAgICAnaHRtbCc6ICd4bWwnLFxyXG4gICAgICAgICAgICAnc2Nzcyc6ICdjc3MnXHJcbiAgICAgICAgfVt2YWx1ZV0gfHwgdmFsdWUgfHwgXCJhdXRvXCJcclxuICAgIH1cclxuICAgIGdldCBsYW5ndWFnZSgpIHsgcmV0dXJuIHRoaXMuX2xhbmd1YWdlIH1cclxuXHJcbiAgICBASW5wdXQoKSBpbnN0YWxsYXRpb25Mb2NhdGlvbiA9IFwiL2xpYi9tb25hY28vdnNcIjtcclxuXHJcblxyXG4gICAgQElucHV0KCkgdGFiU2l6ZSA9IDI7XHJcbiAgICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgdGhlbWUgPSBcInZzLWRhcmtcIjtcclxuICAgIEBJbnB1dCgpIGZvbnRGYW1pbHkgPSBcIkRyb2lkIFNhbnMgTW9ub1wiO1xyXG4gICAgQElucHV0KCkgZm9udFNpemUgPSAxNDtcclxuXHJcbiAgICBASW5wdXQoKSBhdXRvbWF0aWNMYXlvdXQgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgY29sb3JEZWNvcmF0b3JzID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGZvbGRpbmcgPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpIG1pbmltYXBFbmFibGVkID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIG1pbmltYXA6IE1vbmFjb0VkaXRvci5lZGl0b3IuSUVkaXRvck1pbmltYXBPcHRpb25zID0ge1xyXG4gICAgICAgIGVuYWJsZWQ6IHRydWVcclxuICAgIH07XHJcbiAgICBASW5wdXQoKSBzY3JvbGxiYXI6IE1vbmFjb0VkaXRvci5lZGl0b3IuSUVkaXRvclNjcm9sbGJhck9wdGlvbnMgPSB7XHJcbiAgICAgICAgYWx3YXlzQ29uc3VtZU1vdXNlV2hlZWw6IGZhbHNlLFxyXG4gICAgICAgIC8vIHNjcm9sbEJ5UGFnZTogdHJ1ZVxyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpIHNtb290aFNjcm9sbGluZyA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBtb3VzZVdoZWVsU2Nyb2xsU2Vuc2l0aXZpdHkgPSAyO1xyXG4gICAgQElucHV0KCkgc2Nyb2xsQmV5b25kTGFzdExpbmUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNjcm9sbEJleW9uZExhc3RDb2x1bW4gPSAwO1xyXG5cclxuICAgIEBJbnB1dCgpIGxpbmVOdW1iZXJzOiBNb25hY29FZGl0b3IuZWRpdG9yLkxpbmVOdW1iZXJzVHlwZSA9IFwib25cIjtcclxuXHJcbiAgICBASW5wdXQoKSByZXN0U2V0dGluZ3M6IE1vbmFjb0VkaXRvci5lZGl0b3IuSVN0YW5kYWxvbmVFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zID0ge307XHJcblxyXG4gICAgZ2V0IHNldHRpbmdzKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMucmVzdFNldHRpbmdzLFxyXG4gICAgICAgICAgICB0aGVtZTogdGhpcy50aGVtZSxcclxuICAgICAgICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsXHJcbiAgICAgICAgICAgIHRhYlNpemU6IHRoaXMudGFiU2l6ZSxcclxuICAgICAgICAgICAgcmVhZE9ubHk6IHRoaXMucmVhZE9ubHksXHJcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IHRoaXMuZm9udEZhbWlseSxcclxuICAgICAgICAgICAgZm9udFNpemU6IHRoaXMuZm9udFNpemUsXHJcbiAgICAgICAgICAgIGF1dG9tYXRpY0xheW91dDogdGhpcy5hdXRvbWF0aWNMYXlvdXQsXHJcbiAgICAgICAgICAgIHNjcm9sbEJleW9uZExhc3RMaW5lOiB0aGlzLnNjcm9sbEJleW9uZExhc3RMaW5lLFxyXG4gICAgICAgICAgICBjb2xvckRlY29yYXRvcnM6IHRoaXMuY29sb3JEZWNvcmF0b3JzLFxyXG4gICAgICAgICAgICBmb2xkaW5nOiB0aGlzLmZvbGRpbmcsXHJcbiAgICAgICAgICAgIHNjcm9sbEJleW9uZExhc3RDb2x1bW46IHRoaXMuc2Nyb2xsQmV5b25kTGFzdENvbHVtbixcclxuICAgICAgICAgICAgbWluaW1hcDogdGhpcy5taW5pbWFwLFxyXG4gICAgICAgICAgICBzY3JvbGxiYXI6IHRoaXMuc2Nyb2xsYmFyLFxyXG4gICAgICAgICAgICBzbW9vdGhTY3JvbGxpbmc6IHRoaXMuc21vb3RoU2Nyb2xsaW5nLFxyXG4gICAgICAgICAgICBtb3VzZVdoZWVsU2Nyb2xsU2Vuc2l0aXZpdHk6IHRoaXMubW91c2VXaGVlbFNjcm9sbFNlbnNpdGl2aXR5LFxyXG4gICAgICAgICAgICBsaW5lTnVtYmVyczogdGhpcy5saW5lTnVtYmVyc1xyXG4gICAgICAgIH0gYXMgTW9uYWNvRWRpdG9yLmVkaXRvci5JU3RhbmRhbG9uZUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc3ViO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICAgICAgdGhpcy5pbnN0YWxsTW9uYWNvKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX3N1YiA9IHRoaXMudHlwZURlYm91bmNlLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jb2RlQ2hhbmdlLm5leHQodGhpcy5fY29kZSA9IHRoaXMuZWRpdG9yLmdldFZhbHVlKCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICAvLyBJZiB3ZSBjaGFuZ2VkIGFueXRoaW5nIE9USEVSIHRoYW4gY29kZSwgcmVsb2FkIHRoZSBlZGl0b3JcclxuICAgICAgICBpZiAoT2JqZWN0LmtleXMoY2hhbmdlcykubGVuZ3RoID4gMSB8fCAhY2hhbmdlc1snY29kZSddKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmVkaXRvcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0b3I/LmRpc3Bvc2UoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlRWRpdG9yKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ3RoZW1lJ10pXHJcbiAgICAgICAgICAgIE1vbmFjbz8uZWRpdG9yLnNldFRoZW1lKHRoaXMudGhlbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHJcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlcywgcmVqKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgICAgICAgIGxldCBpID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvdW50Kys7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvd1snbW9uYWNvJ10gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIE1vbmFjbyA9IHdpbmRvd1snbW9uYWNvJ107XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGNvdW50ID49IDEwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKGkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcyhmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuY3JlYXRlRWRpdG9yKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3I/LmRpc3Bvc2UoKTtcclxuICAgICAgICB0aGlzLl9zdWI/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVFZGl0b3IoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tTGFuZ3VhZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21MYW5ndWFnZS5pbml0KE1vbmFjbyk7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgbGV0IGVkaXRvciA9IHRoaXMuZWRpdG9yID0gTW9uYWNvLmVkaXRvci5jcmVhdGUodGhpcy52aWV3Q29udGFpbmVyPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50LCB0aGlzLnNldHRpbmdzIGFzIGFueSk7XHJcblxyXG4gICAgICAgIC8vIGNvbnN0IGF1dG9UeXBpbmdzID0gYXdhaXRcclxuICAgICAgICBNb25hY29BdXRvVHlwZUltcG9ydGVyLmNyZWF0ZShlZGl0b3IsIHtcclxuICAgICAgICAgICAgbW9uYWNvOiBNb25hY28sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuY29uZmlndXJlTGFuZ3VhZ2VTdXBwb3J0KCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvZGUpIHtcclxuICAgICAgICAgICAgZWRpdG9yLnNldFZhbHVlKHRoaXMuY29kZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlZGl0b3IuZ2V0TW9kZWwoKS5vbkRpZENoYW5nZUNvbnRlbnQoKCkgPT4gdGhpcy5vbkNvZGVUeXBlLmVtaXQoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjb25maWd1cmVMYW5ndWFnZVN1cHBvcnQoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJ1ZSBpZiB0aGUgbW9uYWNvIFVNRCBmaWxlcyBhcmUgaW5qZWN0ZWQgaW50byB0aGUgd2VicGFnZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBpc01vbmFjb0luc3RhbGxlZCA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBpbnN0YWxsTW9uYWNvKCkge1xyXG4gICAgICAgIGlmIChWc2NvZGVDb21wb25lbnQuaXNNb25hY29JbnN0YWxsZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgaWYgKHdpbmRvd1snbW9uYWNvJ10pIHtcclxuICAgICAgICAgICAgVnNjb2RlQ29tcG9uZW50LmlzTW9uYWNvSW5zdGFsbGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gTW9uYWNvIGhhcyBhIFVNRCBsb2FkZXIgdGhhdCByZXF1aXJlcyB0aGlzXHJcbiAgICAgICAgLy8gTWVyZ2Ugd2l0aCBhbnkgcHJlLWV4aXN0aW5nIGdsb2JhbCByZXF1aXJlIG9iamVjdHMuXHJcbiAgICAgICAgaWYgKCF3aW5kb3dbJ3JlcXVpcmUnXSkgd2luZG93WydyZXF1aXJlJ10gPSB7fSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKCF3aW5kb3dbJ3JlcXVpcmUnXVsncGF0aHMnXSkgd2luZG93WydyZXF1aXJlJ11bJ3BhdGhzJ10gPSB7fTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFsbGF0aW9uTG9jYXRpb24uZW5kc1dpdGgoJy8nKSlcclxuICAgICAgICAgICAgdGhpcy5pbnN0YWxsYXRpb25Mb2NhdGlvbiA9IHRoaXMuaW5zdGFsbGF0aW9uTG9jYXRpb24uc2xpY2UoMCwgLTEpO1xyXG5cclxuICAgICAgICB3aW5kb3dbJ3JlcXVpcmUnXVsncGF0aHMnXS52cyA9IHRoaXMuaW5zdGFsbGF0aW9uTG9jYXRpb247XHJcblxyXG4gICAgICAgIGNvbnN0IG1vbmFjb0ZpbGVzID0gW1xyXG4gICAgICAgICAgICAnbG9hZGVyLmpzJyxcclxuICAgICAgICAgICAgJ2VkaXRvci9lZGl0b3IubWFpbi5ubHMuanMnLFxyXG4gICAgICAgICAgICAnZWRpdG9yL2VkaXRvci5tYWluLmpzJyxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbmFjb0ZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XHJcbiAgICAgICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoXCJkZWZlclwiLCBcIlwiKTtcclxuICAgICAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZShcInNyY1wiLCB0aGlzLmluc3RhbGxhdGlvbkxvY2F0aW9uICsgJy8nICsgbW9uYWNvRmlsZXNbaV0pO1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBWc2NvZGVDb21wb25lbnQuaXNNb25hY29JbnN0YWxsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGRvd25sb2FkKCkge1xyXG4gICAgICAgIGNvbnN0IGNvZGUgPSB0aGlzLmVkaXRvci5nZXRWYWx1ZSgpO1xyXG5cclxuICAgICAgICBsZXQgYmxvYiA9IG5ldyBCbG9iKFtjb2RlXSwgeyB0eXBlOiAndGV4dC9sb2cnIH0pO1xyXG4gICAgICAgIGxldCBlbG0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgbGV0IGJsb2JVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIGRhdGEgdmFsdWVzLlxyXG4gICAgICAgIGVsbS5ocmVmID0gYmxvYlVSTDtcclxuICAgICAgICBlbG0uZG93bmxvYWQgPSB0aGlzLmZpbGVuYW1lO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsbSk7XHJcbiAgICAgICAgZWxtLmNsaWNrKCk7XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxtKTtcclxuICAgICAgICBlbG0ucmVtb3ZlKCk7XHJcblxyXG4gICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwoYmxvYlVSTCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgICByZXNpemUgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3I/LmxheW91dCgpO1xyXG4gICAgfTtcclxufVxyXG4iXX0=
187
+ export const InstallMonacoUMD = async (path) => {
188
+ if (window['monaco'])
189
+ return window['monaco'];
190
+ // Only perform installation if a path is specified.
191
+ if (path) {
192
+ // Monaco has a UMD loader that requires this
193
+ // Merge with any pre-existing global require objects.
194
+ if (!window['require'])
195
+ window['require'] = {};
196
+ if (!window['require']['paths'])
197
+ window['require']['paths'] = {};
198
+ if (path.endsWith('/'))
199
+ path = path.slice(0, -1);
200
+ window['require']['paths'].vs = path;
201
+ const monacoFiles = [
202
+ 'loader.js',
203
+ 'editor/editor.main.nls.js',
204
+ 'editor/editor.main.js',
205
+ ];
206
+ for (let i = 0; i < monacoFiles.length; i++) {
207
+ const script = document.createElement("script");
208
+ script.setAttribute("defer", "");
209
+ script.setAttribute("src", path + '/' + monacoFiles[i]);
210
+ document.body.append(script);
211
+ }
212
+ }
213
+ // Return a promise that will resolve when monaco finishes loading
214
+ return await new Promise((res, rej) => {
215
+ let count = 0;
216
+ let i = window.setInterval(() => {
217
+ count++;
218
+ if (window['monaco'] != undefined) {
219
+ window.clearInterval(i);
220
+ Monaco = window['monaco'];
221
+ res(true);
222
+ }
223
+ else if (count >= 100) {
224
+ window.clearInterval(i);
225
+ res(false);
226
+ }
227
+ }, 100);
228
+ });
229
+ };
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnNjb2RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy92c2NvZGUvdnNjb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBRzNKLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRXBDLElBQUksTUFBMkIsQ0FBQztBQWVoQyxNQUFNLE9BQU8sZUFBZTtJQU14QixJQUFhLElBQUksQ0FBQyxLQUFhO1FBQzNCLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQ25CLE9BQU87UUFDWCxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVE7WUFDeEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQUEsQ0FBQztJQUNGLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFTeEMsSUFBYSxRQUFRLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2IsSUFBSSxFQUFFLFlBQVk7WUFDbEIsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsS0FBSztTQUNoQixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxNQUFNLENBQUE7SUFDL0IsQ0FBQztJQUNELElBQUksUUFBUSxL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LENBQUMsQ0FBQztnQkFDeEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2Q7UUFDTCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgKiBhcyBNb25hY29FZGl0b3IgZnJvbSAnbW9uYWNvLWVkaXRvcic7XHJcbmltcG9ydCB7IE1vbmFjb0F1dG9UeXBlSW1wb3J0ZXIgfSBmcm9tICcuL3RzLXR5cGUtcmVzb2x2ZXIvbWFpbic7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xyXG5cclxubGV0IE1vbmFjbzogdHlwZW9mIE1vbmFjb0VkaXRvcjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtdnNjb2RlJyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIHN0eWxlczogW2BcclxuOmhvc3Qge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDB2aDtcclxuICAgIG1heC13aWR0aDogMTAwdnc7XHJcbn1cclxuICAgIGBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVnNjb2RlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIGlzRGlydHkgPSBmYWxzZTtcclxuICAgIGVkaXRvcjogTW9uYWNvRWRpdG9yLmVkaXRvci5JU3RhbmRhbG9uZUNvZGVFZGl0b3I7XHJcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xyXG5cclxuICAgIHByaXZhdGUgX2NvZGU6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHNldCBjb2RlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT0gdGhpcy5fY29kZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT0gXCJzdHJpbmdcIilcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlZhbHVlIG11c3QgYmUgb2YgdHlwZSBzdHJpbmdcIik7XHJcblxyXG4gICAgICAgIHRoaXMuX2NvZGUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmVkaXRvcj8uc2V0VmFsdWUodGhpcy5jb2RlKTtcclxuICAgIH07XHJcbiAgICBnZXQgY29kZSgpIHsgcmV0dXJuIHRoaXMuX2NvZGU/LnRyaW0oKSB9XHJcbiAgICBAT3V0cHV0KCkgY29kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgcHJpdmF0ZSBvbkNvZGVUeXBlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgICBwcml2YXRlIHR5cGVEZWJvdW5jZSA9IHRoaXMub25Db2RlVHlwZS5waXBlKGRlYm91bmNlVGltZSgxMDApKTtcclxuXHJcbiAgICBASW5wdXQoKSBjdXN0b21MYW5ndWFnZTogeyBpbml0OiBGdW5jdGlvbjsgfTtcclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2U6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHNldCBsYW5ndWFnZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UgPSB7XHJcbiAgICAgICAgICAgICd0cyc6IFwidHlwZXNjcmlwdFwiLFxyXG4gICAgICAgICAgICAnaHRtbCc6ICd4bWwnLFxyXG4gICAgICAgICAgICAnc2Nzcyc6ICdjc3MnXHJcbiAgICAgICAgfVt2YWx1ZV0gfHwgdmFsdWUgfHwgXCJhdXRvXCJcclxuICAgIH1cclxuICAgIGdldCBsYW5ndWFnZSgpIHsgcmV0dXJuIHRoaXMuX2xhbmd1YWdlIH1cclxuXHJcbiAgICBASW5wdXQoKSBpbnN0YWxsYXRpb25Mb2NhdGlvbiA9IFwiL2xpYi9tb25hY28vdnNcIjtcclxuXHJcblxyXG4gICAgQElucHV0KCkgdGFiU2l6ZSA9IDI7XHJcbiAgICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgdGhlbWUgPSBcInZzLWRhcmtcIjtcclxuICAgIEBJbnB1dCgpIGZvbnRGYW1pbHkgPSBcIkRyb2lkIFNhbnMgTW9ub1wiO1xyXG4gICAgQElucHV0KCkgZm9udFNpemUgPSAxNDtcclxuXHJcbiAgICBASW5wdXQoKSBhdXRvbWF0aWNMYXlvdXQgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgY29sb3JEZWNvcmF0b3JzID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGZvbGRpbmcgPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpIG1pbmltYXBFbmFibGVkID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIG1pbmltYXA6IE1vbmFjb0VkaXRvci5lZGl0b3IuSUVkaXRvck1pbmltYXBPcHRpb25zID0ge1xyXG4gICAgICAgIGVuYWJsZWQ6IHRydWVcclxuICAgIH07XHJcbiAgICBASW5wdXQoKSBzY3JvbGxiYXI6IE1vbmFjb0VkaXRvci5lZGl0b3IuSUVkaXRvclNjcm9sbGJhck9wdGlvbnMgPSB7XHJcbiAgICAgICAgYWx3YXlzQ29uc3VtZU1vdXNlV2hlZWw6IGZhbHNlLFxyXG4gICAgICAgIC8vIHNjcm9sbEJ5UGFnZTogdHJ1ZVxyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpIHNtb290aFNjcm9sbGluZyA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBtb3VzZVdoZWVsU2Nyb2xsU2Vuc2l0aXZpdHkgPSAyO1xyXG4gICAgQElucHV0KCkgc2Nyb2xsQmV5b25kTGFzdExpbmUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNjcm9sbEJleW9uZExhc3RDb2x1bW4gPSAwO1xyXG5cclxuICAgIEBJbnB1dCgpIGxpbmVOdW1iZXJzOiBNb25hY29FZGl0b3IuZWRpdG9yLkxpbmVOdW1iZXJzVHlwZSA9IFwib25cIjtcclxuXHJcbiAgICBASW5wdXQoKSByZXN0U2V0dGluZ3M6IE1vbmFjb0VkaXRvci5lZGl0b3IuSVN0YW5kYWxvbmVFZGl0b3JDb25zdHJ1Y3Rpb25PcHRpb25zID0ge307XHJcblxyXG4gICAgZ2V0IHNldHRpbmdzKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMucmVzdFNldHRpbmdzLFxyXG4gICAgICAgICAgICB0aGVtZTogdGhpcy50aGVtZSxcclxuICAgICAgICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsXHJcbiAgICAgICAgICAgIHRhYlNpemU6IHRoaXMudGFiU2l6ZSxcclxuICAgICAgICAgICAgcmVhZE9ubHk6IHRoaXMucmVhZE9ubHksXHJcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IHRoaXMuZm9udEZhbWlseSxcclxuICAgICAgICAgICAgZm9udFNpemU6IHRoaXMuZm9udFNpemUsXHJcbiAgICAgICAgICAgIGF1dG9tYXRpY0xheW91dDogdGhpcy5hdXRvbWF0aWNMYXlvdXQsXHJcbiAgICAgICAgICAgIHNjcm9sbEJleW9uZExhc3RMaW5lOiB0aGlzLnNjcm9sbEJleW9uZExhc3RMaW5lLFxyXG4gICAgICAgICAgICBjb2xvckRlY29yYXRvcnM6IHRoaXMuY29sb3JEZWNvcmF0b3JzLFxyXG4gICAgICAgICAgICBmb2xkaW5nOiB0aGlzLmZvbGRpbmcsXHJcbiAgICAgICAgICAgIHNjcm9sbEJleW9uZExhc3RDb2x1bW46IHRoaXMuc2Nyb2xsQmV5b25kTGFzdENvbHVtbixcclxuICAgICAgICAgICAgbWluaW1hcDogdGhpcy5taW5pbWFwLFxyXG4gICAgICAgICAgICBzY3JvbGxiYXI6IHRoaXMuc2Nyb2xsYmFyLFxyXG4gICAgICAgICAgICBzbW9vdGhTY3JvbGxpbmc6IHRoaXMuc21vb3RoU2Nyb2xsaW5nLFxyXG4gICAgICAgICAgICBtb3VzZVdoZWVsU2Nyb2xsU2Vuc2l0aXZpdHk6IHRoaXMubW91c2VXaGVlbFNjcm9sbFNlbnNpdGl2aXR5LFxyXG4gICAgICAgICAgICBsaW5lTnVtYmVyczogdGhpcy5saW5lTnVtYmVyc1xyXG4gICAgICAgIH0gYXMgTW9uYWNvRWRpdG9yLmVkaXRvci5JU3RhbmRhbG9uZUVkaXRvckNvbnN0cnVjdGlvbk9wdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc3ViO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICAgICAgSW5zdGFsbE1vbmFjb1VNRCh0aGlzLmluc3RhbGxhdGlvbkxvY2F0aW9uKTtcclxuXHJcbiAgICAgICAgdGhpcy5fc3ViID0gdGhpcy50eXBlRGVib3VuY2Uuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNvZGVDaGFuZ2UubmV4dCh0aGlzLl9jb2RlID0gdGhpcy5lZGl0b3IuZ2V0VmFsdWUoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIC8vIElmIHdlIGNoYW5nZWQgYW55dGhpbmcgT1RIRVIgdGhhbiBjb2RlLCByZWxvYWQgdGhlIGVkaXRvclxyXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhjaGFuZ2VzKS5sZW5ndGggPiAxIHx8ICFjaGFuZ2VzWydjb2RlJ10pIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZWRpdG9yKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRvcj8uZGlzcG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVFZGl0b3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY2hhbmdlc1sndGhlbWUnXSlcclxuICAgICAgICAgICAgTW9uYWNvPy5lZGl0b3Iuc2V0VGhlbWUodGhpcy50aGVtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIGF3YWl0IEluc3RhbGxNb25hY29VTUQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jcmVhdGVFZGl0b3IoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRvcj8uZGlzcG9zZSgpO1xyXG4gICAgICAgIHRoaXMuX3N1Yj8udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZUVkaXRvcigpIHtcclxuICAgICAgICBpZiAodGhpcy5jdXN0b21MYW5ndWFnZSkge1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUxhbmd1YWdlLmluaXQoTW9uYWNvKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBlZGl0b3IgPSB0aGlzLmVkaXRvciA9IE1vbmFjby5lZGl0b3IuY3JlYXRlKFxyXG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXI/LmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MgYXMgYW55XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgLy8gY29uc3QgYXV0b1R5cGluZ3MgPSBhd2FpdFxyXG4gICAgICAgIE1vbmFjb0F1dG9UeXBlSW1wb3J0ZXIuY3JlYXRlKGVkaXRvciwge1xyXG4gICAgICAgICAgICBtb25hY286IE1vbmFjbyxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5jb25maWd1cmVMYW5ndWFnZVN1cHBvcnQoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29kZSkge1xyXG4gICAgICAgICAgICBlZGl0b3Iuc2V0VmFsdWUodGhpcy5jb2RlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVkaXRvci5nZXRNb2RlbCgpLm9uRGlkQ2hhbmdlQ29udGVudCgoKSA9PiB0aGlzLm9uQ29kZVR5cGUuZW1pdCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNvbmZpZ3VyZUxhbmd1YWdlU3VwcG9ydCgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZG93bmxvYWQoKSB7XHJcbiAgICAgICAgY29uc3QgY29kZSA9IHRoaXMuZWRpdG9yLmdldFZhbHVlKCk7XHJcblxyXG4gICAgICAgIGxldCBibG9iID0gbmV3IEJsb2IoW2NvZGVdLCB7IHR5cGU6ICd0ZXh0L2xvZycgfSk7XHJcbiAgICAgICAgbGV0IGVsbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICBsZXQgYmxvYlVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgZGF0YSB2YWx1ZXMuXHJcbiAgICAgICAgZWxtLmhyZWYgPSBibG9iVVJMO1xyXG4gICAgICAgIGVsbS5kb3dubG9hZCA9IHRoaXMuZmlsZW5hbWU7XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxtKTtcclxuICAgICAgICBlbG0uY2xpY2soKTtcclxuXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbG0pO1xyXG4gICAgICAgIGVsbS5yZW1vdmUoKTtcclxuXHJcbiAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChibG9iVVJMKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICAgIHJlc2l6ZSA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICB0aGlzLmVkaXRvcj8ubGF5b3V0KCk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgSW5zdGFsbE1vbmFjb1VNRCA9IGFzeW5jIChwYXRoPzogc3RyaW5nKSA9PiB7XHJcbiAgICBpZiAod2luZG93Wydtb25hY28nXSkgcmV0dXJuIHdpbmRvd1snbW9uYWNvJ107XHJcblxyXG4gICAgLy8gT25seSBwZXJmb3JtIGluc3RhbGxhdGlvbiBpZiBhIHBhdGggaXMgc3BlY2lmaWVkLlxyXG4gICAgaWYgKHBhdGgpIHtcclxuICAgICAgICAvLyBNb25hY28gaGFzIGEgVU1EIGxvYWRlciB0aGF0IHJlcXVpcmVzIHRoaXNcclxuICAgICAgICAvLyBNZXJnZSB3aXRoIGFueSBwcmUtZXhpc3RpbmcgZ2xvYmFsIHJlcXVpcmUgb2JqZWN0cy5cclxuICAgICAgICBpZiAoIXdpbmRvd1sncmVxdWlyZSddKSB3aW5kb3dbJ3JlcXVpcmUnXSA9IHt9IGFzIGFueTtcclxuICAgICAgICBpZiAoIXdpbmRvd1sncmVxdWlyZSddWydwYXRocyddKSB3aW5kb3dbJ3JlcXVpcmUnXVsncGF0aHMnXSA9IHt9O1xyXG5cclxuICAgICAgICBpZiAocGF0aC5lbmRzV2l0aCgnLycpKVxyXG4gICAgICAgICAgICBwYXRoID0gcGF0aC5zbGljZSgwLCAtMSk7XHJcblxyXG4gICAgICAgIHdpbmRvd1sncmVxdWlyZSddWydwYXRocyddLnZzID0gcGF0aDtcclxuXHJcbiAgICAgICAgY29uc3QgbW9uYWNvRmlsZXMgPSBbXHJcbiAgICAgICAgICAgICdsb2FkZXIuanMnLFxyXG4gICAgICAgICAgICAnZWRpdG9yL2VkaXRvci5tYWluLm5scy5qcycsXHJcbiAgICAgICAgICAgICdlZGl0b3IvZWRpdG9yLm1haW4uanMnLFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9uYWNvRmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcclxuICAgICAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZShcImRlZmVyXCIsIFwiXCIpO1xyXG4gICAgICAgICAgICBzY3JpcHQuc2V0QXR0cmlidXRlKFwic3JjXCIsIHBhdGggKyAnLycgKyBtb25hY29GaWxlc1tpXSk7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFJldHVybiBhIHByb21pc2UgdGhhdCB3aWxsIHJlc29sdmUgd2hlbiBtb25hY28gZmluaXNoZXMgbG9hZGluZ1xyXG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xyXG4gICAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgICAgbGV0IGkgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb3VudCsrO1xyXG5cclxuICAgICAgICAgICAgaWYgKHdpbmRvd1snbW9uYWNvJ10gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbChpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBNb25hY28gPSB3aW5kb3dbJ21vbmFjbyddO1xyXG4gICAgICAgICAgICAgICAgcmVzKHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGNvdW50ID49IDEwMCkge1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaSk7XHJcbiAgICAgICAgICAgICAgICByZXMoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgIH0pO1xyXG59XHJcbiJdfQ==
@@ -10397,7 +10397,7 @@ class VscodeComponent {
10397
10397
  var _a;
10398
10398
  (_a = this.editor) === null || _a === void 0 ? void 0 : _a.layout();
10399
10399
  };
10400
- this.installMonaco();
10400
+ InstallMonacoUMD(this.installationLocation);
10401
10401
  this._sub = this.typeDebounce.subscribe(t => {
10402
10402
  this.codeChange.next(this._code = this.editor.getValue());
10403
10403
  });
@@ -10416,21 +10416,7 @@ class VscodeComponent {
10416
10416
  }
10417
10417
  ngAfterViewInit() {
10418
10418
  return __awaiter(this, void 0, void 0, function* () {
10419
- yield new Promise((res, rej) => {
10420
- let count = 0;
10421
- let i = window.setInterval(() => {
10422
- count++;
10423
- if (window['monaco'] != undefined) {
10424
- window.clearInterval(i);
10425
- Monaco = window['monaco'];
10426
- res(true);
10427
- }
10428
- if (count >= 100) {
10429
- window.clearInterval(i);
10430
- res(false);
10431
- }
10432
- }, 100);
10433
- });
10419
+ yield InstallMonacoUMD();
10434
10420
  this.createEditor();
10435
10421
  });
10436
10422
  }
@@ -10457,35 +10443,6 @@ class VscodeComponent {
10457
10443
  }
10458
10444
  configureLanguageSupport() {
10459
10445
  }
10460
- installMonaco() {
10461
- if (VscodeComponent.isMonacoInstalled)
10462
- return;
10463
- if (window['monaco']) {
10464
- VscodeComponent.isMonacoInstalled = true;
10465
- return;
10466
- }
10467
- // Monaco has a UMD loader that requires this
10468
- // Merge with any pre-existing global require objects.
10469
- if (!window['require'])
10470
- window['require'] = {};
10471
- if (!window['require']['paths'])
10472
- window['require']['paths'] = {};
10473
- if (this.installationLocation.endsWith('/'))
10474
- this.installationLocation = this.installationLocation.slice(0, -1);
10475
- window['require']['paths'].vs = this.installationLocation;
10476
- const monacoFiles = [
10477
- 'loader.js',
10478
- 'editor/editor.main.nls.js',
10479
- 'editor/editor.main.js',
10480
- ];
10481
- for (let i = 0; i < monacoFiles.length; i++) {
10482
- const script = document.createElement("script");
10483
- script.setAttribute("defer", "");
10484
- script.setAttribute("src", this.installationLocation + '/' + monacoFiles[i]);
10485
- document.body.append(script);
10486
- }
10487
- VscodeComponent.isMonacoInstalled = true;
10488
- }
10489
10446
  download() {
10490
10447
  const code = this.editor.getValue();
10491
10448
  let blob = new Blob([code], { type: 'text/log' });
@@ -10501,10 +10458,6 @@ class VscodeComponent {
10501
10458
  URL.revokeObjectURL(blobURL);
10502
10459
  }
10503
10460
  }
10504
- /**
10505
- * true if the monaco UMD files are injected into the webpage
10506
- */
10507
- VscodeComponent.isMonacoInstalled = false;
10508
10461
  VscodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: VscodeComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
10509
10462
  VscodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: VscodeComponent, isStandalone: true, selector: "app-vscode", inputs: { code: "code", customLanguage: "customLanguage", language: "language", installationLocation: "installationLocation", tabSize: "tabSize", readOnly: "readOnly", theme: "theme", fontFamily: "fontFamily", fontSize: "fontSize", automaticLayout: "automaticLayout", colorDecorators: "colorDecorators", folding: "folding", minimapEnabled: "minimapEnabled", minimap: "minimap", scrollbar: "scrollbar", smoothScrolling: "smoothScrolling", mouseWheelScrollSensitivity: "mouseWheelScrollSensitivity", scrollBeyondLastLine: "scrollBeyondLastLine", scrollBeyondLastColumn: "scrollBeyondLastColumn", lineNumbers: "lineNumbers", restSettings: "restSettings" }, outputs: { codeChange: "codeChange" }, host: { listeners: { "window:resize": "resize($event)" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":host{display:block;height:100%;max-height:100vh;max-width:100vw}\n"] });
10510
10463
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: VscodeComponent, decorators: [{
@@ -10558,6 +10511,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
10558
10511
  type: HostListener,
10559
10512
  args: ['window:resize', ['$event']]
10560
10513
  }] } });
10514
+ const InstallMonacoUMD = (path) => __awaiter(void 0, void 0, void 0, function* () {
10515
+ if (window['monaco'])
10516
+ return window['monaco'];
10517
+ // Only perform installation if a path is specified.
10518
+ if (path) {
10519
+ // Monaco has a UMD loader that requires this
10520
+ // Merge with any pre-existing global require objects.
10521
+ if (!window['require'])
10522
+ window['require'] = {};
10523
+ if (!window['require']['paths'])
10524
+ window['require']['paths'] = {};
10525
+ if (path.endsWith('/'))
10526
+ path = path.slice(0, -1);
10527
+ window['require']['paths'].vs = path;
10528
+ const monacoFiles = [
10529
+ 'loader.js',
10530
+ 'editor/editor.main.nls.js',
10531
+ 'editor/editor.main.js',
10532
+ ];
10533
+ for (let i = 0; i < monacoFiles.length; i++) {
10534
+ const script = document.createElement("script");
10535
+ script.setAttribute("defer", "");
10536
+ script.setAttribute("src", path + '/' + monacoFiles[i]);
10537
+ document.body.append(script);
10538
+ }
10539
+ }
10540
+ // Return a promise that will resolve when monaco finishes loading
10541
+ return yield new Promise((res, rej) => {
10542
+ let count = 0;
10543
+ let i = window.setInterval(() => {
10544
+ count++;
10545
+ if (window['monaco'] != undefined) {
10546
+ window.clearInterval(i);
10547
+ Monaco = window['monaco'];
10548
+ res(true);
10549
+ }
10550
+ else if (count >= 100) {
10551
+ window.clearInterval(i);
10552
+ res(false);
10553
+ }
10554
+ }, 100);
10555
+ });
10556
+ });
10561
10557
 
10562
10558
  /**
10563
10559
  * Extend this component to automatically generate
@@ -10638,5 +10634,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
10638
10634
  * Generated bundle index. Do not edit.
10639
10635
  */
10640
10636
 
10641
- export { ComponentResolveStrategy, DependencyService, DialogService, DynamicHTMLComponent, DynamicHTMLOptions, DynamicHTMLRenderer, Fetch, FileService, FilemanagerComponent, HtmlBypass, KeyboardService, LazyLoaderComponent, LazyLoaderModule, LazyLoaderService, MenuDirective, NGX_DYNAMIC_CONFIG, NGX_LAZY_LOADER_CONFIG, NGX_WEB_COMPONENTS_CONFIG, NavigationService, NgxDynamicHTMLModule, OnMount, ReactMagicWrapperComponent, ResourceBypass, ScriptBypass, StyleBypass, TabulatorComponent, ThemeService, TooltipDirective, UrlBypass, VscodeComponent, openMenu, openTooltip };
10637
+ export { ComponentResolveStrategy, DependencyService, DialogService, DynamicHTMLComponent, DynamicHTMLOptions, DynamicHTMLRenderer, Fetch, FileService, FilemanagerComponent, HtmlBypass, InstallMonacoUMD, KeyboardService, LazyLoaderComponent, LazyLoaderModule, LazyLoaderService, MenuDirective, NGX_DYNAMIC_CONFIG, NGX_LAZY_LOADER_CONFIG, NGX_WEB_COMPONENTS_CONFIG, NavigationService, NgxDynamicHTMLModule, OnMount, ReactMagicWrapperComponent, ResourceBypass, ScriptBypass, StyleBypass, TabulatorComponent, ThemeService, TooltipDirective, UrlBypass, VscodeComponent, openMenu, openTooltip };
10642
10638
  //# sourceMappingURL=dotglitch-ngx-common.mjs.map