in src/app/files/code-editor.component.ts [72:106]
ngAfterViewInit() {
this._subs.push(this._window.resize.subscribe(e => {
this.updateLayout();
}));
if (this._monaco) {
this.initMonaco(this._monaco)
} else {
if (!this._loading) {
this._loading = new Promise<any>((resolve) => {
if (typeof((<any>window).monaco) === 'object') {
resolve((<any>window).monaco);
return;
}
const assetsDir = '/assets'
const onLoad = () => {
// Load monaco
(<any>window).require.config({ paths: { 'vs': `${assetsDir}/monaco/vs` } });
(<any>window).require(['vs/editor/editor.main'], () => { resolve((<any>window).monaco); });
};
if (!(<any>window).require) {
const loaderScript: HTMLScriptElement = document.createElement('script');
loaderScript.type = 'text/javascript';
loaderScript.src = `${assetsDir}/monaco/vs/loader.js`;
loaderScript.addEventListener('load', onLoad);
document.body.appendChild(loaderScript);
} else {
onLoad();
}
})
}
this._loading.then(m => this.initMonaco(m))
}
}