{"version":3,"file":"dangl-angular-material-shared-tiny-mce.mjs","sources":["../../../projects/angular-material-shared/tiny-mce/src/tiny-mce.component.ts","../../../projects/angular-material-shared/tiny-mce/src/tiny-mce.component.html","../../../projects/angular-material-shared/tiny-mce/dangl-angular-material-shared-tiny-mce.ts"],"sourcesContent":["import { Component, forwardRef, Inject, Input, NgZone, OnInit } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { EditorModule } from '@tinymce/tinymce-angular';\r\nimport { GuidGenerator } from '@dangl/angular-material-shared/guid-generator';\r\nimport { RawEditorOptions, Editor } from 'tinymce';\r\n@Component({\r\n    selector: 'dangl-tiny-mce',\r\n    templateUrl: './tiny-mce.component.html',\r\n    styleUrls: ['./tiny-mce.component.scss'],\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => TinyMceComponent),\r\n            multi: true,\r\n        }\r\n    ],\r\n    imports: [EditorModule]\r\n})\r\nexport class TinyMceComponent implements OnInit, ControlValueAccessor {\r\n  @Input() tinyMceLanguageCode: string;\r\n\r\n  elementId = GuidGenerator.generatePseudoRandomGuid();\r\n  editor: Editor;\r\n  init:RawEditorOptions;\r\n  private _editorContent: string;\r\n  private _disabled = false;\r\n  get editorContent(): string {\r\n    return this._editorContent;\r\n  }\r\n  set editorContent(value: string) {\r\n    if (value !== this._editorContent) {\r\n      this._editorContent = value;\r\n      this.ngZone.run(() => {\r\n        // tinyMCE events are outside of the Angular zone\r\n        // ngZone.run() makes sure everything runs in the\r\n        // Angular zone, so it integrates in the Angular\r\n        // lifecycle. Otherwise, e.g., 'required' validation\r\n        // would not update on change\r\n        this.onChangeCallback(value);\r\n      });\r\n    }\r\n  }\r\n\r\n  private onTouchedCallback: () => void = () => {};\r\n  private onChangeCallback: (_: any) => void = () => {};\r\n\r\n  constructor(\r\n    @Inject('TINYMCE_BASE_URL') private baseUrl: string,\r\n    private ngZone: NgZone\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    this.init = {\r\n      selector:`#${this.elementId}`,\r\n      plugins: ['link', 'table', 'image', 'code'],\r\n      language: this.tinyMceLanguageCode,\r\n      base_url: this.baseUrl,\r\n      promotion: false,\r\n      branding: false, // To disable 'POWERED BY TINYMCE' in footer\r\n      setup: (editor: Editor) => {\r\n        editor.on('change keyup', () => {\r\n          const content = editor.getContent();\r\n          this.editorContent = content;\r\n        });\r\n      },\r\n      init_instance_callback: (editor: Editor) => {\r\n        if (editor && this.editorContent) {\r\n          editor.setContent(this.editorContent);\r\n        }\r\n        this.editor = editor;\r\n        this.setDisabledState(this._disabled)\r\n      }\r\n    };\r\n  }\r\n\r\n  writeValue(obj: any): void {\r\n    obj = obj || '';\r\n    this.editorContent = obj;\r\n    if (!this.editor) {\r\n      return;\r\n    }\r\n    const tinyMceContent = this.editor.getContent();\r\n    if (tinyMceContent !== obj) {\r\n      this.editor.setContent(obj);\r\n    }\r\n  }\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this._disabled = isDisabled;\r\n    if (!this.editor) {\r\n      return;\r\n    }\r\n    if (isDisabled) {\r\n      this.editor.mode.set('readonly');\r\n    } else {\r\n      this.editor.mode.set('design');\r\n    }\r\n  }\r\n}\r\n","<editor id=\"{{ elementId }}\" [init]=\"init\"></editor>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;MAkBa,gBAAgB,CAAA;AA6BW,IAAA,OAAA;AAC5B,IAAA,MAAA;AA7BD,IAAA,mBAAmB;AAE5B,IAAA,SAAS,GAAG,aAAa,CAAC,wBAAwB,EAAE;AACpD,IAAA,MAAM;AACN,IAAA,IAAI;AACI,IAAA,cAAc;IACd,SAAS,GAAG,KAAK;AACzB,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,cAAc;;IAE5B,IAAI,aAAa,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;;;;;;AAMnB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC9B,aAAC,CAAC;;;AAIE,IAAA,iBAAiB,GAAe,MAAK,GAAG;AACxC,IAAA,gBAAgB,GAAqB,MAAK,GAAG;IAErD,WACsC,CAAA,OAAe,EAC3C,MAAc,EAAA;QADc,IAAO,CAAA,OAAA,GAAP,OAAO;QACnC,IAAM,CAAA,MAAA,GAAN,MAAM;;IAGhB,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,GAAG;AACV,YAAA,QAAQ,EAAC,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAE,CAAA;YAC7B,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;YAC3C,QAAQ,EAAE,IAAI,CAAC,mBAAmB;YAClC,QAAQ,EAAE,IAAI,CAAC,OAAO;AACtB,YAAA,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;AACf,YAAA,KAAK,EAAE,CAAC,MAAc,KAAI;AACxB,gBAAA,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,MAAK;AAC7B,oBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE;AACnC,oBAAA,IAAI,CAAC,aAAa,GAAG,OAAO;AAC9B,iBAAC,CAAC;aACH;AACD,YAAA,sBAAsB,EAAE,CAAC,MAAc,KAAI;AACzC,gBAAA,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,oBAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;;AAEvC,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;;SAExC;;AAGH,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,GAAG,GAAG,GAAG,IAAI,EAAE;AACf,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB;;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC/C,QAAA,IAAI,cAAc,KAAK,GAAG,EAAE;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;;;AAG/B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;;AAE5B,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;;AAE7B,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB;;QAEF,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;;aAC3B;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;;;AAlFvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBA6BjB,kBAAkB,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AA7BjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EATd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,gBAAgB,CAAC;AAC/C,gBAAA,KAAK,EAAE,IAAI;AACd;SACJ,ECfL,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,8DACA,yDDec,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,IAAA,EAAA,cAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAEb,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAb5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGf,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,sBAAsB,CAAC;AAC/C,4BAAA,KAAK,EAAE,IAAI;AACd;qBACJ,EACQ,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,8DAAA,EAAA;;0BA+BtB,MAAM;2BAAC,kBAAkB;8DA5BnB,mBAAmB,EAAA,CAAA;sBAA3B;;;AEnBH;;AAEG;;;;"}