@covalent/code-editor 4.0.0-beta.1 → 4.1.0-develop.10
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/README.md +41 -37
- package/covalent-code-editor.d.ts +1 -1
- package/esm2020/covalent-code-editor.mjs +2 -2
- package/esm2020/lib/code-editor.component.mjs +363 -0
- package/esm2020/lib/code-editor.module.mjs +19 -0
- package/esm2020/public_api.mjs +3 -0
- package/fesm2015/covalent-code-editor.mjs +58 -130
- package/fesm2015/covalent-code-editor.mjs.map +1 -1
- package/fesm2020/covalent-code-editor.mjs +88 -151
- package/fesm2020/covalent-code-editor.mjs.map +1 -1
- package/{code-editor.component.d.ts → lib/code-editor.component.d.ts} +11 -18
- package/{code-editor.module.d.ts → lib/code-editor.module.d.ts} +0 -0
- package/package.json +20 -22
- package/public_api.d.ts +2 -0
- package/code-editor.component.scss +0 -19
- package/esm2020/code-editor.component.mjs +0 -425
- package/esm2020/code-editor.module.mjs +0 -20
- package/esm2020/index.mjs +0 -2
- package/esm2020/public-api.mjs +0 -3
- package/index.d.ts +0 -1
- package/public-api.d.ts +0 -2
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { EventEmitter, forwardRef, Component, ViewChild, Output, Input, NgModule } from '@angular/core';
|
|
3
3
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { Subject, merge, fromEvent, timer } from 'rxjs';
|
|
4
|
+
import { Subject, of, merge, fromEvent, timer } from 'rxjs';
|
|
5
5
|
import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
6
6
|
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
|
|
7
|
+
import { mixinControlValueAccessor, mixinDisabled } from '@covalent/core/common';
|
|
7
8
|
import { CommonModule } from '@angular/common';
|
|
8
9
|
|
|
9
|
-
const _c0 = ["editorContainer"];
|
|
10
10
|
const noop = () => {
|
|
11
11
|
// empty method
|
|
12
12
|
};
|
|
13
13
|
// counter for ids to allow for multiple editors on one page
|
|
14
14
|
let uniqueCounter = 0;
|
|
15
|
-
class
|
|
16
|
-
|
|
17
|
-
constructor(zone, _changeDetectorRef, _elementRef) {
|
|
18
|
-
this.zone = zone;
|
|
15
|
+
class TdCodeEditorBase {
|
|
16
|
+
constructor(_changeDetectorRef) {
|
|
19
17
|
this._changeDetectorRef = _changeDetectorRef;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const _TdCodeEditorMixinBase = mixinControlValueAccessor(mixinDisabled(TdCodeEditorBase), []);
|
|
21
|
+
class TdCodeEditorComponent extends _TdCodeEditorMixinBase {
|
|
22
|
+
// tslint:disable-next-line:member-ordering
|
|
23
|
+
constructor(_changeDetectorRef, _elementRef) {
|
|
24
|
+
super(_changeDetectorRef);
|
|
20
25
|
this._elementRef = _elementRef;
|
|
21
26
|
this._destroy = new Subject();
|
|
22
27
|
this._widthSubject = new Subject();
|
|
@@ -52,22 +57,12 @@ class TdCodeEditorComponent {
|
|
|
52
57
|
* Event emitted any time something changes the editor value
|
|
53
58
|
*/
|
|
54
59
|
this.editorValueChange = new EventEmitter();
|
|
55
|
-
|
|
56
|
-
* The change event notifies you about a change happening in an input field.
|
|
57
|
-
* Since the component is not a native Angular component have to specifiy the event emitter ourself
|
|
58
|
-
*/
|
|
59
|
-
this.change = new EventEmitter();
|
|
60
|
-
/* tslint:disable-next-line */
|
|
61
|
-
this.propagateChange = (_) => { };
|
|
62
|
-
this.onTouched = () => noop;
|
|
60
|
+
this.propagateChange = (_) => noop;
|
|
63
61
|
}
|
|
64
62
|
/**
|
|
65
63
|
* value?: string
|
|
66
64
|
*/
|
|
67
65
|
set value(value) {
|
|
68
|
-
if (value === this._value) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
66
|
this._value = value;
|
|
72
67
|
if (this._componentInitialized) {
|
|
73
68
|
this.applyValue();
|
|
@@ -82,19 +77,8 @@ class TdCodeEditorComponent {
|
|
|
82
77
|
}
|
|
83
78
|
this._fromEditor = false;
|
|
84
79
|
this.propagateChange(this._value);
|
|
85
|
-
this.change.emit();
|
|
86
80
|
this.editorValueChange.emit();
|
|
87
81
|
}
|
|
88
|
-
/**
|
|
89
|
-
* Implemented as part of ControlValueAccessor.
|
|
90
|
-
*/
|
|
91
|
-
writeValue(value) {
|
|
92
|
-
// do not write if null or undefined
|
|
93
|
-
// tslint:disable-next-line
|
|
94
|
-
if (value != undefined) {
|
|
95
|
-
this.value = value;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
82
|
registerOnChange(fn) {
|
|
99
83
|
this.propagateChange = fn;
|
|
100
84
|
}
|
|
@@ -106,14 +90,15 @@ class TdCodeEditorComponent {
|
|
|
106
90
|
* Returns the content within the editor
|
|
107
91
|
*/
|
|
108
92
|
getValue() {
|
|
109
|
-
if (this._componentInitialized) {
|
|
110
|
-
|
|
111
|
-
this._subject.next(this._value);
|
|
112
|
-
this._subject.complete();
|
|
113
|
-
this._subject = new Subject();
|
|
114
|
-
});
|
|
115
|
-
return this._subject.asObservable();
|
|
93
|
+
if (!this._componentInitialized) {
|
|
94
|
+
return of('');
|
|
116
95
|
}
|
|
96
|
+
setTimeout(() => {
|
|
97
|
+
this._subject.next(this._value);
|
|
98
|
+
this._subject.complete();
|
|
99
|
+
this._subject = new Subject();
|
|
100
|
+
});
|
|
101
|
+
return this._subject.asObservable();
|
|
117
102
|
}
|
|
118
103
|
/**
|
|
119
104
|
* language?: string
|
|
@@ -140,14 +125,6 @@ class TdCodeEditorComponent {
|
|
|
140
125
|
*/
|
|
141
126
|
registerLanguage(language) {
|
|
142
127
|
if (this._componentInitialized) {
|
|
143
|
-
for (const provider of language.completionItemProvider) {
|
|
144
|
-
/* tslint:disable-next-line */
|
|
145
|
-
provider.kind = eval(provider.kind);
|
|
146
|
-
}
|
|
147
|
-
for (const monarchTokens of language.monarchTokensProvider) {
|
|
148
|
-
/* tslint:disable-next-line */
|
|
149
|
-
monarchTokens[0] = eval(monarchTokens[0]);
|
|
150
|
-
}
|
|
151
128
|
monaco.languages.register({ id: language.id });
|
|
152
129
|
monaco.languages.setMonarchTokensProvider(language.id, {
|
|
153
130
|
tokenizer: {
|
|
@@ -167,7 +144,10 @@ class TdCodeEditorComponent {
|
|
|
167
144
|
css.innerHTML = language.monarchTokensProviderCSS;
|
|
168
145
|
document.body.appendChild(css);
|
|
169
146
|
this.editorConfigurationChanged.emit();
|
|
170
|
-
this._registeredLanguagesStyles = [
|
|
147
|
+
this._registeredLanguagesStyles = [
|
|
148
|
+
...this._registeredLanguagesStyles,
|
|
149
|
+
css,
|
|
150
|
+
];
|
|
171
151
|
}
|
|
172
152
|
}
|
|
173
153
|
/**
|
|
@@ -217,7 +197,7 @@ class TdCodeEditorComponent {
|
|
|
217
197
|
/**
|
|
218
198
|
* editorOptions?: object
|
|
219
199
|
* Options used on editor instantiation. Available options listed here:
|
|
220
|
-
* https://microsoft.github.io/monaco-editor/api/interfaces/
|
|
200
|
+
* https://microsoft.github.io/monaco-editor/api/interfaces/editor.ieditoroptions.html
|
|
221
201
|
*/
|
|
222
202
|
set editorOptions(editorOptions) {
|
|
223
203
|
this._editorOptions = editorOptions;
|
|
@@ -263,7 +243,9 @@ class TdCodeEditorComponent {
|
|
|
263
243
|
// The `onDidChangeContent` returns a disposable object (an object with `dispose()` method) which will cleanup
|
|
264
244
|
// the listener. The callback, that we pass to `onDidChangeContent`, captures `this`. This leads to a circular reference
|
|
265
245
|
// (`td-code-editor -> monaco -> td-code-editor`) and prevents the `td-code-editor` from being GC'd.
|
|
266
|
-
this._onDidChangeContentDisposable = this._editor
|
|
246
|
+
this._onDidChangeContentDisposable = this._editor
|
|
247
|
+
.getModel()
|
|
248
|
+
?.onDidChangeContent(() => {
|
|
267
249
|
this._fromEditor = true;
|
|
268
250
|
this.writeValue(this._editor.getValue());
|
|
269
251
|
this.layout();
|
|
@@ -279,8 +261,8 @@ class TdCodeEditorComponent {
|
|
|
279
261
|
.pipe(takeUntil(this._destroy))
|
|
280
262
|
.subscribe(() => {
|
|
281
263
|
if (this._elementRef && this._elementRef.nativeElement) {
|
|
282
|
-
this._widthSubject.next(this._elementRef.nativeElement.getBoundingClientRect().width);
|
|
283
|
-
this._heightSubject.next(this._elementRef.nativeElement.getBoundingClientRect().height);
|
|
264
|
+
this._widthSubject.next((this._elementRef.nativeElement).getBoundingClientRect().width);
|
|
265
|
+
this._heightSubject.next((this._elementRef.nativeElement).getBoundingClientRect().height);
|
|
284
266
|
}
|
|
285
267
|
});
|
|
286
268
|
}
|
|
@@ -293,7 +275,6 @@ class TdCodeEditorComponent {
|
|
|
293
275
|
}
|
|
294
276
|
if (this._editor) {
|
|
295
277
|
this._editor.dispose();
|
|
296
|
-
this._editor = undefined;
|
|
297
278
|
}
|
|
298
279
|
this._destroy.next(true);
|
|
299
280
|
this._destroy.unsubscribe();
|
|
@@ -303,22 +284,9 @@ class TdCodeEditorComponent {
|
|
|
303
284
|
*/
|
|
304
285
|
showFullScreenEditor() {
|
|
305
286
|
if (this._componentInitialized) {
|
|
306
|
-
const codeEditorElement = this._editorContainer
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
requestFullscreen: () => codeEditorElement.requestFullscreen(),
|
|
310
|
-
// Safari
|
|
311
|
-
webkitRequestFullscreen: () => codeEditorElement.webkitRequestFullscreen(),
|
|
312
|
-
// IE
|
|
313
|
-
msRequestFullscreen: () => codeEditorElement.msRequestFullscreen(),
|
|
314
|
-
// Firefox
|
|
315
|
-
mozRequestFullScreen: () => codeEditorElement.mozRequestFullScreen(),
|
|
316
|
-
};
|
|
317
|
-
for (const handler of Object.keys(fullScreenMap)) {
|
|
318
|
-
if (codeEditorElement[handler]) {
|
|
319
|
-
fullScreenMap[handler]();
|
|
320
|
-
}
|
|
321
|
-
}
|
|
287
|
+
const codeEditorElement = this._editorContainer
|
|
288
|
+
.nativeElement;
|
|
289
|
+
codeEditorElement.requestFullscreen();
|
|
322
290
|
}
|
|
323
291
|
this._isFullScreen = true;
|
|
324
292
|
}
|
|
@@ -327,21 +295,7 @@ class TdCodeEditorComponent {
|
|
|
327
295
|
*/
|
|
328
296
|
exitFullScreenEditor() {
|
|
329
297
|
if (this._componentInitialized) {
|
|
330
|
-
|
|
331
|
-
// Chrome
|
|
332
|
-
exitFullscreen: () => document.exitFullscreen(),
|
|
333
|
-
// Safari
|
|
334
|
-
webkitExitFullscreen: () => document.webkitExitFullscreen(),
|
|
335
|
-
// Firefox
|
|
336
|
-
mozCancelFullScreen: () => document.mozCancelFullScreen(),
|
|
337
|
-
// IE
|
|
338
|
-
msExitFullscreen: () => document.msExitFullscreen(),
|
|
339
|
-
};
|
|
340
|
-
for (const handler of Object.keys(exitFullScreenMap)) {
|
|
341
|
-
if (document[handler]) {
|
|
342
|
-
exitFullScreenMap[handler]();
|
|
343
|
-
}
|
|
344
|
-
}
|
|
298
|
+
document.exitFullscreen();
|
|
345
299
|
}
|
|
346
300
|
this._isFullScreen = false;
|
|
347
301
|
}
|
|
@@ -359,85 +313,68 @@ class TdCodeEditorComponent {
|
|
|
359
313
|
keybindings: this._keycode,
|
|
360
314
|
contextMenuOrder: 1.5,
|
|
361
315
|
// Method that will be executed when the action is triggered.
|
|
362
|
-
|
|
363
|
-
run: (ed) => {
|
|
316
|
+
run: () => {
|
|
364
317
|
this.showFullScreenEditor();
|
|
365
318
|
},
|
|
366
319
|
});
|
|
367
320
|
}
|
|
368
321
|
}
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
type: Input,
|
|
411
|
-
args: ['language']
|
|
412
|
-
}], editorStyle: [{
|
|
413
|
-
type: Input,
|
|
414
|
-
args: ['editorStyle']
|
|
415
|
-
}], theme: [{
|
|
416
|
-
type: Input,
|
|
417
|
-
args: ['theme']
|
|
418
|
-
}], fullScreenKeyBinding: [{
|
|
419
|
-
type: Input,
|
|
420
|
-
args: ['fullScreenKeyBinding']
|
|
421
|
-
}], editorOptions: [{
|
|
422
|
-
type: Input,
|
|
423
|
-
args: ['editorOptions']
|
|
424
|
-
}] }); })();
|
|
322
|
+
TdCodeEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdCodeEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
323
|
+
TdCodeEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdCodeEditorComponent, selector: "td-code-editor", inputs: { value: "value", language: "language", editorStyle: "editorStyle", theme: "theme", fullScreenKeyBinding: "fullScreenKeyBinding", editorOptions: "editorOptions" }, outputs: { editorInitialized: "editorInitialized", editorConfigurationChanged: "editorConfigurationChanged", editorLanguageChanged: "editorLanguageChanged", editorValueChange: "editorValueChange" }, providers: [
|
|
324
|
+
{
|
|
325
|
+
provide: NG_VALUE_ACCESSOR,
|
|
326
|
+
useExisting: forwardRef(() => TdCodeEditorComponent),
|
|
327
|
+
multi: true,
|
|
328
|
+
},
|
|
329
|
+
], viewQueries: [{ propertyName: "_editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"editor-container\" #editorContainer></div>\n", styles: [":host{display:block;position:relative}:host .editor-container{position:absolute;top:0;bottom:0;left:0;right:0}::ng-deep .monaco-aria-container{display:none}\n"] });
|
|
330
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdCodeEditorComponent, decorators: [{
|
|
331
|
+
type: Component,
|
|
332
|
+
args: [{ selector: 'td-code-editor', providers: [
|
|
333
|
+
{
|
|
334
|
+
provide: NG_VALUE_ACCESSOR,
|
|
335
|
+
useExisting: forwardRef(() => TdCodeEditorComponent),
|
|
336
|
+
multi: true,
|
|
337
|
+
},
|
|
338
|
+
], template: "<div class=\"editor-container\" #editorContainer></div>\n", styles: [":host{display:block;position:relative}:host .editor-container{position:absolute;top:0;bottom:0;left:0;right:0}::ng-deep .monaco-aria-container{display:none}\n"] }]
|
|
339
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { _editorContainer: [{
|
|
340
|
+
type: ViewChild,
|
|
341
|
+
args: ['editorContainer', { static: true }]
|
|
342
|
+
}], editorInitialized: [{
|
|
343
|
+
type: Output
|
|
344
|
+
}], editorConfigurationChanged: [{
|
|
345
|
+
type: Output
|
|
346
|
+
}], editorLanguageChanged: [{
|
|
347
|
+
type: Output
|
|
348
|
+
}], editorValueChange: [{
|
|
349
|
+
type: Output
|
|
350
|
+
}], value: [{
|
|
351
|
+
type: Input
|
|
352
|
+
}], language: [{
|
|
353
|
+
type: Input
|
|
354
|
+
}], editorStyle: [{
|
|
355
|
+
type: Input
|
|
356
|
+
}], theme: [{
|
|
357
|
+
type: Input
|
|
358
|
+
}], fullScreenKeyBinding: [{
|
|
359
|
+
type: Input
|
|
360
|
+
}], editorOptions: [{
|
|
361
|
+
type: Input
|
|
362
|
+
}] } });
|
|
425
363
|
|
|
426
364
|
class CovalentCodeEditorModule {
|
|
427
365
|
}
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
(
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CovalentCodeEditorModule, { declarations: [TdCodeEditorComponent], imports: [CommonModule], exports: [TdCodeEditorComponent] }); })();
|
|
366
|
+
CovalentCodeEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentCodeEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
367
|
+
CovalentCodeEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentCodeEditorModule, bootstrap: [TdCodeEditorComponent], declarations: [TdCodeEditorComponent], imports: [CommonModule], exports: [TdCodeEditorComponent] });
|
|
368
|
+
CovalentCodeEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentCodeEditorModule, imports: [[CommonModule]] });
|
|
369
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentCodeEditorModule, decorators: [{
|
|
370
|
+
type: NgModule,
|
|
371
|
+
args: [{
|
|
372
|
+
imports: [CommonModule],
|
|
373
|
+
declarations: [TdCodeEditorComponent],
|
|
374
|
+
exports: [TdCodeEditorComponent],
|
|
375
|
+
bootstrap: [TdCodeEditorComponent],
|
|
376
|
+
}]
|
|
377
|
+
}] });
|
|
441
378
|
|
|
442
379
|
/**
|
|
443
380
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"covalent-code-editor.mjs","sources":["../../../../src/platform/code-editor/code-editor.component.ts","../../../../src/platform/code-editor/code-editor.component.html","../../../../src/platform/code-editor/code-editor.module.ts","../../../../src/platform/code-editor/covalent-code-editor.ts"],"sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n ViewChild,\n ElementRef,\n forwardRef,\n NgZone,\n ChangeDetectorRef,\n OnDestroy,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport { fromEvent, merge, timer } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\n\n// Use esm version to support shipping subset of languages and features\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\n\nconst noop: any = () => {\n // empty method\n};\n\n// counter for ids to allow for multiple editors on one page\nlet uniqueCounter: number = 0;\n\n@Component({\n selector: 'td-code-editor',\n templateUrl: './code-editor.component.html',\n styleUrls: ['./code-editor.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdCodeEditorComponent),\n multi: true,\n },\n ],\n})\nexport class TdCodeEditorComponent implements OnInit, ControlValueAccessor, OnDestroy {\n private _destroy: Subject<boolean> = new Subject<boolean>();\n private _widthSubject: Subject<number> = new Subject<number>();\n private _heightSubject: Subject<number> = new Subject<number>();\n\n private _editorStyle: string = 'width:100%;height:100%;border:1px solid grey;';\n private _value: string = '';\n private _theme: string = 'vs';\n private _language: string = 'javascript';\n private _subject: Subject<string> = new Subject();\n private _editorInnerContainer: string = 'editorInnerContainer' + uniqueCounter++;\n private _editor: monaco.editor.IStandaloneCodeEditor;\n private _fromEditor: boolean = false;\n private _componentInitialized: boolean = false;\n private _editorOptions: any = {};\n private _isFullScreen: boolean = false;\n private _keycode: any;\n private _registeredLanguagesStyles: HTMLStyleElement[] = [];\n private _onDidChangeContentDisposable?: monaco.IDisposable;\n\n @ViewChild('editorContainer', { static: true }) _editorContainer: ElementRef;\n\n /**\n * editorInitialized: function($event)\n * Event emitted when editor is first initialized\n */\n @Output() editorInitialized: EventEmitter<monaco.editor.IStandaloneCodeEditor> =\n new EventEmitter<monaco.editor.IStandaloneCodeEditor>();\n\n /**\n * editorConfigurationChanged: function($event)\n * Event emitted when editor's configuration changes\n */\n @Output() editorConfigurationChanged: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * editorLanguageChanged: function($event)\n * Event emitted when editor's Language changes\n */\n @Output() editorLanguageChanged: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * editorValueChange: function($event)\n * Event emitted any time something changes the editor value\n */\n @Output() editorValueChange: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * The change event notifies you about a change happening in an input field.\n * Since the component is not a native Angular component have to specifiy the event emitter ourself\n */\n @Output() change: EventEmitter<void> = new EventEmitter<void>();\n /* tslint:disable-next-line */\n propagateChange = (_: any) => {};\n onTouched = () => noop;\n\n /**\n * value?: string\n */\n @Input('value')\n set value(value: string) {\n if (value === this._value) {\n return;\n }\n this._value = value;\n if (this._componentInitialized) {\n this.applyValue();\n }\n }\n\n get value(): string {\n return this._value;\n }\n\n applyValue(): void {\n if (!this._fromEditor) {\n this._editor.setValue(this._value);\n }\n this._fromEditor = false;\n this.propagateChange(this._value);\n this.change.emit();\n this.editorValueChange.emit();\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n writeValue(value: any): void {\n // do not write if null or undefined\n // tslint:disable-next-line\n if (value != undefined) {\n this.value = value;\n }\n }\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * getEditorContent?: function\n * Returns the content within the editor\n */\n getValue(): Observable<string> {\n if (this._componentInitialized) {\n setTimeout(() => {\n this._subject.next(this._value);\n this._subject.complete();\n this._subject = new Subject();\n });\n return this._subject.asObservable();\n }\n }\n\n /**\n * language?: string\n * language used in editor\n */\n @Input('language')\n set language(language: string) {\n this._language = language;\n if (this._componentInitialized) {\n this.applyLanguage();\n }\n }\n\n get language(): string {\n return this._language;\n }\n\n applyLanguage(): void {\n if (this._language) {\n monaco.editor.setModelLanguage(this._editor.getModel(), this._language);\n this.editorLanguageChanged.emit();\n }\n }\n\n /**\n * registerLanguage?: function\n * Registers a custom Language within the editor\n */\n registerLanguage(language: any): void {\n if (this._componentInitialized) {\n for (const provider of language.completionItemProvider) {\n /* tslint:disable-next-line */\n provider.kind = eval(provider.kind);\n }\n for (const monarchTokens of language.monarchTokensProvider) {\n /* tslint:disable-next-line */\n monarchTokens[0] = eval(monarchTokens[0]);\n }\n monaco.languages.register({ id: language.id });\n\n monaco.languages.setMonarchTokensProvider(language.id, {\n tokenizer: {\n root: language.monarchTokensProvider,\n },\n });\n\n // Define a new theme that constains only rules that match this language\n monaco.editor.defineTheme(language.customTheme.id, language.customTheme.theme);\n this._theme = language.customTheme.id;\n\n monaco.languages.registerCompletionItemProvider(language.id, {\n provideCompletionItems: () => {\n return language.completionItemProvider;\n },\n });\n\n const css: HTMLStyleElement = document.createElement('style');\n css.type = 'text/css';\n css.innerHTML = language.monarchTokensProviderCSS;\n document.body.appendChild(css);\n this.editorConfigurationChanged.emit();\n this._registeredLanguagesStyles = [...this._registeredLanguagesStyles, css];\n }\n }\n\n /**\n * style?: string\n * css style of the editor on the page\n */\n @Input('editorStyle')\n set editorStyle(editorStyle: string) {\n this._editorStyle = editorStyle;\n if (this._componentInitialized) {\n this.applyStyle();\n }\n }\n\n get editorStyle(): string {\n return this._editorStyle;\n }\n\n applyStyle(): void {\n if (this._editorStyle) {\n const containerDiv: HTMLDivElement = this._editorContainer.nativeElement;\n containerDiv.setAttribute('style', this._editorStyle);\n }\n }\n\n /**\n * theme?: string\n * Theme to be applied to editor\n */\n @Input('theme')\n set theme(theme: string) {\n this._theme = theme;\n if (this._componentInitialized) {\n this._editor.updateOptions({ theme });\n this.editorConfigurationChanged.emit();\n }\n }\n get theme(): string {\n return this._theme;\n }\n\n /**\n * fullScreenKeyBinding?: number\n * See here for key bindings https://microsoft.github.io/monaco-editor/api/enums/monaco.keycode.html\n * Sets the KeyCode for shortcutting to Fullscreen mode\n */\n @Input('fullScreenKeyBinding')\n set fullScreenKeyBinding(keycode: number[]) {\n this._keycode = keycode;\n }\n get fullScreenKeyBinding(): number[] {\n return this._keycode;\n }\n\n /**\n * editorOptions?: object\n * Options used on editor instantiation. Available options listed here:\n * https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.ieditoroptions.html\n */\n @Input('editorOptions')\n set editorOptions(editorOptions: any) {\n this._editorOptions = editorOptions;\n if (this._componentInitialized) {\n this._editor.updateOptions(editorOptions);\n this.editorConfigurationChanged.emit();\n }\n }\n get editorOptions(): any {\n return this._editorOptions;\n }\n\n /**\n * layout method that calls layout method of editor and instructs the editor to remeasure its container\n */\n layout(): void {\n if (this._componentInitialized) {\n this._editor.layout();\n }\n }\n\n /**\n * Returns if in Full Screen Mode or not\n */\n get isFullScreen(): boolean {\n return this._isFullScreen;\n }\n\n // tslint:disable-next-line:member-ordering\n constructor(private zone: NgZone, private _changeDetectorRef: ChangeDetectorRef, private _elementRef: ElementRef) {}\n\n ngOnInit(): void {\n const containerDiv: HTMLDivElement = this._editorContainer.nativeElement;\n containerDiv.id = this._editorInnerContainer;\n\n this._editor = monaco.editor.create(\n containerDiv,\n Object.assign(\n {\n value: this._value,\n language: this.language,\n theme: this._theme,\n },\n this.editorOptions,\n ),\n );\n this._componentInitialized = true;\n setTimeout(() => {\n this.applyLanguage();\n this._fromEditor = true;\n this.applyValue();\n this.applyStyle();\n this.editorInitialized.emit(this._editor);\n this.editorConfigurationChanged.emit();\n });\n // The `onDidChangeContent` returns a disposable object (an object with `dispose()` method) which will cleanup\n // the listener. The callback, that we pass to `onDidChangeContent`, captures `this`. This leads to a circular reference\n // (`td-code-editor -> monaco -> td-code-editor`) and prevents the `td-code-editor` from being GC'd.\n this._onDidChangeContentDisposable = this._editor.getModel().onDidChangeContent((e: any) => {\n this._fromEditor = true;\n this.writeValue(this._editor.getValue());\n this.layout();\n });\n this.addFullScreenModeCommand();\n\n merge(\n fromEvent(window, 'resize').pipe(debounceTime(100)),\n this._widthSubject.asObservable().pipe(distinctUntilChanged()),\n this._heightSubject.asObservable().pipe(distinctUntilChanged()),\n )\n .pipe(takeUntil(this._destroy), debounceTime(100))\n .subscribe(() => {\n this.layout();\n this._changeDetectorRef.markForCheck();\n });\n timer(500, 250)\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n if (this._elementRef && this._elementRef.nativeElement) {\n this._widthSubject.next((<HTMLElement>this._elementRef.nativeElement).getBoundingClientRect().width);\n this._heightSubject.next((<HTMLElement>this._elementRef.nativeElement).getBoundingClientRect().height);\n }\n });\n }\n\n ngOnDestroy(): void {\n this._changeDetectorRef.detach();\n this._registeredLanguagesStyles.forEach((style: HTMLStyleElement) => style.remove());\n if (this._onDidChangeContentDisposable) {\n this._onDidChangeContentDisposable.dispose();\n this._onDidChangeContentDisposable = undefined;\n }\n if (this._editor) {\n this._editor.dispose();\n this._editor = undefined;\n }\n this._destroy.next(true);\n this._destroy.unsubscribe();\n }\n\n /**\n * showFullScreenEditor request for full screen of Code Editor based on its browser type.\n */\n public showFullScreenEditor(): void {\n if (this._componentInitialized) {\n const codeEditorElement: HTMLDivElement = this._editorContainer.nativeElement as HTMLDivElement;\n const fullScreenMap: object = {\n // Chrome\n requestFullscreen: () => codeEditorElement.requestFullscreen(),\n // Safari\n webkitRequestFullscreen: () => (<any>codeEditorElement).webkitRequestFullscreen(),\n // IE\n msRequestFullscreen: () => (<any>codeEditorElement).msRequestFullscreen(),\n // Firefox\n mozRequestFullScreen: () => (<any>codeEditorElement).mozRequestFullScreen(),\n };\n\n for (const handler of Object.keys(fullScreenMap)) {\n if (codeEditorElement[handler]) {\n fullScreenMap[handler]();\n }\n }\n }\n this._isFullScreen = true;\n }\n\n /**\n * exitFullScreenEditor request to exit full screen of Code Editor based on its browser type.\n */\n public exitFullScreenEditor(): void {\n if (this._componentInitialized) {\n const exitFullScreenMap: object = {\n // Chrome\n exitFullscreen: () => document.exitFullscreen(),\n // Safari\n webkitExitFullscreen: () => (<any>document).webkitExitFullscreen(),\n // Firefox\n mozCancelFullScreen: () => (<any>document).mozCancelFullScreen(),\n // IE\n msExitFullscreen: () => (<any>document).msExitFullscreen(),\n };\n\n for (const handler of Object.keys(exitFullScreenMap)) {\n if (document[handler]) {\n exitFullScreenMap[handler]();\n }\n }\n }\n this._isFullScreen = false;\n }\n\n /**\n * addFullScreenModeCommand used to add the fullscreen option to the context menu\n */\n private addFullScreenModeCommand(): void {\n this._editor.addAction({\n // An unique identifier of the contributed action.\n id: 'fullScreen',\n // A label of the action that will be presented to the user.\n label: 'Full Screen',\n // An optional array of keybindings for the action.\n contextMenuGroupId: 'navigation',\n keybindings: this._keycode,\n contextMenuOrder: 1.5,\n // Method that will be executed when the action is triggered.\n // @param editor The editor instance is passed in as a convinience\n run: (ed: any) => {\n this.showFullScreenEditor();\n },\n });\n }\n}\n","<div class=\"editor-container\" #editorContainer></div>\n","import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\nimport { TdCodeEditorComponent } from './code-editor.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TdCodeEditorComponent],\n exports: [TdCodeEditorComponent],\n bootstrap: [TdCodeEditorComponent],\n})\nexport class CovalentCodeEditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAqBA,MAAM,IAAI,GAAQ;;AAElB,CAAC,CAAC;AAEF;AACA,IAAI,aAAa,GAAW,CAAC,CAAC;MAcjB,qBAAqB;;IA0QhC,YAAoB,IAAY,EAAU,kBAAqC,EAAU,WAAuB;QAA5F,SAAI,GAAJ,IAAI,CAAQ;QAAU,uBAAkB,GAAlB,kBAAkB,CAAmB;QAAU,gBAAW,GAAX,WAAW,CAAY;QAzQxG,aAAQ,GAAqB,IAAI,OAAO,EAAW,CAAC;QACpD,kBAAa,GAAoB,IAAI,OAAO,EAAU,CAAC;QACvD,mBAAc,GAAoB,IAAI,OAAO,EAAU,CAAC;QAExD,iBAAY,GAAW,+CAA+C,CAAC;QACvE,WAAM,GAAW,EAAE,CAAC;QACpB,WAAM,GAAW,IAAI,CAAC;QACtB,cAAS,GAAW,YAAY,CAAC;QACjC,aAAQ,GAAoB,IAAI,OAAO,EAAE,CAAC;QAC1C,0BAAqB,GAAW,sBAAsB,GAAG,aAAa,EAAE,CAAC;QAEzE,gBAAW,GAAY,KAAK,CAAC;QAC7B,0BAAqB,GAAY,KAAK,CAAC;QACvC,mBAAc,GAAQ,EAAE,CAAC;QACzB,kBAAa,GAAY,KAAK,CAAC;QAE/B,+BAA0B,GAAuB,EAAE,CAAC;;;;;QASlD,sBAAiB,GACzB,IAAI,YAAY,EAAuC,CAAC;;;;;QAMhD,+BAA0B,GAAuB,IAAI,YAAY,EAAQ,CAAC;;;;;QAM1E,0BAAqB,GAAuB,IAAI,YAAY,EAAQ,CAAC;;;;;QAMrE,sBAAiB,GAAuB,IAAI,YAAY,EAAQ,CAAC;;;;;QAMjE,WAAM,GAAuB,IAAI,YAAY,EAAQ,CAAC;;QAEhE,oBAAe,GAAG,CAAC,CAAM,QAAO,CAAC;QACjC,cAAS,GAAG,MAAM,IAAI,CAAC;KAoN6F;;;;IA/MpH,IACI,KAAK,CAAC,KAAa;QACrB,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE;YACzB,OAAO;SACR;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;KAC/B;;;;IAKD,UAAU,CAAC,KAAU;;;QAGnB,IAAI,KAAK,IAAI,SAAS,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB;KACF;IACD,gBAAgB,CAAC,EAAO;QACtB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;IACD,iBAAiB,CAAC,EAAO;QACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;;;;;IAMD,QAAQ;QACN,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,UAAU,CAAC;gBACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;aAC/B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;SACrC;KACF;;;;;IAMD,IACI,QAAQ,CAAC,QAAgB;QAC3B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;KACF;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,aAAa;QACX,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;SACnC;KACF;;;;;IAMD,gBAAgB,CAAC,QAAa;QAC5B,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,sBAAsB,EAAE;;gBAEtD,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACrC;YACD,KAAK,MAAM,aAAa,IAAI,QAAQ,CAAC,qBAAqB,EAAE;;gBAE1D,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3C;YACD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAE/C,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACrD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ,CAAC,qBAAqB;iBACrC;aACF,CAAC,CAAC;;YAGH,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC/E,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAEtC,MAAM,CAAC,SAAS,CAAC,8BAA8B,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAC3D,sBAAsB,EAAE;oBACtB,OAAO,QAAQ,CAAC,sBAAsB,CAAC;iBACxC;aACF,CAAC,CAAC;YAEH,MAAM,GAAG,GAAqB,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9D,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC;YACtB,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,wBAAwB,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,0BAA0B,GAAG,CAAC,GAAG,IAAI,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;SAC7E;KACF;;;;;IAMD,IACI,WAAW,CAAC,WAAmB;QACjC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IAED,UAAU;QACR,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,MAAM,YAAY,GAAmB,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;YACzE,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SACvD;KACF;;;;;IAMD,IACI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;SACxC;KACF;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;;;;;;IAOD,IACI,oBAAoB,CAAC,OAAiB;QACxC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;KACzB;IACD,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;;;;;;IAOD,IACI,aAAa,CAAC,aAAkB;QAClC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YAC1C,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;SACxC;KACF;IACD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;;;;IAKD,MAAM;QACJ,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACvB;KACF;;;;IAKD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;IAKD,QAAQ;QACN,MAAM,YAAY,GAAmB,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;QACzE,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAE7C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CACjC,YAAY,EACZ,MAAM,CAAC,MAAM,CACX;YACE,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,MAAM;SACnB,EACD,IAAI,CAAC,aAAa,CACnB,CACF,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,UAAU,CAAC;YACT,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;SACxC,CAAC,CAAC;;;;QAIH,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAM;YACrF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;SACf,CAAC,CAAC;QACH,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEhC,KAAK,CACH,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EACnD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAC9D,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAChE;aACE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;aACjD,SAAS,CAAC;YACT,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC,CAAC,CAAC;QACL,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;aACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC;YACT,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;gBACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAe,IAAI,CAAC,WAAW,CAAC,aAAc,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAC;gBACrG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAe,IAAI,CAAC,WAAW,CAAC,aAAc,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC;aACxG;SACF,CAAC,CAAC;KACN;IAED,WAAW;QACT,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,KAAuB,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACrF,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACtC,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,CAAC;YAC7C,IAAI,CAAC,6BAA6B,GAAG,SAAS,CAAC;SAChD;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;SAC1B;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC7B;;;;IAKM,oBAAoB;QACzB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,MAAM,iBAAiB,GAAmB,IAAI,CAAC,gBAAgB,CAAC,aAA+B,CAAC;YAChG,MAAM,aAAa,GAAW;;gBAE5B,iBAAiB,EAAE,MAAM,iBAAiB,CAAC,iBAAiB,EAAE;;gBAE9D,uBAAuB,EAAE,MAAY,iBAAkB,CAAC,uBAAuB,EAAE;;gBAEjF,mBAAmB,EAAE,MAAY,iBAAkB,CAAC,mBAAmB,EAAE;;gBAEzE,oBAAoB,EAAE,MAAY,iBAAkB,CAAC,oBAAoB,EAAE;aAC5E,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBAChD,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE;oBAC9B,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;iBAC1B;aACF;SACF;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC3B;;;;IAKM,oBAAoB;QACzB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,MAAM,iBAAiB,GAAW;;gBAEhC,cAAc,EAAE,MAAM,QAAQ,CAAC,cAAc,EAAE;;gBAE/C,oBAAoB,EAAE,MAAY,QAAS,CAAC,oBAAoB,EAAE;;gBAElE,mBAAmB,EAAE,MAAY,QAAS,CAAC,mBAAmB,EAAE;;gBAEhE,gBAAgB,EAAE,MAAY,QAAS,CAAC,gBAAgB,EAAE;aAC3D,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;gBACpD,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;oBACrB,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;iBAC9B;aACF;SACF;QACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;;;;IAKO,wBAAwB;QAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;;YAErB,EAAE,EAAE,YAAY;;YAEhB,KAAK,EAAE,aAAa;;YAEpB,kBAAkB,EAAE,YAAY;YAChC,WAAW,EAAE,IAAI,CAAC,QAAQ;YAC1B,gBAAgB,EAAE,GAAG;;;YAGrB,GAAG,EAAE,CAAC,EAAO;gBACX,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;SACF,CAAC,CAAC;KACJ;;gIAvZU,qBAAqB;0HAArB,qBAAqB;;;;;+aARrB;YACT;gBACE,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,UAAU,EAAC,MAAM,qBAAqB,EAAC;gBACpD,KAAK,EAAE,IAAI;aACZ;SACF;QCtCH,4BAAqD;;uFDwCxC,qBAAqB;cAZjC,SAAS;2BACE,gBAAgB,aAGf;oBACT;wBACE,OAAO,EAAE,iBAAiB;wBAC1B,WAAW,EAAE,UAAU,EAAC,2BAA2B,EAAC;wBACpD,KAAK,EAAE,IAAI;qBACZ;iBACF;kHAsB+C,gBAAgB;kBAA/D,SAAS;mBAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YAMpC,iBAAiB;kBAA1B,MAAM;YAOG,0BAA0B;kBAAnC,MAAM;YAMG,qBAAqB;kBAA9B,MAAM;YAMG,iBAAiB;kBAA1B,MAAM;YAMG,MAAM;kBAAf,MAAM;YASH,KAAK;kBADR,KAAK;mBAAC,OAAO;YA8DV,QAAQ;kBADX,KAAK;mBAAC,UAAU;YAiEb,WAAW;kBADd,KAAK;mBAAC,aAAa;YAwBhB,KAAK;kBADR,KAAK;mBAAC,OAAO;YAkBV,oBAAoB;kBADvB,KAAK;mBAAC,sBAAsB;YAczB,aAAa;kBADhB,KAAK;mBAAC,eAAe;;;MEzQX,wBAAwB;;sIAAxB,wBAAwB;4HAAxB,wBAAwB,cAFvB,qBAAqB;gIAHxB,CAAC,YAAY,CAAC;uFAKZ,wBAAwB;cANpC,QAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,YAAY,EAAE,CAAC,qBAAqB,CAAC;gBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;gBAChC,SAAS,EAAE,CAAC,qBAAqB,CAAC;aACnC;;wFACY,wBAAwB,mBAJpB,qBAAqB,aAD1B,YAAY,aAEZ,qBAAqB;;ACTjC;;;;;;"}
|
|
1
|
+
{"version":3,"file":"covalent-code-editor.mjs","sources":["../../../../libs/angular-code-editor/src/lib/code-editor.component.ts","../../../../libs/angular-code-editor/src/lib/code-editor.component.html","../../../../libs/angular-code-editor/src/lib/code-editor.module.ts","../../../../libs/angular-code-editor/src/covalent-code-editor.ts"],"sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n ViewChild,\n ElementRef,\n forwardRef,\n ChangeDetectorRef,\n OnDestroy,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { Observable, of, Subject } from 'rxjs';\nimport { fromEvent, merge, timer } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\n\n// Use esm version to support shipping subset of languages and features\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nimport {\n mixinControlValueAccessor,\n mixinDisabled,\n} from '@covalent/core/common';\n\nconst noop = () => {\n // empty method\n};\n\n// counter for ids to allow for multiple editors on one page\nlet uniqueCounter = 0;\n\nexport class TdCodeEditorBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\nexport const _TdCodeEditorMixinBase = mixinControlValueAccessor(\n mixinDisabled(TdCodeEditorBase),\n []\n);\n\n@Component({\n selector: 'td-code-editor',\n templateUrl: './code-editor.component.html',\n styleUrls: ['./code-editor.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdCodeEditorComponent),\n multi: true,\n },\n ],\n})\nexport class TdCodeEditorComponent\n extends _TdCodeEditorMixinBase\n implements OnInit, ControlValueAccessor, OnDestroy\n{\n private _destroy: Subject<boolean> = new Subject<boolean>();\n private _widthSubject: Subject<number> = new Subject<number>();\n private _heightSubject: Subject<number> = new Subject<number>();\n\n private _editorStyle = 'width:100%;height:100%;border:1px solid grey;';\n private _value = '';\n private _theme = 'vs';\n private _language = 'javascript';\n private _subject: Subject<string> = new Subject();\n private _editorInnerContainer: string =\n 'editorInnerContainer' + uniqueCounter++;\n private _editor!: monaco.editor.IStandaloneCodeEditor;\n private _fromEditor = false;\n private _componentInitialized = false;\n private _editorOptions: any = {};\n private _isFullScreen = false;\n private _keycode: any;\n private _registeredLanguagesStyles: HTMLStyleElement[] = [];\n private _onDidChangeContentDisposable?: monaco.IDisposable;\n\n @ViewChild('editorContainer', { static: true }) _editorContainer!: ElementRef;\n\n /**\n * editorInitialized: function($event)\n * Event emitted when editor is first initialized\n */\n @Output()\n editorInitialized: EventEmitter<monaco.editor.IStandaloneCodeEditor> = new EventEmitter<monaco.editor.IStandaloneCodeEditor>();\n\n /**\n * editorConfigurationChanged: function($event)\n * Event emitted when editor's configuration changes\n */\n @Output() editorConfigurationChanged: EventEmitter<void> =\n new EventEmitter<void>();\n\n /**\n * editorLanguageChanged: function($event)\n * Event emitted when editor's Language changes\n */\n @Output() editorLanguageChanged: EventEmitter<void> =\n new EventEmitter<void>();\n\n /**\n * editorValueChange: function($event)\n * Event emitted any time something changes the editor value\n */\n @Output() editorValueChange: EventEmitter<void> = new EventEmitter<void>();\n\n propagateChange = (_: any) => noop;\n\n /**\n * value?: string\n */\n @Input()\n override set value(value: string) {\n this._value = value;\n\n if (this._componentInitialized) {\n this.applyValue();\n }\n }\n override get value(): string {\n return this._value;\n }\n\n applyValue(): void {\n if (!this._fromEditor) {\n this._editor.setValue(this._value);\n }\n this._fromEditor = false;\n this.propagateChange(this._value);\n this.editorValueChange.emit();\n }\n\n override registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n override registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * getEditorContent?: function\n * Returns the content within the editor\n */\n getValue(): Observable<string> {\n if (!this._componentInitialized) {\n return of('');\n }\n setTimeout(() => {\n this._subject.next(this._value);\n this._subject.complete();\n this._subject = new Subject();\n });\n return this._subject.asObservable();\n }\n\n /**\n * language?: string\n * language used in editor\n */\n @Input()\n set language(language: string) {\n this._language = language;\n if (this._componentInitialized) {\n this.applyLanguage();\n }\n }\n\n get language(): string {\n return this._language;\n }\n\n applyLanguage(): void {\n if (this._language) {\n monaco.editor.setModelLanguage(\n this._editor.getModel() as monaco.editor.ITextModel,\n this._language\n );\n this.editorLanguageChanged.emit();\n }\n }\n\n /**\n * registerLanguage?: function\n * Registers a custom Language within the editor\n */\n registerLanguage(language: any): void {\n if (this._componentInitialized) {\n monaco.languages.register({ id: language.id });\n\n monaco.languages.setMonarchTokensProvider(language.id, {\n tokenizer: {\n root: language.monarchTokensProvider,\n },\n });\n\n // Define a new theme that constains only rules that match this language\n monaco.editor.defineTheme(\n language.customTheme.id,\n language.customTheme.theme\n );\n this._theme = language.customTheme.id;\n\n monaco.languages.registerCompletionItemProvider(language.id, {\n provideCompletionItems: () => {\n return language.completionItemProvider;\n },\n });\n\n const css: HTMLStyleElement = document.createElement('style');\n css.type = 'text/css';\n css.innerHTML = language.monarchTokensProviderCSS;\n document.body.appendChild(css);\n this.editorConfigurationChanged.emit();\n this._registeredLanguagesStyles = [\n ...this._registeredLanguagesStyles,\n css,\n ];\n }\n }\n\n /**\n * style?: string\n * css style of the editor on the page\n */\n @Input()\n set editorStyle(editorStyle: string) {\n this._editorStyle = editorStyle;\n if (this._componentInitialized) {\n this.applyStyle();\n }\n }\n\n get editorStyle(): string {\n return this._editorStyle;\n }\n\n applyStyle(): void {\n if (this._editorStyle) {\n const containerDiv: HTMLDivElement = this._editorContainer.nativeElement;\n containerDiv.setAttribute('style', this._editorStyle);\n }\n }\n\n /**\n * theme?: string\n * Theme to be applied to editor\n */\n @Input()\n set theme(theme: string) {\n this._theme = theme;\n if (this._componentInitialized) {\n this._editor.updateOptions({ theme });\n this.editorConfigurationChanged.emit();\n }\n }\n get theme(): string {\n return this._theme;\n }\n\n /**\n * fullScreenKeyBinding?: number\n * See here for key bindings https://microsoft.github.io/monaco-editor/api/enums/monaco.keycode.html\n * Sets the KeyCode for shortcutting to Fullscreen mode\n */\n @Input()\n set fullScreenKeyBinding(keycode: number[]) {\n this._keycode = keycode;\n }\n get fullScreenKeyBinding(): number[] {\n return this._keycode;\n }\n\n /**\n * editorOptions?: object\n * Options used on editor instantiation. Available options listed here:\n * https://microsoft.github.io/monaco-editor/api/interfaces/editor.ieditoroptions.html\n */\n @Input()\n set editorOptions(editorOptions: any) {\n this._editorOptions = editorOptions;\n if (this._componentInitialized) {\n this._editor.updateOptions(editorOptions);\n this.editorConfigurationChanged.emit();\n }\n }\n get editorOptions(): any {\n return this._editorOptions;\n }\n\n /**\n * layout method that calls layout method of editor and instructs the editor to remeasure its container\n */\n layout(): void {\n if (this._componentInitialized) {\n this._editor.layout();\n }\n }\n\n /**\n * Returns if in Full Screen Mode or not\n */\n get isFullScreen(): boolean {\n return this._isFullScreen;\n }\n\n // tslint:disable-next-line:member-ordering\n constructor(\n _changeDetectorRef: ChangeDetectorRef,\n private _elementRef: ElementRef\n ) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n const containerDiv: HTMLDivElement = this._editorContainer.nativeElement;\n containerDiv.id = this._editorInnerContainer;\n\n this._editor = monaco.editor.create(\n containerDiv,\n Object.assign(\n {\n value: this._value,\n language: this.language,\n theme: this._theme,\n },\n this.editorOptions\n )\n );\n this._componentInitialized = true;\n setTimeout(() => {\n this.applyLanguage();\n this._fromEditor = true;\n this.applyValue();\n this.applyStyle();\n this.editorInitialized.emit(this._editor);\n this.editorConfigurationChanged.emit();\n });\n // The `onDidChangeContent` returns a disposable object (an object with `dispose()` method) which will cleanup\n // the listener. The callback, that we pass to `onDidChangeContent`, captures `this`. This leads to a circular reference\n // (`td-code-editor -> monaco -> td-code-editor`) and prevents the `td-code-editor` from being GC'd.\n this._onDidChangeContentDisposable = this._editor\n .getModel()\n ?.onDidChangeContent(() => {\n this._fromEditor = true;\n this.writeValue(this._editor.getValue());\n this.layout();\n });\n this.addFullScreenModeCommand();\n\n merge(\n fromEvent(window, 'resize').pipe(debounceTime(100)),\n this._widthSubject.asObservable().pipe(distinctUntilChanged()),\n this._heightSubject.asObservable().pipe(distinctUntilChanged())\n )\n .pipe(takeUntil(this._destroy), debounceTime(100))\n .subscribe(() => {\n this.layout();\n this._changeDetectorRef.markForCheck();\n });\n timer(500, 250)\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n if (this._elementRef && this._elementRef.nativeElement) {\n this._widthSubject.next(\n (<HTMLElement>(\n this._elementRef.nativeElement\n )).getBoundingClientRect().width\n );\n this._heightSubject.next(\n (<HTMLElement>(\n this._elementRef.nativeElement\n )).getBoundingClientRect().height\n );\n }\n });\n }\n\n ngOnDestroy(): void {\n this._changeDetectorRef.detach();\n this._registeredLanguagesStyles.forEach((style: HTMLStyleElement) =>\n style.remove()\n );\n if (this._onDidChangeContentDisposable) {\n this._onDidChangeContentDisposable.dispose();\n this._onDidChangeContentDisposable = undefined;\n }\n if (this._editor) {\n this._editor.dispose();\n }\n this._destroy.next(true);\n this._destroy.unsubscribe();\n }\n\n /**\n * showFullScreenEditor request for full screen of Code Editor based on its browser type.\n */\n public showFullScreenEditor(): void {\n if (this._componentInitialized) {\n const codeEditorElement: HTMLDivElement = this._editorContainer\n .nativeElement as HTMLDivElement;\n codeEditorElement.requestFullscreen();\n }\n this._isFullScreen = true;\n }\n\n /**\n * exitFullScreenEditor request to exit full screen of Code Editor based on its browser type.\n */\n public exitFullScreenEditor(): void {\n if (this._componentInitialized) {\n document.exitFullscreen();\n }\n this._isFullScreen = false;\n }\n\n /**\n * addFullScreenModeCommand used to add the fullscreen option to the context menu\n */\n private addFullScreenModeCommand(): void {\n this._editor.addAction({\n // An unique identifier of the contributed action.\n id: 'fullScreen',\n // A label of the action that will be presented to the user.\n label: 'Full Screen',\n // An optional array of keybindings for the action.\n contextMenuGroupId: 'navigation',\n keybindings: this._keycode,\n contextMenuOrder: 1.5,\n // Method that will be executed when the action is triggered.\n run: () => {\n this.showFullScreenEditor();\n },\n });\n }\n}\n","<div class=\"editor-container\" #editorContainer></div>\n","import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\nimport { TdCodeEditorComponent } from './code-editor.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TdCodeEditorComponent],\n exports: [TdCodeEditorComponent],\n bootstrap: [TdCodeEditorComponent],\n})\nexport class CovalentCodeEditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { EventEmitter, OnInit, ElementRef,
|
|
1
|
+
import { EventEmitter, OnInit, ElementRef, ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor } from '@angular/forms';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
export declare class TdCodeEditorBase {
|
|
7
|
+
_changeDetectorRef: ChangeDetectorRef;
|
|
8
|
+
constructor(_changeDetectorRef: ChangeDetectorRef);
|
|
9
|
+
}
|
|
10
|
+
export declare const _TdCodeEditorMixinBase: (new (...args: any[]) => import("@covalent/core/common").IControlValueAccessor) & (new (...args: any[]) => import("@covalent/core/common").ICanDisable) & typeof TdCodeEditorBase;
|
|
11
|
+
export declare class TdCodeEditorComponent extends _TdCodeEditorMixinBase implements OnInit, ControlValueAccessor, OnDestroy {
|
|
9
12
|
private _elementRef;
|
|
10
13
|
private _destroy;
|
|
11
14
|
private _widthSubject;
|
|
@@ -45,23 +48,13 @@ export declare class TdCodeEditorComponent implements OnInit, ControlValueAccess
|
|
|
45
48
|
* Event emitted any time something changes the editor value
|
|
46
49
|
*/
|
|
47
50
|
editorValueChange: EventEmitter<void>;
|
|
48
|
-
|
|
49
|
-
* The change event notifies you about a change happening in an input field.
|
|
50
|
-
* Since the component is not a native Angular component have to specifiy the event emitter ourself
|
|
51
|
-
*/
|
|
52
|
-
change: EventEmitter<void>;
|
|
53
|
-
propagateChange: (_: any) => void;
|
|
54
|
-
onTouched: () => any;
|
|
51
|
+
propagateChange: (_: any) => () => void;
|
|
55
52
|
/**
|
|
56
53
|
* value?: string
|
|
57
54
|
*/
|
|
58
55
|
set value(value: string);
|
|
59
56
|
get value(): string;
|
|
60
57
|
applyValue(): void;
|
|
61
|
-
/**
|
|
62
|
-
* Implemented as part of ControlValueAccessor.
|
|
63
|
-
*/
|
|
64
|
-
writeValue(value: any): void;
|
|
65
58
|
registerOnChange(fn: any): void;
|
|
66
59
|
registerOnTouched(fn: any): void;
|
|
67
60
|
/**
|
|
@@ -104,7 +97,7 @@ export declare class TdCodeEditorComponent implements OnInit, ControlValueAccess
|
|
|
104
97
|
/**
|
|
105
98
|
* editorOptions?: object
|
|
106
99
|
* Options used on editor instantiation. Available options listed here:
|
|
107
|
-
* https://microsoft.github.io/monaco-editor/api/interfaces/
|
|
100
|
+
* https://microsoft.github.io/monaco-editor/api/interfaces/editor.ieditoroptions.html
|
|
108
101
|
*/
|
|
109
102
|
set editorOptions(editorOptions: any);
|
|
110
103
|
get editorOptions(): any;
|
|
@@ -116,7 +109,7 @@ export declare class TdCodeEditorComponent implements OnInit, ControlValueAccess
|
|
|
116
109
|
* Returns if in Full Screen Mode or not
|
|
117
110
|
*/
|
|
118
111
|
get isFullScreen(): boolean;
|
|
119
|
-
constructor(
|
|
112
|
+
constructor(_changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef);
|
|
120
113
|
ngOnInit(): void;
|
|
121
114
|
ngOnDestroy(): void;
|
|
122
115
|
/**
|
|
@@ -132,5 +125,5 @@ export declare class TdCodeEditorComponent implements OnInit, ControlValueAccess
|
|
|
132
125
|
*/
|
|
133
126
|
private addFullScreenModeCommand;
|
|
134
127
|
static ɵfac: i0.ɵɵFactoryDeclaration<TdCodeEditorComponent, never>;
|
|
135
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TdCodeEditorComponent, "td-code-editor", never, { "value": "value"; "language": "language"; "editorStyle": "editorStyle"; "theme": "theme"; "fullScreenKeyBinding": "fullScreenKeyBinding"; "editorOptions": "editorOptions"; }, { "editorInitialized": "editorInitialized"; "editorConfigurationChanged": "editorConfigurationChanged"; "editorLanguageChanged": "editorLanguageChanged"; "editorValueChange": "editorValueChange";
|
|
128
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TdCodeEditorComponent, "td-code-editor", never, { "value": "value"; "language": "language"; "editorStyle": "editorStyle"; "theme": "theme"; "fullScreenKeyBinding": "fullScreenKeyBinding"; "editorOptions": "editorOptions"; }, { "editorInitialized": "editorInitialized"; "editorConfigurationChanged": "editorConfigurationChanged"; "editorLanguageChanged": "editorLanguageChanged"; "editorValueChange": "editorValueChange"; }, never, never>;
|
|
136
129
|
}
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@covalent/code-editor",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.0-develop.10",
|
|
4
4
|
"description": "Teradata UI Platform Code Editor Module",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -17,23 +17,27 @@
|
|
|
17
17
|
"url": "https://github.com/teradata/covalent.git"
|
|
18
18
|
},
|
|
19
19
|
"bugs": {
|
|
20
|
-
"url": "https://github.com/
|
|
20
|
+
"url": "https://github.com/teradata/covalent/issues"
|
|
21
21
|
},
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"author": "Teradata UX",
|
|
24
|
-
"contributors": [
|
|
25
|
-
"Kyle Ledbetter <kyle.ledbetter@teradata.com>",
|
|
26
|
-
"Richa Vyas <richa.vyas@teradata.com>",
|
|
27
|
-
"Ed Morales <eduardo.morales@teradata.com>",
|
|
28
|
-
"Jason Weaver <jason.weaver@teradata.com>",
|
|
29
|
-
"Jeremy Wilken <jeremy.wilken@teradata.com>",
|
|
30
|
-
"Jeremy Smartt <jeremy.smartt@teradata.com>",
|
|
31
|
-
"Steven Ov <steven.ov@teradata.com>"
|
|
32
|
-
],
|
|
33
24
|
"peerDependencies": {
|
|
34
|
-
"
|
|
35
|
-
"@angular/
|
|
36
|
-
"
|
|
25
|
+
"@angular/common": "^13.2.0",
|
|
26
|
+
"@angular/core": "^13.2.0",
|
|
27
|
+
"monaco-editor": "^0.32.1",
|
|
28
|
+
"@angular/forms": "^13.2.0",
|
|
29
|
+
"rxjs": "~7.4.0",
|
|
30
|
+
"@covalent/core": "4.1.0-develop.10",
|
|
31
|
+
"@angular/router": "^13.2.0",
|
|
32
|
+
"@angular/platform-browser": "^13.2.0",
|
|
33
|
+
"@angular/material": "^13.2.1",
|
|
34
|
+
"@angular/animations": "^13.2.0",
|
|
35
|
+
"@angular/cdk": "^13.2.1",
|
|
36
|
+
"@angular/platform-browser-dynamic": "^13.2.0",
|
|
37
|
+
"zone.js": "~0.11.4"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"tslib": "^2.0.0"
|
|
37
41
|
},
|
|
38
42
|
"module": "fesm2015/covalent-code-editor.mjs",
|
|
39
43
|
"es2020": "fesm2020/covalent-code-editor.mjs",
|
|
@@ -54,11 +58,5 @@
|
|
|
54
58
|
"default": "./fesm2020/covalent-code-editor.mjs"
|
|
55
59
|
}
|
|
56
60
|
},
|
|
57
|
-
"sideEffects": false
|
|
58
|
-
|
|
59
|
-
"tslib": "^2.3.0"
|
|
60
|
-
},
|
|
61
|
-
"scripts": {
|
|
62
|
-
"prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by Ivy in full compilation mode. This is not allowed.\\nPlease delete and rebuild the package with Ivy partial compilation mode, before attempting to publish.\\n')\" && exit 1"
|
|
63
|
-
}
|
|
64
|
-
}
|
|
61
|
+
"sideEffects": false
|
|
62
|
+
}
|
package/public_api.d.ts
ADDED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
:host {
|
|
2
|
-
display: block;
|
|
3
|
-
position: relative;
|
|
4
|
-
|
|
5
|
-
.editor-container {
|
|
6
|
-
position: absolute;
|
|
7
|
-
top: 0;
|
|
8
|
-
bottom: 0;
|
|
9
|
-
left: 0;
|
|
10
|
-
right: 0;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
::ng-deep {
|
|
15
|
-
// hide this part of monaco so it doesnt add height
|
|
16
|
-
.monaco-aria-container {
|
|
17
|
-
display: none;
|
|
18
|
-
}
|
|
19
|
-
}
|