@firestitch/text-editor 18.0.2 → 18.0.4

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.
Files changed (33) hide show
  1. package/app/components/text-editor/text-editor.component.d.ts +7 -6
  2. package/app/fs-text-editor.module.d.ts +5 -5
  3. package/app/interfaces/config.interface.d.ts +3 -1
  4. package/app/modules/ngx-monaco-editor/base-editor.d.ts +2 -4
  5. package/app/modules/ngx-monaco-editor/config.d.ts +1 -1
  6. package/app/modules/ngx-monaco-editor/diff-editor.component.d.ts +3 -6
  7. package/app/modules/ngx-monaco-editor/editor.component.d.ts +1 -4
  8. package/app/modules/ngx-monaco-editor/editor.module.d.ts +4 -4
  9. package/esm2022/app/components/text-editor/text-editor.component.mjs +158 -0
  10. package/esm2022/app/fs-text-editor.module.mjs +40 -0
  11. package/{esm2020 → esm2022}/app/interfaces/config.interface.mjs +1 -1
  12. package/esm2022/app/modules/ngx-monaco-editor/base-editor.mjs +75 -0
  13. package/esm2022/app/modules/ngx-monaco-editor/config.mjs +3 -0
  14. package/esm2022/app/modules/ngx-monaco-editor/diff-editor.component.mjs +71 -0
  15. package/esm2022/app/modules/ngx-monaco-editor/editor.component.mjs +99 -0
  16. package/esm2022/app/modules/ngx-monaco-editor/editor.module.mjs +37 -0
  17. package/{fesm2020 → fesm2022}/firestitch-text-editor.mjs +90 -126
  18. package/fesm2022/firestitch-text-editor.mjs.map +1 -0
  19. package/package.json +8 -14
  20. package/esm2020/app/components/text-editor/text-editor.component.mjs +0 -150
  21. package/esm2020/app/fs-text-editor.module.mjs +0 -42
  22. package/esm2020/app/modules/ngx-monaco-editor/base-editor.mjs +0 -77
  23. package/esm2020/app/modules/ngx-monaco-editor/config.mjs +0 -3
  24. package/esm2020/app/modules/ngx-monaco-editor/diff-editor.component.mjs +0 -91
  25. package/esm2020/app/modules/ngx-monaco-editor/editor.component.mjs +0 -118
  26. package/esm2020/app/modules/ngx-monaco-editor/editor.module.mjs +0 -40
  27. package/fesm2015/firestitch-text-editor.mjs +0 -505
  28. package/fesm2015/firestitch-text-editor.mjs.map +0 -1
  29. package/fesm2020/firestitch-text-editor.mjs.map +0 -1
  30. /package/{esm2020 → esm2022}/app/modules/ngx-monaco-editor/types.mjs +0 -0
  31. /package/{esm2020 → esm2022}/firestitch-text-editor.mjs +0 -0
  32. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  33. /package/{firestitch-text-editor.d.ts → index.d.ts} +0 -0
