@covalent/code-editor 9.1.2 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, PLATFORM_ID, forwardRef, Component, Inject, ViewChild, Output, Input, NgModule } from '@angular/core';
3
- import { isPlatformServer, CommonModule } from '@angular/common';
3
+ import { isPlatformServer } from '@angular/common';
4
4
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import { Subject, of, merge, fromEvent, timer } from 'rxjs';
6
6
  import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
@@ -252,6 +252,7 @@ const getTheme = (theme) => {
252
252
  const cvEditorDarkTheme = getTheme('Dark');
253
253
  const cvEditorLightTheme = getTheme('Light');
254
254
 
255
+ const _c0 = ["editorContainer"];
255
256
  const noop = () => {
256
257
  // empty method
257
258
  };
@@ -576,66 +577,77 @@ class TdCodeEditorComponent extends _TdCodeEditorMixinBase {
576
577
  },
577
578
  }));
578
579
  }
579
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TdCodeEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
580
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", 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: [
581
- {
582
- provide: NG_VALUE_ACCESSOR,
583
- useExisting: forwardRef(() => TdCodeEditorComponent),
584
- multi: true,
585
- },
586
- ], 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;inset:0}::ng-deep .monaco-aria-container{display:none}\n"] });
580
+ static ɵfac = function TdCodeEditorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdCodeEditorComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(PLATFORM_ID)); };
581
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdCodeEditorComponent, selectors: [["td-code-editor"]], viewQuery: function TdCodeEditorComponent_Query(rf, ctx) { if (rf & 1) {
582
+ i0.ɵɵviewQuery(_c0, 7);
583
+ } if (rf & 2) {
584
+ let _t;
585
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._editorContainer = _t.first);
586
+ } }, inputs: { value: "value", language: "language", editorStyle: "editorStyle", theme: "theme", fullScreenKeyBinding: "fullScreenKeyBinding", editorOptions: "editorOptions" }, outputs: { editorInitialized: "editorInitialized", editorConfigurationChanged: "editorConfigurationChanged", editorLanguageChanged: "editorLanguageChanged", editorValueChange: "editorValueChange" }, features: [i0.ɵɵProvidersFeature([
587
+ {
588
+ provide: NG_VALUE_ACCESSOR,
589
+ useExisting: forwardRef(() => TdCodeEditorComponent),
590
+ multi: true,
591
+ },
592
+ ]), i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 0, consts: [["editorContainer", ""], [1, "editor-container"]], template: function TdCodeEditorComponent_Template(rf, ctx) { if (rf & 1) {
593
+ i0.ɵɵelement(0, "div", 1, 0);
594
+ } }, styles: ["[_nghost-%COMP%]{display:block;position:relative}[_nghost-%COMP%] .editor-container[_ngcontent-%COMP%]{position:absolute;inset:0} .monaco-aria-container{display:none}"] });
587
595
  }
588
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TdCodeEditorComponent, decorators: [{
589
- type: Component,
590
- args: [{ selector: 'td-code-editor', providers: [
591
- {
592
- provide: NG_VALUE_ACCESSOR,
593
- useExisting: forwardRef(() => TdCodeEditorComponent),
594
- multi: true,
595
- },
596
- ], template: "<div class=\"editor-container\" #editorContainer></div>\n", styles: [":host{display:block;position:relative}:host .editor-container{position:absolute;inset:0}::ng-deep .monaco-aria-container{display:none}\n"] }]
597
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
598
- type: Inject,
599
- args: [PLATFORM_ID]
600
- }] }], propDecorators: { _editorContainer: [{
601
- type: ViewChild,
602
- args: ['editorContainer', { static: true }]
603
- }], editorInitialized: [{
604
- type: Output
605
- }], editorConfigurationChanged: [{
606
- type: Output
607
- }], editorLanguageChanged: [{
608
- type: Output
609
- }], editorValueChange: [{
610
- type: Output
611
- }], value: [{
612
- type: Input
613
- }], language: [{
614
- type: Input
615
- }], editorStyle: [{
616
- type: Input
617
- }], theme: [{
618
- type: Input
619
- }], fullScreenKeyBinding: [{
620
- type: Input
621
- }], editorOptions: [{
622
- type: Input
623
- }] } });
596
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdCodeEditorComponent, [{
597
+ type: Component,
598
+ args: [{ selector: 'td-code-editor', providers: [
599
+ {
600
+ provide: NG_VALUE_ACCESSOR,
601
+ useExisting: forwardRef(() => TdCodeEditorComponent),
602
+ multi: true,
603
+ },
604
+ ], template: "<div class=\"editor-container\" #editorContainer></div>\n", styles: [":host{display:block;position:relative}:host .editor-container{position:absolute;inset:0}::ng-deep .monaco-aria-container{display:none}\n"] }]
605
+ }], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
606
+ type: Inject,
607
+ args: [PLATFORM_ID]
608
+ }] }], { _editorContainer: [{
609
+ type: ViewChild,
610
+ args: ['editorContainer', { static: true }]
611
+ }], editorInitialized: [{
612
+ type: Output
613
+ }], editorConfigurationChanged: [{
614
+ type: Output
615
+ }], editorLanguageChanged: [{
616
+ type: Output
617
+ }], editorValueChange: [{
618
+ type: Output
619
+ }], value: [{
620
+ type: Input
621
+ }], language: [{
622
+ type: Input
623
+ }], editorStyle: [{
624
+ type: Input
625
+ }], theme: [{
626
+ type: Input
627
+ }], fullScreenKeyBinding: [{
628
+ type: Input
629
+ }], editorOptions: [{
630
+ type: Input
631
+ }] }); })();
632
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TdCodeEditorComponent, { className: "TdCodeEditorComponent", filePath: "lib/code-editor.component.ts", lineNumber: 63 }); })();
624
633
 
634
+ /**
635
+ * @deprecated This module is deprecated and will be removed in future versions.
636
+ * Please migrate to using standalone components as soon as possible.
637
+ */
625
638
  class CovalentCodeEditorModule {
626
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentCodeEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
627
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: CovalentCodeEditorModule, bootstrap: [TdCodeEditorComponent], declarations: [TdCodeEditorComponent], imports: [CommonModule], exports: [TdCodeEditorComponent] });
628
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentCodeEditorModule, imports: [CommonModule] });
639
+ static ɵfac = function CovalentCodeEditorModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CovalentCodeEditorModule)(); };
640
+ static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentCodeEditorModule });
641
+ static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
629
642
  }
630
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentCodeEditorModule, decorators: [{
631
- type: NgModule,
632
- args: [{
633
- imports: [CommonModule],
634
- declarations: [TdCodeEditorComponent],
635
- exports: [TdCodeEditorComponent],
636
- bootstrap: [TdCodeEditorComponent],
637
- }]
638
- }] });
643
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CovalentCodeEditorModule, [{
644
+ type: NgModule,
645
+ args: [{
646
+ imports: [TdCodeEditorComponent],
647
+ exports: [TdCodeEditorComponent],
648
+ }]
649
+ }], null, null); })();
650
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CovalentCodeEditorModule, { imports: [TdCodeEditorComponent], exports: [TdCodeEditorComponent] }); })();
639
651
 
