{"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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"}