ngssm-ace-editor 22.0.1 → 22.2.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.
|
@@ -1,184 +1,227 @@
|
|
|
1
|
-
import * as i0 from
|
|
2
|
-
import {
|
|
3
|
-
import * as i1 from
|
|
4
|
-
import { CommonModule } from
|
|
5
|
-
import { BehaviorSubject, filter, take } from
|
|
6
|
-
import { NgssmComponentOverlayDirective } from
|
|
7
|
-
import { Logger } from
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { Component, DOCUMENT, EventEmitter, Injectable, Input, NgZone, Output, ViewChild, inject } from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import { CommonModule } from "@angular/common";
|
|
5
|
+
import { BehaviorSubject, filter, take } from "rxjs";
|
|
6
|
+
import { NgssmComponentOverlayDirective } from "ngssm-toolkit";
|
|
7
|
+
import { Logger } from "ngssm-store";
|
|
8
|
+
var AceBuildsLoader = class AceBuildsLoader {
|
|
9
|
+
document = inject(DOCUMENT);
|
|
10
|
+
logger = inject(Logger);
|
|
11
|
+
_loading$ = new BehaviorSubject(true);
|
|
12
|
+
_initialized = false;
|
|
13
|
+
get loading$() {
|
|
14
|
+
return this._loading$.asObservable();
|
|
15
|
+
}
|
|
16
|
+
loadScripts() {
|
|
17
|
+
this.logger.debug(`[ace-editor] trying to get ace, isInitialized=${this._initialized}`);
|
|
18
|
+
if (this._initialized) return this._loading$.asObservable();
|
|
19
|
+
const script = this.document.createElement("script");
|
|
20
|
+
script.type = "text/javascript";
|
|
21
|
+
script.src = "ace-builds/ace.js";
|
|
22
|
+
script.onload = () => {
|
|
23
|
+
window.ace.config.set("basePath", "ace-builds");
|
|
24
|
+
window.ace.config.set("workerPath", "ace-builds");
|
|
25
|
+
this.logger.information(`[ace-editor] ace loaded.`);
|
|
26
|
+
this._loading$.next(false);
|
|
27
|
+
};
|
|
28
|
+
this.logger.information(`[ace-editor] loading ace.`);
|
|
29
|
+
this.document.body.appendChild(script);
|
|
30
|
+
this._initialized = true;
|
|
31
|
+
return this._loading$.asObservable();
|
|
32
|
+
}
|
|
33
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
34
|
+
minVersion: "12.0.0",
|
|
35
|
+
version: "22.2.0",
|
|
36
|
+
ngImport: i0,
|
|
37
|
+
type: AceBuildsLoader,
|
|
38
|
+
deps: [],
|
|
39
|
+
target: i0.ɵɵFactoryTarget.Injectable
|
|
40
|
+
});
|
|
41
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
42
|
+
minVersion: "12.0.0",
|
|
43
|
+
version: "22.2.0",
|
|
44
|
+
ngImport: i0,
|
|
45
|
+
type: AceBuildsLoader,
|
|
46
|
+
providedIn: "root"
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
50
|
+
minVersion: "12.0.0",
|
|
51
|
+
version: "22.2.0",
|
|
52
|
+
ngImport: i0,
|
|
53
|
+
type: AceBuildsLoader,
|
|
54
|
+
decorators: [{
|
|
55
|
+
type: Injectable,
|
|
56
|
+
args: [{ providedIn: "root" }]
|
|
57
|
+
}]
|
|
58
|
+
});
|
|
59
|
+
var NgssmAceEditorApi = class {
|
|
60
|
+
aceEditor;
|
|
61
|
+
markerIds = [];
|
|
62
|
+
constructor(aceEditor) {
|
|
63
|
+
this.aceEditor = aceEditor;
|
|
64
|
+
}
|
|
65
|
+
addRowsMarker(firstRow, lastRow, cssClass) {
|
|
66
|
+
const result = window.ace.require("ace/range");
|
|
67
|
+
const markerId = this.aceEditor.getSession().addMarker(new result.Range(firstRow, 0, lastRow, Infinity), cssClass, "fullLine");
|
|
68
|
+
this.markerIds.push(markerId);
|
|
69
|
+
}
|
|
70
|
+
clearAllRowsMarkers() {
|
|
71
|
+
this.markerIds.forEach((markerId) => this.aceEditor.getSession().removeMarker(markerId));
|
|
72
|
+
this.markerIds.splice(0);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
66
75
|
var NgssmAceEditorMode;
|
|
67
|
-
(function
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
76
|
+
(function(NgssmAceEditorMode) {
|
|
77
|
+
NgssmAceEditorMode["text"] = "ace/mode/text";
|
|
78
|
+
NgssmAceEditorMode["javascript"] = "ace/mode/javascript";
|
|
79
|
+
NgssmAceEditorMode["python"] = "ace/mode/python";
|
|
80
|
+
NgssmAceEditorMode["json"] = "ace/mode/json";
|
|
72
81
|
})(NgssmAceEditorMode || (NgssmAceEditorMode = {}));
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
82
|
+
var NgssmAceEditorComponent = class NgssmAceEditorComponent {
|
|
83
|
+
aceEditorDiv;
|
|
84
|
+
contentChanged = new EventEmitter();
|
|
85
|
+
isValidChanged = new EventEmitter();
|
|
86
|
+
editorReady = new EventEmitter();
|
|
87
|
+
api;
|
|
88
|
+
aceBuildsLoader = inject(AceBuildsLoader);
|
|
89
|
+
zone = inject(NgZone);
|
|
90
|
+
initialContent = "";
|
|
91
|
+
initialReadonly = true;
|
|
92
|
+
initialEditorMode = NgssmAceEditorMode.text;
|
|
93
|
+
silentContentUpdate = false;
|
|
94
|
+
get loading$() {
|
|
95
|
+
return this.aceBuildsLoader.loading$;
|
|
96
|
+
}
|
|
97
|
+
set content(value) {
|
|
98
|
+
if (this.api?.aceEditor) {
|
|
99
|
+
this.silentContentUpdate = true;
|
|
100
|
+
this.api.aceEditor.setValue(value, -1);
|
|
101
|
+
this.silentContentUpdate = false;
|
|
102
|
+
} else this.initialContent = value;
|
|
103
|
+
}
|
|
104
|
+
set readonly(value) {
|
|
105
|
+
if (this.api?.aceEditor) this.api.aceEditor.setReadOnly(value);
|
|
106
|
+
else this.initialReadonly = value;
|
|
107
|
+
}
|
|
108
|
+
set editorMode(value) {
|
|
109
|
+
if (this.api?.aceEditor) this.api.aceEditor.session.setMode(value);
|
|
110
|
+
else this.initialEditorMode = value;
|
|
111
|
+
}
|
|
112
|
+
ngAfterViewInit() {
|
|
113
|
+
this.aceBuildsLoader.loadScripts().pipe(filter((v) => !v), take(1)).subscribe(() => {
|
|
114
|
+
this.zone.runOutsideAngular(() => {
|
|
115
|
+
const aceEditor = window.ace.edit(this.aceEditorDiv?.nativeElement);
|
|
116
|
+
if (aceEditor) {
|
|
117
|
+
this.api = new NgssmAceEditorApi(aceEditor);
|
|
118
|
+
this.api.aceEditor.$blockScrolling = Infinity;
|
|
119
|
+
this.api.aceEditor.setTheme("ace/theme/github");
|
|
120
|
+
this.api.aceEditor.session.setMode(this.initialEditorMode);
|
|
121
|
+
this.api.aceEditor.setReadOnly(this.initialReadonly);
|
|
122
|
+
this.api.aceEditor.setValue(this.initialContent, -1);
|
|
123
|
+
this.api.aceEditor.on("change", () => {
|
|
124
|
+
if (this.api && !this.silentContentUpdate) this.zone.run(() => this.contentChanged.emit(this.api?.aceEditor.getValue()));
|
|
125
|
+
});
|
|
126
|
+
this.api.aceEditor.getSession().on("changeAnnotation", () => {
|
|
127
|
+
if (this.api) {
|
|
128
|
+
const isValid = this.api.aceEditor.getSession().getAnnotations().findIndex((annotation) => annotation.type === "error") === -1;
|
|
129
|
+
this.zone.run(() => this.isValidChanged.emit(isValid));
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
this.editorReady.emit(this.api);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
ngOnDestroy() {
|
|
138
|
+
this.api?.aceEditor?.destroy();
|
|
139
|
+
this.api = void 0;
|
|
140
|
+
}
|
|
141
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
142
|
+
minVersion: "12.0.0",
|
|
143
|
+
version: "22.2.0",
|
|
144
|
+
ngImport: i0,
|
|
145
|
+
type: NgssmAceEditorComponent,
|
|
146
|
+
deps: [],
|
|
147
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
148
|
+
});
|
|
149
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
150
|
+
minVersion: "14.0.0",
|
|
151
|
+
version: "22.2.0",
|
|
152
|
+
type: NgssmAceEditorComponent,
|
|
153
|
+
isStandalone: true,
|
|
154
|
+
selector: "ngssm-ace-editor",
|
|
155
|
+
inputs: {
|
|
156
|
+
content: "content",
|
|
157
|
+
readonly: "readonly",
|
|
158
|
+
editorMode: "editorMode"
|
|
159
|
+
},
|
|
160
|
+
outputs: {
|
|
161
|
+
contentChanged: "contentChanged",
|
|
162
|
+
isValidChanged: "isValidChanged",
|
|
163
|
+
editorReady: "editorReady"
|
|
164
|
+
},
|
|
165
|
+
viewQueries: [{
|
|
166
|
+
propertyName: "aceEditorDiv",
|
|
167
|
+
first: true,
|
|
168
|
+
predicate: ["aceEditor"],
|
|
169
|
+
descendants: true
|
|
170
|
+
}],
|
|
171
|
+
ngImport: i0,
|
|
172
|
+
template: "<div #aceEditor class=\"ngssm-ace-editor-container\" [ngssmDisplayOverlay]=\"(loading$ | async) === true\"></div>",
|
|
173
|
+
styles: [":host{display:flex;flex-direction:column}:host .ngssm-ace-editor-container{flex:1}\n"],
|
|
174
|
+
dependencies: [
|
|
175
|
+
{
|
|
176
|
+
kind: "ngmodule",
|
|
177
|
+
type: CommonModule
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
kind: "directive",
|
|
181
|
+
type: NgssmComponentOverlayDirective,
|
|
182
|
+
selector: "[ngssmDisplayOverlay]",
|
|
183
|
+
inputs: [
|
|
184
|
+
"overlayTemplate",
|
|
185
|
+
"overlayComponent",
|
|
186
|
+
"overlayMessage",
|
|
187
|
+
"ngssmDisplayOverlay"
|
|
188
|
+
]
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
kind: "pipe",
|
|
192
|
+
type: i1.AsyncPipe,
|
|
193
|
+
name: "async"
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
});
|
|
197
|
+
};
|
|
198
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
199
|
+
minVersion: "12.0.0",
|
|
200
|
+
version: "22.2.0",
|
|
201
|
+
ngImport: i0,
|
|
202
|
+
type: NgssmAceEditorComponent,
|
|
203
|
+
decorators: [{
|
|
204
|
+
type: Component,
|
|
205
|
+
args: [{
|
|
206
|
+
selector: "ngssm-ace-editor",
|
|
207
|
+
imports: [CommonModule, NgssmComponentOverlayDirective],
|
|
208
|
+
template: "<div #aceEditor class=\"ngssm-ace-editor-container\" [ngssmDisplayOverlay]=\"(loading$ | async) === true\"></div>",
|
|
209
|
+
styles: [":host{display:flex;flex-direction:column}:host .ngssm-ace-editor-container{flex:1}\n"]
|
|
210
|
+
}]
|
|
211
|
+
}],
|
|
212
|
+
propDecorators: {
|
|
213
|
+
aceEditorDiv: [{
|
|
214
|
+
type: ViewChild,
|
|
215
|
+
args: ["aceEditor"]
|
|
216
|
+
}],
|
|
217
|
+
contentChanged: [{ type: Output }],
|
|
218
|
+
isValidChanged: [{ type: Output }],
|
|
219
|
+
editorReady: [{ type: Output }],
|
|
220
|
+
content: [{ type: Input }],
|
|
221
|
+
readonly: [{ type: Input }],
|
|
222
|
+
editorMode: [{ type: Input }]
|
|
223
|
+
}
|
|
224
|
+
});
|
|
183
225
|
export { AceBuildsLoader, NgssmAceEditorApi, NgssmAceEditorComponent, NgssmAceEditorMode };
|
|
184
|
-
|
|
226
|
+
|
|
227
|
+
//# sourceMappingURL=ngssm-ace-editor.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngssm-ace-editor.mjs","sources":["../../../projects/ngssm-ace-editor/src/lib/ace-builds-loader.ts","../../../projects/ngssm-ace-editor/src/lib/ngssm-ace-editor-api.ts","../../../projects/ngssm-ace-editor/src/lib/ngssm-ace-editor-mode.ts","../../../projects/ngssm-ace-editor/src/lib/ngssm-ace-editor/ngssm-ace-editor.component.ts","../../../projects/ngssm-ace-editor/src/lib/ngssm-ace-editor/ngssm-ace-editor.component.html","../../../projects/ngssm-ace-editor/src/public-api.ts","../../../projects/ngssm-ace-editor/src/ngssm-ace-editor.ts"],"sourcesContent":["import { Injectable, DOCUMENT, inject } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { Logger } from 'ngssm-store';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AceBuildsLoader {\n private readonly document = inject(DOCUMENT);\n private readonly logger = inject(Logger);\n\n private _loading$ = new BehaviorSubject<boolean>(true);\n private _initialized = false;\n\n public get loading$(): Observable<boolean> {\n return this._loading$.asObservable();\n }\n\n public loadScripts(): Observable<boolean> {\n this.logger.debug(`[ace-editor] trying to get ace, isInitialized=${this._initialized}`);\n if (this._initialized) {\n return this._loading$.asObservable();\n }\n\n const script = this.document.createElement('script');\n script.type = 'text/javascript';\n script.src = 'ace-builds/ace.js';\n script.onload = () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).ace.config.set('basePath', 'ace-builds');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).ace.config.set('workerPath', 'ace-builds');\n this.logger.information(`[ace-editor] ace loaded.`);\n this._loading$.next(false);\n };\n\n this.logger.information(`[ace-editor] loading ace.`);\n this.document.body.appendChild(script);\n\n this._initialized = true;\n return this._loading$.asObservable();\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport class NgssmAceEditorApi {\n private readonly markerIds: number[] = [];\n\n constructor(public aceEditor: any) {}\n\n public addRowsMarker(firstRow: number, lastRow: number, cssClass: string): void {\n const result = (window as any).ace.require('ace/range');\n const markerId = this.aceEditor.getSession().addMarker(new result.Range(firstRow, 0, lastRow, Infinity), cssClass, 'fullLine');\n this.markerIds.push(markerId);\n }\n\n public clearAllRowsMarkers(): void {\n this.markerIds.forEach((markerId) => this.aceEditor.getSession().removeMarker(markerId));\n this.markerIds.splice(0);\n }\n}\n","export enum NgssmAceEditorMode {\n text = 'ace/mode/text',\n javascript = 'ace/mode/javascript',\n python = 'ace/mode/python',\n json = 'ace/mode/json'\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, ElementRef, EventEmitter, Input, NgZone, OnDestroy, Output, ViewChild, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Observable, filter, take } from 'rxjs';\n\nimport { NgssmComponentOverlayDirective } from 'ngssm-toolkit';\n\nimport { AceBuildsLoader } from '../ace-builds-loader';\nimport { NgssmAceEditorApi } from '../ngssm-ace-editor-api';\nimport { NgssmAceEditorMode } from '../ngssm-ace-editor-mode';\n\n@Component({\n selector: 'ngssm-ace-editor',\n imports: [CommonModule, NgssmComponentOverlayDirective],\n templateUrl: './ngssm-ace-editor.component.html',\n styleUrls: ['./ngssm-ace-editor.component.scss']\n})\nexport class NgssmAceEditorComponent implements AfterViewInit, OnDestroy {\n @ViewChild('aceEditor') public aceEditorDiv: ElementRef | undefined;\n @Output() public contentChanged = new EventEmitter<string>();\n @Output() public isValidChanged = new EventEmitter<boolean>();\n @Output() public editorReady = new EventEmitter<NgssmAceEditorApi>();\n\n public api: NgssmAceEditorApi | undefined;\n\n private readonly aceBuildsLoader = inject(AceBuildsLoader);\n private readonly zone = inject(NgZone);\n\n private initialContent = '';\n private initialReadonly = true;\n private initialEditorMode: string = NgssmAceEditorMode.text;\n private silentContentUpdate = false;\n\n public get loading$(): Observable<boolean> {\n return this.aceBuildsLoader.loading$;\n }\n\n @Input() public set content(value: string) {\n if (this.api?.aceEditor) {\n this.silentContentUpdate = true;\n this.api.aceEditor.setValue(value, -1);\n this.silentContentUpdate = false;\n } else {\n this.initialContent = value;\n }\n }\n\n @Input() public set readonly(value: boolean) {\n if (this.api?.aceEditor) {\n this.api.aceEditor.setReadOnly(value);\n } else {\n this.initialReadonly = value;\n }\n }\n\n @Input() public set editorMode(value: string) {\n if (this.api?.aceEditor) {\n this.api.aceEditor.session.setMode(value);\n } else {\n this.initialEditorMode = value;\n }\n }\n\n public ngAfterViewInit(): void {\n this.aceBuildsLoader\n .loadScripts()\n .pipe(\n filter((v) => !v),\n take(1)\n )\n .subscribe(() => {\n this.zone.runOutsideAngular(() => {\n const ace: any = (window as any).ace;\n const aceEditor = ace.edit(this.aceEditorDiv?.nativeElement);\n if (aceEditor) {\n this.api = new NgssmAceEditorApi(aceEditor);\n this.api.aceEditor.$blockScrolling = Infinity;\n this.api.aceEditor.setTheme('ace/theme/github');\n this.api.aceEditor.session.setMode(this.initialEditorMode);\n this.api.aceEditor.setReadOnly(this.initialReadonly);\n this.api.aceEditor.setValue(this.initialContent, -1);\n\n this.api.aceEditor.on('change', () => {\n if (this.api && !this.silentContentUpdate) {\n this.zone.run(() => this.contentChanged.emit(this.api?.aceEditor.getValue()));\n }\n });\n this.api.aceEditor.getSession().on('changeAnnotation', () => {\n if (this.api) {\n const annotations: any[] = this.api.aceEditor.getSession().getAnnotations();\n const isValid = annotations.findIndex((annotation) => annotation.type === 'error') === -1;\n this.zone.run(() => this.isValidChanged.emit(isValid));\n }\n });\n\n this.editorReady.emit(this.api);\n }\n });\n });\n }\n\n public ngOnDestroy(): void {\n this.api?.aceEditor?.destroy();\n this.api = undefined;\n }\n}\n","<div #aceEditor class=\"ngssm-ace-editor-container\" [ngssmDisplayOverlay]=\"(loading$ | async) === true\"></div>","/*\n * Public API Surface of ngssm-ace-editor\n */\n\nexport * from './lib/ngssm-ace-editor/ngssm-ace-editor.component';\nexport * from './lib/ace-builds-loader';\nexport * from './lib/ngssm-ace-editor-mode';\nexport * from './lib/ngssm-ace-editor-api';\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":"ngssm-ace-editor.mjs","names":[],"sources":["../../../projects/ngssm-ace-editor/src/lib/ace-builds-loader.ts","../../../projects/ngssm-ace-editor/src/lib/ngssm-ace-editor-api.ts","../../../projects/ngssm-ace-editor/src/lib/ngssm-ace-editor-mode.ts","../../../projects/ngssm-ace-editor/src/lib/ngssm-ace-editor/ngssm-ace-editor.component.ts","../../../projects/ngssm-ace-editor/src/lib/ngssm-ace-editor/ngssm-ace-editor.component.html"],"sourcesContent":["import { Injectable, DOCUMENT, inject } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { Logger } from 'ngssm-store';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AceBuildsLoader {\n private readonly document = inject(DOCUMENT);\n private readonly logger = inject(Logger);\n\n private _loading$ = new BehaviorSubject<boolean>(true);\n private _initialized = false;\n\n public get loading$(): Observable<boolean> {\n return this._loading$.asObservable();\n }\n\n public loadScripts(): Observable<boolean> {\n this.logger.debug(`[ace-editor] trying to get ace, isInitialized=${this._initialized}`);\n if (this._initialized) {\n return this._loading$.asObservable();\n }\n\n const script = this.document.createElement('script');\n script.type = 'text/javascript';\n script.src = 'ace-builds/ace.js';\n script.onload = () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).ace.config.set('basePath', 'ace-builds');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any).ace.config.set('workerPath', 'ace-builds');\n this.logger.information(`[ace-editor] ace loaded.`);\n this._loading$.next(false);\n };\n\n this.logger.information(`[ace-editor] loading ace.`);\n this.document.body.appendChild(script);\n\n this._initialized = true;\n return this._loading$.asObservable();\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport class NgssmAceEditorApi {\n private readonly markerIds: number[] = [];\n\n constructor(public aceEditor: any) {}\n\n public addRowsMarker(firstRow: number, lastRow: number, cssClass: string): void {\n const result = (window as any).ace.require('ace/range');\n const markerId = this.aceEditor.getSession().addMarker(new result.Range(firstRow, 0, lastRow, Infinity), cssClass, 'fullLine');\n this.markerIds.push(markerId);\n }\n\n public clearAllRowsMarkers(): void {\n this.markerIds.forEach((markerId) => this.aceEditor.getSession().removeMarker(markerId));\n this.markerIds.splice(0);\n }\n}\n","export enum NgssmAceEditorMode {\n text = 'ace/mode/text',\n javascript = 'ace/mode/javascript',\n python = 'ace/mode/python',\n json = 'ace/mode/json'\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, Component, ElementRef, EventEmitter, Input, NgZone, OnDestroy, Output, ViewChild, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Observable, filter, take } from 'rxjs';\n\nimport { NgssmComponentOverlayDirective } from 'ngssm-toolkit';\n\nimport { AceBuildsLoader } from '../ace-builds-loader';\nimport { NgssmAceEditorApi } from '../ngssm-ace-editor-api';\nimport { NgssmAceEditorMode } from '../ngssm-ace-editor-mode';\n\n@Component({\n selector: 'ngssm-ace-editor',\n imports: [CommonModule, NgssmComponentOverlayDirective],\n templateUrl: './ngssm-ace-editor.component.html',\n styleUrls: ['./ngssm-ace-editor.component.scss']\n})\nexport class NgssmAceEditorComponent implements AfterViewInit, OnDestroy {\n @ViewChild('aceEditor') public aceEditorDiv: ElementRef | undefined;\n @Output() public contentChanged = new EventEmitter<string>();\n @Output() public isValidChanged = new EventEmitter<boolean>();\n @Output() public editorReady = new EventEmitter<NgssmAceEditorApi>();\n\n public api: NgssmAceEditorApi | undefined;\n\n private readonly aceBuildsLoader = inject(AceBuildsLoader);\n private readonly zone = inject(NgZone);\n\n private initialContent = '';\n private initialReadonly = true;\n private initialEditorMode: string = NgssmAceEditorMode.text;\n private silentContentUpdate = false;\n\n public get loading$(): Observable<boolean> {\n return this.aceBuildsLoader.loading$;\n }\n\n @Input() public set content(value: string) {\n if (this.api?.aceEditor) {\n this.silentContentUpdate = true;\n this.api.aceEditor.setValue(value, -1);\n this.silentContentUpdate = false;\n } else {\n this.initialContent = value;\n }\n }\n\n @Input() public set readonly(value: boolean) {\n if (this.api?.aceEditor) {\n this.api.aceEditor.setReadOnly(value);\n } else {\n this.initialReadonly = value;\n }\n }\n\n @Input() public set editorMode(value: string) {\n if (this.api?.aceEditor) {\n this.api.aceEditor.session.setMode(value);\n } else {\n this.initialEditorMode = value;\n }\n }\n\n public ngAfterViewInit(): void {\n this.aceBuildsLoader\n .loadScripts()\n .pipe(\n filter((v) => !v),\n take(1)\n )\n .subscribe(() => {\n this.zone.runOutsideAngular(() => {\n const ace: any = (window as any).ace;\n const aceEditor = ace.edit(this.aceEditorDiv?.nativeElement);\n if (aceEditor) {\n this.api = new NgssmAceEditorApi(aceEditor);\n this.api.aceEditor.$blockScrolling = Infinity;\n this.api.aceEditor.setTheme('ace/theme/github');\n this.api.aceEditor.session.setMode(this.initialEditorMode);\n this.api.aceEditor.setReadOnly(this.initialReadonly);\n this.api.aceEditor.setValue(this.initialContent, -1);\n\n this.api.aceEditor.on('change', () => {\n if (this.api && !this.silentContentUpdate) {\n this.zone.run(() => this.contentChanged.emit(this.api?.aceEditor.getValue()));\n }\n });\n this.api.aceEditor.getSession().on('changeAnnotation', () => {\n if (this.api) {\n const annotations: any[] = this.api.aceEditor.getSession().getAnnotations();\n const isValid = annotations.findIndex((annotation) => annotation.type === 'error') === -1;\n this.zone.run(() => this.isValidChanged.emit(isValid));\n }\n });\n\n this.editorReady.emit(this.api);\n }\n });\n });\n }\n\n public ngOnDestroy(): void {\n this.api?.aceEditor?.destroy();\n this.api = undefined;\n }\n}\n","<div #aceEditor class=\"ngssm-ace-editor-container\" [ngssmDisplayOverlay]=\"(loading$ | async) === true\"></div>"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,53 +1,64 @@
|
|
|
1
|
-
import * as i0 from
|
|
2
|
-
import { AfterViewInit,
|
|
3
|
-
import { Observable } from
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
clearAllRowsMarkers(): void;
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { AfterViewInit, ElementRef, EventEmitter, OnDestroy } from "@angular/core";
|
|
3
|
+
import { Observable } from "rxjs";
|
|
4
|
+
export declare class NgssmAceEditorApi {
|
|
5
|
+
aceEditor: any;
|
|
6
|
+
private readonly markerIds;
|
|
7
|
+
constructor(aceEditor: any);
|
|
8
|
+
addRowsMarker(firstRow: number, lastRow: number, cssClass: string): void;
|
|
9
|
+
clearAllRowsMarkers(): void;
|
|
11
10
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
11
|
+
export declare class NgssmAceEditorComponent implements AfterViewInit, OnDestroy {
|
|
12
|
+
aceEditorDiv: ElementRef | undefined;
|
|
13
|
+
contentChanged: EventEmitter<string>;
|
|
14
|
+
isValidChanged: EventEmitter<boolean>;
|
|
15
|
+
editorReady: EventEmitter<NgssmAceEditorApi>;
|
|
16
|
+
api: NgssmAceEditorApi | undefined;
|
|
17
|
+
private readonly aceBuildsLoader;
|
|
18
|
+
private readonly zone;
|
|
19
|
+
private initialContent;
|
|
20
|
+
private initialReadonly;
|
|
21
|
+
private initialEditorMode;
|
|
22
|
+
private silentContentUpdate;
|
|
23
|
+
get loading$(): Observable<boolean>;
|
|
24
|
+
set content(value: string);
|
|
25
|
+
set readonly(value: boolean);
|
|
26
|
+
set editorMode(value: string);
|
|
27
|
+
ngAfterViewInit(): void;
|
|
28
|
+
ngOnDestroy(): void;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgssmAceEditorComponent, never>;
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgssmAceEditorComponent, "ngssm-ace-editor", never, {
|
|
31
|
+
"content": {
|
|
32
|
+
"alias": "content";
|
|
33
|
+
"required": false;
|
|
34
|
+
};
|
|
35
|
+
"readonly": {
|
|
36
|
+
"alias": "readonly";
|
|
37
|
+
"required": false;
|
|
38
|
+
};
|
|
39
|
+
"editorMode": {
|
|
40
|
+
"alias": "editorMode";
|
|
41
|
+
"required": false;
|
|
42
|
+
};
|
|
43
|
+
}, {
|
|
44
|
+
"contentChanged": "contentChanged";
|
|
45
|
+
"isValidChanged": "isValidChanged";
|
|
46
|
+
"editorReady": "editorReady";
|
|
47
|
+
}, never, never, true, never>;
|
|
33
48
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<AceBuildsLoader>;
|
|
49
|
+
export declare class AceBuildsLoader {
|
|
50
|
+
private readonly document;
|
|
51
|
+
private readonly logger;
|
|
52
|
+
private _loading$;
|
|
53
|
+
private _initialized;
|
|
54
|
+
get loading$(): Observable<boolean>;
|
|
55
|
+
loadScripts(): Observable<boolean>;
|
|
56
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AceBuildsLoader, never>;
|
|
57
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
44
58
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export { AceBuildsLoader, NgssmAceEditorApi, NgssmAceEditorComponent, NgssmAceEditorMode };
|
|
59
|
+
export declare enum NgssmAceEditorMode {
|
|
60
|
+
text = "ace/mode/text",
|
|
61
|
+
javascript = "ace/mode/javascript",
|
|
62
|
+
python = "ace/mode/python",
|
|
63
|
+
json = "ace/mode/json"
|
|
64
|
+
}
|