@covalent/code-editor
Version:
Teradata UI Platform Code Editor Module
1 lines • 40.1 kB
Source Map (JSON)
{"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}ColorsOnSurfaceVariant`],\n 'editorLineNumber.foreground':\n tokens[`CvTheme${theme}ColorsOnSurfaceVariant`],\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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"}