{"version":3,"file":"ng-zorro-antd-code-editor.mjs","sources":["../../components/code-editor/typings.ts","../../components/code-editor/code-editor.service.ts","../../components/code-editor/code-editor.component.ts","../../components/code-editor/code-editor.module.ts","../../components/code-editor/public-api.ts","../../components/code-editor/ng-zorro-antd-code-editor.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { editor, Environment } from 'monaco-editor';\n\nimport IStandAloneEditorConstructionOptions = editor.IStandaloneEditorConstructionOptions;\nimport IDiffEditorConstructionOptions = editor.IDiffEditorConstructionOptions;\n\ndeclare global {\n  interface Window {\n    MonacoEnvironment: Environment | undefined;\n  }\n}\n\nexport type EditorOptions = IStandAloneEditorConstructionOptions;\nexport type DiffEditorOptions = IDiffEditorConstructionOptions;\nexport type JoinedEditorOptions = EditorOptions | DiffEditorOptions;\n\nexport type NzEditorMode = 'normal' | 'diff';\n\nexport const enum NzCodeEditorLoadingStatus {\n  UNLOAD = 'unload',\n  LOADING = 'loading',\n  LOADED = 'LOADED'\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Observable, of, ReplaySubject, Subscription } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\n\nimport { CodeEditorConfig, NzConfigService } from 'ng-zorro-antd/core/config';\nimport { PREFIX, warn } from 'ng-zorro-antd/core/logger';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { JoinedEditorOptions, NzCodeEditorLoadingStatus } from './typings';\n\ndeclare const monaco: NzSafeAny;\n\nconst NZ_CONFIG_MODULE_NAME = 'codeEditor';\n\nfunction tryTriggerFunc(fn?: (...args: NzSafeAny[]) => NzSafeAny): (...args: NzSafeAny) => void {\n  return (...args: NzSafeAny[]) => {\n    if (fn) {\n      fn(...args);\n    }\n  };\n}\n\n// Caretaker note: previously, these were `NzCodeEditorService` properties.\n// They're kept as static variables because this will allow loading Monaco only once.\n// This applies to micro frontend apps with multiple Angular apps or a single Angular app\n// that can be bootstrapped and destroyed multiple times (e.g. using Webpack module federation).\n// Root providers are re-initialized each time the app is bootstrapped. Platform providers aren't.\n// We can't make the `NzCodeEditorService` to be a platform provider (`@Injectable({ providedIn: 'platform' })`)\n// since it depends on other root providers.\nconst loaded$ = new ReplaySubject<boolean>(1);\nlet loadingStatus = NzCodeEditorLoadingStatus.UNLOAD;\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NzCodeEditorService implements OnDestroy {\n  private document: Document;\n  private firstEditorInitialized = false;\n  private option: JoinedEditorOptions = {};\n  private config: CodeEditorConfig;\n  private subscription: Subscription | null;\n\n  option$ = new BehaviorSubject<JoinedEditorOptions>(this.option);\n\n  constructor(private readonly nzConfigService: NzConfigService, @Inject(DOCUMENT) _document: NzSafeAny) {\n    const globalConfig = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME);\n\n    this.document = _document;\n    this.config = { ...globalConfig };\n    if (this.config.monacoEnvironment) {\n      window.MonacoEnvironment = { ...this.config.monacoEnvironment };\n    }\n    this.option = this.config.defaultEditorOption || {};\n\n    this.subscription = this.nzConfigService.getConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME).subscribe(() => {\n      const newGlobalConfig: NzSafeAny = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME);\n      if (newGlobalConfig) {\n        this._updateDefaultOption(newGlobalConfig.defaultEditorOption);\n      }\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.subscription!.unsubscribe();\n    this.subscription = null;\n  }\n\n  private _updateDefaultOption(option: JoinedEditorOptions): void {\n    this.option = { ...this.option, ...option };\n    this.option$.next(this.option);\n\n    if ('theme' in option && option.theme) {\n      monaco.editor.setTheme(option.theme);\n    }\n  }\n\n  requestToInit(): Observable<JoinedEditorOptions> {\n    if (loadingStatus === NzCodeEditorLoadingStatus.LOADED) {\n      this.onInit();\n      return of(this.getLatestOption());\n    }\n\n    if (loadingStatus === NzCodeEditorLoadingStatus.UNLOAD) {\n      if (this.config.useStaticLoading && typeof monaco === 'undefined') {\n        warn(\n          'You choose to use static loading but it seems that you forget ' +\n            'to config webpack plugin correctly. Please refer to our official website' +\n            'for more details about static loading.'\n        );\n      } else {\n        this.loadMonacoScript();\n      }\n    }\n\n    return loaded$.pipe(\n      tap(() => this.onInit()),\n      map(() => this.getLatestOption())\n    );\n  }\n\n  private loadMonacoScript(): void {\n    if (this.config.useStaticLoading) {\n      Promise.resolve().then(() => this.onLoad());\n      return;\n    }\n\n    if (loadingStatus === NzCodeEditorLoadingStatus.LOADING) {\n      return;\n    }\n\n    loadingStatus = NzCodeEditorLoadingStatus.LOADING;\n\n    const assetsRoot = this.config.assetsRoot;\n    const vs = assetsRoot ? `${assetsRoot}/vs` : 'assets/vs';\n    const windowAsAny = window as NzSafeAny;\n    const loadScript = this.document.createElement('script');\n\n    loadScript.type = 'text/javascript';\n    loadScript.src = `${vs}/loader.js`;\n\n    const onLoad = (): void => {\n      cleanup();\n      windowAsAny.require.config({\n        paths: { vs },\n        ...this.config.extraConfig\n      });\n      windowAsAny.require(['vs/editor/editor.main'], () => {\n        this.onLoad();\n      });\n    };\n\n    const onError = (): void => {\n      cleanup();\n      throw new Error(`${PREFIX} cannot load assets of monaco editor from source \"${vs}\".`);\n    };\n\n    const cleanup = (): void => {\n      // Caretaker note: we have to remove these listeners once the `<script>` is loaded successfully\n      // or not since the `onLoad` listener captures `this`, which will prevent the `NzCodeEditorService`\n      // from being garbage collected.\n      loadScript.removeEventListener('load', onLoad);\n      loadScript.removeEventListener('error', onError);\n      // We don't need to keep the `<script>` element within the `<body>` since JavaScript has\n      // been executed and Monaco is available globally. E.g. Webpack, always removes `<script>`\n      // elements after loading chunks (see its `LoadScriptRuntimeModule`).\n      this.document.documentElement.removeChild(loadScript);\n    };\n\n    loadScript.addEventListener('load', onLoad);\n    loadScript.addEventListener('error', onError);\n\n    this.document.documentElement.appendChild(loadScript);\n  }\n\n  private onLoad(): void {\n    loadingStatus = NzCodeEditorLoadingStatus.LOADED;\n    loaded$.next(true);\n    loaded$.complete();\n\n    tryTriggerFunc(this.config.onLoad)();\n  }\n\n  private onInit(): void {\n    if (!this.firstEditorInitialized) {\n      this.firstEditorInitialized = true;\n      tryTriggerFunc(this.config.onFirstEditorInit)();\n    }\n\n    tryTriggerFunc(this.config.onInit)();\n  }\n\n  private getLatestOption(): JoinedEditorOptions {\n    return { ...this.option };\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Platform } from '@angular/cdk/platform';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  NgZone,\n  OnDestroy,\n  Output,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, combineLatest, fromEvent, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';\n\nimport type { editor, IDisposable } from 'monaco-editor';\n\nimport { warn } from 'ng-zorro-antd/core/logger';\nimport { BooleanInput, NzSafeAny, OnChangeType, OnTouchedType } from 'ng-zorro-antd/core/types';\nimport { inNextTick, InputBoolean } from 'ng-zorro-antd/core/util';\n\nimport { NzCodeEditorService } from './code-editor.service';\nimport { DiffEditorOptions, EditorOptions, JoinedEditorOptions, NzEditorMode } from './typings';\n\n// Import types from monaco editor.\ntype ITextModel = editor.ITextModel;\ntype IStandaloneCodeEditor = editor.IStandaloneCodeEditor;\ntype IStandaloneDiffEditor = editor.IStandaloneDiffEditor;\n\ndeclare const monaco: NzSafeAny;\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'nz-code-editor',\n  exportAs: 'nzCodeEditor',\n  template: `\n    <div class=\"ant-code-editor-loading\" *ngIf=\"nzLoading\">\n      <nz-spin></nz-spin>\n    </div>\n\n    <div class=\"ant-code-editor-toolkit\" *ngIf=\"nzToolkit\">\n      <ng-template [ngTemplateOutlet]=\"nzToolkit\"></ng-template>\n    </div>\n  `,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NzCodeEditorComponent),\n      multi: true\n    }\n  ]\n})\nexport class NzCodeEditorComponent implements OnDestroy, AfterViewInit {\n  static ngAcceptInputType_nzLoading: BooleanInput;\n  static ngAcceptInputType_nzFullControl: BooleanInput;\n\n  @Input() nzEditorMode: NzEditorMode = 'normal';\n  @Input() nzOriginalText = '';\n  @Input() @InputBoolean() nzLoading = false;\n  @Input() @InputBoolean() nzFullControl = false;\n  @Input() nzToolkit?: TemplateRef<void>;\n\n  @Input() set nzEditorOption(value: JoinedEditorOptions) {\n    this.editorOption$.next(value);\n  }\n\n  @Output() readonly nzEditorInitialized = new EventEmitter<IStandaloneCodeEditor | IStandaloneDiffEditor>();\n\n  editorOptionCached: JoinedEditorOptions = {};\n\n  private readonly el: HTMLElement;\n  private destroy$ = new Subject<void>();\n  private resize$ = new Subject<void>();\n  private editorOption$ = new BehaviorSubject<JoinedEditorOptions>({});\n  private editorInstance: IStandaloneCodeEditor | IStandaloneDiffEditor | null = null;\n  private value = '';\n  private modelSet = false;\n  private onDidChangeContentDisposable: IDisposable | null = null;\n\n  constructor(\n    private nzCodeEditorService: NzCodeEditorService,\n    private ngZone: NgZone,\n    elementRef: ElementRef,\n    private platform: Platform\n  ) {\n    this.el = elementRef.nativeElement;\n    this.el.classList.add('ant-code-editor');\n  }\n\n  /**\n   * Initialize a monaco editor instance.\n   */\n  ngAfterViewInit(): void {\n    if (!this.platform.isBrowser) {\n      return;\n    }\n\n    this.nzCodeEditorService\n      .requestToInit()\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(option => this.setup(option));\n  }\n\n  ngOnDestroy(): void {\n    if (this.onDidChangeContentDisposable) {\n      this.onDidChangeContentDisposable.dispose();\n      this.onDidChangeContentDisposable = null;\n    }\n\n    if (this.editorInstance) {\n      this.editorInstance.dispose();\n      this.editorInstance = null;\n    }\n\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  writeValue(value: string): void {\n    this.value = value;\n    this.setValue();\n  }\n\n  registerOnChange(fn: OnChangeType): NzSafeAny {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: OnTouchedType): void {\n    this.onTouch = fn;\n  }\n\n  onChange: OnChangeType = (_value: string) => {};\n\n  onTouch: OnTouchedType = () => {};\n\n  layout(): void {\n    this.resize$.next();\n  }\n\n  private setup(option: JoinedEditorOptions): void {\n    // The `setup()` is invoked when the Monaco editor is loaded. This may happen asynchronously for the first\n    // time, and it'll always happen synchronously afterwards. The first `setup()` invokation is outside the Angular\n    // zone, but further invokations will happen within the Angular zone. We call the `setModel()` on the editor\n    // instance, which tells Monaco to add event listeners lazily internally (`mousemove`, `mouseout`, etc.).\n    // We should avoid adding them within the Angular zone since this will drastically affect the performance.\n    this.ngZone.runOutsideAngular(() =>\n      inNextTick()\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(() => {\n          this.editorOptionCached = option;\n          this.registerOptionChanges();\n          this.initMonacoEditorInstance();\n          this.registerResizeChange();\n          this.setValue();\n\n          if (!this.nzFullControl) {\n            this.setValueEmitter();\n          }\n\n          if (this.nzEditorInitialized.observers.length) {\n            this.ngZone.run(() => this.nzEditorInitialized.emit(this.editorInstance!));\n          }\n        })\n    );\n  }\n\n  private registerOptionChanges(): void {\n    combineLatest([this.editorOption$, this.nzCodeEditorService.option$])\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(([selfOpt, defaultOpt]) => {\n        this.editorOptionCached = {\n          ...this.editorOptionCached,\n          ...defaultOpt,\n          ...selfOpt\n        };\n        this.updateOptionToMonaco();\n      });\n  }\n\n  private initMonacoEditorInstance(): void {\n    this.ngZone.runOutsideAngular(() => {\n      this.editorInstance =\n        this.nzEditorMode === 'normal'\n          ? monaco.editor.create(this.el, { ...this.editorOptionCached })\n          : monaco.editor.createDiffEditor(this.el, {\n              ...(this.editorOptionCached as DiffEditorOptions)\n            });\n    });\n  }\n\n  private registerResizeChange(): void {\n    this.ngZone.runOutsideAngular(() => {\n      fromEvent(window, 'resize')\n        .pipe(debounceTime(300), takeUntil(this.destroy$))\n        .subscribe(() => {\n          this.layout();\n        });\n\n      this.resize$\n        .pipe(\n          takeUntil(this.destroy$),\n          filter(() => !!this.editorInstance),\n          map(() => ({\n            width: this.el.clientWidth,\n            height: this.el.clientHeight\n          })),\n          distinctUntilChanged((a, b) => a.width === b.width && a.height === b.height),\n          debounceTime(50)\n        )\n        .subscribe(() => {\n          this.editorInstance!.layout();\n        });\n    });\n  }\n\n  private setValue(): void {\n    if (!this.editorInstance) {\n      return;\n    }\n\n    if (this.nzFullControl && this.value) {\n      warn(`should not set value when you are using full control mode! It would result in ambiguous data flow!`);\n      return;\n    }\n\n    if (this.nzEditorMode === 'normal') {\n      if (this.modelSet) {\n        const model = this.editorInstance.getModel() as ITextModel;\n        this.preservePositionAndSelections(() => model.setValue(this.value));\n      } else {\n        (this.editorInstance as IStandaloneCodeEditor).setModel(\n          monaco.editor.createModel(this.value, (this.editorOptionCached as EditorOptions).language)\n        );\n        this.modelSet = true;\n      }\n    } else {\n      if (this.modelSet) {\n        const model = (this.editorInstance as IStandaloneDiffEditor).getModel()!;\n        this.preservePositionAndSelections(() => {\n          model.modified.setValue(this.value);\n          model.original.setValue(this.nzOriginalText);\n        });\n      } else {\n        const language = (this.editorOptionCached as EditorOptions).language;\n        (this.editorInstance as IStandaloneDiffEditor).setModel({\n          original: monaco.editor.createModel(this.nzOriginalText, language),\n          modified: monaco.editor.createModel(this.value, language)\n        });\n        this.modelSet = true;\n      }\n    }\n  }\n\n  /**\n   * {@link editor.ICodeEditor}#setValue resets the cursor position to the start of the document.\n   * This helper memorizes the cursor position and selections and restores them after the given\n   * function has been called.\n   */\n  private preservePositionAndSelections(fn: () => unknown): void {\n    if (!this.editorInstance) {\n      fn();\n      return;\n    }\n\n    const position = this.editorInstance.getPosition();\n    const selections = this.editorInstance.getSelections();\n\n    fn();\n\n    if (position) {\n      this.editorInstance.setPosition(position);\n    }\n    if (selections) {\n      this.editorInstance.setSelections(selections);\n    }\n  }\n\n  private setValueEmitter(): void {\n    const model = (\n      this.nzEditorMode === 'normal'\n        ? (this.editorInstance as IStandaloneCodeEditor).getModel()\n        : (this.editorInstance as IStandaloneDiffEditor).getModel()!.modified\n    ) as ITextModel;\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    // (`nz-code-editor -> monaco -> nz-code-editor`) and prevents the `nz-code-editor` from being GC'd.\n    this.onDidChangeContentDisposable = model.onDidChangeContent(() => {\n      this.emitValue(model.getValue());\n    });\n  }\n\n  private emitValue(value: string): void {\n    if (this.value === value) {\n      // If the value didn't change there's no reason to send an update.\n      // Specifically this may happen during an update from the model (writeValue) where sending an update to the model would actually be incorrect.\n      return;\n    }\n\n    this.value = value;\n    // We're re-entering the Angular zone only if the value has been changed since there's a `return` expression previously.\n    // This won't cause \"dead\" change detections (basically when the `tick()` has been run, but there's nothing to update).\n    this.ngZone.run(() => {\n      this.onChange(value);\n    });\n  }\n\n  private updateOptionToMonaco(): void {\n    if (this.editorInstance) {\n      this.editorInstance.updateOptions({ ...this.editorOptionCached });\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\n\nimport { NzCodeEditorComponent } from './code-editor.component';\n\n@NgModule({\n  declarations: [NzCodeEditorComponent],\n  imports: [CommonModule, NzIconModule, NzSpinModule],\n  exports: [NzCodeEditorComponent]\n})\nexport class NzCodeEditorModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './typings';\nexport * from './code-editor.component';\nexport * from './code-editor.module';\nexport * from './code-editor.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NzCodeEditorService"],"mappings":"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"}