@@ -0,0 +1,99 @@
1
+ import { Component, Input, NgZone, forwardRef, inject } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { fromEvent } from 'rxjs';
4
+ import { BaseEditor } from './base-editor';
5
+ import * as i0 from "@angular/core";
6
+ export class EditorComponent extends BaseEditor {
7
+ zone = inject(NgZone);
8
+ editorConfig;
9
+ _value = '';
10
+ propagateChange = (_) => { };
11
+ onTouched = () => { };
12
+ set options(options) {
13
+ this._options = { ...this.config.defaultOptions, ...options };
14
+ if (this._editor) {
15
+ this._editor.dispose();
16
+ this.initMonaco(options);
17
+ }
18
+ }
19
+ get options() {
20
+ return this._options;
21
+ }
22
+ set model(model) {
23
+ this.options.model = model;
24
+ if (this._editor) {
25
+ this._editor.dispose();
26
+ this.initMonaco(this.options);
27
+ }
28
+ }
29
+ writeValue(value) {
30
+ this._value = value || '';
31
+ // Fix for value change while dispose in process.
32
+ setTimeout(() => {
33
+ if (this._editor && !this.options.model) {
34
+ this._editor.setValue(this._value);
35
+ }
36
+ });
37
+ }
38
+ registerOnChange(fn) {
39
+ this.propagateChange = fn;
40
+ }
41
+ registerOnTouched(fn) {
42
+ this.onTouched = fn;
43
+ }
44
+ initMonaco(options) {
45
+ const hasModel = !!options.model;
46
+ if (hasModel) {
47
+ const model = monaco.editor.getModel(options.model.uri || '');
48
+ if (model) {
49
+ options.model = model;
50
+ options.model.setValue(this._value);
51
+ }
52
+ else {
53
+ options.model = monaco.editor.createModel(options.model.value, options.model.language, options.model.uri);
54
+ }
55
+ }
56
+ this._editor = monaco.editor.create(this._editorContainer.nativeElement, options);
57
+ if (!hasModel) {
58
+ this._editor.setValue(this._value);
59
+ }
60
+ this._editor.onDidChangeModelContent((e) => {
61
+ const value = this._editor.getValue();
62
+ // value is not propagated to parent when executing outside zone.
63
+ this.zone.run(() => {
64
+ this.propagateChange(value);
65
+ this._value = value;
66
+ });
67
+ });
68
+ this._editor.onDidBlurEditorWidget(() => {
69
+ this.onTouched();
70
+ });
71
+ // refresh layout on resize event.
72
+ if (this._windowResizeSubscription) {
73
+ this._windowResizeSubscription.unsubscribe();
74
+ }
75
+ this._windowResizeSubscription = fromEvent(window, 'resize').subscribe(() => this._editor.layout());
76
+ this.onInit.emit(this._editor);
77
+ }
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
79
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: EditorComponent, isStandalone: true, selector: "ngx-monaco-editor", inputs: { options: "options", model: "model" }, providers: [{
80
+ provide: NG_VALUE_ACCESSOR,
81
+ useExisting: forwardRef(() => EditorComponent),
82
+ multi: true,
83
+ }], usesInheritance: true, ngImport: i0, template: '<div class="editor-container" #editorContainer></div>', isInline: true, styles: [".editor-container{width:100%;height:100%}\n"] });
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorComponent, decorators: [{
86
+ type: Component,
87
+ args: [{ selector: 'ngx-monaco-editor', template: '<div class="editor-container" #editorContainer></div>', providers: [{
88
+ provide: NG_VALUE_ACCESSOR,
89
+ useExisting: forwardRef(() => EditorComponent),
90
+ multi: true,
91
+ }], standalone: true, styles: [".editor-container{width:100%;height:100%}\n"] }]
92
+ }], propDecorators: { options: [{
93
+ type: Input,
94
+ args: ['options']
95
+ }], model: [{
96
+ type: Input,
97
+ args: ['model']
98
+ }] } });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9uZ3gtbW9uYWNvLWVkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBd0IzQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxVQUFVO0lBQ3JDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEIsWUFBWSxDQUF3QjtJQUVwQyxNQUFNLEdBQVcsRUFBRSxDQUFDO0lBRXJCLGVBQWUsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ2pDLFNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFNUIsSUFDVyxPQUFPLENBQUMsT0FBWTtRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQzlELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ1cs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QUF5QixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO3VHQXpGVSxlQUFlOzJGQUFmLGVBQWUsZ0hBUGYsQ0FBQztnQkFDVixPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLGlEQWJRLHVEQUF1RDs7MkZBZ0J0RCxlQUFlO2tCQWxCM0IsU0FBUzsrQkFDRSxtQkFBbUIsWUFDbkIsdURBQXVELGFBU3RELENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUMsY0FDVSxJQUFJOzhCQVlMLE9BQU87c0JBRGpCLEtBQUs7dUJBQUMsU0FBUztnQkFjTCxLQUFLO3NCQURmLEtBQUs7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE5nWm9uZSwgZm9yd2FyZFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCYXNlRWRpdG9yIH0gZnJvbSAnLi9iYXNlLWVkaXRvcic7XG5pbXBvcnQgeyBOZ3hNb25hY29FZGl0b3JDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBOZ3hFZGl0b3JNb2RlbCB9IGZyb20gJy4vdHlwZXMnO1xuXG5kZWNsYXJlIGxldCBtb25hY286IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LW1vbmFjby1lZGl0b3InLFxuICB0ZW1wbGF0ZTogJzxkaXYgY2xhc3M9XCJlZGl0b3ItY29udGFpbmVyXCIgI2VkaXRvckNvbnRhaW5lcj48L2Rpdj4nLFxuICBzdHlsZXM6IFtgXG5cblxuICAgICAgLmVkaXRvci1jb250YWluZXIge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgYF0sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFZGl0b3JDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlLFxuICB9XSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGV4dGVuZHMgQmFzZUVkaXRvciBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgZWRpdG9yQ29uZmlnOiBOZ3hNb25hY29FZGl0b3JDb25maWc7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcbiAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIEBJbnB1dCgnb3B0aW9ucycpXG4gIHB1YmxpYyBzZXQgb3B0aW9ucyhvcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLl9vcHRpb25zID0geyAuLi50aGlzLmNvbmZpZy5kZWZhdWx0T3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmluaXRNb25hY28ob3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBvcHRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICBASW5wdXQoJ21vZGVsJylcbiAgcHVibGljIHNldCBtb2RlbChtb2RlbDogTmd4RWRpdG9yTW9kZWwpIHtcbiAgICB0aGlzLm9wdGlvbnMubW9kZWwgPSBtb2RlbDtcbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5pbml0TW9uYWNvKHRoaXMub3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWUgfHwgJyc7XG4gICAgLy8gRml4IGZvciB2YWx1ZSBjaGFuZ2Ugd2hpbGUgZGlzcG9zZSBpbiBwcm9jZXNzLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2VkaXRvciAmJiAhdGhpcy5vcHRpb25zLm1vZGVsKSB7XG4gICAgICAgIHRoaXMuX2VkaXRvci5zZXRWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0TW9uYWNvKG9wdGlvbnM6IGFueSk6IHZvaWQge1xuXG4gICAgY29uc3QgaGFzTW9kZWwgPSAhIW9wdGlvbnMubW9kZWw7XG5cbiAgICBpZiAoaGFzTW9kZWwpIHtcbiAgICAgIGNvbnN0IG1vZGVsID0gbW9uYWNvLmVkaXRvci5nZXRNb2RlbChvcHRpb25zLm1vZGVsLnVyaSB8fCAnJyk7XG4gICAgICBpZiAobW9kZWwpIHtcbiAgICAgICAgb3B0aW9ucy5tb2RlbCA9IG1vZGVsO1xuICAgICAgICBvcHRpb25zLm1vZGVsLnNldFZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdGlvbnMubW9kZWwgPSBtb25hY28uZWRpdG9yLmNyZWF0ZU1vZGVsKG9wdGlvbnMubW9kZWwudmFsdWUsIG9wdGlvbnMubW9kZWwubGFuZ3VhZ2UsIG9wdGlvbnMubW9kZWwudXJpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9lZGl0b3IgPSBtb25hY28uZWRpdG9yLmNyZWF0ZSh0aGlzLl9lZGl0b3JDb250YWluZXIubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWhhc01vZGVsKSB7XG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuX2VkaXRvci5vbkRpZENoYW5nZU1vZGVsQ29udGVudCgoZTogYW55KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2VkaXRvci5nZXRWYWx1ZSgpO1xuXG4gICAgICAvLyB2YWx1ZSBpcyBub3QgcHJvcGFnYXRlZCB0byBwYXJlbnQgd2hlbiBleGVjdXRpbmcgb3V0c2lkZSB6b25lLlxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZWRpdG9yLm9uRGlkQmx1ckVkaXRvcldpZGdldCgoKSA9PiB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH0pO1xuXG4gICAgLy8gcmVmcmVzaCBsYXlvdXQgb24gcmVzaXplIGV2ZW50LlxuICAgIGlmICh0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJykuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2VkaXRvci5sYXlvdXQoKSk7XG4gICAgdGhpcy5vbkluaXQuZW1pdCh0aGlzLl9lZGl0b3IpO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { NGX_MONACO_EDITOR_CONFIG } from './config';
4
+ import { DiffEditorComponent } from './diff-editor.component';
5
+ import { EditorComponent } from './editor.component';
6
+ import * as i0 from "@angular/core";
7
+ export class MonacoEditorModule {
8
+ static forRoot(config = {}) {
9
+ return {
10
+ ngModule: MonacoEditorModule,
11
+ providers: [
12
+ { provide: NGX_MONACO_EDITOR_CONFIG, useValue: config }
13
+ ]
14
+ };
15
+ }
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MonacoEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: MonacoEditorModule, imports: [CommonModule,
18
+ EditorComponent,
19
+ DiffEditorComponent], exports: [EditorComponent,
20
+ DiffEditorComponent] });
21
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MonacoEditorModule, imports: [CommonModule] });
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MonacoEditorModule, decorators: [{
24
+ type: NgModule,
25
+ args: [{
26
+ imports: [
27
+ CommonModule,
28
+ EditorComponent,
29
+ DiffEditorComponent
30
+ ],
31
+ exports: [
32
+ EditorComponent,
33
+ DiffEditorComponent
34
+ ]
35
+ }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9uZ3gtbW9uYWNvLWVkaXRvci9lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQXlCLE1BQU0sVUFBVSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFhckQsTUFBTSxPQUFPLGtCQUFrQjtJQUN0QixNQUFNLENBQUMsT0FBTyxDQUFDLFNBQWdDLEVBQUU7UUFDdEQsT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7YUFDeEQ7U0FDRixDQUFDO0lBQ0osQ0FBQzt1R0FSVSxrQkFBa0I7d0dBQWxCLGtCQUFrQixZQVR2QixZQUFZO1lBQ1osZUFBZTtZQUNmLG1CQUFtQixhQUduQixlQUFlO1lBQ2YsbUJBQW1CO3dHQUdkLGtCQUFrQixZQVR2QixZQUFZOzsyRkFTUCxrQkFBa0I7a0JBWDlCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixtQkFBbUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxlQUFlO3dCQUNmLG1CQUFtQjtxQkFDdEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTkdYX01PTkFDT19FRElUT1JfQ09ORklHLCBOZ3hNb25hY29FZGl0b3JDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBEaWZmRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9kaWZmLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3IuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRWRpdG9yQ29tcG9uZW50LFxuICAgICAgICBEaWZmRWRpdG9yQ29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgRGlmZkVkaXRvckNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTW9uYWNvRWRpdG9yTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZzogTmd4TW9uYWNvRWRpdG9yQ29uZmlnID0ge30pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE1vbmFjb0VkaXRvck1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTW9uYWNvRWRpdG9yTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogTkdYX01PTkFDT19FRElUT1JfQ09ORklHLCB1c2VWYWx1ZTogY29uZmlnIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, EventEmitter, Component, Inject, ViewChild, Output, forwardRef, Input, NgModule } from '@angular/core';
3
1
  import { DOCUMENT, CommonModule } from '@angular/common';
4
- import * as i2 from '@angular/forms';
2
+ import * as i0 from '@angular/core';
3
+ import { InjectionToken, EventEmitter, inject, Component, ViewChild, Output, NgZone, forwardRef, Input, ElementRef, NgModule } from '@angular/core';
4
+ import * as i1 from '@angular/forms';
5
5
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
6
6
  import { fromEvent } from 'rxjs';
7
7
 
@@ -10,13 +10,14 @@ const NGX_MONACO_EDITOR_CONFIG = new InjectionToken('NGX_MONACO_EDITOR_CONFIG');
10
10
  let loadedMonaco = false;
11
11
  let loadPromise;
12
12
  class BaseEditor {
13
- constructor(config) {
14
- this.config = config;
15
- this.onInit = new EventEmitter();
16
- }
13
+ _editorContainer;
14
+ onInit = new EventEmitter();
15
+ _editor;
16
+ _options;
17
+ _windowResizeSubscription;
18
+ config = inject(NGX_MONACO_EDITOR_CONFIG);
17
19
  ngAfterViewInit() {
18
20
  if (loadedMonaco) {
19
- // Wait until monaco editor is available
20
21
  loadPromise.then(() => {
21
22
  this.initMonaco(this._options);
22
23
  });
@@ -63,18 +64,15 @@ class BaseEditor {
63
64
  this._editor = undefined;
64
65
  }
65
66
  }
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseEditor, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: BaseEditor, selector: "ng-component", outputs: { onInit: "onInit" }, viewQueries: [{ propertyName: "_editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], ngImport: i0, template: '', isInline: true });
66
69
  }
67
- BaseEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: BaseEditor, deps: [{ token: NGX_MONACO_EDITOR_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
68
- BaseEditor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: BaseEditor, selector: "ng-component", outputs: { onInit: "onInit" }, viewQueries: [{ propertyName: "_editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], ngImport: i0, template: '', isInline: true });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: BaseEditor, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BaseEditor, decorators: [{
70
71
  type: Component,
71
72
  args: [{
72
73
  template: '',
73
74
  }]
74
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
75
- type: Inject,
76
- args: [NGX_MONACO_EDITOR_CONFIG]
77
- }] }]; }, propDecorators: { _editorContainer: [{
75
+ }], propDecorators: { _editorContainer: [{
78
76
  type: ViewChild,
79
77
  args: ['editorContainer', { static: true }]
80
78
  }], onInit: [{
@@ -82,14 +80,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
82
80
  }] } });
83
81
 
84
82
  class EditorComponent extends BaseEditor {
85
- constructor(zone, editorConfig) {
86
- super(editorConfig);
87
- this.zone = zone;
88
- this.editorConfig = editorConfig;
89
- this._value = '';
90
- this.propagateChange = (_) => { };
91
- this.onTouched = () => { };
92
- }
83
+ zone = inject(NgZone);
84
+ editorConfig;
85
+ _value = '';
86
+ propagateChange = (_) => { };
87
+ onTouched = () => { };
93
88
  set options(options) {
94
89
  this._options = { ...this.config.defaultOptions, ...options };
95
90
  if (this._editor) {
@@ -156,36 +151,21 @@ class EditorComponent extends BaseEditor {
156
151
  this._windowResizeSubscription = fromEvent(window, 'resize').subscribe(() => this._editor.layout());
157
152
  this.onInit.emit(this._editor);
158
153
  }
154
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
155
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: EditorComponent, isStandalone: true, selector: "ngx-monaco-editor", inputs: { options: "options", model: "model" }, providers: [{
156
+ provide: NG_VALUE_ACCESSOR,
157
+ useExisting: forwardRef(() => EditorComponent),
158
+ multi: true,
159
+ }], usesInheritance: true, ngImport: i0, template: '<div class="editor-container" #editorContainer></div>', isInline: true, styles: [".editor-container{width:100%;height:100%}\n"] });
159
160
  }
160
- EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: EditorComponent, deps: [{ token: i0.NgZone }, { token: NGX_MONACO_EDITOR_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
161
- EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: EditorComponent, selector: "ngx-monaco-editor", inputs: { options: "options", model: "model" }, providers: [{
162
- provide: NG_VALUE_ACCESSOR,
163
- useExisting: forwardRef(() => EditorComponent),
164
- multi: true,
165
- }], usesInheritance: true, ngImport: i0, template: '<div class="editor-container" #editorContainer></div>', isInline: true, styles: [".editor-container{width:100%;height:100%}\n"] });
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: EditorComponent, decorators: [{
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditorComponent, decorators: [{
167
162
  type: Component,
168
- args: [{
169
- selector: 'ngx-monaco-editor',
170
- template: '<div class="editor-container" #editorContainer></div>',
171
- styles: [`
172
-
173
-
174
- .editor-container {
175
- width: 100%;
176
- height: 100%;
177
- }
178
- `],
179
- providers: [{
163
+ args: [{ selector: 'ngx-monaco-editor', template: '<div class="editor-container" #editorContainer></div>', providers: [{
180
164
  provide: NG_VALUE_ACCESSOR,
181
165
  useExisting: forwardRef(() => EditorComponent),
182
166
  multi: true,
183
- }],
184
- }]
185
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: undefined, decorators: [{
186
- type: Inject,
187
- args: [NGX_MONACO_EDITOR_CONFIG]
188
- }] }]; }, propDecorators: { options: [{
167
+ }], standalone: true, styles: [".editor-container{width:100%;height:100%}\n"] }]
168
+ }], propDecorators: { options: [{
189
169
  type: Input,
190
170
  args: ['options']
191
171
  }], model: [{
@@ -194,14 +174,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
194
174
  }] } });
195
175
 
196
176
  class FsTextEditorComponent {
197
- constructor(_document) {
198
- this._document = _document;
199
- this.LINE_HEIGHT = 18;
200
- this.config = {};
201
- this.scrollable = false;
202
- this.ready = new EventEmitter();
203
- this.blur = new EventEmitter();
204
- this._value = '';
177
+ LINE_HEIGHT = 18;
178
+ config = {};
179
+ scrollable = false;
180
+ ready = new EventEmitter();
181
+ blur = new EventEmitter();
182
+ onChange;
183
+ onTouched;
184
+ _editorRef;
185
+ _value = '';
186
+ _window;
187
+ _document = inject(DOCUMENT);
188
+ _elementRef = inject(ElementRef);
189
+ constructor() {
205
190
  this._window = this._document.defaultView;
206
191
  }
207
192
  get monaco() {
@@ -213,6 +198,7 @@ class FsTextEditorComponent {
213
198
  minimap: {
214
199
  enabled: false,
215
200
  },
201
+ minHeight: this.config.minHeight ?? 150,
216
202
  theme: 'vs-dark',
217
203
  automaticLayout: !!this.config.height,
218
204
  scrollBeyondLastLine: false,
@@ -223,6 +209,10 @@ class FsTextEditorComponent {
223
209
  ...this.config,
224
210
  };
225
211
  }
212
+ if (this.config.minHeight) {
213
+ this._elementRef.nativeElement.style
214
+ .setProperty('--min-height', `${this.config.minHeight}px`);
215
+ }
226
216
  }
227
217
  get value() {
228
218
  return this._value;
@@ -237,13 +227,13 @@ class FsTextEditorComponent {
237
227
  this._disableScroll();
238
228
  }
239
229
  if (this.config.ready) {
240
- this.config.ready(this._editorRef);
230
+ this.config.ready(this._editorRef, this.monaco);
241
231
  }
242
232
  });
243
233
  // moved forward for cases when several editors should be initialized on the same page
244
- setTimeout(() => {
245
- this._cleanupAMDLoader();
246
- }, 100);
234
+ // setTimeout(() => {
235
+ // this._cleanupAMDLoader();
236
+ // }, 100);
247
237
  }
248
238
  writeValue(value) {
249
239
  this._value = value || '';
@@ -263,10 +253,15 @@ class FsTextEditorComponent {
263
253
  registerOnTouched(fn) {
264
254
  this.onTouched = fn;
265
255
  }
256
+ ngOnDestroy() {
257
+ if (this.config.destroy) {
258
+ this.config.destroy(this._editorRef, this.monaco);
259
+ }
260
+ }
266
261
  _initEditor() {
267
262
  if (this._editorRef && !this.config.height) {
268
263
  this._updateEditorHeight();
269
- this._editorRef.onDidChangeModelContent((e) => {
264
+ this._editorRef.onDidChangeModelContent(() => {
270
265
  this._updateEditorHeight();
271
266
  });
272
267
  }
@@ -306,28 +301,21 @@ class FsTextEditorComponent {
306
301
  e.stopPropagation();
307
302
  }, true);
308
303
  }
309
- _cleanupAMDLoader() {
310
- // must be there to cleanup https://github.com/microsoft/monaco-editor/issues/827
311
- this._window.define = null;
312
- }
304
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsTextEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
305
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsTextEditorComponent, isStandalone: true, selector: "fs-text-editor", inputs: { config: "config", scrollable: "scrollable" }, outputs: { ready: "ready", blur: "blur" }, providers: [{
306
+ provide: NG_VALUE_ACCESSOR,
307
+ useExisting: forwardRef(() => FsTextEditorComponent),
308
+ multi: true,
309
+ }], ngImport: i0, template: "<ngx-monaco-editor\n [ngModel]=\"value\"\n (ngModelChange)=\"changed($event)\"\n [options]=\"config\"\n (onInit)=\"onEditorInit($event)\">\n</ngx-monaco-editor>", styles: ["ngx-monaco-editor{display:block}ngx-monaco-editor ::ng-deep .monaco-editor{min-height:var(--min-height)}\n"], dependencies: [{ kind: "component", type: EditorComponent, selector: "ngx-monaco-editor", inputs: ["options", "model"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
313
310
  }
314
- FsTextEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsTextEditorComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
315
- FsTextEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsTextEditorComponent, selector: "fs-text-editor", inputs: { config: "config", scrollable: "scrollable" }, outputs: { ready: "ready", blur: "blur" }, providers: [{
316
- provide: NG_VALUE_ACCESSOR,
317
- useExisting: forwardRef(() => FsTextEditorComponent),
318
- multi: true,
319
- }], ngImport: i0, template: "<ngx-monaco-editor\n [style.height]=\"config.height\"\n [ngModel]=\"value\"\n (ngModelChange)=\"changed($event)\"\n [options]=\"config\"\n (onInit)=\"onEditorInit($event)\">\n</ngx-monaco-editor>\n", styles: ["ngx-monaco-editor{display:block}\n"], components: [{ type: EditorComponent, selector: "ngx-monaco-editor", inputs: ["options", "model"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
320
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsTextEditorComponent, decorators: [{
311
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsTextEditorComponent, decorators: [{
321
312
  type: Component,
322
313
  args: [{ selector: 'fs-text-editor', providers: [{
323
314
  provide: NG_VALUE_ACCESSOR,
324
315
  useExisting: forwardRef(() => FsTextEditorComponent),
325
316
  multi: true,
326
- }], template: "<ngx-monaco-editor\n [style.height]=\"config.height\"\n [ngModel]=\"value\"\n (ngModelChange)=\"changed($event)\"\n [options]=\"config\"\n (onInit)=\"onEditorInit($event)\">\n</ngx-monaco-editor>\n", styles: ["ngx-monaco-editor{display:block}\n"] }]
327
- }], ctorParameters: function () { return [{ type: Document, decorators: [{
328
- type: Inject,
329
- args: [DOCUMENT]
330
- }] }]; }, propDecorators: { config: [{
317
+ }], standalone: true, imports: [EditorComponent, FormsModule], template: "<ngx-monaco-editor\n [ngModel]=\"value\"\n (ngModelChange)=\"changed($event)\"\n [options]=\"config\"\n (onInit)=\"onEditorInit($event)\">\n</ngx-monaco-editor>", styles: ["ngx-monaco-editor{display:block}ngx-monaco-editor ::ng-deep .monaco-editor{min-height:var(--min-height)}\n"] }]
318
+ }], ctorParameters: () => [], propDecorators: { config: [{
331
319
  type: Input
332
320
  }], scrollable: [{
333
321
  type: Input
@@ -338,10 +326,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
338
326
  }] } });
339
327
 
340
328
  class DiffEditorComponent extends BaseEditor {
341
- constructor(editorConfig) {
342
- super(editorConfig);
343
- this.editorConfig = editorConfig;
344
- }
329
+ _originalModel;
330
+ _modifiedModel;
345
331
  set options(options) {
346
332
  this._options = { ...this.config.defaultOptions, ...options };
347
333
  if (this._editor) {
@@ -389,30 +375,13 @@ class DiffEditorComponent extends BaseEditor {
389
375
  this._windowResizeSubscription = fromEvent(window, 'resize').subscribe(() => this._editor.layout());
390
376
  this.onInit.emit(this._editor);
391
377
  }
378
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DiffEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
379
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: DiffEditorComponent, isStandalone: true, selector: "ngx-monaco-diff-editor", inputs: { options: "options", originalModel: "originalModel", modifiedModel: "modifiedModel" }, usesInheritance: true, ngImport: i0, template: '<div class="editor-container" #editorContainer></div>', isInline: true, styles: [":host{display:block;height:200px}.editor-container{width:100%;height:100%}\n"] });
392
380
  }
393
- DiffEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DiffEditorComponent, deps: [{ token: NGX_MONACO_EDITOR_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
394
- DiffEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DiffEditorComponent, selector: "ngx-monaco-diff-editor", inputs: { options: "options", originalModel: "originalModel", modifiedModel: "modifiedModel" }, usesInheritance: true, ngImport: i0, template: '<div class="editor-container" #editorContainer></div>', isInline: true, styles: [":host{display:block;height:200px}.editor-container{width:100%;height:100%}\n"] });
395
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DiffEditorComponent, decorators: [{
381
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DiffEditorComponent, decorators: [{
396
382
  type: Component,
397
- args: [{
398
- selector: 'ngx-monaco-diff-editor',
399
- template: '<div class="editor-container" #editorContainer></div>',
400
- styles: [`
401
- :host {
402
- display: block;
403
- height: 200px;
404
- }
405
-
406
- .editor-container {
407
- width: 100%;
408
- height: 100%;
409
- }
410
- `],
411
- }]
412
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
413
- type: Inject,
414
- args: [NGX_MONACO_EDITOR_CONFIG]
415
- }] }]; }, propDecorators: { options: [{
383
+ args: [{ selector: 'ngx-monaco-diff-editor', template: '<div class="editor-container" #editorContainer></div>', standalone: true, styles: [":host{display:block;height:200px}.editor-container{width:100%;height:100%}\n"] }]
384
+ }], propDecorators: { options: [{
416
385
  type: Input,
417
386
  args: ['options']
418
387
  }], originalModel: [{
@@ -432,21 +401,18 @@ class MonacoEditorModule {
432
401
  ]
433
402
  };
434
403
  }
404
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MonacoEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
405
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: MonacoEditorModule, imports: [CommonModule,
406
+ EditorComponent,
407
+ DiffEditorComponent], exports: [EditorComponent,
408
+ DiffEditorComponent] });
409
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MonacoEditorModule, imports: [CommonModule] });
435
410
  }
436
- MonacoEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MonacoEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
437
- MonacoEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MonacoEditorModule, declarations: [EditorComponent,
438
- DiffEditorComponent], imports: [CommonModule], exports: [EditorComponent,
439
- DiffEditorComponent] });
440
- MonacoEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MonacoEditorModule, imports: [[
441
- CommonModule
442
- ]] });
443
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MonacoEditorModule, decorators: [{
411
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MonacoEditorModule, decorators: [{
444
412
  type: NgModule,
445
413
  args: [{
446
414
  imports: [
447
- CommonModule
448
- ],
449
- declarations: [
415
+ CommonModule,
450
416
  EditorComponent,
451
417
  DiffEditorComponent
452
418
  ],
@@ -466,30 +432,28 @@ class FsTextEditorModule {
466
432
  ],
467
433
  };
468
434
  }
469
- }
470
- FsTextEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsTextEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
471
- FsTextEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsTextEditorModule, declarations: [FsTextEditorComponent], imports: [CommonModule,
472
- MonacoEditorModule,
473
- FormsModule], exports: [FsTextEditorComponent] });
474
- FsTextEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsTextEditorModule, imports: [[
475
- CommonModule,
435
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsTextEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
436
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: FsTextEditorModule, imports: [CommonModule,
437
+ MonacoEditorModule,
438
+ FormsModule,
439
+ FsTextEditorComponent], exports: [FsTextEditorComponent] });
440
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsTextEditorModule, imports: [CommonModule,
476
441
  MonacoEditorModule,
477
442
  FormsModule,
478
- ]] });
479
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsTextEditorModule, decorators: [{
443
+ FsTextEditorComponent] });
444
+ }
445
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsTextEditorModule, decorators: [{
480
446
  type: NgModule,
481
447
  args: [{
482
448
  imports: [
483
449
  CommonModule,
484
450
  MonacoEditorModule,
485
451
  FormsModule,
452
+ FsTextEditorComponent,
486
453
  ],
487
454
  exports: [
488
455
  FsTextEditorComponent,
489
456
  ],
490
- declarations: [
491
- FsTextEditorComponent,
492
- ]
493
457
  }]
494
458
  }] });
