{"version":3,"file":"ngx-tinymce.mjs","sources":["../../lib/src/options.ts","../../lib/src/tinymce.ts","../../lib/src/provide.ts","../../lib/src/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  OnDestroy,\n  ChangeDetectionStrategy,\n  TemplateRef,\n  ViewEncapsulation,\n  booleanAttribute,\n  numberAttribute,\n  inject,\n  signal,\n  input,\n  output,\n  afterNextRender,\n  effect,\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 './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 OnDestroy, ControlValueAccessor {\n  private readonly defConfig = inject(TinymceOptions, { optional: true });\n  private readonly lazySrv = inject(NuLazyService);\n  private readonly doc = inject(DOCUMENT);\n\n  private _instance?: TinyMCEEditor | null;\n  private value = '';\n  protected readonly load = signal(true);\n  protected readonly id = `_tinymce-${Math.random().toString(36).substring(2)}`;\n\n  private onChange?: (value: string) => void;\n  private onTouched?: () => void;\n\n  readonly config = input<RawEditorOptions | null>(null);\n  readonly placeholder = input('');\n  readonly inline = input(false, { transform: booleanAttribute });\n  readonly disabled = input(false, { transform: booleanAttribute });\n  private _disabled = signal(false);\n\n  protected _loading = signal<string | null>(null);\n  protected _loadingTpl = signal<TemplateRef<any> | null>(null);\n  readonly loading = input(null, {\n    transform: (value: string | TemplateRef<any> | null) => {\n      if (value instanceof TemplateRef) {\n        this._loading.set(null);\n        this._loadingTpl.set(value);\n      } else {\n        this._loading.set(value);\n      }\n      return value;\n    },\n  });\n  /** 延迟初始化 */\n  readonly delay = input(0, { transform: numberAttribute });\n  readonly ready = output<TinyMCEEditor>();\n\n  get instance(): TinyMCEEditor | undefined | null {\n    return this._instance;\n  }\n\n  constructor() {\n    afterNextRender(() => {\n      if (isSSR) {\n        return;\n      }\n      // 已经存在对象无须进入懒加载模式\n      if (this.win.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    effect(() => {\n      const cfg = this.config();\n      if (!this._instance) return;\n      this.destroy();\n      if (cfg)\n        this.initDelay();\n    })\n  }\n\n  private get win(): 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.win;\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: 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.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    win.tinymce.init(options);\n\n    this.load.set(false);\n  }\n\n  private destroy(): void {\n    if (this._instance == null) {\n      return;\n    }\n    this._instance.off();\n    this._instance.remove();\n    this._instance = null;\n  }\n\n  private setDisabled(): void {\n    if (!this._instance) {\n      return;\n    }\n    const mode = this.disabled() || 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  ngOnDestroy(): void {\n    this.destroy();\n  }\n\n  writeValue(value: string): void {\n    // value should be NOT NULL\n    this.value = value ?? '';\n    this._instance?.setContent(this.value);\n  }\n\n  registerOnChange(fn: (_: any) => object): void {\n    this.onChange = fn;\n  }\n  registerOnTouched(fn: () => object): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this._disabled.set(isDisabled);\n    this.setDisabled();\n  }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { TinymceOptions } from './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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"}