{"version":3,"file":"bootkit-angular-script.mjs","sources":["../../../projects/bootkit/script/script-locader.ts","../../../projects/bootkit/script/bootkit-angular-script.ts"],"sourcesContent":["import { Renderer2, Inject, Injectable, RendererFactory2 } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ScriptDefinition, ScriptDefinitionObject } from './types';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ScriptLoader {\r\n  private _renderer: Renderer2;\r\n  private _loadedScripts = new Map<string, any>();\r\n\r\n  constructor(\r\n    _rendererFactory: RendererFactory2,\r\n    @Inject(DOCUMENT) private _document: Document,\r\n  ) {\r\n    this._renderer = _rendererFactory.createRenderer(null, null);\r\n  }\r\n\r\n  public async loadAll(...scripts: ScriptDefinition[]) {\r\n    let r: { script: ScriptDefinition, element: any }[] = [];\r\n    for (let s of scripts) {\r\n      r.push({ script: s, element: await this.load(s) })\r\n    }\r\n\r\n    return r;\r\n  }\r\n\r\n  public load(script: ScriptDefinition): Promise<any> {\r\n    return new Promise<string>((resolve, reject) => {\r\n\r\n      let d: ScriptDefinitionObject = typeof script == 'string' ? { src: script } : script;\r\n\r\n      if (this._loadedScripts.has(d.src)) {\r\n        return resolve(this._loadedScripts.get(d.src));\r\n      }\r\n\r\n      const elm = this._renderer.createElement('script');\r\n      elm.type = 'text/javascript';\r\n      elm.src = d.src;\r\n\r\n      if (Array.isArray(d.attrs)) {\r\n        d.attrs.forEach(attr => {\r\n          this._renderer.setAttribute(elm, attr, d.attrs[attr]);\r\n        });\r\n      }\r\n\r\n      elm.onload = (res: any) => {\r\n        this._loadedScripts.set(d.src, elm);\r\n        return resolve(elm);\r\n      }\r\n\r\n      this._renderer.appendChild(this._document.body, elm);\r\n    });\r\n  }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}