{"version":3,"file":"jaspero-fb-monaco-editor.mjs","sources":["../../../../projects/monaco-editor/src/lib/monaco.component.ts","../../../../projects/monaco-editor/src/lib/monaco.component.html","../../../../projects/monaco-editor/src/lib/monaco-editor.module.ts","../../../../projects/monaco-editor/src/public-api.ts","../../../../projects/monaco-editor/src/jaspero-fb-monaco-editor.ts"],"sourcesContent":["import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Inject,\n  ViewChild\n} from '@angular/core';\nimport {UntypedFormControl} from '@angular/forms';\nimport {\n  COMPONENT_DATA,\n  FieldComponent,\n  FieldData\n} from '@jaspero/form-builder';\n\nimport loader, {Monaco} from '@monaco-editor/loader';\n\nexport interface MonacoConfiguration {\n  value?: string;\n  height?: string;\n  /**\n   * Monaco Options passed to constructor\n   */\n  options?: object;\n}\n\nexport type MonacoData = MonacoConfiguration & FieldData;\n\n@Component({\n  selector: 'fb-monaco-editor',\n  templateUrl: './monaco.component.html',\n  styleUrls: ['./monaco.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MonacoComponent extends FieldComponent<MonacoData> implements AfterViewInit {\n\n  constructor(\n    @Inject(COMPONENT_DATA) public cData: MonacoData,\n    private cdr: ChangeDetectorRef\n  ) {\n    super(cData);\n  }\n\n  code: UntypedFormControl;\n  monaco: Monaco;\n\n  @ViewChild('editor')\n  editorElement: ElementRef;\n\n  editor;\n\n  ngAfterViewInit(): void {\n    this.code = new UntypedFormControl(this.cData.value || '');\n\n    loader.init().then(monaco => {\n      this.monaco = monaco;\n      const options = {\n        language: 'javascript',\n        theme: 'vs',\n        automaticLayout: true,\n        ...(this.cData.options || {}),\n        value: this.cData.control.value || this.cData.value || ''\n      };\n\n      this.editorElement.nativeElement.style.height = this.cData.height || '400px';\n      this.editor = monaco.editor.create(this.editorElement.nativeElement, options);\n\n      this.cData.control.setValue(options.value);\n\n      const model = this.editor.getModel();\n      model.onDidChangeContent(() => {\n        this.cData.control.setValue(model.getValue());\n        this.cdr.detectChanges();\n      });\n    });\n  }\n}\n","<section>\n  <h1 *ngIf=\"cData.label\" class=\"label\">{{cData.label | transloco}}</h1>\n\n  <div #editor id=\"editor\"></div>\n</section>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {FormBuilderContextService} from '@jaspero/form-builder';\nimport {TranslocoModule} from '@jsverse/transloco';\nimport {MonacoComponent} from './monaco.component';\n\n@NgModule({\n  declarations: [MonacoComponent],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    FormsModule,\n\n    TranslocoModule\n  ]\n})\nexport class MonacoEditorModule {\n\n  constructor(\n    private ctx: FormBuilderContextService\n  ) {\n    this.ctx.registerField(\n      'monaco',\n      MonacoComponent\n    );\n  }\n}\n","/*\n * Public API Surface of monaco-editor\n */\n\n\nexport * from './lib/monaco.component';\nexport * from './lib/monaco-editor.module';\nexport * from './lib/monaco-definition';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}