{"version":3,"file":"angular-email-editor.mjs","sources":["../../../projects/email-editor/src/lib/email-editor.service.ts","../../../projects/email-editor/src/lib/loadScript.ts","../../../projects/email-editor/src/lib/email-editor.component.ts","../../../projects/email-editor/src/lib/email-editor.component.html","../../../projects/email-editor/src/lib/email-editor.module.ts","../../../projects/email-editor/src/public_api.ts","../../../projects/email-editor/src/angular-email-editor.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class EmailEditorService {\n\n  constructor() { }\n}\n","const defaultScriptUrl = 'https://editor.unlayer.com/embed.js?2';\nconst callbacks: Function[] = [];\nlet loaded = false;\n\nconst isScriptInjected = (scriptUrl: string) => {\n  const scripts = document.querySelectorAll('script');\n  let injected = false;\n\n  scripts.forEach((script) => {\n    if (script.src.includes(scriptUrl)) {\n      injected = true;\n    }\n  });\n\n  return injected;\n};\n\nconst addCallback = (callback: Function) => {\n  callbacks.push(callback);\n};\n\nconst runCallbacks = () => {\n  if (loaded) {\n    let callback;\n\n    while ((callback = callbacks.shift())) {\n      callback();\n    }\n  }\n};\n\nexport const loadScript = (\n  callback: Function,\n  scriptUrl = defaultScriptUrl\n) => {\n  addCallback(callback);\n\n  if (!isScriptInjected(scriptUrl)) {\n    const embedScript = document.createElement('script');\n    embedScript.setAttribute('src', scriptUrl);\n    embedScript.onload = () => {\n      loaded = true;\n      runCallbacks();\n    };\n    document.head.appendChild(embedScript);\n  } else {\n    runCallbacks();\n  }\n};\n","import {\n  Component,\n  OnInit,\n  AfterViewInit,\n  Input,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport { loadScript } from './loadScript';\nimport pkg from './source.json';\nimport { Editor, UnlayerOptions, ToolsConfig, JSONTemplate } from '../types';\n\ndeclare module unlayer {\n  function init(object);\n  function createEditor(object);\n  function loadDesign(object);\n  function saveDesign(Function);\n  function exportHtml(Function);\n}\n\nlet lastEditorId = 0;\n\n@Component({\n  // tslint:disable-next-line:component-selector\n  selector: 'email-editor',\n  templateUrl: './email-editor.component.html',\n  styleUrls: ['./email-editor.component.css'],\n})\nexport class EmailEditorComponent implements OnInit, AfterViewInit {\n  @Input() editorId: string;\n  @Input() options: UnlayerOptions = {};\n  @Input() projectId: number;\n  @Input() scriptUrl: string;\n  @Input() tools: ToolsConfig;\n  @Input() appearance: object;\n  @Input() locale: string;\n  @Input() id: string;\n\n  @Input() minHeight = '500px';\n\n  @Output() loaded = new EventEmitter();\n  @Output() ready = new EventEmitter();\n\n  editor: Editor;\n\n  constructor() {\n    this.id = this.editorId || `editor-${++lastEditorId}`;\n  }\n\n  ngOnInit() {}\n\n  ngAfterViewInit() {\n    loadScript(this.loadEditor.bind(this), this.scriptUrl);\n  }\n\n  protected loadEditor() {\n    const options: UnlayerOptions = this.options || {};\n\n    if (this.projectId) {\n      options.projectId = this.projectId;\n    }\n\n    if (this.tools) {\n      options.tools = this.tools;\n    }\n\n    if (this.appearance) {\n      options.appearance = this.appearance;\n    }\n\n    if (this.locale) {\n      options.locale = this.locale;\n    }\n\n    this.editor = unlayer.createEditor({\n      ...options,\n      id: this.id,\n      displayMode: options.displayMode || 'email',\n      source: {\n        name: pkg.name,\n        version: pkg.version,\n      },\n    });\n\n    this.loaded.emit({});\n\n    this.editor.addEventListener('editor:ready', () => {\n      this.ready.emit({});\n    });\n  }\n\n  public loadDesign(data: JSONTemplate) {\n    this.editor.loadDesign(data);\n  }\n\n  public saveDesign(cb: (data) => void) {\n    this.editor.saveDesign(cb);\n  }\n\n  public exportHtml(cb: (data) => void) {\n    this.editor.exportHtml(cb);\n  }\n}\n","<div [id]=\"id\" class=\"unlayer-editor\" [style.min-height]=\"minHeight\"></div>\n","import { NgModule } from '@angular/core';\nimport { EmailEditorComponent } from './email-editor.component';\n\n@NgModule({\n  declarations: [EmailEditorComponent],\n  imports: [\n  ],\n  exports: [EmailEditorComponent]\n})\nexport class EmailEditorModule { }\n","/*\n * Public API Surface of email-editor\n */\n\nexport * from './lib/email-editor.service';\nexport * from './lib/email-editor.component';\nexport * from './lib/email-editor.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}