495
459
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestitch-text-editor.mjs","sources":["../../src/app/modules/ngx-monaco-editor/config.ts","../../src/app/modules/ngx-monaco-editor/base-editor.ts","../../src/app/modules/ngx-monaco-editor/editor.component.ts","../../src/app/components/text-editor/text-editor.component.ts","../../src/app/components/text-editor/text-editor.component.html","../../src/app/modules/ngx-monaco-editor/diff-editor.component.ts","../../src/app/modules/ngx-monaco-editor/editor.module.ts","../../src/app/fs-text-editor.module.ts","../../src/public_api.ts","../../src/firestitch-text-editor.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const NGX_MONACO_EDITOR_CONFIG = new InjectionToken<NgxMonacoEditorConfig>('NGX_MONACO_EDITOR_CONFIG');\n\nexport interface NgxMonacoEditorConfig {\n baseUrl?: string;\n defaultOptions?: { [key: string]: any; };\n onMonacoLoad?: Function;\n}\n","import { AfterViewInit, Component, ElementRef, EventEmitter, OnDestroy, Output, ViewChild, inject } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { editor } from 'monaco-editor';\n\nimport { NGX_MONACO_EDITOR_CONFIG } from './config';\n\nlet loadedMonaco = false;\nlet loadPromise: Promise<void>;\n\n@Component({\n template: '',\n})\nexport abstract class BaseEditor implements AfterViewInit, OnDestroy {\n\n @ViewChild('editorContainer', { static: true }) public _editorContainer: ElementRef;\n\n @Output() public onInit = new EventEmitter<any>();\n\n protected _editor: editor.ICodeEditor;\n protected _options: any;\n protected _windowResizeSubscription: Subscription;\n\n public config = inject(NGX_MONACO_EDITOR_CONFIG);\n\n public ngAfterViewInit(): void {\n if (loadedMonaco) {\n loadPromise.then(() => {\n this.initMonaco(this._options);\n });\n } else {\n loadedMonaco = true;\n loadPromise = new Promise<void>((resolve: any) => {\n const baseUrl = `${this.config.baseUrl || './assets' }/monaco-editor/min/vs`;\n if (typeof ((<any>window).monaco) === 'object') {\n resolve();\n\n return;\n }\n const onGotAmdLoader: any = () => {\n // Load monaco\n (<any>window).require.config({ paths: { vs: `${baseUrl}` } });\n (<any>window).require(['vs/editor/editor.main'], () => {\n if (typeof this.config.onMonacoLoad === 'function') {\n this.config.onMonacoLoad();\n }\n this.initMonaco(this._options);\n resolve();\n });\n };\n\n // Load AMD loader if necessary\n if (!(<any>window).require) {\n const loaderScript: HTMLScriptElement = document.createElement('script');\n loaderScript.type = 'text/javascript';\n loaderScript.src = `${baseUrl}/loader.js`;\n loaderScript.addEventListener('load', onGotAmdLoader);\n document.body.appendChild(loaderScript);\n } else {\n onGotAmdLoader();\n }\n });\n }\n }\n\n public ngOnDestroy() {\n if (this._windowResizeSubscription) {\n this._windowResizeSubscription.unsubscribe();\n }\n if (this._editor) {\n this._editor.dispose();\n this._editor = undefined;\n }\n }\n\n protected abstract initMonaco(options: any): void;\n}\n","import { Component, Input, NgZone, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { fromEvent } from 'rxjs';\n\nimport { BaseEditor } from './base-editor';\nimport { NgxMonacoEditorConfig } from './config';\nimport { NgxEditorModel } from './types';\n\ndeclare let monaco: any;\n\n@Component({\n selector: 'ngx-monaco-editor',\n template: '<div class=\"editor-container\" #editorContainer></div>',\n styles: [`\n\n\n .editor-container {\n width: 100%;\n height: 100%;\n }\n `],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditorComponent),\n multi: true,\n }],\n standalone: true,\n})\nexport class EditorComponent extends BaseEditor implements ControlValueAccessor {\n private zone = inject(NgZone);\n private editorConfig: NgxMonacoEditorConfig;\n\n private _value: string = '';\n\n public propagateChange = (_: any) => {};\n public onTouched = () => {};\n\n @Input('options')\n public set options(options: any) {\n this._options = { ...this.config.defaultOptions, ...options };\n if (this._editor) {\n this._editor.dispose();\n this.initMonaco(options);\n }\n }\n\n public get options(): any {\n return this._options;\n }\n\n @Input('model')\n public set model(model: NgxEditorModel) {\n this.options.model = model;\n if (this._editor) {\n this._editor.dispose();\n this.initMonaco(this.options);\n }\n }\n\n public writeValue(value: any): void {\n this._value = value || '';\n // Fix for value change while dispose in process.\n setTimeout(() => {\n if (this._editor && !this.options.model) {\n this._editor.setValue(this._value);\n }\n });\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n protected initMonaco(options: any): void {\n\n const hasModel = !!options.model;\n\n if (hasModel) {\n const model = monaco.editor.getModel(options.model.uri || '');\n if (model) {\n options.model = model;\n options.model.setValue(this._value);\n } else {\n options.model = monaco.editor.createModel(options.model.value, options.model.language, options.model.uri);\n }\n }\n\n this._editor = monaco.editor.create(this._editorContainer.nativeElement, options);\n\n if (!hasModel) {\n this._editor.setValue(this._value);\n }\n\n this._editor.onDidChangeModelContent((e: any) => {\n const value = this._editor.getValue();\n\n // value is not propagated to parent when executing outside zone.\n this.zone.run(() => {\n this.propagateChange(value);\n this._value = value;\n });\n });\n\n this._editor.onDidBlurEditorWidget(() => {\n this.onTouched();\n });\n\n // refresh layout on resize event.\n if (this._windowResizeSubscription) {\n this._windowResizeSubscription.unsubscribe();\n }\n this._windowResizeSubscription = fromEvent(window, 'resize').subscribe(() => this._editor.layout());\n this.onInit.emit(this._editor);\n }\n\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { editor } from 'monaco-editor';\n\nimport { FsTextEditorConfig } from '../../interfaces/config.interface';\nimport { EditorComponent } from '../../modules/ngx-monaco-editor/editor.component';\n\n\n@Component({\n selector: 'fs-text-editor',\n templateUrl: './text-editor.component.html',\n styleUrls: ['./text-editor.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FsTextEditorComponent),\n multi: true,\n }],\n standalone: true,\n imports: [EditorComponent, FormsModule],\n})\nexport class FsTextEditorComponent implements OnInit, ControlValueAccessor, OnDestroy {\n\n public readonly LINE_HEIGHT = 18;\n\n @Input() public config: FsTextEditorConfig = {};\n @Input() public scrollable = false;\n\n @Output() public ready = new EventEmitter();\n @Output() public blur = new EventEmitter();\n\n public onChange: (_: any) => void;\n public onTouched: () => void;\n\n private _editorRef: editor.ICodeEditor;\n private _value = '';\n private _window: any; \n private _document = inject<Document>(DOCUMENT);\n private _elementRef = inject(ElementRef);\n\n constructor() {\n this._window = this._document.defaultView;\n }\n\n public get monaco() {\n return this._window.monaco;\n }\n\n public ngOnInit() {\n if (this.config) {\n this.config = {\n minimap: {\n enabled: false,\n },\n minHeight: this.config.minHeight ?? 150,\n theme: 'vs-dark',\n automaticLayout: !!this.config.height,\n scrollBeyondLastLine: false,\n scrollbar: {\n vertical: this.config.height ? 'auto' : 'hidden',\n },\n hideCursorInOverviewRuler: true,\n ...this.config,\n };\n }\n \n if (this.config.minHeight) {\n this._elementRef.nativeElement.style\n .setProperty('--min-height', `${this.config.minHeight}px`);\n }\n }\n\n public get value() {\n return this._value;\n }\n\n public onEditorInit(event) {\n // Timeout allows the content to fully load to and calculate height\n setTimeout(() => {\n this._editorRef = event;\n this._initEditor();\n this.ready.next(event);\n\n if (!this.scrollable && !this.config.height) {\n this._disableScroll();\n }\n\n if(this.config.ready) {\n this.config.ready(this._editorRef, this.monaco);\n }\n });\n\n // moved forward for cases when several editors should be initialized on the same page\n // setTimeout(() => {\n // this._cleanupAMDLoader();\n // }, 100);\n }\n\n public writeValue(value: any): void {\n this._value = value || '';\n }\n\n public changed(e) {\n if (this._value !== e) {\n this._value = e;\n this.onChange(e);\n }\n }\n\n public updateLayout(): void {\n this._editorRef.layout();\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public ngOnDestroy(): void {\n if(this.config.destroy) {\n this.config.destroy(this._editorRef, this.monaco);\n }\n }\n\n private _initEditor() {\n if (this._editorRef && !this.config.height) {\n this._updateEditorHeight();\n\n this._editorRef.onDidChangeModelContent(() => {\n this._updateEditorHeight();\n });\n }\n\n this._editorRef.onDidBlurEditorText(() => {\n this.blur.next(null);\n if(this.config.blur) {\n this.config.blur();\n }\n });\n\n this._editorRef.onDidFocusEditorText(() => {\n if(this.config.focus) {\n this.config.focus();\n }\n });\n }\n\n private _updateEditorHeight() {\n const editorDomNode = this._editorRef.getDomNode();\n\n if (!editorDomNode) {\n return;\n }\n\n const container = editorDomNode.getElementsByClassName('view-lines')[0] as HTMLElement;\n const lineHeight = container.firstChild\n ? (container.firstChild as HTMLElement).offsetHeight\n : this.LINE_HEIGHT;\n\n const editorModel = this._editorRef.getModel();\n\n if (!editorModel) {\n return;\n }\n\n const nextHeight = this._editorRef.getModel().getLineCount() * lineHeight;\n\n // set the height and redo layout\n editorDomNode.style.height = `${nextHeight }px`;\n this.updateLayout();\n }\n\n private _disableScroll() {\n const node = this._editorRef.getDomNode();\n\n node.addEventListener('wheel', (e) => {\n e.stopPropagation();\n }, true);\n }\n}\n","<ngx-monaco-editor\n [ngModel]=\"value\"\n (ngModelChange)=\"changed($event)\"\n [options]=\"config\"\n (onInit)=\"onEditorInit($event)\">\n</ngx-monaco-editor>","import { Component, Input } from '@angular/core';\n\nimport { fromEvent } from 'rxjs';\n\nimport { BaseEditor } from './base-editor';\nimport { DiffEditorModel } from './types';\n\ndeclare let monaco: any;\n\n@Component({\n selector: 'ngx-monaco-diff-editor',\n template: '<div class=\"editor-container\" #editorContainer></div>',\n styles: [`\n :host {\n display: block;\n height: 200px;\n }\n\n .editor-container {\n width: 100%;\n height: 100%;\n }\n `],\n standalone: true,\n})\nexport class DiffEditorComponent extends BaseEditor {\n\n private _originalModel: DiffEditorModel;\n private _modifiedModel: DiffEditorModel;\n\n @Input('options')\n public set options(options: any) {\n this._options = { ...this.config.defaultOptions, ...options };\n if (this._editor) {\n this._editor.dispose();\n this.initMonaco(options);\n }\n }\n\n public get options(): any {\n return this._options;\n }\n\n @Input('originalModel')\n public set originalModel(model: DiffEditorModel) {\n this._originalModel = model;\n if (this._editor) {\n this._editor.dispose();\n this.initMonaco(this.options);\n }\n }\n\n @Input('modifiedModel')\n public set modifiedModel(model: DiffEditorModel) {\n this._modifiedModel = model;\n if (this._editor) {\n this._editor.dispose();\n this.initMonaco(this.options);\n }\n }\n\n protected initMonaco(options: any): void {\n if (!this._originalModel || !this._modifiedModel) {\n throw new Error('originalModel or modifiedModel not found for ngx-monaco-diff-editor');\n }\n\n this._originalModel.language = this._originalModel.language || options.language;\n this._modifiedModel.language = this._modifiedModel.language || options.language;\n\n const originalModel = monaco.editor.createModel(this._originalModel.code, this._originalModel.language);\n const modifiedModel = monaco.editor.createModel(this._modifiedModel.code, this._modifiedModel.language);\n\n this._editorContainer.nativeElement.innerHTML = '';\n const theme = options.theme;\n this._editor = monaco.editor.createDiffEditor(this._editorContainer.nativeElement, options);\n options.theme = theme;\n this._editor.setModel({\n original: originalModel,\n modified: modifiedModel,\n } as any);\n\n // refresh layout on resize event.\n if (this._windowResizeSubscription) {\n this._windowResizeSubscription.unsubscribe();\n }\n this._windowResizeSubscription = fromEvent(window, 'resize').subscribe(() => this._editor.layout());\n this.onInit.emit(this._editor);\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { NGX_MONACO_EDITOR_CONFIG, NgxMonacoEditorConfig } from './config';\nimport { DiffEditorComponent } from './diff-editor.component';\nimport { EditorComponent } from './editor.component';\n\n@NgModule({\n imports: [\n CommonModule,\n EditorComponent,\n DiffEditorComponent\n ],\n exports: [\n EditorComponent,\n DiffEditorComponent\n ]\n})\nexport class MonacoEditorModule {\n public static forRoot(config: NgxMonacoEditorConfig = {}): ModuleWithProviders<MonacoEditorModule> {\n return {\n ngModule: MonacoEditorModule,\n providers: [\n { provide: NGX_MONACO_EDITOR_CONFIG, useValue: config }\n ]\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { FsTextEditorComponent } from './components/text-editor/text-editor.component';\nimport { NgxMonacoEditorConfig } from './modules/ngx-monaco-editor/config';\nimport { MonacoEditorModule } from './modules/ngx-monaco-editor/editor.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n MonacoEditorModule,\n FormsModule,\n FsTextEditorComponent,\n ],\n exports: [\n FsTextEditorComponent,\n ],\n})\nexport class FsTextEditorModule {\n public static forRoot(config?: NgxMonacoEditorConfig): ModuleWithProviders<FsTextEditorModule> {\n return {\n ngModule: FsTextEditorModule,\n providers: [\n MonacoEditorModule.forRoot(config).providers,\n ],\n };\n }\n}\n","/*\n * Public API Surface of fs-menu\n */\n\nimport { from } from 'rxjs';\n\nexport { FsTextEditorModule } from './app/fs-text-editor.module';\n\nexport { FsTextEditorConfig } from './app/interfaces/config.interface';\n\n\nexport { FsTextEditorComponent } from './app/components/text-editor/text-editor.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}