{"version":3,"file":"opensign-angular.mjs","sources":["../../../projects/opensign-angular-lib/src/opensign.component.ts","../../../projects/opensign-angular-lib/src/public-api.ts","../../../projects/opensign-angular-lib/src/opensign-angular.ts"],"sourcesContent":["import { Component, Input, OnInit, SimpleChanges, OnChanges, EventEmitter, Output, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common'; \r\n\r\n@Component({\r\n  selector: 'opensign',\r\n  standalone: true,\r\n  imports: [],\r\n  template: \"\",\r\n  styles: ``\r\n})\r\nexport class OpensignComponent implements OnInit, OnChanges{\r\n\r\n  @Input() baseUrl: string = \"https://app.opensignlabs.com/api/app\";\r\n  @Input() appId: string = \"opensign\";\r\n  @Input() scriptSrc: string = '';\r\n  @Input() templateId: string='';\r\n  @Output() onLoad = new EventEmitter<void>();\r\n  @Output() onLoadError = new EventEmitter<string>();\r\n\r\n  load = false;\r\n  templateStatus: any = {};\r\n  private scriptId?: string;\r\n  private checkInterval?: any;\r\n  private timeoutId?: any;\r\n\r\n  private isBrowser: boolean;\r\n  \r\n  constructor(@Inject(PLATFORM_ID) private platformId: Object) {\r\n    this.isBrowser = isPlatformBrowser(this.platformId);\r\n  }\r\n  \r\n  ngOnInit(): void {\r\n     // Generate scriptSrc dynamically based on baseUrl\r\n     if (!this.scriptSrc) {\r\n      const parsedUrl = new URL(this.baseUrl);\r\n      const originUrl = parsedUrl.origin;\r\n      this.scriptSrc = `${originUrl}/static/js/public-template.bundle.js`;\r\n    }\r\n    this.handleComponentLoad();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void { \r\n    // if (changes['scriptSrc'] && !changes['scriptSrc'].firstChange) {\r\n    //   this.handleComponentLoad();\r\n    // }\r\n  }\r\n  ngOnDestroy(): void {\r\n    this.cleanUpScript();\r\n    if (this.checkInterval) {\r\n      clearInterval(this.checkInterval);\r\n    }\r\n    if (this.timeoutId) {\r\n      clearTimeout(this.timeoutId);\r\n    }\r\n  }\r\n  private handleComponentLoad(): void {\r\n    if (this.isBrowser) {\r\n      if (this.templateId) {\r\n        this.loadScriptWithId();\r\n      } else {\r\n        const error = 'error: TemplateId is missing';\r\n        this.onLoadError.emit(error);\r\n        throw new Error(error);\r\n      }\r\n    }\r\n  }\r\n\r\n  private loadScriptWithId(): void {\r\n    if (this.isBrowser) {\r\n      const randomValue = Math.floor(Math.random() * 10000);\r\n      this.scriptId = `script-${randomValue}`;\r\n      const script = document.createElement('script');\r\n      script.src = this.scriptSrc;\r\n      script.id = this.scriptId;\r\n      script.type = 'text/javascript';\r\n      script.async = true;\r\n      document.body.appendChild(script);\r\n\r\n      script.onload = () => {\r\n        this.checkForUpdatePublicTemplateProps();\r\n      };\r\n\r\n      script.onerror = () => {\r\n        this.onLoadError.emit('Script failed to load');\r\n      };\r\n    }\r\n  }\r\n\r\n  private checkForUpdatePublicTemplateProps(): void {\r\n    if (this.isBrowser) {\r\n      this.checkInterval = setInterval(() => {\r\n        if ((window as any).updatePublicTemplateProps) {\r\n          (window as any).updatePublicTemplateProps({\r\n            templateId: this.templateId || '',\r\n            baseUrl :this.baseUrl,\r\n            appId: this.appId,\r\n            setTemplateStatus: (status: any) => this.templateStatus = status\r\n          });\r\n          clearInterval(this.checkInterval);\r\n          this.timeoutId = setTimeout(() => {\r\n            if (!(window as any).updatePublicTemplateProps) {\r\n              this.onLoadError.emit('updatePublicTemplateProps not found');\r\n            } else if (this.templateStatus.status === 'Success') {\r\n              this.onLoad.emit();\r\n            }\r\n          }, 5000); // Timeout after 5 seconds\r\n        }\r\n      }, 100); // Retry every 100ms\r\n    }\r\n  }\r\n\r\n  private cleanUpScript(): void {\r\n    if (this.isBrowser) {\r\n      const script = document.getElementById(this.scriptId || '');\r\n      if (script) {\r\n        script.remove();\r\n      }\r\n    }\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of opensign-angular-lib\r\n */\r\n \r\nexport  * from \"./opensign.component\"\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}