640
652
  /**
641
653
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-code-editor.mjs","sources":["../../../../libs/angular-code-editor/src/lib/editor.theme.ts","../../../../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 * as tokens from '@covalent/tokens';\n\nexport const covalentThemeName = 'tdaa-lite';\n\nexport const covalentThemeConf = {\n base: 'vs',\n inherit: true,\n rules: [\n { token: '', foreground: '212121', background: 'f5f5f5' },\n { token: 'invalid', foreground: 'b71c1c' },\n { token: 'keyword', foreground: '3b78e7' },\n { token: 'keyword.json', foreground: 'ec407a', fontStyle: 'bold italic' },\n { token: 'comment', foreground: '0d904f' },\n { token: 'string.sql', foreground: '0d904f' },\n { token: 'number', foreground: 'E74C3C' },\n\n { token: 'key', foreground: '863B00' },\n { token: 'string.key.json', foreground: '0d904f' },\n { token: 'string.value.json', foreground: '0d904f' },\n { token: 'predefined', foreground: 'ec407a' },\n { token: 'predefined.sql', foreground: 'ec407a' },\n\n { token: 'delimiter', foreground: '000000' },\n { token: 'delimiter.html', foreground: '383838' },\n { token: 'delimiter.xml', foreground: '3b78e7' },\n\n { token: 'tag', foreground: '3b78e7' },\n { token: 'tag.id.jade', foreground: '4F76AC' },\n { token: 'tag.class.jade', foreground: '4F76AC' },\n { token: 'meta.scss', foreground: '800000' },\n { token: 'metatag', foreground: 'e00000' },\n { token: 'metatag.content.html', foreground: 'FF0000' },\n { token: 'metatag.html', foreground: '808080' },\n { token: 'metatag.xml', foreground: '808080' },\n { token: 'metatag.php', fontStyle: 'bold' },\n\n { token: 'attribute.name', foreground: '9c27b0' },\n { token: 'attribute.value', foreground: '0451A5' },\n { token: 'attribute.value.number', foreground: '09885A' },\n { token: 'attribute.value.unit', foreground: '09885A' },\n { token: 'attribute.value.html', foreground: '0000FF' },\n { token: 'attribute.value.xml', foreground: '0d904f' },\n\n { token: 'arbitration-variable', foreground: '006D90' },\n { token: 'arbitration-variable.invalid', foreground: 'b71c1c' },\n\n { token: 'operator.scss', foreground: '666666' },\n { token: 'operator', foreground: '778899' },\n ],\n colors: {\n comment: '388e3c',\n 'editor.foreground': 'ff0000',\n 'editor.background': '#f5f5f5',\n 'editorLineNumber.activeForeground': '#707070',\n 'editorLineNumber.foreground': '#b7b7b7',\n 'editor.lineHighlightBackground': '#ebebeb',\n 'inputValidation.errorBackground': '#b71c1c',\n 'inputValidation.errorBorder': 'rgba(229, 115, 115, 0.1)',\n },\n};\n\nconst getTheme = (theme: 'Light' | 'Dark') => {\n return {\n base: theme === 'Light' ? 'vs' : 'vs-dark',\n inherit: true,\n rules: [\n {\n token: '',\n foreground: tokens[`Cv${theme}CodeSnippetColor`],\n background: tokens[`Cv${theme}Surface`],\n },\n {\n token: 'arbitration-variable',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n {\n token: 'arbitration-variable.invalid',\n foreground: tokens[`Cv${theme}Negative`],\n },\n {\n token: 'attribute.name',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n {\n token: 'attribute.value',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n {\n token: 'attribute.value.number',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n {\n token: 'attribute.value.unit',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n {\n token: 'attribute.value.html',\n foreground: tokens[`Cv${theme}CodeSnippetString`],\n },\n {\n token: 'attribute.value.xml',\n foreground: tokens[`Cv${theme}CodeSnippetLiteral`],\n },\n {\n token: 'builtins',\n foreground: tokens[`Cv${theme}CodeSnippetClass`],\n },\n {\n token: 'class',\n foreground: tokens[`Cv${theme}CodeSnippetClass`],\n },\n {\n token: 'comment',\n foreground: tokens[`Cv${theme}CodeSnippetComment`],\n fontStyle: 'italic',\n },\n {\n token: 'constant',\n foreground: tokens[`Cv${theme}CodeSnippetLiteral`],\n },\n {\n token: 'delimiter',\n foreground: tokens[`CvTheme${theme}ColorsOnSurface`],\n },\n {\n token: 'delimiter.html',\n foreground: tokens[`Cv${theme}CodeSnippetSelector`],\n },\n {\n token: 'delimiter.xml',\n foreground: tokens[`Cv${theme}CodeSnippetSelector`],\n },\n {\n token: 'doctag',\n foreground: tokens[`Cv${theme}CodeSnippetKeyword`],\n },\n {\n token: 'emphasis',\n fontStyle: 'italic',\n },\n {\n token: 'formula',\n foreground: tokens[`Cv${theme}CodeSnippetKeyword`],\n },\n {\n token: 'function',\n foreground: tokens[`Cv${theme}CodeSnippetTitle`],\n },\n {\n token: 'invalid',\n foreground: tokens[`Cv${theme}Negative`],\n },\n { token: 'key', foreground: tokens[`Cv${theme}CodeSnippetString`] },\n {\n token: 'keyword',\n foreground: tokens[`Cv${theme}CodeSnippetKeyword`],\n },\n {\n token: 'keyword.json',\n foreground: tokens[`Cv${theme}CodeSnippetTitle`],\n fontStyle: 'bold italic',\n },\n {\n token: 'link',\n foreground: tokens[`Cv${theme}CodeSnippetTitle`],\n fontStyle: 'underline',\n },\n {\n token: 'literal',\n foreground: tokens[`Cv${theme}CodeSnippetLiteral`],\n },\n {\n token: 'meta',\n foreground: tokens[`Cv${theme}CodeSnippetTitle`],\n },\n {\n token: 'number',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n {\n token: 'operator',\n foreground: tokens[`Cv${theme}CodeSnippetLiteral`],\n },\n { token: 'predefined', foreground: tokens[`Cv${theme}CodeSnippetTitle`] },\n {\n token: 'predefined.sql',\n foreground: tokens[`Cv${theme}CodeSnippetTitle`],\n },\n {\n token: 'predefined.python',\n foreground: tokens[`Cv${theme}CodeSnippetClass`],\n },\n {\n token: 'punctuation',\n foreground: tokens[`Cv${theme}CodeSnippetColor`],\n },\n {\n token: 'string',\n foreground: tokens[`Cv${theme}CodeSnippetString`],\n },\n {\n token: 'string.sql',\n foreground: tokens[`Cv${theme}CodeSnippetString`],\n },\n {\n token: 'string.key.json',\n foreground: tokens[`Cv${theme}CodeSnippetString`],\n },\n {\n token: 'string.value.json',\n foreground: tokens[`Cv${theme}CodeSnippetString`],\n },\n {\n token: 'strong',\n fontStyle: 'bold',\n },\n {\n token: 'tag',\n foreground: tokens[`Cv${theme}CodeSnippetSelector`],\n },\n {\n token: 'tag.id.jade',\n foreground: tokens[`Cv${theme}CodeSnippetClass`],\n },\n {\n token: 'tag.class.jade',\n foreground: tokens[`Cv${theme}CodeSnippetClass`],\n },\n {\n token: 'type',\n foreground: tokens[`Cv${theme}CodeSnippetClass`],\n },\n {\n token: 'variable',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n ],\n colors: {\n comment: tokens[`Cv${theme}CodeSnippetComment`],\n 'editor.background': tokens[`Cv${theme}Surface`],\n 'editor.foreground': tokens[`CvTheme${theme}ColorsOnSurface`],\n 'editorCursor.foreground': tokens[`Cv${theme}TextSecondaryOnBackground`],\n 'editorLineNumber.activeForeground':\n tokens[`CvTheme${theme}ColorsOnSurface74`],\n 'editorLineNumber.foreground': tokens[`CvTheme${theme}ColorsOnSurface38`],\n 'editor.lineHighlightBackground':\n tokens[`CvTheme${theme}ColorsSurfaceContainerLow`],\n 'inputValidation.errorBackground': tokens[`Cv${theme}Negative`],\n 'inputValidation.errorBorder':\n tokens[`CvTheme${theme}PalettesNegative95`],\n },\n };\n};\n\n// Any changes to these themes should also be reflected in the components/code-editor theme.\nexport const cvEditorDarkTheme = getTheme('Dark');\n\nexport const cvEditorLightTheme = getTheme('Light');\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n ViewChild,\n ElementRef,\n forwardRef,\n ChangeDetectorRef,\n OnDestroy,\n NgZone,\n Inject,\n PLATFORM_ID,\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\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 {\n editor,\n languages,\n IDisposable,\n} from 'monaco-editor/esm/vs/editor/editor.api';\n\nimport {\n mixinControlValueAccessor,\n mixinDisabled,\n} from '@covalent/core/common';\nimport { cvEditorDarkTheme, cvEditorLightTheme } from './editor.theme';\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%;';\n private _value = '';\n private _theme = 'cv-light';\n private _language = 'javascript';\n private _subject: Subject<string> = new Subject();\n private _editorInnerContainer: string =\n 'editorInnerContainer' + uniqueCounter++;\n private _editor!: 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 _disposables: 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<editor.IStandaloneCodeEditor> =\n new EventEmitter<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 editor.setModelLanguage(\n this._editor.getModel() as 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 languages.register({ id: language.id });\n\n this._disposables.push(\n languages.setMonarchTokensProvider(language.id, {\n tokenizer: {\n root: language.monarchTokensProvider,\n },\n })\n );\n\n // Define a new theme that constains only rules that match this language\n editor.defineTheme(language.customTheme.id, language.customTheme.theme);\n this._theme = language.customTheme.id;\n\n this._disposables.push(\n languages.registerCompletionItemProvider(language.id, {\n provideCompletionItems: () => {\n return language.completionItemProvider;\n },\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/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<HTMLElement>,\n private _ngZone: NgZone,\n @Inject(PLATFORM_ID) private platformId: string\n ) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n\n const containerDiv: HTMLDivElement = this._editorContainer.nativeElement;\n containerDiv.id = this._editorInnerContainer;\n\n // Add teradata branded themes\n editor.defineTheme(\n 'cv-light',\n cvEditorLightTheme as editor.IStandaloneThemeData\n );\n\n editor.defineTheme(\n 'cv-dark',\n cvEditorDarkTheme as editor.IStandaloneThemeData\n );\n\n this._editor = 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._disposables.push(\n (this._editor.getModel() as editor.ITextModel).onDidChangeContent(() => {\n this._fromEditor = true;\n this.writeValue(this._editor.getValue());\n this.layout();\n })\n );\n this.addFullScreenModeCommand();\n\n this._ngZone.runOutsideAngular(() =>\n merge(\n fromEvent(window, 'resize').pipe(debounceTime(100)),\n this._widthSubject.asObservable().pipe(distinctUntilChanged()),\n this._heightSubject.asObservable().pipe(distinctUntilChanged())\n )\n .pipe(debounceTime(100), takeUntil(this._destroy))\n .subscribe(() => {\n // Note: this is being called outside of the Angular zone since we don't have to\n // run change detection whenever the editor resizes itself.\n this.layout();\n })\n );\n this._ngZone.runOutsideAngular(() =>\n timer(500, 250)\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n const { width, height } =\n this._elementRef.nativeElement.getBoundingClientRect();\n this._widthSubject.next(width);\n this._heightSubject.next(height);\n })\n );\n }\n\n ngOnDestroy(): void {\n this._changeDetectorRef.detach();\n this._registeredLanguagesStyles.forEach((style: HTMLStyleElement) =>\n style.remove()\n );\n while (this._disposables.length) {\n this._disposables.pop()?.dispose();\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._disposables.push(\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}\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
+ {"version":3,"file":"covalent-code-editor.mjs","sources":["../../../../libs/angular-code-editor/src/lib/editor.theme.ts","../../../../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 * as tokens from '@covalent/tokens';\n\nexport const covalentThemeName = 'tdaa-lite';\n\nexport const covalentThemeConf = {\n base: 'vs',\n inherit: true,\n rules: [\n { token: '', foreground: '212121', background: 'f5f5f5' },\n { token: 'invalid', foreground: 'b71c1c' },\n { token: 'keyword', foreground: '3b78e7' },\n { token: 'keyword.json', foreground: 'ec407a', fontStyle: 'bold italic' },\n { token: 'comment', foreground: '0d904f' },\n { token: 'string.sql', foreground: '0d904f' },\n { token: 'number', foreground: 'E74C3C' },\n\n { token: 'key', foreground: '863B00' },\n { token: 'string.key.json', foreground: '0d904f' },\n { token: 'string.value.json', foreground: '0d904f' },\n { token: 'predefined', foreground: 'ec407a' },\n { token: 'predefined.sql', foreground: 'ec407a' },\n\n { token: 'delimiter', foreground: '000000' },\n { token: 'delimiter.html', foreground: '383838' },\n { token: 'delimiter.xml', foreground: '3b78e7' },\n\n { token: 'tag', foreground: '3b78e7' },\n { token: 'tag.id.jade', foreground: '4F76AC' },\n { token: 'tag.class.jade', foreground: '4F76AC' },\n { token: 'meta.scss', foreground: '800000' },\n { token: 'metatag', foreground: 'e00000' },\n { token: 'metatag.content.html', foreground: 'FF0000' },\n { token: 'metatag.html', foreground: '808080' },\n { token: 'metatag.xml', foreground: '808080' },\n { token: 'metatag.php', fontStyle: 'bold' },\n\n { token: 'attribute.name', foreground: '9c27b0' },\n { token: 'attribute.value', foreground: '0451A5' },\n { token: 'attribute.value.number', foreground: '09885A' },\n { token: 'attribute.value.unit', foreground: '09885A' },\n { token: 'attribute.value.html', foreground: '0000FF' },\n { token: 'attribute.value.xml', foreground: '0d904f' },\n\n { token: 'arbitration-variable', foreground: '006D90' },\n { token: 'arbitration-variable.invalid', foreground: 'b71c1c' },\n\n { token: 'operator.scss', foreground: '666666' },\n { token: 'operator', foreground: '778899' },\n ],\n colors: {\n comment: '388e3c',\n 'editor.foreground': 'ff0000',\n 'editor.background': '#f5f5f5',\n 'editorLineNumber.activeForeground': '#707070',\n 'editorLineNumber.foreground': '#b7b7b7',\n 'editor.lineHighlightBackground': '#ebebeb',\n 'inputValidation.errorBackground': '#b71c1c',\n 'inputValidation.errorBorder': 'rgba(229, 115, 115, 0.1)',\n },\n};\n\nconst getTheme = (theme: 'Light' | 'Dark') => {\n return {\n base: theme === 'Light' ? 'vs' : 'vs-dark',\n inherit: true,\n rules: [\n {\n token: '',\n foreground: tokens[`Cv${theme}CodeSnippetColor`],\n background: tokens[`Cv${theme}Surface`],\n },\n {\n token: 'arbitration-variable',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n {\n token: 'arbitration-variable.invalid',\n foreground: tokens[`Cv${theme}Negative`],\n },\n {\n token: 'attribute.name',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n {\n token: 'attribute.value',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n {\n token: 'attribute.value.number',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n {\n token: 'attribute.value.unit',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n {\n token: 'attribute.value.html',\n foreground: tokens[`Cv${theme}CodeSnippetString`],\n },\n {\n token: 'attribute.value.xml',\n foreground: tokens[`Cv${theme}CodeSnippetLiteral`],\n },\n {\n token: 'builtins',\n foreground: tokens[`Cv${theme}CodeSnippetClass`],\n },\n {\n token: 'class',\n foreground: tokens[`Cv${theme}CodeSnippetClass`],\n },\n {\n token: 'comment',\n foreground: tokens[`Cv${theme}CodeSnippetComment`],\n fontStyle: 'italic',\n },\n {\n token: 'constant',\n foreground: tokens[`Cv${theme}CodeSnippetLiteral`],\n },\n {\n token: 'delimiter',\n foreground: tokens[`CvTheme${theme}ColorsOnSurface`],\n },\n {\n token: 'delimiter.html',\n foreground: tokens[`Cv${theme}CodeSnippetSelector`],\n },\n {\n token: 'delimiter.xml',\n foreground: tokens[`Cv${theme}CodeSnippetSelector`],\n },\n {\n token: 'doctag',\n foreground: tokens[`Cv${theme}CodeSnippetKeyword`],\n },\n {\n token: 'emphasis',\n fontStyle: 'italic',\n },\n {\n token: 'formula',\n foreground: tokens[`Cv${theme}CodeSnippetKeyword`],\n },\n {\n token: 'function',\n foreground: tokens[`Cv${theme}CodeSnippetTitle`],\n },\n {\n token: 'invalid',\n foreground: tokens[`Cv${theme}Negative`],\n },\n { token: 'key', foreground: tokens[`Cv${theme}CodeSnippetString`] },\n {\n token: 'keyword',\n foreground: tokens[`Cv${theme}CodeSnippetKeyword`],\n },\n {\n token: 'keyword.json',\n foreground: tokens[`Cv${theme}CodeSnippetTitle`],\n fontStyle: 'bold italic',\n },\n {\n token: 'link',\n foreground: tokens[`Cv${theme}CodeSnippetTitle`],\n fontStyle: 'underline',\n },\n {\n token: 'literal',\n foreground: tokens[`Cv${theme}CodeSnippetLiteral`],\n },\n {\n token: 'meta',\n foreground: tokens[`Cv${theme}CodeSnippetTitle`],\n },\n {\n token: 'number',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n {\n token: 'operator',\n foreground: tokens[`Cv${theme}CodeSnippetLiteral`],\n },\n { token: 'predefined', foreground: tokens[`Cv${theme}CodeSnippetTitle`] },\n {\n token: 'predefined.sql',\n foreground: tokens[`Cv${theme}CodeSnippetTitle`],\n },\n {\n token: 'predefined.python',\n foreground: tokens[`Cv${theme}CodeSnippetClass`],\n },\n {\n token: 'punctuation',\n foreground: tokens[`Cv${theme}CodeSnippetColor`],\n },\n {\n token: 'string',\n foreground: tokens[`Cv${theme}CodeSnippetString`],\n },\n {\n token: 'string.sql',\n foreground: tokens[`Cv${theme}CodeSnippetString`],\n },\n {\n token: 'string.key.json',\n foreground: tokens[`Cv${theme}CodeSnippetString`],\n },\n {\n token: 'string.value.json',\n foreground: tokens[`Cv${theme}CodeSnippetString`],\n },\n {\n token: 'strong',\n fontStyle: 'bold',\n },\n {\n token: 'tag',\n foreground: tokens[`Cv${theme}CodeSnippetSelector`],\n },\n {\n token: 'tag.id.jade',\n foreground: tokens[`Cv${theme}CodeSnippetClass`],\n },\n {\n token: 'tag.class.jade',\n foreground: tokens[`Cv${theme}CodeSnippetClass`],\n },\n {\n token: 'type',\n foreground: tokens[`Cv${theme}CodeSnippetClass`],\n },\n {\n token: 'variable',\n foreground: tokens[`Cv${theme}CodeSnippetVariable`],\n },\n ],\n colors: {\n comment: tokens[`Cv${theme}CodeSnippetComment`],\n 'editor.background': tokens[`Cv${theme}Surface`],\n 'editor.foreground': tokens[`CvTheme${theme}ColorsOnSurface`],\n 'editorCursor.foreground': tokens[`Cv${theme}TextSecondaryOnBackground`],\n 'editorLineNumber.activeForeground':\n tokens[`CvTheme${theme}ColorsOnSurface74`],\n 'editorLineNumber.foreground': tokens[`CvTheme${theme}ColorsOnSurface38`],\n 'editor.lineHighlightBackground':\n tokens[`CvTheme${theme}ColorsSurfaceContainerLow`],\n 'inputValidation.errorBackground': tokens[`Cv${theme}Negative`],\n 'inputValidation.errorBorder':\n tokens[`CvTheme${theme}PalettesNegative95`],\n },\n };\n};\n\n// Any changes to these themes should also be reflected in the components/code-editor theme.\nexport const cvEditorDarkTheme = getTheme('Dark');\n\nexport const cvEditorLightTheme = getTheme('Light');\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n ViewChild,\n ElementRef,\n forwardRef,\n ChangeDetectorRef,\n OnDestroy,\n NgZone,\n Inject,\n PLATFORM_ID,\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\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 {\n editor,\n languages,\n IDisposable,\n} from 'monaco-editor/esm/vs/editor/editor.api';\n\nimport {\n mixinControlValueAccessor,\n mixinDisabled,\n} from '@covalent/core/common';\nimport { cvEditorDarkTheme, cvEditorLightTheme } from './editor.theme';\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%;';\n private _value = '';\n private _theme = 'cv-light';\n private _language = 'javascript';\n private _subject: Subject<string> = new Subject();\n private _editorInnerContainer: string =\n 'editorInnerContainer' + uniqueCounter++;\n private _editor!: 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 _disposables: 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<editor.IStandaloneCodeEditor> =\n new EventEmitter<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 editor.setModelLanguage(\n this._editor.getModel() as 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 languages.register({ id: language.id });\n\n this._disposables.push(\n languages.setMonarchTokensProvider(language.id, {\n tokenizer: {\n root: language.monarchTokensProvider,\n },\n })\n );\n\n // Define a new theme that constains only rules that match this language\n editor.defineTheme(language.customTheme.id, language.customTheme.theme);\n this._theme = language.customTheme.id;\n\n this._disposables.push(\n languages.registerCompletionItemProvider(language.id, {\n provideCompletionItems: () => {\n return language.completionItemProvider;\n },\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/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<HTMLElement>,\n private _ngZone: NgZone,\n @Inject(PLATFORM_ID) private platformId: string\n ) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n\n const containerDiv: HTMLDivElement = this._editorContainer.nativeElement;\n containerDiv.id = this._editorInnerContainer;\n\n // Add teradata branded themes\n editor.defineTheme(\n 'cv-light',\n cvEditorLightTheme as editor.IStandaloneThemeData\n );\n\n editor.defineTheme(\n 'cv-dark',\n cvEditorDarkTheme as editor.IStandaloneThemeData\n );\n\n this._editor = 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._disposables.push(\n (this._editor.getModel() as editor.ITextModel).onDidChangeContent(() => {\n this._fromEditor = true;\n this.writeValue(this._editor.getValue());\n this.layout();\n })\n );\n this.addFullScreenModeCommand();\n\n this._ngZone.runOutsideAngular(() =>\n merge(\n fromEvent(window, 'resize').pipe(debounceTime(100)),\n this._widthSubject.asObservable().pipe(distinctUntilChanged()),\n this._heightSubject.asObservable().pipe(distinctUntilChanged())\n )\n .pipe(debounceTime(100), takeUntil(this._destroy))\n .subscribe(() => {\n // Note: this is being called outside of the Angular zone since we don't have to\n // run change detection whenever the editor resizes itself.\n this.layout();\n })\n );\n this._ngZone.runOutsideAngular(() =>\n timer(500, 250)\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n const { width, height } =\n this._elementRef.nativeElement.getBoundingClientRect();\n this._widthSubject.next(width);\n this._heightSubject.next(height);\n })\n );\n }\n\n ngOnDestroy(): void {\n this._changeDetectorRef.detach();\n this._registeredLanguagesStyles.forEach((style: HTMLStyleElement) =>\n style.remove()\n );\n while (this._disposables.length) {\n this._disposables.pop()?.dispose();\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._disposables.push(\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}\n","<div class=\"editor-container\" #editorContainer></div>\n","import { NgModule } from '@angular/core';\nimport { TdCodeEditorComponent } from './code-editor.component';\n\n/**\n * @deprecated This module is deprecated and will be removed in future versions.\n * Please migrate to using standalone components as soon as possible.\n */\n@NgModule({\n imports: [TdCodeEditorComponent],\n exports: [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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"}
@@ -127,5 +127,5 @@ export declare class TdCodeEditorComponent extends _TdCodeEditorMixinBase implem
127
127
  */
128
128
  private addFullScreenModeCommand;
129
129
  static ɵfac: i0.ɵɵFactoryDeclaration<TdCodeEditorComponent, never>;
130
- static ɵcmp: i0.ɵɵComponentDeclaration<TdCodeEditorComponent, "td-code-editor", never, { "value": { "alias": "value"; "required": false; }; "language": { "alias": "language"; "required": false; }; "editorStyle": { "alias": "editorStyle"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "fullScreenKeyBinding": { "alias": "fullScreenKeyBinding"; "required": false; }; "editorOptions": { "alias": "editorOptions"; "required": false; }; }, { "editorInitialized": "editorInitialized"; "editorConfigurationChanged": "editorConfigurationChanged"; "editorLanguageChanged": "editorLanguageChanged"; "editorValueChange": "editorValueChange"; }, never, never, false, never>;
130
+ static ɵcmp: i0.ɵɵComponentDeclaration<TdCodeEditorComponent, "td-code-editor", never, { "value": { "alias": "value"; "required": false; }; "language": { "alias": "language"; "required": false; }; "editorStyle": { "alias": "editorStyle"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "fullScreenKeyBinding": { "alias": "fullScreenKeyBinding"; "required": false; }; "editorOptions": { "alias": "editorOptions"; "required": false; }; }, { "editorInitialized": "editorInitialized"; "editorConfigurationChanged": "editorConfigurationChanged"; "editorLanguageChanged": "editorLanguageChanged"; "editorValueChange": "editorValueChange"; }, never, never, true, never>;
131
131
  }
@@ -1,8 +1,11 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./code-editor.component";
3
- import * as i2 from "@angular/common";
3
+ /**
4
+ * @deprecated This module is deprecated and will be removed in future versions.
5
+ * Please migrate to using standalone components as soon as possible.
6
+ */
4
7
  export declare class CovalentCodeEditorModule {
5
8
  static ɵfac: i0.ɵɵFactoryDeclaration<CovalentCodeEditorModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<CovalentCodeEditorModule, [typeof i1.TdCodeEditorComponent], [typeof i2.CommonModule], [typeof i1.TdCodeEditorComponent]>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CovalentCodeEditorModule, never, [typeof i1.TdCodeEditorComponent], [typeof i1.TdCodeEditorComponent]>;
7
10
  static ɵinj: i0.ɵɵInjectorDeclaration<CovalentCodeEditorModule>;
8
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@covalent/code-editor",
3
- "version": "9.1.2",
3
+ "version": "10.0.0",
4
4
  "description": "Teradata UI Platform Code Editor Module",
5
5
  "keywords": [
6
6
  "angular",
@@ -22,12 +22,12 @@
22
22
  "license": "MIT",
23
23
  "author": "Teradata UX",
24
24
  "peerDependencies": {
25
- "@angular/common": "18.x.x",
26
- "@angular/core": "18.x.x",
25
+ "@angular/common": "19.x.x",
26
+ "@angular/core": "19.x.x",
27
27
  "monaco-editor": "^0.52.0"
28
28
  },
29
29
  "dependencies": {
30
- "tslib": "^2.3.0"
30
+ "tslib": "^2.8.1"
31
31
  },
32
32
  "module": "fesm2022/covalent-code-editor.mjs",
33
33
  "typings": "index.d.ts",
@@ -37,10 +37,11 @@
37
37
  },
38
38
  ".": {
39
39
  "types": "./index.d.ts",
40
- "esm2022": "./esm2022/covalent-code-editor.mjs",
41
- "esm": "./esm2022/covalent-code-editor.mjs",
42
40
  "default": "./fesm2022/covalent-code-editor.mjs"
43
41
  }
44
42
  },
45
- "sideEffects": false
43
+ "sideEffects": false,
44
+ "scripts": {
45
+ "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"
46
+ }
46
47
  }
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtY29kZS1lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29kZS1lZGl0b3Ivc3JjL2NvdmFsZW50LWNvZGUtZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -1,381 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, forwardRef, ChangeDetectorRef, NgZone, Inject, PLATFORM_ID, } from '@angular/core';
2
- import { isPlatformServer } from '@angular/common';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { of, Subject } from 'rxjs';
5
- import { fromEvent, merge, timer } from 'rxjs';
6
- import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
7
- // Use esm version to support shipping subset of languages and features
8
- import { editor, languages, } from 'monaco-editor/esm/vs/editor/editor.api';
9
- import { mixinControlValueAccessor, mixinDisabled, } from '@covalent/core/common';
10
- import { cvEditorDarkTheme, cvEditorLightTheme } from './editor.theme';
11
- import * as i0 from "@angular/core";
12
- const noop = () => {
13
- // empty method
14
- };
15
- // counter for ids to allow for multiple editors on one page
16
- let uniqueCounter = 0;
17
- export class TdCodeEditorBase {
18
- _changeDetectorRef;
19
- constructor(_changeDetectorRef) {
20
- this._changeDetectorRef = _changeDetectorRef;
21
- }
22
- }
23
- export const _TdCodeEditorMixinBase = mixinControlValueAccessor(mixinDisabled(TdCodeEditorBase), []);
24
- export class TdCodeEditorComponent extends _TdCodeEditorMixinBase {
25
- _elementRef;
26
- _ngZone;
27
- platformId;
28
- _destroy = new Subject();
29
- _widthSubject = new Subject();
30
- _heightSubject = new Subject();
31
- _editorStyle = 'width:100%;height:100%;';
32
- _value = '';
33
- _theme = 'cv-light';
34
- _language = 'javascript';
35
- _subject = new Subject();
36
- _editorInnerContainer = 'editorInnerContainer' + uniqueCounter++;
37
- _editor;
38
- _fromEditor = false;
39
- _componentInitialized = false;
40
- _editorOptions = {};
41
- _isFullScreen = false;
42
- _keycode;
43
- _registeredLanguagesStyles = [];
44
- _disposables = [];
45
- _editorContainer;
46
- /**
47
- * editorInitialized: function($event)
48
- * Event emitted when editor is first initialized
49
- */
50
- editorInitialized = new EventEmitter();
51
- /**
52
- * editorConfigurationChanged: function($event)
53
- * Event emitted when editor's configuration changes
54
- */
55
- editorConfigurationChanged = new EventEmitter();
56
- /**
57
- * editorLanguageChanged: function($event)
58
- * Event emitted when editor's Language changes
59
- */
60
- editorLanguageChanged = new EventEmitter();
61
- /**
62
- * editorValueChange: function($event)
63
- * Event emitted any time something changes the editor value
64
- */
65
- editorValueChange = new EventEmitter();
66
- propagateChange = (_) => noop;
67
- /**
68
- * value?: string
69
- */
70
- set value(value) {
71
- this._value = value;
72
- if (this._componentInitialized) {
73
- this.applyValue();
74
- }
75
- }
76
- get value() {
77
- return this._value;
78
- }
79
- applyValue() {
80
- if (!this._fromEditor) {
81
- this._editor.setValue(this._value || '');
82
- }
83
- this._fromEditor = false;
84
- this.propagateChange(this._value);
85
- this.editorValueChange.emit();
86
- }
87
- registerOnChange(fn) {
88
- this.propagateChange = fn;
89
- }
90
- registerOnTouched(fn) {
91
- this.onTouched = fn;
92
- }
93
- /**
94
- * getEditorContent?: function
95
- * Returns the content within the editor
96
- */
97
- getValue() {
98
- if (!this._componentInitialized) {
99
- return of('');
100
- }
101
- setTimeout(() => {
102
- this._subject.next(this._value);
103
- this._subject.complete();
104
- this._subject = new Subject();
105
- });
106
- return this._subject.asObservable();
107
- }
108
- /**
109
- * language?: string
110
- * language used in editor
111
- */
112
- set language(language) {
113
- this._language = language;
114
- if (this._componentInitialized) {
115
- this.applyLanguage();
116
- }
117
- }
118
- get language() {
119
- return this._language;
120
- }
121
- applyLanguage() {
122
- if (this._language) {
123
- editor.setModelLanguage(this._editor.getModel(), this._language);
124
- this.editorLanguageChanged.emit();
125
- }
126
- }
127
- /**
128
- * registerLanguage?: function
129
- * Registers a custom Language within the editor
130
- */
131
- registerLanguage(language) {
132
- if (this._componentInitialized) {
133
- languages.register({ id: language.id });
134
- this._disposables.push(languages.setMonarchTokensProvider(language.id, {
135
- tokenizer: {
136
- root: language.monarchTokensProvider,
137
- },
138
- }));
139
- // Define a new theme that constains only rules that match this language
140
- editor.defineTheme(language.customTheme.id, language.customTheme.theme);
141
- this._theme = language.customTheme.id;
142
- this._disposables.push(languages.registerCompletionItemProvider(language.id, {
143
- provideCompletionItems: () => {
144
- return language.completionItemProvider;
145
- },
146
- }));
147
- const css = document.createElement('style');
148
- css.type = 'text/css';
149
- css.innerHTML = language.monarchTokensProviderCSS;
150
- document.body.appendChild(css);
151
- this.editorConfigurationChanged.emit();
152
- this._registeredLanguagesStyles = [
153
- ...this._registeredLanguagesStyles,
154
- css,
155
- ];
156
- }
157
- }
158
- /**
159
- * style?: string
160
- * css style of the editor on the page
161
- */
162
- set editorStyle(editorStyle) {
163
- this._editorStyle = editorStyle;
164
- if (this._componentInitialized) {
165
- this.applyStyle();
166
- }
167
- }
168
- get editorStyle() {
169
- return this._editorStyle;
170
- }
171
- applyStyle() {
172
- if (this._editorStyle) {
173
- const containerDiv = this._editorContainer.nativeElement;
174
- containerDiv.setAttribute('style', this._editorStyle);
175
- }
176
- }
177
- /**
178
- * theme?: string
179
- * Theme to be applied to editor
180
- */
181
- set theme(theme) {
182
- this._theme = theme;
183
- if (this._componentInitialized) {
184
- this._editor.updateOptions({ theme });
185
- this.editorConfigurationChanged.emit();
186
- }
187
- }
188
- get theme() {
189
- return this._theme;
190
- }
191
- /**
192
- * fullScreenKeyBinding?: number
193
- * See here for key bindings https://microsoft.github.io/monaco-editor/api/enums/keycode.html
194
- * Sets the KeyCode for shortcutting to Fullscreen mode
195
- */
196
- set fullScreenKeyBinding(keycode) {
197
- this._keycode = keycode;
198
- }
199
- get fullScreenKeyBinding() {
200
- return this._keycode;
201
- }
202
- /**
203
- * editorOptions?: object
204
- * Options used on editor instantiation. Available options listed here:
205
- * https://microsoft.github.io/monaco-editor/api/interfaces/editor.ieditoroptions.html
206
- */
207
- set editorOptions(editorOptions) {
208
- this._editorOptions = editorOptions;
209
- if (this._componentInitialized) {
210
- this._editor.updateOptions(editorOptions);
211
- this.editorConfigurationChanged.emit();
212
- }
213
- }
214
- get editorOptions() {
215
- return this._editorOptions;
216
- }
217
- /**
218
- * layout method that calls layout method of editor and instructs the editor to remeasure its container
219
- */
220
- layout() {
221
- if (this._componentInitialized) {
222
- this._editor.layout();
223
- }
224
- }
225
- /**
226
- * Returns if in Full Screen Mode or not
227
- */
228
- get isFullScreen() {
229
- return this._isFullScreen;
230
- }
231
- // tslint:disable-next-line:member-ordering
232
- constructor(_changeDetectorRef, _elementRef, _ngZone, platformId) {
233
- super(_changeDetectorRef);
234
- this._elementRef = _elementRef;
235
- this._ngZone = _ngZone;
236
- this.platformId = platformId;
237
- }
238
- ngOnInit() {
239
- if (isPlatformServer(this.platformId)) {
240
- return;
241
- }
242
- const containerDiv = this._editorContainer.nativeElement;
243
- containerDiv.id = this._editorInnerContainer;
244
- // Add teradata branded themes
245
- editor.defineTheme('cv-light', cvEditorLightTheme);
246
- editor.defineTheme('cv-dark', cvEditorDarkTheme);
247
- this._editor = editor.create(containerDiv, Object.assign({
248
- value: this._value,
249
- language: this.language,
250
- theme: this._theme,
251
- }, this.editorOptions));
252
- this._componentInitialized = true;
253
- setTimeout(() => {
254
- this.applyLanguage();
255
- this._fromEditor = true;
256
- this.applyValue();
257
- this.applyStyle();
258
- this.editorInitialized.emit(this._editor);
259
- this.editorConfigurationChanged.emit();
260
- });
261
- // The `onDidChangeContent` returns a disposable object (an object with `dispose()` method) which will cleanup
262
- // the listener. The callback, that we pass to `onDidChangeContent`, captures `this`. This leads to a circular reference
263
- // (`td-code-editor -> monaco -> td-code-editor`) and prevents the `td-code-editor` from being GC'd.
264
- this._disposables.push(this._editor.getModel().onDidChangeContent(() => {
265
- this._fromEditor = true;
266
- this.writeValue(this._editor.getValue());
267
- this.layout();
268
- }));
269
- this.addFullScreenModeCommand();
270
- this._ngZone.runOutsideAngular(() => merge(fromEvent(window, 'resize').pipe(debounceTime(100)), this._widthSubject.asObservable().pipe(distinctUntilChanged()), this._heightSubject.asObservable().pipe(distinctUntilChanged()))
271
- .pipe(debounceTime(100), takeUntil(this._destroy))
272
- .subscribe(() => {
273
- // Note: this is being called outside of the Angular zone since we don't have to
274
- // run change detection whenever the editor resizes itself.
275
- this.layout();
276
- }));
277
- this._ngZone.runOutsideAngular(() => timer(500, 250)
278
- .pipe(takeUntil(this._destroy))
279
- .subscribe(() => {
280
- const { width, height } = this._elementRef.nativeElement.getBoundingClientRect();
281
- this._widthSubject.next(width);
282
- this._heightSubject.next(height);
283
- }));
284
- }
285
- ngOnDestroy() {
286
- this._changeDetectorRef.detach();
287
- this._registeredLanguagesStyles.forEach((style) => style.remove());
288
- while (this._disposables.length) {
289
- this._disposables.pop()?.dispose();
290
- }
291
- if (this._editor) {
292
- this._editor.dispose();
293
- }
294
- this._destroy.next(true);
295
- this._destroy.unsubscribe();
296
- }
297
- /**
298
- * showFullScreenEditor request for full screen of Code Editor based on its browser type.
299
- */
300
- showFullScreenEditor() {
301
- if (this._componentInitialized) {
302
- const codeEditorElement = this._editorContainer
303
- .nativeElement;
304
- codeEditorElement.requestFullscreen();
305
- }
306
- this._isFullScreen = true;
307
- }
308
- /**
309
- * exitFullScreenEditor request to exit full screen of Code Editor based on its browser type.
310
- */
311
- exitFullScreenEditor() {
312
- if (this._componentInitialized) {
313
- document.exitFullscreen();
314
- }
315
- this._isFullScreen = false;
316
- }
317
- /**
318
- * addFullScreenModeCommand used to add the fullscreen option to the context menu
319
- */
320
- addFullScreenModeCommand() {
321
- this._disposables.push(this._editor.addAction({
322
- // An unique identifier of the contributed action.
323
- id: 'fullScreen',
324
- // A label of the action that will be presented to the user.
325
- label: 'Full Screen',
326
- // An optional array of keybindings for the action.
327
- contextMenuGroupId: 'navigation',
328
- keybindings: this._keycode,
329
- contextMenuOrder: 1.5,
330
- // Method that will be executed when the action is triggered.
331
- run: () => {
332
- this.showFullScreenEditor();
333
- },
334
- }));
335
- }
336
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TdCodeEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
337
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", 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: [
338
- {
339
- provide: NG_VALUE_ACCESSOR,
340
- useExisting: forwardRef(() => TdCodeEditorComponent),
341
- multi: true,
342
- },
343
- ], 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;inset:0}::ng-deep .monaco-aria-container{display:none}\n"] });
344
- }
345
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TdCodeEditorComponent, decorators: [{
346
- type: Component,
347
- args: [{ selector: 'td-code-editor', providers: [
348
- {
349
- provide: NG_VALUE_ACCESSOR,
350
- useExisting: forwardRef(() => TdCodeEditorComponent),
351
- multi: true,
352
- },
353
- ], template: "<div class=\"editor-container\" #editorContainer></div>\n", styles: [":host{display:block;position:relative}:host .editor-container{position:absolute;inset:0}::ng-deep .monaco-aria-container{display:none}\n"] }]
354
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
355
- type: Inject,
356
- args: [PLATFORM_ID]
357
- }] }], propDecorators: { _editorContainer: [{
358
- type: ViewChild,
359
- args: ['editorContainer', { static: true }]
360
- }], editorInitialized: [{
361
- type: Output
362
- }], editorConfigurationChanged: [{
363
- type: Output
364
- }], editorLanguageChanged: [{
365
- type: Output
366
- }], editorValueChange: [{
367
- type: Output
368
- }], value: [{
369
- type: Input
370
- }], language: [{
371
- type: Input
372
- }], editorStyle: [{
373
- type: Input
374
- }], theme: [{
375
- type: Input
376
- }], fullScreenKeyBinding: [{
377
- type: Input
378
- }], editorOptions: [{
379
- type: Input
380
- }] } });
381
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvZGUtZWRpdG9yL3NyYy9saWIvY29kZS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvZGUtZWRpdG9yL3NyYy9saWIvY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFFWixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixpQkFBaUIsRUFFakIsTUFBTSxFQUNOLE1BQU0sRUFDTixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9FLHVFQUF1RTtBQUN2RSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FFVixNQUFNLHdDQUF3QyxDQUFDO0FBRWhELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsYUFBYSxHQUNkLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXZFLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtJQUNoQixlQUFlO0FBQ2pCLENBQUMsQ0FBQztB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bUdBbVF0QixXQUFXOzRGQW5RVixxQkFBcUIsNFpBUnJCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDcEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLG9MQzVESCwyREFDQTs7NEZENkRhLHFCQUFxQjtrQkFaakMsU0FBUzsrQkFDRSxnQkFBZ0IsYUFHZjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQzs0QkFDcEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OzBCQXFRRSxNQUFNOzJCQUFDLFdBQVc7eUNBM08yQixnQkFBZ0I7c0JBQS9ELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU85QyxpQkFBaUI7c0JBRGhCLE1BQU07Z0JBUUcsMEJBQTBCO3NCQUFuQyxNQUFNO2dCQU9HLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFPRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBUU0sS0FBSztzQkFEakIsS0FBSztnQkFpREYsUUFBUTtzQkFEWCxLQUFLO2dCQW1FRixXQUFXO3NCQURkLEtBQUs7Z0JBd0JGLEtBQUs7c0JBRFIsS0FBSztnQkFrQkYsb0JBQW9CO3NCQUR2QixLQUFLO2dCQWNGLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkRlc3Ryb3ksXG4gIE5nWm9uZSxcbiAgSW5qZWN0LFxuICBQTEFURk9STV9JRCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBVc2UgZXNtIHZlcnNpb24gdG8gc3VwcG9ydCBzaGlwcGluZyBzdWJzZXQgb2YgbGFuZ3VhZ2VzIGFuZCBmZWF0dXJlc1xuaW1wb3J0IHtcbiAgZWRpdG9yLFxuICBsYW5ndWFnZXMsXG4gIElEaXNwb3NhYmxlLFxufSBmcm9tICdtb25hY28tZWRpdG9yL2VzbS92cy9lZGl0b3IvZWRpdG9yLmFwaSc7XG5cbmltcG9ydCB7XG4gIG1peGluQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIG1peGluRGlzYWJsZWQsXG59IGZyb20gJ0Bjb3ZhbGVudC9jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBjdkVkaXRvckRhcmtUaGVtZSwgY3ZFZGl0b3JMaWdodFRoZW1lIH0gZnJvbSAnLi9lZGl0b3IudGhlbWUnO1xuXG5jb25zdCBub29wID0gKCkgPT4ge1xuICAvLyBlbXB0eSBtZXRob2Rcbn07XG5cbi8vIGNvdW50ZXIgZm9yIGlkcyB0byBhbGxvdyBmb3IgbXVsdGlwbGUgZWRpdG9ycyBvbiBvbmUgcGFnZVxubGV0IHVuaXF1ZUNvdW50ZXIgPSAwO1xuXG5leHBvcnQgY2xhc3MgVGRDb2RlRWRpdG9yQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxufVxuXG5leHBvcnQgY29uc3QgX1RkQ29kZUVkaXRvck1peGluQmFzZSA9IG1peGluQ29udHJvbFZhbHVlQWNjZXNzb3IoXG4gIG1peGluRGlzYWJsZWQoVGRDb2RlRWRpdG9yQmFzZSksXG4gIFtdXG4pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1jb2RlLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2RlLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZGUtZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGRDb2RlRWRpdG9yQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRkQ29kZUVkaXRvckNvbXBvbmVudFxuICBleHRlbmRzIF9UZENvZGVFZGl0b3JNaXhpbkJhc2VcbiAgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBfZGVzdHJveTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgX3dpZHRoU3ViamVjdDogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwcml2YXRlIF9oZWlnaHRTdWJqZWN0OiBTdWJqZWN0PG51bWJlcj4gPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG5cbiAgcHJpdmF0ZSBfZWRpdG9yU3R5bGUgPSAnd2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTsnO1xuICBwcml2YXRlIF92YWx1ZSA9ICcnO1xuICBwcml2YXRlIF90aGVtZSA9ICdjdi1saWdodCc7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gJ2phdmFzY3JpcHQnO1xuICBwcml2YXRlIF9zdWJqZWN0OiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIF9lZGl0b3JJbm5lckNvbnRhaW5lcjogc3RyaW5nID1cbiAgICAnZWRpdG9ySW5uZXJDb250YWluZXInICsgdW5pcXVlQ291bnRlcisrO1xuICBwcml2YXRlIF9lZGl0b3IhOiBlZGl0b3IuSVN0YW5kYWxvbmVDb2RlRWRpdG9yO1xuICBwcml2YXRlIF9mcm9tRWRpdG9yID0gZmFsc2U7XG4gIHByaXZhdGUgX2NvbXBvbmVudEluaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2VkaXRvck9wdGlvbnM6IGFueSA9IHt9O1xuICBwcml2YXRlIF9pc0Z1bGxTY3JlZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfa2V5Y29kZTogYW55O1xuICBwcml2YXRlIF9yZWdpc3RlcmVkTGFuZ3VhZ2VzU3R5bGVzOiBIVE1MU3R5bGVFbGVtZW50W10gPSBbXTtcbiAgcHJpdmF0ZSBfZGlzcG9zYWJsZXM6IElEaXNwb3NhYmxlW10gPSBbXTtcblxuICBAVmlld0NoaWxkKCdlZGl0b3JDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBfZWRpdG9yQ29udGFpbmVyITogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogZWRpdG9ySW5pdGlhbGl6ZWQ6IGZ1bmN0aW9uKCRldmVudClcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGVkaXRvciBpcyBmaXJzdCBpbml0aWFsaXplZFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGVkaXRvckluaXRpYWxpemVkOiBFdmVudEVtaXR0ZXI8ZWRpdG9yLklTdGFuZGFsb25lQ29kZUVkaXRvcj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8ZWRpdG9yLklTdGFuZGFsb25lQ29kZUVkaXRvcj4oKTtcblxuICAvKipcbiAgICogZWRpdG9yQ29uZmlndXJhdGlvbkNoYW5nZWQ6IGZ1bmN0aW9uKCRldmVudClcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGVkaXRvcidzIGNvbmZpZ3VyYXRpb24gY2hhbmdlc1xuICAgKi9cbiAgQE91dHB1dCgpIGVkaXRvckNvbmZpZ3VyYXRpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogZWRpdG9yTGFuZ3VhZ2VDaGFuZ2VkOiBmdW5jdGlvbigkZXZlbnQpXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBlZGl0b3IncyBMYW5ndWFnZSBjaGFuZ2VzXG4gICAqL1xuICBAT3V0cHV0KCkgZWRpdG9yTGFuZ3VhZ2VDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogZWRpdG9yVmFsdWVDaGFuZ2U6IGZ1bmN0aW9uKCRldmVudClcbiAgICogRXZlbnQgZW1pdHRlZCBhbnkgdGltZSBzb21ldGhpbmcgY2hhbmdlcyB0aGUgZWRpdG9yIHZhbHVlXG4gICAqL1xuICBAT3V0cHV0KCkgZWRpdG9yVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiBub29wO1xuXG4gIC8qKlxuICAgKiB2YWx1ZT86IHN0cmluZ1xuICAgKi9cbiAgQElucHV0KClcbiAgb3ZlcnJpZGUgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudEluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmFwcGx5VmFsdWUoKTtcbiAgICB9XG4gIH1cbiAgb3ZlcnJpZGUgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgYXBwbHlWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2Zyb21FZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRWYWx1ZSh0aGlzLl92YWx1ZSB8fCAnJyk7XG4gICAgfVxuICAgIHRoaXMuX2Zyb21FZGl0b3IgPSBmYWxzZTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgdGhpcy5lZGl0b3JWYWx1ZUNoYW5nZS5lbWl0KCk7XG4gIH1cblxuICBvdmVycmlkZSByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG4gIG92ZXJyaWRlIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldEVkaXRvckNvbnRlbnQ/OiBmdW5jdGlvblxuICAgKiBSZXR1cm5zIHRoZSBjb250ZW50IHdpdGhpbiB0aGUgZWRpdG9yXG4gICAqL1xuICBnZXRWYWx1ZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5fY29tcG9uZW50SW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybiBvZignJyk7XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fc3ViamVjdC5uZXh0KHRoaXMuX3ZhbHVlKTtcbiAgICAgIHRoaXMuX3N1YmplY3QuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuX3N1YmplY3QgPSBuZXcgU3ViamVjdCgpO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9zdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGxhbmd1YWdlPzogc3RyaW5nXG4gICAqIGxhbmd1YWdlIHVzZWQgaW4gZWRpdG9yXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xuICAgIHRoaXMuX2xhbmd1YWdlID0gbGFuZ3VhZ2U7XG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudEluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmFwcGx5TGFuZ3VhZ2UoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XG4gIH1cblxuICBhcHBseUxhbmd1YWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9sYW5ndWFnZSkge1xuICAgICAgZWRpdG9yLnNldE1vZGVsTGFuZ3VhZ2UoXG4gICAgICAgIHRoaXMuX2VkaXRvci5nZXRNb2RlbCgpIGFzIGVkaXRvci5JVGV4dE1vZGVsLFxuICAgICAgICB0aGlzLl9sYW5ndWFnZVxuICAgICAgKTtcbiAgICAgIHRoaXMuZWRpdG9yTGFuZ3VhZ2VDaGFuZ2VkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogcmVnaXN0ZXJMYW5ndWFnZT86IGZ1bmN0aW9uXG4gICAqIFJlZ2lzdGVycyBhIGN1c3RvbSBMYW5ndWFnZSB3aXRoaW4gdGhlIGVkaXRvclxuICAgKi9cbiAgcmVnaXN0ZXJMYW5ndWFnZShsYW5ndWFnZTogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudEluaXRpYWxpemVkKSB7XG4gICAgICBsYW5ndWFnZXMucmVnaXN0ZXIoeyBpZDogbGFuZ3VhZ2UuaWQgfSk7XG5cbiAgICAgIHRoaXMuX2Rpc3Bvc2FibGVzLnB1c2goXG4gICAgICAgIGxhbmd1YWdlcy5zZXRNb25hcmNoVG9rZW5zUHJvdmlkZXIobGFuZ3VhZ2UuaWQsIHtcbiAgICAgICAgICB0b2tlbml6ZXI6IHtcbiAgICAgICAgICAgIHJvb3Q6IGxhbmd1YWdlLm1vbmFyY2hUb2tlbnNQcm92aWRlcixcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgLy8gRGVmaW5lIGEgbmV3IHRoZW1lIHRoYXQgY29uc3RhaW5zIG9ubHkgcnVsZXMgdGhhdCBtYXRjaCB0aGlzIGxhbmd1YWdlXG4gICAgICBlZGl0b3IuZGVmaW5lVGhlbWUobGFuZ3VhZ2UuY3VzdG9tVGhlbWUuaWQsIGxhbmd1YWdlLmN1c3RvbVRoZW1lLnRoZW1lKTtcbiAgICAgIHRoaXMuX3RoZW1lID0gbGFuZ3VhZ2UuY3VzdG9tVGhlbWUuaWQ7XG5cbiAgICAgIHRoaXMuX2Rpc3Bvc2FibGVzLnB1c2goXG4gICAgICAgIGxhbmd1YWdlcy5yZWdpc3RlckNvbXBsZXRpb25JdGVtUHJvdmlkZXIobGFuZ3VhZ2UuaWQsIHtcbiAgICAgICAgICBwcm92aWRlQ29tcGxldGlvbkl0ZW1zOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbGFuZ3VhZ2UuY29tcGxldGlvbkl0ZW1Qcm92aWRlcjtcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgY29uc3QgY3NzOiBIVE1MU3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIGNzcy50eXBlID0gJ3RleHQvY3NzJztcbiAgICAgIGNzcy5pbm5lckhUTUwgPSBsYW5ndWFnZS5tb25hcmNoVG9rZW5zUHJvdmlkZXJDU1M7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNzcyk7XG4gICAgICB0aGlzLmVkaXRvckNvbmZpZ3VyYXRpb25DaGFuZ2VkLmVtaXQoKTtcbiAgICAgIHRoaXMuX3JlZ2lzdGVyZWRMYW5ndWFnZXNTdHlsZXMgPSBbXG4gICAgICAgIC4uLnRoaXMuX3JlZ2lzdGVyZWRMYW5ndWFnZXNTdHlsZXMsXG4gICAgICAgIGNzcyxcbiAgICAgIF07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHN0eWxlPzogc3RyaW5nXG4gICAqIGNzcyBzdHlsZSBvZiB0aGUgZWRpdG9yIG9uIHRoZSBwYWdlXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgZWRpdG9yU3R5bGUoZWRpdG9yU3R5bGU6IHN0cmluZykge1xuICAgIHRoaXMuX2VkaXRvclN0eWxlID0gZWRpdG9yU3R5bGU7XG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudEluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmFwcGx5U3R5bGUoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZWRpdG9yU3R5bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZWRpdG9yU3R5bGU7XG4gIH1cblxuICBhcHBseVN0eWxlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9lZGl0b3JTdHlsZSkge1xuICAgICAgY29uc3QgY29udGFpbmVyRGl2OiBIVE1MRGl2RWxlbWVudCA9IHRoaXMuX2VkaXRvckNvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCB0aGlzLl9lZGl0b3JTdHlsZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHRoZW1lPzogc3RyaW5nXG4gICAqIFRoZW1lIHRvIGJlIGFwcGxpZWQgdG8gZWRpdG9yXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgdGhlbWUodGhlbWU6IHN0cmluZykge1xuICAgIHRoaXMuX3RoZW1lID0gdGhlbWU7XG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudEluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLl9lZGl0b3IudXBkYXRlT3B0aW9ucyh7IHRoZW1lIH0pO1xuICAgICAgdGhpcy5lZGl0b3JDb25maWd1cmF0aW9uQ2hhbmdlZC5lbWl0KCk7XG4gICAgfVxuICB9XG4gIGdldCB0aGVtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90aGVtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBmdWxsU2NyZWVuS2V5QmluZGluZz86IG51bWJlclxuICAgKiBTZWUgaGVyZSBmb3Iga2V5IGJpbmRpbmdzIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9tb25hY28tZWRpdG9yL2FwaS9lbnVtcy9rZXljb2RlLmh0bWxcbiAgICogU2V0cyB0aGUgS2V5Q29kZSBmb3Igc2hvcnRjdXR0aW5nIHRvIEZ1bGxzY3JlZW4gbW9kZVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGZ1bGxTY3JlZW5LZXlCaW5kaW5nKGtleWNvZGU6IG51bWJlcltdKSB7XG4gICAgdGhpcy5fa2V5Y29kZSA9IGtleWNvZGU7XG4gIH1cbiAgZ2V0IGZ1bGxTY3JlZW5LZXlCaW5kaW5nKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fa2V5Y29kZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBlZGl0b3JPcHRpb25zPzogb2JqZWN0XG4gICAqIE9wdGlvbnMgdXNlZCBvbiBlZGl0b3IgaW5zdGFudGlhdGlvbi4gQXZhaWxhYmxlIG9wdGlvbnMgbGlzdGVkIGhlcmU6XG4gICAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9tb25hY28tZWRpdG9yL2FwaS9pbnRlcmZhY2VzL2VkaXRvci5pZWRpdG9yb3B0aW9ucy5odG1sXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgZWRpdG9yT3B0aW9ucyhlZGl0b3JPcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLl9lZGl0b3JPcHRpb25zID0gZWRpdG9yT3B0aW9ucztcbiAgICBpZiAodGhpcy5fY29tcG9uZW50SW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuX2VkaXRvci51cGRhdGVPcHRpb25zKGVkaXRvck9wdGlvbnMpO1xuICAgICAgdGhpcy5lZGl0b3JDb25maWd1cmF0aW9uQ2hhbmdlZC5lbWl0KCk7XG4gICAgfVxuICB9XG4gIGdldCBlZGl0b3JPcHRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvck9wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogbGF5b3V0IG1ldGhvZCB0aGF0IGNhbGxzIGxheW91dCBtZXRob2Qgb2YgZWRpdG9yIGFuZCBpbnN0cnVjdHMgdGhlIGVkaXRvciB0byByZW1lYXN1cmUgaXRzIGNvbnRhaW5lclxuICAgKi9cbiAgbGF5b3V0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jb21wb25lbnRJbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5fZWRpdG9yLmxheW91dCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGlmIGluIEZ1bGwgU2NyZWVuIE1vZGUgb3Igbm90XG4gICAqL1xuICBnZXQgaXNGdWxsU2NyZWVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0Z1bGxTY3JlZW47XG4gIH1cblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWVtYmVyLW9yZGVyaW5nXG4gIGNvbnN0cnVjdG9yKFxuICAgIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIoX2NoYW5nZURldGVjdG9yUmVmKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXJEaXY6IEhUTUxEaXZFbGVtZW50ID0gdGhpcy5fZWRpdG9yQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29udGFpbmVyRGl2LmlkID0gdGhpcy5fZWRpdG9ySW5uZXJDb250YWluZXI7XG5cbiAgICAvLyBBZGQgdGVyYWRhdGEgYnJhbmRlZCB0aGVtZXNcbiAgICBlZGl0b3IuZGVmaW5lVGhlbWUoXG4gICAgICAnY3YtbGlnaHQnLFxuICAgICAgY3ZFZGl0b3JMaWdodFRoZW1lIGFzIGVkaXRvci5JU3RhbmRhbG9uZVRoZW1lRGF0YVxuICAgICk7XG5cbiAgICBlZGl0b3IuZGVmaW5lVGhlbWUoXG4gICAgICAnY3YtZGFyaycsXG4gICAgICBjdkVkaXRvckRhcmtUaGVtZSBhcyBlZGl0b3IuSVN0YW5kYWxvbmVUaGVtZURhdGFcbiAgICApO1xuXG4gICAgdGhpcy5fZWRpdG9yID0gZWRpdG9yLmNyZWF0ZShcbiAgICAgIGNvbnRhaW5lckRpdixcbiAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogdGhpcy5fdmFsdWUsXG4gICAgICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsXG4gICAgICAgICAgdGhlbWU6IHRoaXMuX3RoZW1lLFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLmVkaXRvck9wdGlvbnNcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuX2NvbXBvbmVudEluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYXBwbHlMYW5ndWFnZSgpO1xuICAgICAgdGhpcy5fZnJvbUVkaXRvciA9IHRydWU7XG4gICAgICB0aGlzLmFwcGx5VmFsdWUoKTtcbiAgICAgIHRoaXMuYXBwbHlTdHlsZSgpO1xuICAgICAgdGhpcy5lZGl0b3JJbml0aWFsaXplZC5lbWl0KHRoaXMuX2VkaXRvcik7XG4gICAgICB0aGlzLmVkaXRvckNvbmZpZ3VyYXRpb25DaGFuZ2VkLmVtaXQoKTtcbiAgICB9KTtcbiAgICAvLyBUaGUgYG9uRGlkQ2hhbmdlQ29udGVudGAgcmV0dXJucyBhIGRpc3Bvc2FibGUgb2JqZWN0IChhbiBvYmplY3Qgd2l0aCBgZGlzcG9zZSgpYCBtZXRob2QpIHdoaWNoIHdpbGwgY2xlYW51cFxuICAgIC8vIHRoZSBsaXN0ZW5lci4gVGhlIGNhbGxiYWNrLCB0aGF0IHdlIHBhc3MgdG8gYG9uRGlkQ2hhbmdlQ29udGVudGAsIGNhcHR1cmVzIGB0aGlzYC4gVGhpcyBsZWFkcyB0byBhIGNpcmN1bGFyIHJlZmVyZW5jZVxuICAgIC8vIChgdGQtY29kZS1lZGl0b3IgLT4gbW9uYWNvIC0+IHRkLWNvZGUtZWRpdG9yYCkgYW5kIHByZXZlbnRzIHRoZSBgdGQtY29kZS1lZGl0b3JgIGZyb20gYmVpbmcgR0MnZC5cbiAgICB0aGlzLl9kaXNwb3NhYmxlcy5wdXNoKFxuICAgICAgKHRoaXMuX2VkaXRvci5nZXRNb2RlbCgpIGFzIGVkaXRvci5JVGV4dE1vZGVsKS5vbkRpZENoYW5nZUNvbnRlbnQoKCkgPT4ge1xuICAgICAgICB0aGlzLl9mcm9tRWRpdG9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX2VkaXRvci5nZXRWYWx1ZSgpKTtcbiAgICAgICAgdGhpcy5sYXlvdXQoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmFkZEZ1bGxTY3JlZW5Nb2RlQ29tbWFuZCgpO1xuXG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICBtZXJnZShcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpLFxuICAgICAgICB0aGlzLl93aWR0aFN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgICAgdGhpcy5faGVpZ2h0U3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICApXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDApLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIC8vIE5vdGU6IHRoaXMgaXMgYmVpbmcgY2FsbGVkIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgem9uZSBzaW5jZSB3ZSBkb24ndCBoYXZlIHRvXG4gICAgICAgICAgLy8gcnVuIGNoYW5nZSBkZXRlY3Rpb24gd2hlbmV2ZXIgdGhlIGVkaXRvciByZXNpemVzIGl0c2VsZi5cbiAgICAgICAgICB0aGlzLmxheW91dCgpO1xuICAgICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICB0aW1lcig1MDAsIDI1MClcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgdGhpcy5fd2lkdGhTdWJqZWN0Lm5leHQod2lkdGgpO1xuICAgICAgICAgIHRoaXMuX2hlaWdodFN1YmplY3QubmV4dChoZWlnaHQpO1xuICAgICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRhY2goKTtcbiAgICB0aGlzLl9yZWdpc3RlcmVkTGFuZ3VhZ2VzU3R5bGVzLmZvckVhY2goKHN0eWxlOiBIVE1MU3R5bGVFbGVtZW50KSA9PlxuICAgICAgc3R5bGUucmVtb3ZlKClcbiAgICApO1xuICAgIHdoaWxlICh0aGlzLl9kaXNwb3NhYmxlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX2Rpc3Bvc2FibGVzLnBvcCgpPy5kaXNwb3NlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5kaXNwb3NlKCk7XG4gICAgfVxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCh0cnVlKTtcbiAgICB0aGlzLl9kZXN0cm95LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogc2hvd0Z1bGxTY3JlZW5FZGl0b3IgcmVxdWVzdCBmb3IgZnVsbCBzY3JlZW4gb2YgQ29kZSBFZGl0b3IgYmFzZWQgb24gaXRzIGJyb3dzZXIgdHlwZS5cbiAgICovXG4gIHB1YmxpYyBzaG93RnVsbFNjcmVlbkVkaXRvcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY29tcG9uZW50SW5pdGlhbGl6ZWQpIHtcbiAgICAgIGNvbnN0IGNvZGVFZGl0b3JFbGVtZW50OiBIVE1MRGl2RWxlbWVudCA9IHRoaXMuX2VkaXRvckNvbnRhaW5lclxuICAgICAgICAubmF0aXZlRWxlbWVudCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGNvZGVFZGl0b3JFbGVtZW50LnJlcXVlc3RGdWxsc2NyZWVuKCk7XG4gICAgfVxuICAgIHRoaXMuX2lzRnVsbFNjcmVlbiA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogZXhpdEZ1bGxTY3JlZW5FZGl0b3IgcmVxdWVzdCB0byBleGl0IGZ1bGwgc2NyZWVuIG9mIENvZGUgRWRpdG9yIGJhc2VkIG9uIGl0cyBicm93c2VyIHR5cGUuXG4gICAqL1xuICBwdWJsaWMgZXhpdEZ1bGxTY3JlZW5FZGl0b3IoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudEluaXRpYWxpemVkKSB7XG4gICAgICBkb2N1bWVudC5leGl0RnVsbHNjcmVlbigpO1xuICAgIH1cbiAgICB0aGlzLl9pc0Z1bGxTY3JlZW4gPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGRGdWxsU2NyZWVuTW9kZUNvbW1hbmQgdXNlZCB0byBhZGQgdGhlIGZ1bGxzY3JlZW4gb3B0aW9uIHRvIHRoZSBjb250ZXh0IG1lbnVcbiAgICovXG4gIHByaXZhdGUgYWRkRnVsbFNjcmVlbk1vZGVDb21tYW5kKCk6IHZvaWQge1xuICAgIHRoaXMuX2Rpc3Bvc2FibGVzLnB1c2goXG4gICAgICB0aGlzLl9lZGl0b3IuYWRkQWN0aW9uKHtcbiAgICAgICAgLy8gQW4gdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvbnRyaWJ1dGVkIGFjdGlvbi5cbiAgICAgICAgaWQ6ICdmdWxsU2NyZWVuJyxcbiAgICAgICAgLy8gQSBsYWJlbCBvZiB0aGUgYWN0aW9uIHRoYXQgd2lsbCBiZSBwcmVzZW50ZWQgdG8gdGhlIHVzZXIuXG4gICAgICAgIGxhYmVsOiAnRnVsbCBTY3JlZW4nLFxuICAgICAgICAvLyBBbiBvcHRpb25hbCBhcnJheSBvZiBrZXliaW5kaW5ncyBmb3IgdGhlIGFjdGlvbi5cbiAgICAgICAgY29udGV4dE1lbnVHcm91cElkOiAnbmF2aWdhdGlvbicsXG4gICAgICAgIGtleWJpbmRpbmdzOiB0aGlzLl9rZXljb2RlLFxuICAgICAgICBjb250ZXh0TWVudU9yZGVyOiAxLjUsXG4gICAgICAgIC8vIE1ldGhvZCB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgd2hlbiB0aGUgYWN0aW9uIGlzIHRyaWdnZXJlZC5cbiAgICAgICAgcnVuOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zaG93RnVsbFNjcmVlbkVkaXRvcigpO1xuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZWRpdG9yLWNvbnRhaW5lclwiICNlZGl0b3JDb250YWluZXI+PC9kaXY+XG4iXX0=
@@ -1,19 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { TdCodeEditorComponent } from './code-editor.component';
4
- import * as i0 from "@angular/core";
5
- export class CovalentCodeEditorModule {
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentCodeEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: CovalentCodeEditorModule, bootstrap: [TdCodeEditorComponent], declarations: [TdCodeEditorComponent], imports: [CommonModule], exports: [TdCodeEditorComponent] });
8
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentCodeEditorModule, imports: [CommonModule] });
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentCodeEditorModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- imports: [CommonModule],
14
- declarations: [TdCodeEditorComponent],
15
- exports: [TdCodeEditorComponent],
16
- bootstrap: [TdCodeEditorComponent],
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvZGUtZWRpdG9yL3NyYy9saWIvY29kZS1lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQVFoRSxNQUFNLE9BQU8sd0JBQXdCO3dHQUF4Qix3QkFBd0I7eUdBQXhCLHdCQUF3QixjQUZ2QixxQkFBcUIsa0JBRmxCLHFCQUFxQixhQUQxQixZQUFZLGFBRVoscUJBQXFCO3lHQUdwQix3QkFBd0IsWUFMekIsWUFBWTs7NEZBS1gsd0JBQXdCO2tCQU5wQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBUZENvZGVFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvZGUtZWRpdG9yLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtUZENvZGVFZGl0b3JDb21wb25lbnRdLFxuICBleHBvcnRzOiBbVGRDb2RlRWRpdG9yQ29tcG9uZW50XSxcbiAgYm9vdHN0cmFwOiBbVGRDb2RlRWRpdG9yQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRDb2RlRWRpdG9yTW9kdWxlIHt9XG4iXX0=
@@ -1,245 +0,0 @@
1
- import * as tokens from '@covalent/tokens';
2
- export const covalentThemeName = 'tdaa-lite';
3
- export const covalentThemeConf = {
4
- base: 'vs',
5
- inherit: true,
6
- rules: [
7
- { token: '', foreground: '212121', background: 'f5f5f5' },
8
- { token: 'invalid', foreground: 'b71c1c' },
9
- { token: 'keyword', foreground: '3b78e7' },
10
- { token: 'keyword.json', foreground: 'ec407a', fontStyle: 'bold italic' },
11
- { token: 'comment', foreground: '0d904f' },
12
- { token: 'string.sql', foreground: '0d904f' },
13
- { token: 'number', foreground: 'E74C3C' },
14
- { token: 'key', foreground: '863B00' },
15
- { token: 'string.key.json', foreground: '0d904f' },
16
- { token: 'string.value.json', foreground: '0d904f' },
17
- { token: 'predefined', foreground: 'ec407a' },
18
- { token: 'predefined.sql', foreground: 'ec407a' },
19
- { token: 'delimiter', foreground: '000000' },
20
- { token: 'delimiter.html', foreground: '383838' },
21
- { token: 'delimiter.xml', foreground: '3b78e7' },
22
- { token: 'tag', foreground: '3b78e7' },
23
- { token: 'tag.id.jade', foreground: '4F76AC' },
24
- { token: 'tag.class.jade', foreground: '4F76AC' },
25
- { token: 'meta.scss', foreground: '800000' },
26
- { token: 'metatag', foreground: 'e00000' },
27
- { token: 'metatag.content.html', foreground: 'FF0000' },
28
- { token: 'metatag.html', foreground: '808080' },
29
- { token: 'metatag.xml', foreground: '808080' },
30
- { token: 'metatag.php', fontStyle: 'bold' },
31
- { token: 'attribute.name', foreground: '9c27b0' },
32
- { token: 'attribute.value', foreground: '0451A5' },
33
- { token: 'attribute.value.number', foreground: '09885A' },
34
- { token: 'attribute.value.unit', foreground: '09885A' },
35
- { token: 'attribute.value.html', foreground: '0000FF' },
36
- { token: 'attribute.value.xml', foreground: '0d904f' },
37
- { token: 'arbitration-variable', foreground: '006D90' },
38
- { token: 'arbitration-variable.invalid', foreground: 'b71c1c' },
39
- { token: 'operator.scss', foreground: '666666' },
40
- { token: 'operator', foreground: '778899' },
41
- ],
42
- colors: {
43
- comment: '388e3c',
44
- 'editor.foreground': 'ff0000',
45
- 'editor.background': '#f5f5f5',
46
- 'editorLineNumber.activeForeground': '#707070',
47
- 'editorLineNumber.foreground': '#b7b7b7',
48
- 'editor.lineHighlightBackground': '#ebebeb',
49
- 'inputValidation.errorBackground': '#b71c1c',
50
- 'inputValidation.errorBorder': 'rgba(229, 115, 115, 0.1)',
51
- },
52
- };
53
- const getTheme = (theme) => {
54
- return {
55
- base: theme === 'Light' ? 'vs' : 'vs-dark',
56
- inherit: true,
57
- rules: [
58
- {
59
- token: '',
60
- foreground: tokens[`Cv${theme}CodeSnippetColor`],
61
- background: tokens[`Cv${theme}Surface`],
62
- },
63
- {
64
- token: 'arbitration-variable',
65
- foreground: tokens[`Cv${theme}CodeSnippetVariable`],
66
- },
67
- {
68
- token: 'arbitration-variable.invalid',
69
- foreground: tokens[`Cv${theme}Negative`],
70
- },
71
- {
72
- token: 'attribute.name',
73
- foreground: tokens[`Cv${theme}CodeSnippetVariable`],
74
- },
75
- {
76
- token: 'attribute.value',
77
- foreground: tokens[`Cv${theme}CodeSnippetVariable`],
78
- },
79
- {
80
- token: 'attribute.value.number',
81
- foreground: tokens[`Cv${theme}CodeSnippetVariable`],
82
- },
83
- {
84
- token: 'attribute.value.unit',
85
- foreground: tokens[`Cv${theme}CodeSnippetVariable`],
86
- },
87
- {
88
- token: 'attribute.value.html',
89
- foreground: tokens[`Cv${theme}CodeSnippetString`],
90
- },
91
- {
92
- token: 'attribute.value.xml',
93
- foreground: tokens[`Cv${theme}CodeSnippetLiteral`],
94
- },
95
- {
96
- token: 'builtins',
97
- foreground: tokens[`Cv${theme}CodeSnippetClass`],
98
- },
99
- {
100
- token: 'class',
101
- foreground: tokens[`Cv${theme}CodeSnippetClass`],
102
- },
103
- {
104
- token: 'comment',
105
- foreground: tokens[`Cv${theme}CodeSnippetComment`],
106
- fontStyle: 'italic',
107
- },
108
- {
109
- token: 'constant',
110
- foreground: tokens[`Cv${theme}CodeSnippetLiteral`],
111
- },
112
- {
113
- token: 'delimiter',
114
- foreground: tokens[`CvTheme${theme}ColorsOnSurface`],
115
- },
116
- {
117
- token: 'delimiter.html',
118
- foreground: tokens[`Cv${theme}CodeSnippetSelector`],
119
- },
120
- {
121
- token: 'delimiter.xml',
122
- foreground: tokens[`Cv${theme}CodeSnippetSelector`],
123
- },
124
- {
125
- token: 'doctag',
126
- foreground: tokens[`Cv${theme}CodeSnippetKeyword`],
127
- },
128
- {
129
- token: 'emphasis',
130
- fontStyle: 'italic',
131
- },
132
- {
133
- token: 'formula',
134
- foreground: tokens[`Cv${theme}CodeSnippetKeyword`],
135
- },
136
- {
137
- token: 'function',
138
- foreground: tokens[`Cv${theme}CodeSnippetTitle`],
139
- },
140
- {
141
- token: 'invalid',
142
- foreground: tokens[`Cv${theme}Negative`],
143
- },
144
- { token: 'key', foreground: tokens[`Cv${theme}CodeSnippetString`] },
145
- {
146
- token: 'keyword',
147
- foreground: tokens[`Cv${theme}CodeSnippetKeyword`],
148
- },
149
- {
150
- token: 'keyword.json',
151
- foreground: tokens[`Cv${theme}CodeSnippetTitle`],
152
- fontStyle: 'bold italic',
153
- },
154
- {
155
- token: 'link',
156
- foreground: tokens[`Cv${theme}CodeSnippetTitle`],
157
- fontStyle: 'underline',
158
- },
159
- {
160
- token: 'literal',
161
- foreground: tokens[`Cv${theme}CodeSnippetLiteral`],
162
- },
163
- {
164
- token: 'meta',
165
- foreground: tokens[`Cv${theme}CodeSnippetTitle`],
166
- },
167
- {
168
- token: 'number',
169
- foreground: tokens[`Cv${theme}CodeSnippetVariable`],
170
- },
171
- {
172
- token: 'operator',
173
- foreground: tokens[`Cv${theme}CodeSnippetLiteral`],
174
- },
175
- { token: 'predefined', foreground: tokens[`Cv${theme}CodeSnippetTitle`] },
176
- {
177
- token: 'predefined.sql',
178
- foreground: tokens[`Cv${theme}CodeSnippetTitle`],
179
- },
180
- {
181
- token: 'predefined.python',
182
- foreground: tokens[`Cv${theme}CodeSnippetClass`],
183
- },
184
- {
185
- token: 'punctuation',
186
- foreground: tokens[`Cv${theme}CodeSnippetColor`],
187
- },
188
- {
189
- token: 'string',
190
- foreground: tokens[`Cv${theme}CodeSnippetString`],
191
- },
192
- {
193
- token: 'string.sql',
194
- foreground: tokens[`Cv${theme}CodeSnippetString`],
195
- },
196
- {
197
- token: 'string.key.json',
198
- foreground: tokens[`Cv${theme}CodeSnippetString`],
199
- },
200
- {
201
- token: 'string.value.json',
202
- foreground: tokens[`Cv${theme}CodeSnippetString`],
203
- },
204
- {
205
- token: 'strong',
206
- fontStyle: 'bold',
207
- },
208
- {
209
- token: 'tag',
210
- foreground: tokens[`Cv${theme}CodeSnippetSelector`],
211
- },
212
- {
213
- token: 'tag.id.jade',
214
- foreground: tokens[`Cv${theme}CodeSnippetClass`],
215
- },
216
- {
217
- token: 'tag.class.jade',
218
- foreground: tokens[`Cv${theme}CodeSnippetClass`],
219
- },
220
- {
221
- token: 'type',
222
- foreground: tokens[`Cv${theme}CodeSnippetClass`],
223
- },
224
- {
225
- token: 'variable',
226
- foreground: tokens[`Cv${theme}CodeSnippetVariable`],
227
- },
228
- ],
229
- colors: {
230
- comment: tokens[`Cv${theme}CodeSnippetComment`],
231
- 'editor.background': tokens[`Cv${theme}Surface`],
232
- 'editor.foreground': tokens[`CvTheme${theme}ColorsOnSurface`],
233
- 'editorCursor.foreground': tokens[`Cv${theme}TextSecondaryOnBackground`],
234
- 'editorLineNumber.activeForeground': tokens[`CvTheme${theme}ColorsOnSurface74`],
235
- 'editorLineNumber.foreground': tokens[`CvTheme${theme}ColorsOnSurface38`],
236
- 'editor.lineHighlightBackground': tokens[`CvTheme${theme}ColorsSurfaceContainerLow`],
237
- 'inputValidation.errorBackground': tokens[`Cv${theme}Negative`],
238
- 'inputValidation.errorBorder': tokens[`CvTheme${theme}PalettesNegative95`],
239
- },
240
- };
241
- };
242
- // Any changes to these themes should also be reflected in the components/code-editor theme.
243
- export const cvEditorDarkTheme = getTheme('Dark');
244
- export const cvEditorLightTheme = getTheme('Light');
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnRoZW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNvZGUtZWRpdG9yL3NyYy9saWIvZWRpdG9yLnRoZW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sa0JBQWtCLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLElBQUksRUFBRSxJQUFJO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixLQUFLLEVBQUU7UUFDTCxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFO1FBQ3pELEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFO1FBQzFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFO1FBQzFDLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUU7UUFDekUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUU7UUFDMUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUU7UUFDN0MsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUU7UUFFekMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUU7UUFDdEMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRTtRQUNsRCxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFO1FBQ3BELEVBQUUsS0FBSyxFQUFFLFlB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VSxLQUFLLG1CQUFtQixDQUFDO1lBQzVDLDZCQUE2QixFQUFFLE1BQU0sQ0FBQyxVQUFVLEtBQUssbUJBQW1CLENBQUM7WUFDekUsZ0NBQWdDLEVBQzlCLE1BQU0sQ0FBQyxVQUFVLEtBQUssMkJBQTJCLENBQUM7WUFDcEQsaUNBQWlDLEVBQUUsTUFBTSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUM7WUFDL0QsNkJBQTZCLEVBQzNCLE1BQU0sQ0FBQyxVQUFVLEtBQUssb0JBQW9CLENBQUM7U0FDOUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsNEZBQTRGO0FBQzVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0b2tlbnMgZnJvbSAnQGNvdmFsZW50L3Rva2Vucyc7XG5cbmV4cG9ydCBjb25zdCBjb3ZhbGVudFRoZW1lTmFtZSA9ICd0ZGFhLWxpdGUnO1xuXG5leHBvcnQgY29uc3QgY292YWxlbnRUaGVtZUNvbmYgPSB7XG4gIGJhc2U6ICd2cycsXG4gIGluaGVyaXQ6IHRydWUsXG4gIHJ1bGVzOiBbXG4gICAgeyB0b2tlbjogJycsIGZvcmVncm91bmQ6ICcyMTIxMjEnLCBiYWNrZ3JvdW5kOiAnZjVmNWY1JyB9LFxuICAgIHsgdG9rZW46ICdpbnZhbGlkJywgZm9yZWdyb3VuZDogJ2I3MWMxYycgfSxcbiAgICB7IHRva2VuOiAna2V5d29yZCcsIGZvcmVncm91bmQ6ICczYjc4ZTcnIH0sXG4gICAgeyB0b2tlbjogJ2tleXdvcmQuanNvbicsIGZvcmVncm91bmQ6ICdlYzQwN2EnLCBmb250U3R5bGU6ICdib2xkIGl0YWxpYycgfSxcbiAgICB7IHRva2VuOiAnY29tbWVudCcsIGZvcmVncm91bmQ6ICcwZDkwNGYnIH0sXG4gICAgeyB0b2tlbjogJ3N0cmluZy5zcWwnLCBmb3JlZ3JvdW5kOiAnMGQ5MDRmJyB9LFxuICAgIHsgdG9rZW46ICdudW1iZXInLCBmb3JlZ3JvdW5kOiAnRTc0QzNDJyB9LFxuXG4gICAgeyB0b2tlbjogJ2tleScsIGZvcmVncm91bmQ6ICc4NjNCMDAnIH0sXG4gICAgeyB0b2tlbjogJ3N0cmluZy5rZXkuanNvbicsIGZvcmVncm91bmQ6ICcwZDkwNGYnIH0sXG4gICAgeyB0b2tlbjogJ3N0cmluZy52YWx1ZS5qc29uJywgZm9yZWdyb3VuZDogJzBkOTA0ZicgfSxcbiAgICB7IHRva2VuOiAncHJlZGVmaW5lZCcsIGZvcmVncm91bmQ6ICdlYzQwN2EnIH0sXG4gICAgeyB0b2tlbjogJ3ByZWRlZmluZWQuc3FsJywgZm9yZWdyb3VuZDogJ2VjNDA3YScgfSxcblxuICAgIHsgdG9rZW46ICdkZWxpbWl0ZXInLCBmb3JlZ3JvdW5kOiAnMDAwMDAwJyB9LFxuICAgIHsgdG9rZW46ICdkZWxpbWl0ZXIuaHRtbCcsIGZvcmVncm91bmQ6ICczODM4MzgnIH0sXG4gICAgeyB0b2tlbjogJ2RlbGltaXRlci54bWwnLCBmb3JlZ3JvdW5kOiAnM2I3OGU3JyB9LFxuXG4gICAgeyB0b2tlbjogJ3RhZycsIGZvcmVncm91bmQ6ICczYjc4ZTcnIH0sXG4gICAgeyB0b2tlbjogJ3RhZy5pZC5qYWRlJywgZm9yZWdyb3VuZDogJzRGNzZBQycgfSxcbiAgICB7IHRva2VuOiAndGFnLmNsYXNzLmphZGUnLCBmb3JlZ3JvdW5kOiAnNEY3NkFDJyB9LFxuICAgIHsgdG9rZW46ICdtZXRhLnNjc3MnLCBmb3JlZ3JvdW5kOiAnODAwMDAwJyB9LFxuICAgIHsgdG9rZW46ICdtZXRhdGFnJywgZm9yZWdyb3VuZDogJ2UwMDAwMCcgfSxcbiAgICB7IHRva2VuOiAnbWV0YXRhZy5jb250ZW50Lmh0bWwnLCBmb3JlZ3JvdW5kOiAnRkYwMDAwJyB9LFxuICAgIHsgdG9rZW46ICdtZXRhdGFnLmh0bWwnLCBmb3JlZ3JvdW5kOiAnODA4MDgwJyB9LFxuICAgIHsgdG9rZW46ICdtZXRhdGFnLnhtbCcsIGZvcmVncm91bmQ6ICc4MDgwODAnIH0sXG4gICAgeyB0b2tlbjogJ21ldGF0YWcucGhwJywgZm9udFN0eWxlOiAnYm9sZCcgfSxcblxuICAgIHsgdG9rZW46ICdhdHRyaWJ1dGUubmFtZScsIGZvcmVncm91bmQ6ICc5YzI3YjAnIH0sXG4gICAgeyB0b2tlbjogJ2F0dHJpYnV0ZS52YWx1ZScsIGZvcmVncm91bmQ6ICcwNDUxQTUnIH0sXG4gICAgeyB0b2tlbjogJ2F0dHJpYnV0ZS52YWx1ZS5udW1iZXInLCBmb3JlZ3JvdW5kOiAnMDk4ODVBJyB9LFxuICAgIHsgdG9rZW46ICdhdHRyaWJ1dGUudmFsdWUudW5pdCcsIGZvcmVncm91bmQ6ICcwOTg4NUEnIH0sXG4gICAgeyB0b2tlbjogJ2F0dHJpYnV0ZS52YWx1ZS5odG1sJywgZm9yZWdyb3VuZDogJzAwMDBGRicgfSxcbiAgICB7IHRva2VuOiAnYXR0cmlidXRlLnZhbHVlLnhtbCcsIGZvcmVncm91bmQ6ICcwZDkwNGYnIH0sXG5cbiAgICB7IHRva2VuOiAnYXJiaXRyYXRpb24tdmFyaWFibGUnLCBmb3JlZ3JvdW5kOiAnMDA2RDkwJyB9LFxuICAgIHsgdG9rZW46ICdhcmJpdHJhdGlvbi12YXJpYWJsZS5pbnZhbGlkJywgZm9yZWdyb3VuZDogJ2I3MWMxYycgfSxcblxuICAgIHsgdG9rZW46ICdvcGVyYXRvci5zY3NzJywgZm9yZWdyb3VuZDogJzY2NjY2NicgfSxcbiAgICB7IHRva2VuOiAnb3BlcmF0b3InLCBmb3JlZ3JvdW5kOiAnNzc4ODk5JyB9LFxuICBdLFxuICBjb2xvcnM6IHtcbiAgICBjb21tZW50OiAnMzg4ZTNjJyxcbiAgICAnZWRpdG9yLmZvcmVncm91bmQnOiAnZmYwMDAwJyxcbiAgICAnZWRpdG9yLmJhY2tncm91bmQnOiAnI2Y1ZjVmNScsXG4gICAgJ2VkaXRvckxpbmVOdW1iZXIuYWN0aXZlRm9yZWdyb3VuZCc6ICcjNzA3MDcwJyxcbiAgICAnZWRpdG9yTGluZU51bWJlci5mb3JlZ3JvdW5kJzogJyNiN2I3YjcnLFxuICAgICdlZGl0b3IubGluZUhpZ2hsaWdodEJhY2tncm91bmQnOiAnI2ViZWJlYicsXG4gICAgJ2lucHV0VmFsaWRhdGlvbi5lcnJvckJhY2tncm91bmQnOiAnI2I3MWMxYycsXG4gICAgJ2lucHV0VmFsaWRhdGlvbi5lcnJvckJvcmRlcic6ICdyZ2JhKDIyOSwgMTE1LCAxMTUsIDAuMSknLFxuICB9LFxufTtcblxuY29uc3QgZ2V0VGhlbWUgPSAodGhlbWU6ICdMaWdodCcgfCAnRGFyaycpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBiYXNlOiB0aGVtZSA9PT0gJ0xpZ2h0JyA/ICd2cycgOiAndnMtZGFyaycsXG4gICAgaW5oZXJpdDogdHJ1ZSxcbiAgICBydWxlczogW1xuICAgICAge1xuICAgICAgICB0b2tlbjogJycsXG4gICAgICAgIGZvcmVncm91bmQ6IHRva2Vuc1tgQ3Yke3RoZW1lfUNvZGVTbmlwcGV0Q29sb3JgXSxcbiAgICAgICAgYmFja2dyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9U3VyZmFjZWBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdG9rZW46ICdhcmJpdHJhdGlvbi12YXJpYWJsZScsXG4gICAgICAgIGZvcmVncm91bmQ6IHRva2Vuc1tgQ3Yke3RoZW1lfUNvZGVTbmlwcGV0VmFyaWFibGVgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAnYXJiaXRyYXRpb24tdmFyaWFibGUuaW52YWxpZCcsXG4gICAgICAgIGZvcmVncm91bmQ6IHRva2Vuc1tgQ3Yke3RoZW1lfU5lZ2F0aXZlYF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2F0dHJpYnV0ZS5uYW1lJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRWYXJpYWJsZWBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdG9rZW46ICdhdHRyaWJ1dGUudmFsdWUnLFxuICAgICAgICBmb3JlZ3JvdW5kOiB0b2tlbnNbYEN2JHt0aGVtZX1Db2RlU25pcHBldFZhcmlhYmxlYF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2F0dHJpYnV0ZS52YWx1ZS5udW1iZXInLFxuICAgICAgICBmb3JlZ3JvdW5kOiB0b2tlbnNbYEN2JHt0aGVtZX1Db2RlU25pcHBldFZhcmlhYmxlYF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2F0dHJpYnV0ZS52YWx1ZS51bml0JyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRWYXJpYWJsZWBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdG9rZW46ICdhdHRyaWJ1dGUudmFsdWUuaHRtbCcsXG4gICAgICAgIGZvcmVncm91bmQ6IHRva2Vuc1tgQ3Yke3RoZW1lfUNvZGVTbmlwcGV0U3RyaW5nYF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2F0dHJpYnV0ZS52YWx1ZS54bWwnLFxuICAgICAgICBmb3JlZ3JvdW5kOiB0b2tlbnNbYEN2JHt0aGVtZX1Db2RlU25pcHBldExpdGVyYWxgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAnYnVpbHRpbnMnLFxuICAgICAgICBmb3JlZ3JvdW5kOiB0b2tlbnNbYEN2JHt0aGVtZX1Db2RlU25pcHBldENsYXNzYF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2NsYXNzJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRDbGFzc2BdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdG9rZW46ICdjb21tZW50JyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRDb21tZW50YF0sXG4gICAgICAgIGZvbnRTdHlsZTogJ2l0YWxpYycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2NvbnN0YW50JyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRMaXRlcmFsYF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2RlbGltaXRlcicsXG4gICAgICAgIGZvcmVncm91bmQ6IHRva2Vuc1tgQ3ZUaGVtZSR7dGhlbWV9Q29sb3JzT25TdXJmYWNlYF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2RlbGltaXRlci5odG1sJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRTZWxlY3RvcmBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdG9rZW46ICdkZWxpbWl0ZXIueG1sJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRTZWxlY3RvcmBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdG9rZW46ICdkb2N0YWcnLFxuICAgICAgICBmb3JlZ3JvdW5kOiB0b2tlbnNbYEN2JHt0aGVtZX1Db2RlU25pcHBldEtleXdvcmRgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAnZW1waGFzaXMnLFxuICAgICAgICBmb250U3R5bGU6ICdpdGFsaWMnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdG9rZW46ICdmb3JtdWxhJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRLZXl3b3JkYF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2Z1bmN0aW9uJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRUaXRsZWBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdG9rZW46ICdpbnZhbGlkJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9TmVnYXRpdmVgXSxcbiAgICAgIH0sXG4gICAgICB7IHRva2VuOiAna2V5JywgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRTdHJpbmdgXSB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2tleXdvcmQnLFxuICAgICAgICBmb3JlZ3JvdW5kOiB0b2tlbnNbYEN2JHt0aGVtZX1Db2RlU25pcHBldEtleXdvcmRgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAna2V5d29yZC5qc29uJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRUaXRsZWBdLFxuICAgICAgICBmb250U3R5bGU6ICdib2xkIGl0YWxpYycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2xpbmsnLFxuICAgICAgICBmb3JlZ3JvdW5kOiB0b2tlbnNbYEN2JHt0aGVtZX1Db2RlU25pcHBldFRpdGxlYF0sXG4gICAgICAgIGZvbnRTdHlsZTogJ3VuZGVybGluZScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ2xpdGVyYWwnLFxuICAgICAgICBmb3JlZ3JvdW5kOiB0b2tlbnNbYEN2JHt0aGVtZX1Db2RlU25pcHBldExpdGVyYWxgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAnbWV0YScsXG4gICAgICAgIGZvcmVncm91bmQ6IHRva2Vuc1tgQ3Yke3RoZW1lfUNvZGVTbmlwcGV0VGl0bGVgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAnbnVtYmVyJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRWYXJpYWJsZWBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdG9rZW46ICdvcGVyYXRvcicsXG4gICAgICAgIGZvcmVncm91bmQ6IHRva2Vuc1tgQ3Yke3RoZW1lfUNvZGVTbmlwcGV0TGl0ZXJhbGBdLFxuICAgICAgfSxcbiAgICAgIHsgdG9rZW46ICdwcmVkZWZpbmVkJywgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRUaXRsZWBdIH0sXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAncHJlZGVmaW5lZC5zcWwnLFxuICAgICAgICBmb3JlZ3JvdW5kOiB0b2tlbnNbYEN2JHt0aGVtZX1Db2RlU25pcHBldFRpdGxlYF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ3ByZWRlZmluZWQucHl0aG9uJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRDbGFzc2BdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdG9rZW46ICdwdW5jdHVhdGlvbicsXG4gICAgICAgIGZvcmVncm91bmQ6IHRva2Vuc1tgQ3Yke3RoZW1lfUNvZGVTbmlwcGV0Q29sb3JgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAnc3RyaW5nJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRTdHJpbmdgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAnc3RyaW5nLnNxbCcsXG4gICAgICAgIGZvcmVncm91bmQ6IHRva2Vuc1tgQ3Yke3RoZW1lfUNvZGVTbmlwcGV0U3RyaW5nYF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ3N0cmluZy5rZXkuanNvbicsXG4gICAgICAgIGZvcmVncm91bmQ6IHRva2Vuc1tgQ3Yke3RoZW1lfUNvZGVTbmlwcGV0U3RyaW5nYF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ3N0cmluZy52YWx1ZS5qc29uJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRTdHJpbmdgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAnc3Ryb25nJyxcbiAgICAgICAgZm9udFN0eWxlOiAnYm9sZCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ3RhZycsXG4gICAgICAgIGZvcmVncm91bmQ6IHRva2Vuc1tgQ3Yke3RoZW1lfUNvZGVTbmlwcGV0U2VsZWN0b3JgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRva2VuOiAndGFnLmlkLmphZGUnLFxuICAgICAgICBmb3JlZ3JvdW5kOiB0b2tlbnNbYEN2JHt0aGVtZX1Db2RlU25pcHBldENsYXNzYF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b2tlbjogJ3RhZy5jbGFzcy5qYWRlJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRDbGFzc2BdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdG9rZW46ICd0eXBlJyxcbiAgICAgICAgZm9yZWdyb3VuZDogdG9rZW5zW2BDdiR7dGhlbWV9Q29kZVNuaXBwZXRDbGFzc2BdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdG9rZW46ICd2YXJpYWJsZScsXG4gICAgICAgIGZvcmVncm91bmQ6IHRva2Vuc1tgQ3Yke3RoZW1lfUNvZGVTbmlwcGV0VmFyaWFibGVgXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBjb2xvcnM6IHtcbiAgICAgIGNvbW1lbnQ6IHRva2Vuc1tgQ3Yke3RoZW1lfUNvZGVTbmlwcGV0Q29tbWVudGBdLFxuICAgICAgJ2VkaXRvci5iYWNrZ3JvdW5kJzogdG9rZW5zW2BDdiR7dGhlbWV9U3VyZmFjZWBdLFxuICAgICAgJ2VkaXRvci5mb3JlZ3JvdW5kJzogdG9rZW5zW2BDdlRoZW1lJHt0aGVtZX1Db2xvcnNPblN1cmZhY2VgXSxcbiAgICAgICdlZGl0b3JDdXJzb3IuZm9yZWdyb3VuZCc6IHRva2Vuc1tgQ3Yke3RoZW1lfVRleHRTZWNvbmRhcnlPbkJhY2tncm91bmRgXSxcbiAgICAgICdlZGl0b3JMaW5lTnVtYmVyLmFjdGl2ZUZvcmVncm91bmQnOlxuICAgICAgICB0b2tlbnNbYEN2VGhlbWUke3RoZW1lfUNvbG9yc09uU3VyZmFjZTc0YF0sXG4gICAgICAnZWRpdG9yTGluZU51bWJlci5mb3JlZ3JvdW5kJzogdG9rZW5zW2BDdlRoZW1lJHt0aGVtZX1Db2xvcnNPblN1cmZhY2UzOGBdLFxuICAgICAgJ2VkaXRvci5saW5lSGlnaGxpZ2h0QmFja2dyb3VuZCc6XG4gICAgICAgIHRva2Vuc1tgQ3ZUaGVtZSR7dGhlbWV9Q29sb3JzU3VyZmFjZUNvbnRhaW5lckxvd2BdLFxuICAgICAgJ2lucHV0VmFsaWRhdGlvbi5lcnJvckJhY2tncm91bmQnOiB0b2tlbnNbYEN2JHt0aGVtZX1OZWdhdGl2ZWBdLFxuICAgICAgJ2lucHV0VmFsaWRhdGlvbi5lcnJvckJvcmRlcic6XG4gICAgICAgIHRva2Vuc1tgQ3ZUaGVtZSR7dGhlbWV9UGFsZXR0ZXNOZWdhdGl2ZTk1YF0sXG4gICAgfSxcbiAgfTtcbn07XG5cbi8vIEFueSBjaGFuZ2VzIHRvIHRoZXNlIHRoZW1lcyBzaG91bGQgYWxzbyBiZSByZWZsZWN0ZWQgaW4gdGhlIGNvbXBvbmVudHMvY29kZS1lZGl0b3IgdGhlbWUuXG5leHBvcnQgY29uc3QgY3ZFZGl0b3JEYXJrVGhlbWUgPSBnZXRUaGVtZSgnRGFyaycpO1xuXG5leHBvcnQgY29uc3QgY3ZFZGl0b3JMaWdodFRoZW1lID0gZ2V0VGhlbWUoJ0xpZ2h0Jyk7XG4iXX0=
@@ -1,3 +0,0 @@
1
- export { TdCodeEditorComponent } from './lib/code-editor.component';
2
- export { CovalentCodeEditorModule } from './lib/code-editor.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb2RlLWVkaXRvci9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFRkQ29kZUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvZGUtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDb3ZhbGVudENvZGVFZGl0b3JNb2R1bGUgfSBmcm9tICcuL2xpYi9jb2RlLWVkaXRvci5tb2R1bGUnO1xuIl19