@ng-util/monaco-editor 19.0.1 → 20.0.0
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.
- package/fesm2022/ng-util-monaco-editor.mjs +88 -97
- package/fesm2022/ng-util-monaco-editor.mjs.map +1 -1
- package/index.d.ts +122 -5
- package/package.json +1 -1
- package/monaco-editor-base.component.d.ts +0 -36
- package/monaco-editor-diff.component.d.ts +0 -11
- package/monaco-editor.component.d.ts +0 -24
- package/monaco-editor.config.d.ts +0 -27
- package/monaco-editor.module.d.ts +0 -15
- package/monaco-editor.types.d.ts +0 -18
- package/placholder.d.ts +0 -12
- package/public-api.d.ts +0 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, makeEnvironmentProviders, inject, ElementRef, NgZone, DestroyRef,
|
|
2
|
+
import { InjectionToken, makeEnvironmentProviders, inject, ElementRef, NgZone, DestroyRef, input, numberAttribute, booleanAttribute, output, effect, Component, untracked, forwardRef, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
5
|
import { fromEvent, timer, take } from 'rxjs';
|
|
@@ -17,40 +17,40 @@ function provideNuMonacoEditorConfig(config) {
|
|
|
17
17
|
let loadedMonaco = false;
|
|
18
18
|
let loadPromise;
|
|
19
19
|
class NuMonacoEditorBase {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
20
|
+
el = inject(ElementRef);
|
|
21
|
+
config = inject(NU_MONACO_EDITOR_CONFIG, { optional: true });
|
|
22
|
+
doc = inject(DOCUMENT);
|
|
23
|
+
ngZone = inject(NgZone);
|
|
24
|
+
destroy$ = inject(DestroyRef);
|
|
25
|
+
_editor;
|
|
26
|
+
_resize$ = null;
|
|
27
|
+
_config;
|
|
28
|
+
_disabled;
|
|
29
|
+
height = input(`200px`);
|
|
30
|
+
delay = input(0, { transform: numberAttribute });
|
|
31
|
+
disabled = input(false, { transform: booleanAttribute });
|
|
32
|
+
options = input();
|
|
33
|
+
event = output();
|
|
31
34
|
constructor() {
|
|
32
|
-
this.el = inject(ElementRef);
|
|
33
|
-
this.config = inject(NU_MONACO_EDITOR_CONFIG, { optional: true });
|
|
34
|
-
this.doc = inject(DOCUMENT);
|
|
35
|
-
this.ngZone = inject(NgZone);
|
|
36
|
-
this.destroy$ = inject(DestroyRef);
|
|
37
|
-
this._resize$ = null;
|
|
38
|
-
this.height = `200px`;
|
|
39
|
-
this.delay = 0;
|
|
40
|
-
this.event = new EventEmitter();
|
|
41
35
|
this._config = { baseUrl: 'https://cdn.jsdelivr.net/npm/monaco-editor/min', autoFormatTime: 100, ...this.config };
|
|
42
|
-
|
|
36
|
+
effect(() => {
|
|
37
|
+
this.setDisabled(this.disabled());
|
|
38
|
+
});
|
|
39
|
+
effect(() => {
|
|
40
|
+
const options = this.options();
|
|
41
|
+
this.updateOptions(options);
|
|
42
|
+
});
|
|
43
43
|
}
|
|
44
44
|
notifyEvent(type, other) {
|
|
45
45
|
this.ngZone.run(() => this.event.emit({ type, editor: this._editor, ...other }));
|
|
46
46
|
}
|
|
47
|
-
setDisabled() {
|
|
48
|
-
this._editor?.updateOptions({ readOnly:
|
|
47
|
+
setDisabled(v) {
|
|
48
|
+
this._editor?.updateOptions({ readOnly: v });
|
|
49
49
|
return this;
|
|
50
50
|
}
|
|
51
51
|
init() {
|
|
52
52
|
if (loadedMonaco) {
|
|
53
|
-
loadPromise.then(() => this.initMonaco(this.options, true));
|
|
53
|
+
loadPromise.then(() => this.initMonaco(this.options(), true));
|
|
54
54
|
return;
|
|
55
55
|
}
|
|
56
56
|
loadedMonaco = true;
|
|
@@ -82,7 +82,7 @@ class NuMonacoEditorBase {
|
|
|
82
82
|
if (typeof this._config.monacoLoad === 'function') {
|
|
83
83
|
this._config.monacoLoad(win.monaco);
|
|
84
84
|
}
|
|
85
|
-
this.initMonaco(this.options, true);
|
|
85
|
+
this.initMonaco(this.options(), true);
|
|
86
86
|
resolve();
|
|
87
87
|
}, () => {
|
|
88
88
|
reject(`Unable to load editor/editor.main module, please check your network environment.`);
|
|
@@ -115,46 +115,38 @@ class NuMonacoEditorBase {
|
|
|
115
115
|
});
|
|
116
116
|
return this;
|
|
117
117
|
}
|
|
118
|
-
updateOptions() {
|
|
118
|
+
updateOptions(v) {
|
|
119
119
|
if (!this._editor)
|
|
120
120
|
return;
|
|
121
121
|
this.ngZone.runOutsideAngular(() => {
|
|
122
122
|
this._editor.dispose();
|
|
123
|
-
this.initMonaco(
|
|
123
|
+
this.initMonaco(v, false);
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
126
|
ngAfterViewInit() {
|
|
127
|
-
this.ngZone.runOutsideAngular(() => setTimeout(() => this.init(), +this.delay));
|
|
127
|
+
this.ngZone.runOutsideAngular(() => setTimeout(() => this.init(), +this.delay()));
|
|
128
128
|
}
|
|
129
129
|
ngOnDestroy() {
|
|
130
130
|
this.cleanResize();
|
|
131
131
|
this._editor?.dispose();
|
|
132
132
|
}
|
|
133
|
-
/** @nocollapse */ static
|
|
134
|
-
/** @nocollapse */ static
|
|
133
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMonacoEditorBase, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
134
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.2", type: NuMonacoEditorBase, isStandalone: true, selector: "nu-monaco-base", inputs: { height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { event: "event" }, ngImport: i0, template: ``, isInline: true });
|
|
135
135
|
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMonacoEditorBase, decorators: [{
|
|
137
137
|
type: Component,
|
|
138
138
|
args: [{
|
|
139
139
|
selector: 'nu-monaco-base',
|
|
140
140
|
template: ``
|
|
141
141
|
}]
|
|
142
|
-
}], ctorParameters: () => []
|
|
143
|
-
type: Input
|
|
144
|
-
}], delay: [{
|
|
145
|
-
type: Input,
|
|
146
|
-
args: [{ transform: numberAttribute }]
|
|
147
|
-
}], disabled: [{
|
|
148
|
-
type: Input
|
|
149
|
-
}], options: [{
|
|
150
|
-
type: Input
|
|
151
|
-
}], event: [{
|
|
152
|
-
type: Output
|
|
153
|
-
}] } });
|
|
142
|
+
}], ctorParameters: () => [] });
|
|
154
143
|
|
|
155
144
|
class PlaceholderWidget {
|
|
145
|
+
ID = 'editor.widget.placeholderHint';
|
|
146
|
+
placeholder;
|
|
147
|
+
editor;
|
|
148
|
+
node;
|
|
156
149
|
constructor(editor, placeholder) {
|
|
157
|
-
this.ID = 'editor.widget.placeholderHint';
|
|
158
150
|
this.placeholder = placeholder;
|
|
159
151
|
this.editor = editor;
|
|
160
152
|
}
|
|
@@ -190,26 +182,29 @@ class PlaceholderWidget {
|
|
|
190
182
|
}
|
|
191
183
|
|
|
192
184
|
class NuMonacoEditorComponent extends NuMonacoEditorBase {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
//
|
|
199
|
-
};
|
|
200
|
-
this.onTouched = () => {
|
|
201
|
-
//
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
set placeholder(v) {
|
|
205
|
-
this._placeholder = v;
|
|
206
|
-
this._placeholderWidget?.update(v);
|
|
207
|
-
}
|
|
185
|
+
_value = '';
|
|
186
|
+
_placeholderWidget;
|
|
187
|
+
placeholder = input();
|
|
188
|
+
model = input();
|
|
189
|
+
autoFormat = input(true, { transform: booleanAttribute });
|
|
208
190
|
get editor() {
|
|
209
191
|
return this._editor;
|
|
210
192
|
}
|
|
193
|
+
constructor() {
|
|
194
|
+
super();
|
|
195
|
+
effect(() => {
|
|
196
|
+
const ph = this.placeholder();
|
|
197
|
+
this._placeholderWidget?.update(ph);
|
|
198
|
+
});
|
|
199
|
+
effect(() => {
|
|
200
|
+
const model = this.model();
|
|
201
|
+
if (model == null)
|
|
202
|
+
return;
|
|
203
|
+
this.updateOptions(untracked(() => this.options()));
|
|
204
|
+
});
|
|
205
|
+
}
|
|
211
206
|
togglePlaceholder() {
|
|
212
|
-
const text = this.
|
|
207
|
+
const text = this.placeholder();
|
|
213
208
|
if (text == null || text.length <= 0 || this.editor == null)
|
|
214
209
|
return;
|
|
215
210
|
if (this._placeholderWidget == null) {
|
|
@@ -222,16 +217,19 @@ class NuMonacoEditorComponent extends NuMonacoEditorBase {
|
|
|
222
217
|
this.editor.addContentWidget(this._placeholderWidget);
|
|
223
218
|
}
|
|
224
219
|
}
|
|
220
|
+
onChange = (_) => { };
|
|
221
|
+
onTouched = () => { };
|
|
225
222
|
initMonaco(options, initEvent) {
|
|
226
|
-
const hasModel = !!this.model;
|
|
223
|
+
const hasModel = !!this.model();
|
|
224
|
+
options = { ...this.config?.defaultOptions, ...options };
|
|
227
225
|
if (hasModel) {
|
|
228
|
-
const model = monaco.editor.getModel(this.model.uri || '');
|
|
226
|
+
const model = monaco.editor.getModel(this.model().uri || '');
|
|
229
227
|
if (model) {
|
|
230
228
|
options.model = model;
|
|
231
229
|
options.model.setValue(this._value);
|
|
232
230
|
}
|
|
233
231
|
else {
|
|
234
|
-
const { value, language, uri } = this.model;
|
|
232
|
+
const { value, language, uri } = this.model();
|
|
235
233
|
options.model = monaco.editor.createModel(value || this._value, language, uri);
|
|
236
234
|
}
|
|
237
235
|
}
|
|
@@ -253,7 +251,7 @@ class NuMonacoEditorComponent extends NuMonacoEditorBase {
|
|
|
253
251
|
this.togglePlaceholder();
|
|
254
252
|
this.registerResize();
|
|
255
253
|
const eventName = initEvent ? 'init' : 're-init';
|
|
256
|
-
if (this.autoFormat) {
|
|
254
|
+
if (this.autoFormat()) {
|
|
257
255
|
timer(this._config.autoFormatTime)
|
|
258
256
|
.pipe(takeUntilDestroyed(this.destroy$), take(1))
|
|
259
257
|
.subscribe(() => {
|
|
@@ -278,20 +276,19 @@ class NuMonacoEditorComponent extends NuMonacoEditorBase {
|
|
|
278
276
|
registerOnTouched(fn) {
|
|
279
277
|
this.onTouched = fn;
|
|
280
278
|
}
|
|
281
|
-
setDisabledState(
|
|
282
|
-
this.
|
|
283
|
-
this.setDisabled();
|
|
279
|
+
setDisabledState(v) {
|
|
280
|
+
this.setDisabled(v);
|
|
284
281
|
}
|
|
285
|
-
/** @nocollapse */ static
|
|
286
|
-
/** @nocollapse */ static
|
|
282
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMonacoEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
283
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.2", type: NuMonacoEditorComponent, isStandalone: true, selector: "nu-monaco-editor", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, autoFormat: { classPropertyName: "autoFormat", publicName: "autoFormat", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "'block'", "style.height": "height()" } }, providers: [
|
|
287
284
|
{
|
|
288
285
|
provide: NG_VALUE_ACCESSOR,
|
|
289
286
|
useExisting: forwardRef((() => NuMonacoEditorComponent)),
|
|
290
287
|
multi: true
|
|
291
288
|
}
|
|
292
|
-
], exportAs: ["nuMonacoEditor"], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
289
|
+
], exportAs: ["nuMonacoEditor"], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
293
290
|
}
|
|
294
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
291
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMonacoEditorComponent, decorators: [{
|
|
295
292
|
type: Component,
|
|
296
293
|
args: [{
|
|
297
294
|
selector: 'nu-monaco-editor',
|
|
@@ -299,7 +296,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImpor
|
|
|
299
296
|
exportAs: 'nuMonacoEditor',
|
|
300
297
|
host: {
|
|
301
298
|
'[style.display]': `'block'`,
|
|
302
|
-
'[style.height]': 'height'
|
|
299
|
+
'[style.height]': 'height()'
|
|
303
300
|
},
|
|
304
301
|
providers: [
|
|
305
302
|
{
|
|
@@ -310,32 +307,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImpor
|
|
|
310
307
|
],
|
|
311
308
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
312
309
|
}]
|
|
313
|
-
}],
|
|
314
|
-
type: Input
|
|
315
|
-
}], model: [{
|
|
316
|
-
type: Input
|
|
317
|
-
}], autoFormat: [{
|
|
318
|
-
type: Input,
|
|
319
|
-
args: [{ transform: booleanAttribute }]
|
|
320
|
-
}] } });
|
|
310
|
+
}], ctorParameters: () => [] });
|
|
321
311
|
|
|
322
312
|
class NuMonacoEditorDiffComponent extends NuMonacoEditorBase {
|
|
313
|
+
old = input();
|
|
314
|
+
new = input();
|
|
323
315
|
get editor() {
|
|
324
316
|
return this._editor;
|
|
325
317
|
}
|
|
326
318
|
initMonaco(options, initEvent) {
|
|
327
|
-
|
|
319
|
+
const oldModel = this.old();
|
|
320
|
+
const newModel = this.new();
|
|
321
|
+
if (!oldModel || !newModel) {
|
|
328
322
|
this.notifyEvent('error', { error: 'old or new not found for nu-monaco-diff-editor' });
|
|
329
323
|
return;
|
|
330
324
|
}
|
|
325
|
+
options = { ...this.config?.defaultOptions, ...options };
|
|
331
326
|
const theme = options.theme;
|
|
332
327
|
if (this._disabled != null)
|
|
333
328
|
options.readOnly = this._disabled;
|
|
334
329
|
const editor = (this._editor = monaco.editor.createDiffEditor(this.el.nativeElement, options));
|
|
335
330
|
options.theme = theme;
|
|
336
331
|
editor.setModel({
|
|
337
|
-
original: monaco.editor.createModel(
|
|
338
|
-
modified: monaco.editor.createModel(
|
|
332
|
+
original: monaco.editor.createModel(oldModel.code, oldModel.language || options.language),
|
|
333
|
+
modified: monaco.editor.createModel(newModel.code, newModel.language || options.language)
|
|
339
334
|
});
|
|
340
335
|
// this.setDisabled();
|
|
341
336
|
editor.onDidUpdateDiff(() => this.notifyEvent('update-diff', { diffValue: editor.getModifiedEditor().getValue() }));
|
|
@@ -343,10 +338,10 @@ class NuMonacoEditorDiffComponent extends NuMonacoEditorBase {
|
|
|
343
338
|
if (initEvent)
|
|
344
339
|
this.notifyEvent('init');
|
|
345
340
|
}
|
|
346
|
-
/** @nocollapse */ static
|
|
347
|
-
/** @nocollapse */ static
|
|
341
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMonacoEditorDiffComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
342
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.2", type: NuMonacoEditorDiffComponent, isStandalone: true, selector: "nu-monaco-diff-editor", inputs: { old: { classPropertyName: "old", publicName: "old", isSignal: true, isRequired: false, transformFunction: null }, new: { classPropertyName: "new", publicName: "new", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "'block'", "style.height": "height()" } }, exportAs: ["nuMonacoDiffEditor"], usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
348
343
|
}
|
|
349
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMonacoEditorDiffComponent, decorators: [{
|
|
350
345
|
type: Component,
|
|
351
346
|
args: [{
|
|
352
347
|
selector: 'nu-monaco-diff-editor',
|
|
@@ -354,15 +349,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImpor
|
|
|
354
349
|
exportAs: 'nuMonacoDiffEditor',
|
|
355
350
|
host: {
|
|
356
351
|
'[style.display]': `'block'`,
|
|
357
|
-
'[style.height]': 'height'
|
|
352
|
+
'[style.height]': 'height()'
|
|
358
353
|
},
|
|
359
354
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
360
355
|
}]
|
|
361
|
-
}]
|
|
362
|
-
type: Input
|
|
363
|
-
}], new: [{
|
|
364
|
-
type: Input
|
|
365
|
-
}] } });
|
|
356
|
+
}] });
|
|
366
357
|
|
|
367
358
|
const COMPONENTS = [NuMonacoEditorComponent, NuMonacoEditorDiffComponent];
|
|
368
359
|
class NuMonacoEditorModule {
|
|
@@ -375,11 +366,11 @@ class NuMonacoEditorModule {
|
|
|
375
366
|
providers: [{ provide: NU_MONACO_EDITOR_CONFIG, useValue: config }]
|
|
376
367
|
};
|
|
377
368
|
}
|
|
378
|
-
/** @nocollapse */ static
|
|
379
|
-
/** @nocollapse */ static
|
|
380
|
-
/** @nocollapse */ static
|
|
369
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMonacoEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
370
|
+
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: NuMonacoEditorModule, imports: [CommonModule, NuMonacoEditorComponent, NuMonacoEditorDiffComponent], exports: [NuMonacoEditorComponent, NuMonacoEditorDiffComponent] });
|
|
371
|
+
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMonacoEditorModule, imports: [CommonModule] });
|
|
381
372
|
}
|
|
382
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
373
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: NuMonacoEditorModule, decorators: [{
|
|
383
374
|
type: NgModule,
|
|
384
375
|
args: [{
|
|
385
376
|
imports: [CommonModule, ...COMPONENTS],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-util-monaco-editor.mjs","sources":["../../../../packages/monaco-editor/monaco-editor.types.ts","../../../../packages/monaco-editor/monaco-editor.config.ts","../../../../packages/monaco-editor/monaco-editor-base.component.ts","../../../../packages/monaco-editor/placholder.ts","../../../../packages/monaco-editor/monaco-editor.component.ts","../../../../packages/monaco-editor/monaco-editor-diff.component.ts","../../../../packages/monaco-editor/monaco-editor.module.ts","../../../../packages/monaco-editor/ng-util-monaco-editor.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path=\"./monaco.d.ts\" preserve=\"true\" />\n\nexport interface NuMonacoEditorModel {\n value?: string;\n language?: string;\n uri?: monaco.Uri;\n}\n\nexport interface NuMonacoEditorDiffModel {\n code: string;\n language?: string;\n}\n\nexport type NuMonacoEditorEventType = 'load-error' | 'init' | 're-init' | 'resize' | 'update-diff' | 'error';\n\nexport interface NuMonacoEditorEvent {\n type?: NuMonacoEditorEventType;\n editor?: monaco.editor.IStandaloneCodeEditor | monaco.editor.IStandaloneDiffEditor;\n error?: string;\n /** Just only `nu-monaco-editor-diff` component */\n diffValue?: string;\n}\n","import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\n\nexport const NU_MONACO_EDITOR_CONFIG = new InjectionToken<NuMonacoEditorConfig>('NU_MONACO_EDITOR_CONFIG');\n\nexport function provideNuMonacoEditorConfig(config?: NuMonacoEditorConfig): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: NU_MONACO_EDITOR_CONFIG, useValue: config }]);\n}\n\nexport interface NuMonacoEditorConfig {\n /**\n * The base URL to monaco editor library assets via AMD (RequireJS), Default: `https://cdn.jsdelivr.net/npm/monaco-editor/min`\n * You can using local path, e.g.: `assets/monaco-editor/min`.\n */\n baseUrl?: string;\n /**\n * Default options when creating editors\n */\n defaultOptions?: monaco.editor.IStandaloneEditorConstructionOptions;\n /**\n * The event after the first loading of the monaco editor library is completed, use this function to extend monaco editor functionalities.\n * - @param `_monaco` equar to `window.monaco`\n */\n monacoLoad?: (_monaco: any) => void;\n /**\n * The event before the first preload of the monaco editor library is completed, use this function to set nls availableLanguages.\n */\n monacoPreLoad?: () => void;\n /**\n * Trigger automatic format delay time, default: `100`\n */\n autoFormatTime?: number;\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgZone,\n numberAttribute,\n OnDestroy,\n Output\n} from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { NuMonacoEditorConfig, NU_MONACO_EDITOR_CONFIG } from './monaco-editor.config';\nimport { NuMonacoEditorEvent, NuMonacoEditorEventType } from './monaco-editor.types';\n\nlet loadedMonaco = false;\nlet loadPromise: Promise<void>;\n\n@Component({\n selector: 'nu-monaco-base',\n template: ``\n})\nexport abstract class NuMonacoEditorBase implements AfterViewInit, OnDestroy {\n protected el = inject<ElementRef<HTMLElement>>(ElementRef);\n protected config = inject(NU_MONACO_EDITOR_CONFIG, { optional: true });\n protected doc = inject(DOCUMENT);\n protected ngZone = inject(NgZone);\n protected destroy$ = inject(DestroyRef);\n\n protected _editor?: monaco.editor.IStandaloneCodeEditor | monaco.editor.IStandaloneDiffEditor;\n protected _options!: monaco.editor.IStandaloneEditorConstructionOptions;\n protected _resize$: Subscription | null = null;\n protected _config: NuMonacoEditorConfig;\n protected _disabled?: boolean;\n\n @Input() height = `200px`;\n @Input({ transform: numberAttribute }) delay = 0;\n @Input()\n set disabled(val: boolean | string) {\n this._disabled = typeof val === 'string' ? true : val;\n this.setDisabled();\n }\n @Input()\n set options(val: monaco.editor.IStandaloneEditorConstructionOptions) {\n this._options = { ...this._config.defaultOptions, ...val };\n this.updateOptions();\n }\n get options() {\n return this._options;\n }\n @Output() readonly event = new EventEmitter<NuMonacoEditorEvent>();\n\n constructor() {\n this._config = { baseUrl: 'https://cdn.jsdelivr.net/npm/monaco-editor/min', autoFormatTime: 100, ...this.config };\n this.options = this._config.defaultOptions!;\n }\n\n protected abstract initMonaco(\n _options: monaco.editor.IStandaloneEditorConstructionOptions,\n _initEvent: boolean\n ): void;\n\n protected notifyEvent(type: NuMonacoEditorEventType, other?: NuMonacoEditorEvent): void {\n this.ngZone.run(() => this.event.emit({ type, editor: this._editor!, ...other }));\n }\n\n protected setDisabled(): this {\n (this._editor as monaco.editor.IStandaloneCodeEditor)?.updateOptions({ readOnly: this._disabled });\n return this;\n }\n\n private init(): void {\n if (loadedMonaco) {\n loadPromise.then(() => this.initMonaco(this.options, true));\n return;\n }\n\n loadedMonaco = true;\n loadPromise = new Promise<void>((resolve: () => void, reject: (err: string) => void) => {\n const win: any = window;\n if (win == null) {\n resolve();\n return;\n }\n\n if (win.monaco) {\n resolve();\n return;\n }\n\n let baseUrl = `${this._config.baseUrl}/vs`;\n // fix: https://github.com/microsoft/monaco-editor/issues/4778\n if (!/^https?:\\/\\//g.test(baseUrl)) {\n baseUrl = `${window.location.origin}/${baseUrl.startsWith('/') ? baseUrl.substring(1) : baseUrl}`;\n }\n const amdLoader = () => {\n win.require.config({\n paths: {\n vs: baseUrl\n }\n });\n if (typeof this._config.monacoPreLoad === 'function') {\n this._config.monacoPreLoad();\n }\n win.require(\n ['vs/editor/editor.main'],\n () => {\n if (typeof this._config.monacoLoad === 'function') {\n this._config.monacoLoad(win.monaco);\n }\n this.initMonaco(this.options, true);\n resolve();\n },\n () => {\n reject(`Unable to load editor/editor.main module, please check your network environment.`);\n }\n );\n };\n\n if (!win.require) {\n const loaderScript = this.doc.createElement('script') as HTMLScriptElement;\n loaderScript.type = 'text/javascript';\n loaderScript.src = `${baseUrl}/loader.js`;\n loaderScript.onload = amdLoader;\n loaderScript.onerror = () =>\n reject(`Unable to load ${loaderScript.src}, please check your network environment.`);\n this.doc.getElementsByTagName('head')[0].appendChild(loaderScript);\n } else {\n amdLoader();\n }\n }).catch(error => this.notifyEvent('load-error', { error }));\n }\n\n protected cleanResize(): this {\n this._resize$?.unsubscribe();\n return this;\n }\n\n protected registerResize(): this {\n this.cleanResize();\n this._resize$ = fromEvent(window, 'resize')\n .pipe(debounceTime(100))\n .subscribe(() => {\n this._editor!.layout();\n this.notifyEvent('resize');\n });\n return this;\n }\n\n protected updateOptions(): void {\n if (!this._editor) return;\n this.ngZone.runOutsideAngular(() => {\n this._editor!.dispose();\n this.initMonaco(this._options, false);\n });\n }\n\n ngAfterViewInit(): void {\n this.ngZone.runOutsideAngular(() => setTimeout(() => this.init(), +this.delay));\n }\n\n ngOnDestroy(): void {\n this.cleanResize();\n this._editor?.dispose();\n }\n}\n","export class PlaceholderWidget implements monaco.editor.IContentWidget {\n private readonly ID = 'editor.widget.placeholderHint';\n private placeholder?: string;\n private editor: monaco.editor.IStandaloneCodeEditor;\n private node?: HTMLElement;\n\n constructor(editor: monaco.editor.IStandaloneCodeEditor, placeholder?: string) {\n this.placeholder = placeholder;\n this.editor = editor;\n }\n\n update(text?: string | null | undefined) {\n if (this.node == null) return;\n\n this.node.innerHTML = text ?? this.placeholder ?? '';\n }\n\n getId(): string {\n return this.ID;\n }\n getDomNode(): HTMLElement {\n if (this.node == null) {\n const node = (this.node = document.createElement('div'));\n node.classList.add('monaco-editor-placeholder');\n node.style.width = 'max-content';\n node.style.color = 'gray';\n node.innerHTML = this.placeholder!;\n node.style.fontStyle = 'italic';\n this.editor.applyFontInfo(node);\n }\n return this.node;\n }\n getPosition(): monaco.editor.IContentWidgetPosition | null {\n return {\n position: { lineNumber: 1, column: 1 },\n preference: [monaco.editor.ContentWidgetPositionPreference.EXACT]\n };\n }\n\n dispose() {\n this.editor.removeContentWidget(this);\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, Input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { take, timer } from 'rxjs';\n\nimport { NuMonacoEditorBase } from './monaco-editor-base.component';\nimport { NuMonacoEditorModel } from './monaco-editor.types';\nimport { PlaceholderWidget } from './placholder';\n\n@Component({\n selector: 'nu-monaco-editor',\n template: ``,\n exportAs: 'nuMonacoEditor',\n host: {\n '[style.display]': `'block'`,\n '[style.height]': 'height'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NuMonacoEditorComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NuMonacoEditorComponent extends NuMonacoEditorBase implements ControlValueAccessor {\n private _value = '';\n private _placeholderWidget?: PlaceholderWidget;\n private _placeholder?: string | null;\n\n @Input()\n set placeholder(v: string | null | undefined) {\n this._placeholder = v;\n this._placeholderWidget?.update(v);\n }\n @Input() model?: NuMonacoEditorModel | null;\n @Input({ transform: booleanAttribute }) autoFormat = true;\n\n get editor(): monaco.editor.IStandaloneCodeEditor | null | undefined {\n return this._editor as monaco.editor.IStandaloneCodeEditor;\n }\n\n private togglePlaceholder() {\n const text = this._placeholder;\n if (text == null || text.length <= 0 || this.editor == null) return;\n\n if (this._placeholderWidget == null) {\n this._placeholderWidget = new PlaceholderWidget(this.editor, text);\n }\n\n if (this._value.length > 0) {\n this.editor.removeContentWidget(this._placeholderWidget);\n } else {\n this.editor.addContentWidget(this._placeholderWidget);\n }\n }\n\n private onChange = (_: string) => {\n //\n };\n private onTouched = () => {\n //\n };\n\n initMonaco(options: monaco.editor.IStandaloneEditorConstructionOptions, initEvent: boolean): void {\n const hasModel = !!this.model;\n\n if (hasModel) {\n const model = monaco.editor.getModel(this.model!.uri! || '');\n if (model) {\n options.model = model;\n options.model.setValue(this._value);\n } else {\n const { value, language, uri } = this.model!;\n options.model = monaco.editor.createModel(value || this._value, language, uri);\n }\n }\n\n if (this._disabled != null) options.readOnly = this._disabled;\n const editor = (this._editor = monaco.editor.create(this.el.nativeElement, options));\n\n if (!hasModel) {\n editor.setValue(this._value);\n }\n\n editor.onDidChangeModelContent(() => {\n const value = editor.getValue();\n\n this.ngZone.run(() => {\n this._value = value;\n this.onChange(value);\n });\n\n this.togglePlaceholder();\n });\n editor.onDidBlurEditorWidget(() => this.onTouched());\n\n this.togglePlaceholder();\n this.registerResize();\n\n const eventName = initEvent ? 'init' : 're-init';\n if (this.autoFormat) {\n timer(this._config.autoFormatTime!)\n .pipe(takeUntilDestroyed(this.destroy$), take(1))\n .subscribe(() => {\n const action = editor.getAction('editor.action.formatDocument');\n if (action == null) {\n this.notifyEvent(eventName);\n return;\n }\n action.run().then(() => this.notifyEvent(eventName));\n });\n return;\n }\n this.notifyEvent(eventName);\n }\n\n writeValue(value: string): void {\n this._value = value || '';\n (this._editor as monaco.editor.IStandaloneCodeEditor)?.setValue(this._value);\n }\n\n registerOnChange(fn: (_: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(_isDisabled: boolean): void {\n this.disabled = _isDisabled;\n this.setDisabled();\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { NuMonacoEditorBase } from './monaco-editor-base.component';\nimport { NuMonacoEditorDiffModel } from './monaco-editor.types';\n\n@Component({\n selector: 'nu-monaco-diff-editor',\n template: ``,\n exportAs: 'nuMonacoDiffEditor',\n host: {\n '[style.display]': `'block'`,\n '[style.height]': 'height'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NuMonacoEditorDiffComponent extends NuMonacoEditorBase {\n @Input() old?: NuMonacoEditorDiffModel | null;\n @Input() new?: NuMonacoEditorDiffModel | null;\n\n get editor(): monaco.editor.IStandaloneDiffEditor | null | undefined {\n return this._editor as monaco.editor.IStandaloneDiffEditor;\n }\n\n initMonaco(options: monaco.editor.IStandaloneEditorConstructionOptions, initEvent: boolean): void {\n if (!this.old || !this.new) {\n this.notifyEvent('error', { error: 'old or new not found for nu-monaco-diff-editor' });\n return;\n }\n\n const theme = options.theme;\n if (this._disabled != null) options.readOnly = this._disabled;\n const editor = (this._editor = monaco.editor.createDiffEditor(this.el.nativeElement, options));\n options.theme = theme;\n editor.setModel({\n original: monaco.editor.createModel(this.old.code, this.old.language || options.language),\n modified: monaco.editor.createModel(this.new.code, this.new.language || options.language)\n });\n\n // this.setDisabled();\n editor.onDidUpdateDiff(() => this.notifyEvent('update-diff', { diffValue: editor.getModifiedEditor().getValue() }));\n\n this.registerResize();\n if (initEvent) this.notifyEvent('init');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { NuMonacoEditorDiffComponent } from './monaco-editor-diff.component';\nimport { NuMonacoEditorComponent } from './monaco-editor.component';\nimport { NuMonacoEditorConfig, NU_MONACO_EDITOR_CONFIG } from './monaco-editor.config';\n\nconst COMPONENTS = [NuMonacoEditorComponent, NuMonacoEditorDiffComponent];\n\n@NgModule({\n imports: [CommonModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class NuMonacoEditorModule {\n /**\n * Or use `provideNuMonacoEditorConfig` instead.\n */\n static forRoot(config?: NuMonacoEditorConfig): ModuleWithProviders<NuMonacoEditorModule> {\n return {\n ngModule: NuMonacoEditorModule,\n providers: [{ provide: NU_MONACO_EDITOR_CONFIG, useValue: config }]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-util-monaco-editor.mjs","sources":["../../../../packages/monaco-editor/monaco-editor.types.ts","../../../../packages/monaco-editor/monaco-editor.config.ts","../../../../packages/monaco-editor/monaco-editor-base.component.ts","../../../../packages/monaco-editor/placholder.ts","../../../../packages/monaco-editor/monaco-editor.component.ts","../../../../packages/monaco-editor/monaco-editor-diff.component.ts","../../../../packages/monaco-editor/monaco-editor.module.ts","../../../../packages/monaco-editor/ng-util-monaco-editor.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path=\"./monaco.d.ts\" preserve=\"true\" />\n\nexport interface NuMonacoEditorModel {\n value?: string;\n language?: string;\n uri?: monaco.Uri;\n}\n\nexport interface NuMonacoEditorDiffModel {\n code: string;\n language?: string;\n}\n\nexport type NuMonacoEditorEventType = 'load-error' | 'init' | 're-init' | 'resize' | 'update-diff' | 'error';\n\nexport interface NuMonacoEditorEvent {\n type?: NuMonacoEditorEventType;\n editor?: monaco.editor.IStandaloneCodeEditor | monaco.editor.IStandaloneDiffEditor;\n error?: string;\n /** Just only `nu-monaco-editor-diff` component */\n diffValue?: string;\n}\n","import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\n\nexport const NU_MONACO_EDITOR_CONFIG = new InjectionToken<NuMonacoEditorConfig>('NU_MONACO_EDITOR_CONFIG');\n\nexport function provideNuMonacoEditorConfig(config?: NuMonacoEditorConfig): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: NU_MONACO_EDITOR_CONFIG, useValue: config }]);\n}\n\nexport interface NuMonacoEditorConfig {\n /**\n * The base URL to monaco editor library assets via AMD (RequireJS), Default: `https://cdn.jsdelivr.net/npm/monaco-editor/min`\n * You can using local path, e.g.: `assets/monaco-editor/min`.\n */\n baseUrl?: string;\n /**\n * Default options when creating editors\n */\n defaultOptions?: monaco.editor.IStandaloneEditorConstructionOptions;\n /**\n * The event after the first loading of the monaco editor library is completed, use this function to extend monaco editor functionalities.\n * - @param `_monaco` equar to `window.monaco`\n */\n monacoLoad?: (_monaco: any) => void;\n /**\n * The event before the first preload of the monaco editor library is completed, use this function to set nls availableLanguages.\n */\n monacoPreLoad?: () => void;\n /**\n * Trigger automatic format delay time, default: `100`\n */\n autoFormatTime?: number;\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n booleanAttribute,\n Component,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n NgZone,\n numberAttribute,\n OnDestroy,\n output\n} from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { NuMonacoEditorConfig, NU_MONACO_EDITOR_CONFIG } from './monaco-editor.config';\nimport { NuMonacoEditorEvent, NuMonacoEditorEventType } from './monaco-editor.types';\n\nlet loadedMonaco = false;\nlet loadPromise: Promise<void>;\n\n@Component({\n selector: 'nu-monaco-base',\n template: ``\n})\nexport abstract class NuMonacoEditorBase implements AfterViewInit, OnDestroy {\n protected el = inject<ElementRef<HTMLElement>>(ElementRef);\n protected config = inject(NU_MONACO_EDITOR_CONFIG, { optional: true });\n protected doc = inject(DOCUMENT);\n protected ngZone = inject(NgZone);\n protected destroy$ = inject(DestroyRef);\n\n protected _editor?: monaco.editor.IStandaloneCodeEditor | monaco.editor.IStandaloneDiffEditor;\n protected _resize$: Subscription | null = null;\n protected _config: NuMonacoEditorConfig;\n protected _disabled?: boolean;\n\n height = input(`200px`);\n delay = input(0, { transform: numberAttribute });\n disabled = input(false, { transform: booleanAttribute });\n options = input<monaco.editor.IStandaloneEditorConstructionOptions>();\n readonly event = output<NuMonacoEditorEvent>();\n\n constructor() {\n this._config = { baseUrl: 'https://cdn.jsdelivr.net/npm/monaco-editor/min', autoFormatTime: 100, ...this.config };\n\n effect(() => {\n this.setDisabled(this.disabled());\n });\n\n effect(() => {\n const options = this.options();\n this.updateOptions(options);\n });\n }\n\n protected abstract initMonaco(\n _options: monaco.editor.IStandaloneEditorConstructionOptions | undefined,\n _initEvent: boolean\n ): void;\n\n protected notifyEvent(type: NuMonacoEditorEventType, other?: NuMonacoEditorEvent): void {\n this.ngZone.run(() => this.event.emit({ type, editor: this._editor!, ...other }));\n }\n\n protected setDisabled(v: boolean): this {\n (this._editor as monaco.editor.IStandaloneCodeEditor)?.updateOptions({ readOnly: v });\n return this;\n }\n\n private init(): void {\n if (loadedMonaco) {\n loadPromise.then(() => this.initMonaco(this.options(), true));\n return;\n }\n\n loadedMonaco = true;\n loadPromise = new Promise<void>((resolve: () => void, reject: (err: string) => void) => {\n const win: any = window;\n if (win == null) {\n resolve();\n return;\n }\n\n if (win.monaco) {\n resolve();\n return;\n }\n\n let baseUrl = `${this._config.baseUrl}/vs`;\n // fix: https://github.com/microsoft/monaco-editor/issues/4778\n if (!/^https?:\\/\\//g.test(baseUrl)) {\n baseUrl = `${window.location.origin}/${baseUrl.startsWith('/') ? baseUrl.substring(1) : baseUrl}`;\n }\n const amdLoader = () => {\n win.require.config({\n paths: {\n vs: baseUrl\n }\n });\n if (typeof this._config.monacoPreLoad === 'function') {\n this._config.monacoPreLoad();\n }\n win.require(\n ['vs/editor/editor.main'],\n () => {\n if (typeof this._config.monacoLoad === 'function') {\n this._config.monacoLoad(win.monaco);\n }\n this.initMonaco(this.options(), true);\n resolve();\n },\n () => {\n reject(`Unable to load editor/editor.main module, please check your network environment.`);\n }\n );\n };\n\n if (!win.require) {\n const loaderScript = this.doc.createElement('script') as HTMLScriptElement;\n loaderScript.type = 'text/javascript';\n loaderScript.src = `${baseUrl}/loader.js`;\n loaderScript.onload = amdLoader;\n loaderScript.onerror = () =>\n reject(`Unable to load ${loaderScript.src}, please check your network environment.`);\n this.doc.getElementsByTagName('head')[0].appendChild(loaderScript);\n } else {\n amdLoader();\n }\n }).catch(error => this.notifyEvent('load-error', { error }));\n }\n\n protected cleanResize(): this {\n this._resize$?.unsubscribe();\n return this;\n }\n\n protected registerResize(): this {\n this.cleanResize();\n this._resize$ = fromEvent(window, 'resize')\n .pipe(debounceTime(100))\n .subscribe(() => {\n this._editor!.layout();\n this.notifyEvent('resize');\n });\n return this;\n }\n\n updateOptions(v: monaco.editor.IStandaloneEditorConstructionOptions | undefined): void {\n if (!this._editor) return;\n this.ngZone.runOutsideAngular(() => {\n this._editor!.dispose();\n this.initMonaco(v, false);\n });\n }\n\n ngAfterViewInit(): void {\n this.ngZone.runOutsideAngular(() => setTimeout(() => this.init(), +this.delay()));\n }\n\n ngOnDestroy(): void {\n this.cleanResize();\n this._editor?.dispose();\n }\n}\n","export class PlaceholderWidget implements monaco.editor.IContentWidget {\n private readonly ID = 'editor.widget.placeholderHint';\n private placeholder?: string;\n private editor: monaco.editor.IStandaloneCodeEditor;\n private node?: HTMLElement;\n\n constructor(editor: monaco.editor.IStandaloneCodeEditor, placeholder?: string) {\n this.placeholder = placeholder;\n this.editor = editor;\n }\n\n update(text?: string | null | undefined) {\n if (this.node == null) return;\n\n this.node.innerHTML = text ?? this.placeholder ?? '';\n }\n\n getId(): string {\n return this.ID;\n }\n getDomNode(): HTMLElement {\n if (this.node == null) {\n const node = (this.node = document.createElement('div'));\n node.classList.add('monaco-editor-placeholder');\n node.style.width = 'max-content';\n node.style.color = 'gray';\n node.innerHTML = this.placeholder!;\n node.style.fontStyle = 'italic';\n this.editor.applyFontInfo(node);\n }\n return this.node;\n }\n getPosition(): monaco.editor.IContentWidgetPosition | null {\n return {\n position: { lineNumber: 1, column: 1 },\n preference: [monaco.editor.ContentWidgetPositionPreference.EXACT]\n };\n }\n\n dispose() {\n this.editor.removeContentWidget(this);\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n effect,\n forwardRef,\n input,\n untracked\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { take, timer } from 'rxjs';\n\nimport { NuMonacoEditorBase } from './monaco-editor-base.component';\nimport { NuMonacoEditorModel } from './monaco-editor.types';\nimport { PlaceholderWidget } from './placholder';\n\n@Component({\n selector: 'nu-monaco-editor',\n template: ``,\n exportAs: 'nuMonacoEditor',\n host: {\n '[style.display]': `'block'`,\n '[style.height]': 'height()'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NuMonacoEditorComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NuMonacoEditorComponent extends NuMonacoEditorBase implements ControlValueAccessor {\n private _value = '';\n private _placeholderWidget?: PlaceholderWidget;\n placeholder = input<string>();\n model = input<NuMonacoEditorModel>();\n autoFormat = input(true, { transform: booleanAttribute });\n\n get editor(): monaco.editor.IStandaloneCodeEditor | null | undefined {\n return this._editor as monaco.editor.IStandaloneCodeEditor;\n }\n\n constructor() {\n super();\n effect(() => {\n const ph = this.placeholder();\n this._placeholderWidget?.update(ph);\n });\n effect(() => {\n const model = this.model();\n if (model == null) return;\n this.updateOptions(untracked(() => this.options()));\n });\n }\n\n private togglePlaceholder() {\n const text = this.placeholder();\n if (text == null || text.length <= 0 || this.editor == null) return;\n\n if (this._placeholderWidget == null) {\n this._placeholderWidget = new PlaceholderWidget(this.editor, text);\n }\n\n if (this._value.length > 0) {\n this.editor.removeContentWidget(this._placeholderWidget);\n } else {\n this.editor.addContentWidget(this._placeholderWidget);\n }\n }\n\n private onChange = (_: string) => {};\n private onTouched = () => {};\n\n initMonaco(options: monaco.editor.IStandaloneEditorConstructionOptions, initEvent: boolean): void {\n const hasModel = !!this.model();\n options = { ...this.config?.defaultOptions, ...options };\n\n if (hasModel) {\n const model = monaco.editor.getModel(this.model()!.uri! || '');\n if (model) {\n options.model = model;\n options.model.setValue(this._value);\n } else {\n const { value, language, uri } = this.model()!;\n options.model = monaco.editor.createModel(value || this._value, language, uri);\n }\n }\n\n if (this._disabled != null) options.readOnly = this._disabled;\n const editor = (this._editor = monaco.editor.create(this.el.nativeElement, options));\n\n if (!hasModel) {\n editor.setValue(this._value);\n }\n\n editor.onDidChangeModelContent(() => {\n const value = editor.getValue();\n\n this.ngZone.run(() => {\n this._value = value;\n this.onChange(value);\n });\n\n this.togglePlaceholder();\n });\n editor.onDidBlurEditorWidget(() => this.onTouched());\n\n this.togglePlaceholder();\n this.registerResize();\n\n const eventName = initEvent ? 'init' : 're-init';\n if (this.autoFormat()) {\n timer(this._config.autoFormatTime!)\n .pipe(takeUntilDestroyed(this.destroy$), take(1))\n .subscribe(() => {\n const action = editor.getAction('editor.action.formatDocument');\n if (action == null) {\n this.notifyEvent(eventName);\n return;\n }\n action.run().then(() => this.notifyEvent(eventName));\n });\n return;\n }\n this.notifyEvent(eventName);\n }\n\n writeValue(value: string): void {\n this._value = value || '';\n (this._editor as monaco.editor.IStandaloneCodeEditor)?.setValue(this._value);\n }\n\n registerOnChange(fn: (_: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(v: boolean): void {\n this.setDisabled(v);\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { NuMonacoEditorBase } from './monaco-editor-base.component';\nimport { NuMonacoEditorDiffModel } from './monaco-editor.types';\n\n@Component({\n selector: 'nu-monaco-diff-editor',\n template: ``,\n exportAs: 'nuMonacoDiffEditor',\n host: {\n '[style.display]': `'block'`,\n '[style.height]': 'height()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NuMonacoEditorDiffComponent extends NuMonacoEditorBase {\n old = input<NuMonacoEditorDiffModel>();\n new = input<NuMonacoEditorDiffModel>();\n\n get editor(): monaco.editor.IStandaloneDiffEditor | null | undefined {\n return this._editor as monaco.editor.IStandaloneDiffEditor;\n }\n\n initMonaco(options: monaco.editor.IStandaloneEditorConstructionOptions, initEvent: boolean): void {\n const oldModel = this.old();\n const newModel = this.new();\n if (!oldModel || !newModel) {\n this.notifyEvent('error', { error: 'old or new not found for nu-monaco-diff-editor' });\n return;\n }\n\n options = { ...this.config?.defaultOptions, ...options };\n const theme = options.theme;\n if (this._disabled != null) options.readOnly = this._disabled;\n const editor = (this._editor = monaco.editor.createDiffEditor(this.el.nativeElement, options));\n options.theme = theme;\n editor.setModel({\n original: monaco.editor.createModel(oldModel.code, oldModel.language || options.language),\n modified: monaco.editor.createModel(newModel.code, newModel.language || options.language)\n });\n\n // this.setDisabled();\n editor.onDidUpdateDiff(() => this.notifyEvent('update-diff', { diffValue: editor.getModifiedEditor().getValue() }));\n\n this.registerResize();\n if (initEvent) this.notifyEvent('init');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { NuMonacoEditorDiffComponent } from './monaco-editor-diff.component';\nimport { NuMonacoEditorComponent } from './monaco-editor.component';\nimport { NuMonacoEditorConfig, NU_MONACO_EDITOR_CONFIG } from './monaco-editor.config';\n\nconst COMPONENTS = [NuMonacoEditorComponent, NuMonacoEditorDiffComponent];\n\n@NgModule({\n imports: [CommonModule, ...COMPONENTS],\n exports: COMPONENTS\n})\nexport class NuMonacoEditorModule {\n /**\n * Or use `provideNuMonacoEditorConfig` instead.\n */\n static forRoot(config?: NuMonacoEditorConfig): ModuleWithProviders<NuMonacoEditorModule> {\n return {\n ngModule: NuMonacoEditorModule,\n providers: [{ provide: NU_MONACO_EDITOR_CONFIG, useValue: config }]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,122 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/// <reference path="../../../../packages/monaco-editor/monaco.d.ts" />
|
|
2
|
+
import * as _angular_core from '@angular/core';
|
|
3
|
+
import { InjectionToken, EnvironmentProviders, AfterViewInit, OnDestroy, ElementRef, NgZone, DestroyRef, ModuleWithProviders } from '@angular/core';
|
|
4
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
import * as i1 from '@angular/common';
|
|
7
|
+
|
|
8
|
+
interface NuMonacoEditorModel {
|
|
9
|
+
value?: string;
|
|
10
|
+
language?: string;
|
|
11
|
+
uri?: monaco.Uri;
|
|
12
|
+
}
|
|
13
|
+
interface NuMonacoEditorDiffModel {
|
|
14
|
+
code: string;
|
|
15
|
+
language?: string;
|
|
16
|
+
}
|
|
17
|
+
type NuMonacoEditorEventType = 'load-error' | 'init' | 're-init' | 'resize' | 'update-diff' | 'error';
|
|
18
|
+
interface NuMonacoEditorEvent {
|
|
19
|
+
type?: NuMonacoEditorEventType;
|
|
20
|
+
editor?: monaco.editor.IStandaloneCodeEditor | monaco.editor.IStandaloneDiffEditor;
|
|
21
|
+
error?: string;
|
|
22
|
+
/** Just only `nu-monaco-editor-diff` component */
|
|
23
|
+
diffValue?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
declare const NU_MONACO_EDITOR_CONFIG: InjectionToken<NuMonacoEditorConfig>;
|
|
27
|
+
declare function provideNuMonacoEditorConfig(config?: NuMonacoEditorConfig): EnvironmentProviders;
|
|
28
|
+
interface NuMonacoEditorConfig {
|
|
29
|
+
/**
|
|
30
|
+
* The base URL to monaco editor library assets via AMD (RequireJS), Default: `https://cdn.jsdelivr.net/npm/monaco-editor/min`
|
|
31
|
+
* You can using local path, e.g.: `assets/monaco-editor/min`.
|
|
32
|
+
*/
|
|
33
|
+
baseUrl?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Default options when creating editors
|
|
36
|
+
*/
|
|
37
|
+
defaultOptions?: monaco.editor.IStandaloneEditorConstructionOptions;
|
|
38
|
+
/**
|
|
39
|
+
* The event after the first loading of the monaco editor library is completed, use this function to extend monaco editor functionalities.
|
|
40
|
+
* - @param `_monaco` equar to `window.monaco`
|
|
41
|
+
*/
|
|
42
|
+
monacoLoad?: (_monaco: any) => void;
|
|
43
|
+
/**
|
|
44
|
+
* The event before the first preload of the monaco editor library is completed, use this function to set nls availableLanguages.
|
|
45
|
+
*/
|
|
46
|
+
monacoPreLoad?: () => void;
|
|
47
|
+
/**
|
|
48
|
+
* Trigger automatic format delay time, default: `100`
|
|
49
|
+
*/
|
|
50
|
+
autoFormatTime?: number;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
declare abstract class NuMonacoEditorBase implements AfterViewInit, OnDestroy {
|
|
54
|
+
protected el: ElementRef<HTMLElement>;
|
|
55
|
+
protected config: NuMonacoEditorConfig | null;
|
|
56
|
+
protected doc: Document;
|
|
57
|
+
protected ngZone: NgZone;
|
|
58
|
+
protected destroy$: DestroyRef;
|
|
59
|
+
protected _editor?: monaco.editor.IStandaloneCodeEditor | monaco.editor.IStandaloneDiffEditor;
|
|
60
|
+
protected _resize$: Subscription | null;
|
|
61
|
+
protected _config: NuMonacoEditorConfig;
|
|
62
|
+
protected _disabled?: boolean;
|
|
63
|
+
height: _angular_core.InputSignal<string>;
|
|
64
|
+
delay: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
65
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
66
|
+
options: _angular_core.InputSignal<monaco.editor.IStandaloneEditorConstructionOptions | undefined>;
|
|
67
|
+
readonly event: _angular_core.OutputEmitterRef<NuMonacoEditorEvent>;
|
|
68
|
+
constructor();
|
|
69
|
+
protected abstract initMonaco(_options: monaco.editor.IStandaloneEditorConstructionOptions | undefined, _initEvent: boolean): void;
|
|
70
|
+
protected notifyEvent(type: NuMonacoEditorEventType, other?: NuMonacoEditorEvent): void;
|
|
71
|
+
protected setDisabled(v: boolean): this;
|
|
72
|
+
private init;
|
|
73
|
+
protected cleanResize(): this;
|
|
74
|
+
protected registerResize(): this;
|
|
75
|
+
updateOptions(v: monaco.editor.IStandaloneEditorConstructionOptions | undefined): void;
|
|
76
|
+
ngAfterViewInit(): void;
|
|
77
|
+
ngOnDestroy(): void;
|
|
78
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NuMonacoEditorBase, never>;
|
|
79
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NuMonacoEditorBase, "nu-monaco-base", never, { "height": { "alias": "height"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "event": "event"; }, never, never, true, never>;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
declare class NuMonacoEditorComponent extends NuMonacoEditorBase implements ControlValueAccessor {
|
|
83
|
+
private _value;
|
|
84
|
+
private _placeholderWidget?;
|
|
85
|
+
placeholder: _angular_core.InputSignal<string | undefined>;
|
|
86
|
+
model: _angular_core.InputSignal<NuMonacoEditorModel | undefined>;
|
|
87
|
+
autoFormat: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
88
|
+
get editor(): monaco.editor.IStandaloneCodeEditor | null | undefined;
|
|
89
|
+
constructor();
|
|
90
|
+
private togglePlaceholder;
|
|
91
|
+
private onChange;
|
|
92
|
+
private onTouched;
|
|
93
|
+
initMonaco(options: monaco.editor.IStandaloneEditorConstructionOptions, initEvent: boolean): void;
|
|
94
|
+
writeValue(value: string): void;
|
|
95
|
+
registerOnChange(fn: (_: string) => void): void;
|
|
96
|
+
registerOnTouched(fn: any): void;
|
|
97
|
+
setDisabledState(v: boolean): void;
|
|
98
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NuMonacoEditorComponent, never>;
|
|
99
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NuMonacoEditorComponent, "nu-monaco-editor", ["nuMonacoEditor"], { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; "autoFormat": { "alias": "autoFormat"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
declare class NuMonacoEditorDiffComponent extends NuMonacoEditorBase {
|
|
103
|
+
old: _angular_core.InputSignal<NuMonacoEditorDiffModel | undefined>;
|
|
104
|
+
new: _angular_core.InputSignal<NuMonacoEditorDiffModel | undefined>;
|
|
105
|
+
get editor(): monaco.editor.IStandaloneDiffEditor | null | undefined;
|
|
106
|
+
initMonaco(options: monaco.editor.IStandaloneEditorConstructionOptions, initEvent: boolean): void;
|
|
107
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NuMonacoEditorDiffComponent, never>;
|
|
108
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NuMonacoEditorDiffComponent, "nu-monaco-diff-editor", ["nuMonacoDiffEditor"], { "old": { "alias": "old"; "required": false; "isSignal": true; }; "new": { "alias": "new"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
declare class NuMonacoEditorModule {
|
|
112
|
+
/**
|
|
113
|
+
* Or use `provideNuMonacoEditorConfig` instead.
|
|
114
|
+
*/
|
|
115
|
+
static forRoot(config?: NuMonacoEditorConfig): ModuleWithProviders<NuMonacoEditorModule>;
|
|
116
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NuMonacoEditorModule, never>;
|
|
117
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<NuMonacoEditorModule, never, [typeof i1.CommonModule, typeof NuMonacoEditorComponent, typeof NuMonacoEditorDiffComponent], [typeof NuMonacoEditorComponent, typeof NuMonacoEditorDiffComponent]>;
|
|
118
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<NuMonacoEditorModule>;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export { NU_MONACO_EDITOR_CONFIG, NuMonacoEditorComponent, NuMonacoEditorDiffComponent, NuMonacoEditorModule, provideNuMonacoEditorConfig };
|
|
122
|
+
export type { NuMonacoEditorConfig, NuMonacoEditorDiffModel, NuMonacoEditorEvent, NuMonacoEditorEventType, NuMonacoEditorModel };
|
package/package.json
CHANGED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, DestroyRef, ElementRef, EventEmitter, NgZone, OnDestroy } from '@angular/core';
|
|
2
|
-
import { Subscription } from 'rxjs';
|
|
3
|
-
import { NuMonacoEditorConfig } from './monaco-editor.config';
|
|
4
|
-
import { NuMonacoEditorEvent, NuMonacoEditorEventType } from './monaco-editor.types';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare abstract class NuMonacoEditorBase implements AfterViewInit, OnDestroy {
|
|
7
|
-
protected el: ElementRef<HTMLElement>;
|
|
8
|
-
protected config: NuMonacoEditorConfig | null;
|
|
9
|
-
protected doc: Document;
|
|
10
|
-
protected ngZone: NgZone;
|
|
11
|
-
protected destroy$: DestroyRef;
|
|
12
|
-
protected _editor?: monaco.editor.IStandaloneCodeEditor | monaco.editor.IStandaloneDiffEditor;
|
|
13
|
-
protected _options: monaco.editor.IStandaloneEditorConstructionOptions;
|
|
14
|
-
protected _resize$: Subscription | null;
|
|
15
|
-
protected _config: NuMonacoEditorConfig;
|
|
16
|
-
protected _disabled?: boolean;
|
|
17
|
-
height: string;
|
|
18
|
-
delay: number;
|
|
19
|
-
set disabled(val: boolean | string);
|
|
20
|
-
set options(val: monaco.editor.IStandaloneEditorConstructionOptions);
|
|
21
|
-
get options(): monaco.editor.IStandaloneEditorConstructionOptions;
|
|
22
|
-
readonly event: EventEmitter<NuMonacoEditorEvent>;
|
|
23
|
-
constructor();
|
|
24
|
-
protected abstract initMonaco(_options: monaco.editor.IStandaloneEditorConstructionOptions, _initEvent: boolean): void;
|
|
25
|
-
protected notifyEvent(type: NuMonacoEditorEventType, other?: NuMonacoEditorEvent): void;
|
|
26
|
-
protected setDisabled(): this;
|
|
27
|
-
private init;
|
|
28
|
-
protected cleanResize(): this;
|
|
29
|
-
protected registerResize(): this;
|
|
30
|
-
protected updateOptions(): void;
|
|
31
|
-
ngAfterViewInit(): void;
|
|
32
|
-
ngOnDestroy(): void;
|
|
33
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NuMonacoEditorBase, never>;
|
|
34
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NuMonacoEditorBase, "nu-monaco-base", never, { "height": { "alias": "height"; "required": false; }; "delay": { "alias": "delay"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, { "event": "event"; }, never, never, true, never>;
|
|
35
|
-
static ngAcceptInputType_delay: unknown;
|
|
36
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { NuMonacoEditorBase } from './monaco-editor-base.component';
|
|
2
|
-
import { NuMonacoEditorDiffModel } from './monaco-editor.types';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class NuMonacoEditorDiffComponent extends NuMonacoEditorBase {
|
|
5
|
-
old?: NuMonacoEditorDiffModel | null;
|
|
6
|
-
new?: NuMonacoEditorDiffModel | null;
|
|
7
|
-
get editor(): monaco.editor.IStandaloneDiffEditor | null | undefined;
|
|
8
|
-
initMonaco(options: monaco.editor.IStandaloneEditorConstructionOptions, initEvent: boolean): void;
|
|
9
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NuMonacoEditorDiffComponent, never>;
|
|
10
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NuMonacoEditorDiffComponent, "nu-monaco-diff-editor", ["nuMonacoDiffEditor"], { "old": { "alias": "old"; "required": false; }; "new": { "alias": "new"; "required": false; }; }, {}, never, never, true, never>;
|
|
11
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { ControlValueAccessor } from '@angular/forms';
|
|
2
|
-
import { NuMonacoEditorBase } from './monaco-editor-base.component';
|
|
3
|
-
import { NuMonacoEditorModel } from './monaco-editor.types';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class NuMonacoEditorComponent extends NuMonacoEditorBase implements ControlValueAccessor {
|
|
6
|
-
private _value;
|
|
7
|
-
private _placeholderWidget?;
|
|
8
|
-
private _placeholder?;
|
|
9
|
-
set placeholder(v: string | null | undefined);
|
|
10
|
-
model?: NuMonacoEditorModel | null;
|
|
11
|
-
autoFormat: boolean;
|
|
12
|
-
get editor(): monaco.editor.IStandaloneCodeEditor | null | undefined;
|
|
13
|
-
private togglePlaceholder;
|
|
14
|
-
private onChange;
|
|
15
|
-
private onTouched;
|
|
16
|
-
initMonaco(options: monaco.editor.IStandaloneEditorConstructionOptions, initEvent: boolean): void;
|
|
17
|
-
writeValue(value: string): void;
|
|
18
|
-
registerOnChange(fn: (_: string) => void): void;
|
|
19
|
-
registerOnTouched(fn: any): void;
|
|
20
|
-
setDisabledState(_isDisabled: boolean): void;
|
|
21
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NuMonacoEditorComponent, never>;
|
|
22
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NuMonacoEditorComponent, "nu-monaco-editor", ["nuMonacoEditor"], { "placeholder": { "alias": "placeholder"; "required": false; }; "model": { "alias": "model"; "required": false; }; "autoFormat": { "alias": "autoFormat"; "required": false; }; }, {}, never, never, true, never>;
|
|
23
|
-
static ngAcceptInputType_autoFormat: unknown;
|
|
24
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { EnvironmentProviders, InjectionToken } from '@angular/core';
|
|
2
|
-
export declare const NU_MONACO_EDITOR_CONFIG: InjectionToken<NuMonacoEditorConfig>;
|
|
3
|
-
export declare function provideNuMonacoEditorConfig(config?: NuMonacoEditorConfig): EnvironmentProviders;
|
|
4
|
-
export interface NuMonacoEditorConfig {
|
|
5
|
-
/**
|
|
6
|
-
* The base URL to monaco editor library assets via AMD (RequireJS), Default: `https://cdn.jsdelivr.net/npm/monaco-editor/min`
|
|
7
|
-
* You can using local path, e.g.: `assets/monaco-editor/min`.
|
|
8
|
-
*/
|
|
9
|
-
baseUrl?: string;
|
|
10
|
-
/**
|
|
11
|
-
* Default options when creating editors
|
|
12
|
-
*/
|
|
13
|
-
defaultOptions?: monaco.editor.IStandaloneEditorConstructionOptions;
|
|
14
|
-
/**
|
|
15
|
-
* The event after the first loading of the monaco editor library is completed, use this function to extend monaco editor functionalities.
|
|
16
|
-
* - @param `_monaco` equar to `window.monaco`
|
|
17
|
-
*/
|
|
18
|
-
monacoLoad?: (_monaco: any) => void;
|
|
19
|
-
/**
|
|
20
|
-
* The event before the first preload of the monaco editor library is completed, use this function to set nls availableLanguages.
|
|
21
|
-
*/
|
|
22
|
-
monacoPreLoad?: () => void;
|
|
23
|
-
/**
|
|
24
|
-
* Trigger automatic format delay time, default: `100`
|
|
25
|
-
*/
|
|
26
|
-
autoFormatTime?: number;
|
|
27
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import { NuMonacoEditorConfig } from './monaco-editor.config';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "./monaco-editor.component";
|
|
6
|
-
import * as i3 from "./monaco-editor-diff.component";
|
|
7
|
-
export declare class NuMonacoEditorModule {
|
|
8
|
-
/**
|
|
9
|
-
* Or use `provideNuMonacoEditorConfig` instead.
|
|
10
|
-
*/
|
|
11
|
-
static forRoot(config?: NuMonacoEditorConfig): ModuleWithProviders<NuMonacoEditorModule>;
|
|
12
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NuMonacoEditorModule, never>;
|
|
13
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<NuMonacoEditorModule, never, [typeof i1.CommonModule, typeof i2.NuMonacoEditorComponent, typeof i3.NuMonacoEditorDiffComponent], [typeof i2.NuMonacoEditorComponent, typeof i3.NuMonacoEditorDiffComponent]>;
|
|
14
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<NuMonacoEditorModule>;
|
|
15
|
-
}
|
package/monaco-editor.types.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/// <reference path="./monaco.d.ts" preserve="true" />
|
|
2
|
-
export interface NuMonacoEditorModel {
|
|
3
|
-
value?: string;
|
|
4
|
-
language?: string;
|
|
5
|
-
uri?: monaco.Uri;
|
|
6
|
-
}
|
|
7
|
-
export interface NuMonacoEditorDiffModel {
|
|
8
|
-
code: string;
|
|
9
|
-
language?: string;
|
|
10
|
-
}
|
|
11
|
-
export type NuMonacoEditorEventType = 'load-error' | 'init' | 're-init' | 'resize' | 'update-diff' | 'error';
|
|
12
|
-
export interface NuMonacoEditorEvent {
|
|
13
|
-
type?: NuMonacoEditorEventType;
|
|
14
|
-
editor?: monaco.editor.IStandaloneCodeEditor | monaco.editor.IStandaloneDiffEditor;
|
|
15
|
-
error?: string;
|
|
16
|
-
/** Just only `nu-monaco-editor-diff` component */
|
|
17
|
-
diffValue?: string;
|
|
18
|
-
}
|
package/placholder.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare class PlaceholderWidget implements monaco.editor.IContentWidget {
|
|
2
|
-
private readonly ID;
|
|
3
|
-
private placeholder?;
|
|
4
|
-
private editor;
|
|
5
|
-
private node?;
|
|
6
|
-
constructor(editor: monaco.editor.IStandaloneCodeEditor, placeholder?: string);
|
|
7
|
-
update(text?: string | null | undefined): void;
|
|
8
|
-
getId(): string;
|
|
9
|
-
getDomNode(): HTMLElement;
|
|
10
|
-
getPosition(): monaco.editor.IContentWidgetPosition | null;
|
|
11
|
-
dispose(): void;
|
|
12
|
-
}
|