{"version":3,"file":"ngx-tinymce.mjs","sources":["../../lib/src/tinymce.options.ts","../../lib/src/tinymce.component.ts","../../lib/src/tinymce.module.ts","../../lib/src/provide.ts","../../lib/ngx-tinymce.ts"],"sourcesContent":["import type { RawEditorOptions } from 'tinymce';\n\nexport class TinymceOptions {\n  /** 指定tinymce目录路径，默认：`./assets/tinymce/` */\n  baseURL?: string = './assets/tinymce/';\n  /** 指定tinymce文件名，默认：`tinymce.min.js` */\n  fileName?: string = 'tinymce.min.js';\n  /** 默认配置项，对全局 Tinymce 有效 */\n  config?: RawEditorOptions;\n  /** 延迟加载（单位：毫秒），默认：`0` */\n  delay?: number;\n}\n","import {\n  Component,\n  forwardRef,\n  OnChanges,\n  OnDestroy,\n  Input,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  TemplateRef,\n  SimpleChanges,\n  ViewEncapsulation,\n  Output,\n  EventEmitter,\n  NgZone,\n  SimpleChange,\n  booleanAttribute,\n  numberAttribute,\n  inject,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { NuLazyService } from '@ng-util/lazy';\nimport { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport type { Editor as TinyMCEEditor, RawEditorOptions } from 'tinymce';\nimport { TinymceOptions } from './tinymce.options';\n\nconst isSSR = !(typeof document === 'object' && !!document);\n\n/**\n * Angular for tinymce, You can modify the global configuration via `provideTinymce`\n */\n@Component({\n  selector: 'tinymce',\n  exportAs: 'tinymce',\n  template: `\n    @if (inline) {\n    <div [attr.id]=\"id\"><ng-content /></div>\n    } @else {\n    <textarea [attr.id]=\"id\" [attr.placeholder]=\"placeholder\" class=\"tinymce-selector\"></textarea>\n    } @if (load) {\n    <div class=\"loading\">\n      @if (_loading) {\n      {{ _loading }}\n      } @else {\n      <ng-template [ngTemplateOutlet]=\"_loadingTpl\" />\n      }\n    </div>\n    }\n  `,\n  imports: [NgTemplateOutlet],\n  styles: [\n    `\n      tinymce .tinymce-selector {\n        display: none;\n      }\n    `,\n  ],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => TinymceComponent),\n      multi: true,\n    },\n  ],\n  preserveWhitespaces: false,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TinymceComponent implements AfterViewInit, OnChanges, OnDestroy, ControlValueAccessor {\n  private defConfig = inject(TinymceOptions, { optional: true });\n  private lazySrv = inject(NuLazyService);\n  private ngZone = inject(NgZone);\n  private doc = inject(DOCUMENT);\n  private cd = inject(ChangeDetectorRef);\n\n  private _instance?: TinyMCEEditor | null;\n  private value = '';\n  load = true;\n  id = `_tinymce-${Math.random().toString(36).substring(2)}`;\n\n  private onChange!: (value: string) => void;\n  private onTouched!: () => void;\n\n  @Input() config?: RawEditorOptions | null;\n  @Input() placeholder = '';\n  @Input({ transform: booleanAttribute }) inline = false;\n  @Input({ transform: booleanAttribute })\n  set disabled(value: boolean) {\n    this._disabled = value;\n    this.setDisabled();\n  }\n  private _disabled = false;\n\n  _loading: string | null = null;\n  _loadingTpl: TemplateRef<any> | null = null;\n  @Input()\n  set loading(value: string | TemplateRef<any>) {\n    if (value instanceof TemplateRef) {\n      this._loading = null;\n      this._loadingTpl = value;\n    } else {\n      this._loading = value;\n    }\n  }\n  /** 延迟初始化 */\n  @Input({ transform: numberAttribute }) delay = 0;\n  @Output() readonly ready = new EventEmitter<TinyMCEEditor>();\n\n  get instance(): TinyMCEEditor | undefined | null {\n    return this._instance;\n  }\n\n  private _getWin(): any {\n    return this.doc.defaultView || window;\n  }\n\n  private initDelay(): void {\n    if (isSSR) {\n      return;\n    }\n    setTimeout(() => this.init(), Math.max(0, this.delay));\n  }\n\n  private init(): void {\n    const win = this._getWin();\n    if (!win.tinymce) {\n      throw new Error('tinymce js文件加载失败');\n    }\n\n    const { defConfig, config, id, inline } = this;\n    if (this._instance) {\n      return;\n    }\n\n    if (defConfig?.baseURL) {\n      let url = '' + defConfig.baseURL;\n      if (url.endsWith('/')) {\n        url = url.substring(0, url.length - 1);\n      }\n      win.tinymce.baseURL = url;\n    }\n    const userOptions = { ...defConfig?.config, ...config };\n    const options: RawEditorOptions = {\n      selector: `#` + id,\n      inline,\n      ...defConfig?.config,\n      ...config,\n\n      setup: (editor) => {\n        this._instance = editor;\n        if (this.onChange) {\n          editor.on('change keyup', () => {\n            this.value = editor.getContent();\n            this.ngZone.run(() => this.onChange(this.value));\n          });\n        }\n        if (typeof userOptions.setup === 'function') {\n          userOptions.setup(editor);\n        }\n      },\n      init_instance_callback: (editor) => {\n        if (editor && this.value) {\n          editor.setContent(this.value);\n        }\n        this.setDisabled();\n        if (typeof userOptions.init_instance_callback === 'function') {\n          userOptions.init_instance_callback(editor);\n        }\n        this.ready.emit(editor);\n      },\n    };\n    if (userOptions.auto_focus) {\n      options.auto_focus = id;\n    }\n\n    this.ngZone.runOutsideAngular(() => win.tinymce.init(options));\n\n    this.load = false;\n    this.cd.detectChanges();\n  }\n\n  private destroy(): void {\n    if (this._instance == null) {\n      return;\n    }\n    this.ngZone.runOutsideAngular(() => {\n      this._instance!.off();\n      this._instance!.remove();\n    });\n    this._instance = null;\n  }\n\n  private setDisabled(): void {\n    if (!this._instance) {\n      return;\n    }\n    this.ngZone.runOutsideAngular(() => {\n      const mode = this._disabled ? 'readonly' : 'design';\n      // Compatible with 5\n      const setMode5 = (this._instance as any).setMode;\n      if (typeof setMode5 === 'function') {\n        setMode5(mode);\n      } else {\n        this._instance!.mode.set(mode);\n      }\n    });\n  }\n\n  ngAfterViewInit(): void {\n    if (isSSR) {\n      return;\n    }\n    // 已经存在对象无须进入懒加载模式\n    if (this._getWin().tinymce) {\n      this.initDelay();\n      return;\n    }\n\n    const { defConfig } = this;\n    const baseURL = defConfig && defConfig.baseURL;\n    const fileName = defConfig && defConfig.fileName;\n    const url = (baseURL || './assets/tinymce/') + (fileName || 'tinymce.min.js');\n    this.lazySrv.monitor(url).subscribe(() => this.initDelay());\n    this.lazySrv.load(url);\n  }\n\n  ngOnChanges(changes: { [P in keyof this]?: SimpleChange } & SimpleChanges): void {\n    if (this._instance && changes.config) {\n      this.destroy();\n      this.initDelay();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy();\n  }\n\n  writeValue(value: string): void {\n    // value should be NOT NULL\n    this.value = value || '';\n    if (this._instance) {\n      this.ngZone.runOutsideAngular(() => this._instance!.setContent(this.value));\n    }\n  }\n\n  registerOnChange(fn: (_: any) => {}): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: () => {}): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this.setDisabled();\n  }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TinymceOptions } from './tinymce.options';\nimport { TinymceComponent } from './tinymce.component';\n\n@NgModule({\n  imports: [CommonModule, TinymceComponent],\n  exports: [TinymceComponent],\n})\nexport class NgxTinymceModule {\n  static forRoot(options: TinymceOptions): ModuleWithProviders<NgxTinymceModule> {\n    return {\n      ngModule: NgxTinymceModule,\n      providers: [{ provide: TinymceOptions, useValue: options }],\n    };\n  }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { TinymceOptions } from './tinymce.options';\n\n/**\n * Sets up providers necessary to config for the Tinymce.\n * @example\n * bootstrapApplication(AppComponent, {\n *   providers: [provideTinymce({baseURL: '//cdn.tiny.cloud/1/no-api-key/tinymce/6/'})]\n * });\n */\nexport function provideTinymce(options: TinymceOptions): EnvironmentProviders {\n  return makeEnvironmentProviders([{ provide: TinymceOptions, useValue: options }]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}