{"version":3,"file":"leendev-onramp-angular.mjs","sources":["../../src/lib/leen-onramp-script.service.ts","../../src/lib/leen-onramp.component.ts","../../src/lib/leen-onramp.module.ts","../../src/leendev-onramp-angular.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { LeenOnRampProps } from \"./leen-onramp.types\";\n\nconst DEV_BUNDLE_URL = \"https://static.leen.dev/dev/bundle.js\";\nconst PROD_BUNDLE_BASE_URL = \"https://static.leen.dev/prod\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class LeenOnRampScriptService {\n  private readonly scriptPromises = new Map<string, Promise<void>>();\n\n  load(bundleVersion?: string): Promise<void> {\n    const bundleUrl = this.resolveBundleUrl(bundleVersion);\n\n    if (!this.scriptPromises.has(bundleUrl)) {\n      this.scriptPromises.set(bundleUrl, this.appendScript(bundleUrl));\n    }\n\n    return this.scriptPromises.get(bundleUrl)!;\n  }\n\n  private resolveBundleUrl(bundleVersion?: string): string {\n    if (bundleVersion === \"dev\") {\n      return DEV_BUNDLE_URL;\n    }\n\n    const versionSegment = bundleVersion ?? \"latest\";\n    return `${PROD_BUNDLE_BASE_URL}/${versionSegment}/bundle.js`;\n  }\n\n  private appendScript(url: string): Promise<void> {\n    if (typeof document === \"undefined\" || typeof window === \"undefined\") {\n      // Likely running in a non-browser environment (e.g. SSR). Resolve early.\n      return Promise.resolve();\n    }\n\n    const existingScript = Array.from(\n      document.getElementsByTagName(\"script\"),\n    ).find((script) => script.src === url);\n\n    if (existingScript) {\n      if (typeof window.renderLeenOnRamp === \"function\") {\n        return Promise.resolve();\n      }\n\n      return new Promise<void>((resolve) => {\n        this.waitForRenderFunction(resolve);\n      });\n    }\n\n    return new Promise<void>((resolve, reject) => {\n      const script = document.createElement(\"script\");\n      script.nonce = \"leen-onramp\";\n      script.src = url;\n      script.async = true;\n\n      script.onload = () => {\n        this.waitForRenderFunction(resolve);\n      };\n      script.onerror = () => {\n        console.error(`[LeenOnRamp] Failed to load bundle from: ${url}`);\n        this.scriptPromises.delete(url);\n        reject(new Error(`Failed to load Leen OnRamp bundle from ${url}`));\n      };\n\n      document.body.appendChild(script);\n    });\n  }\n\n  private waitForRenderFunction(resolve: () => void): void {\n    if (typeof window === \"undefined\") {\n      resolve();\n      return;\n    }\n\n    if (typeof window.renderLeenOnRamp === \"function\") {\n      resolve();\n      return;\n    }\n\n    const handleReady = () => {\n      window.removeEventListener(\"leenOnRampReady\", handleReady);\n      resolve();\n    };\n\n    window.addEventListener(\"leenOnRampReady\", handleReady);\n  }\n}\n\ndeclare global {\n  interface Window {\n    renderLeenOnRamp?: (props: LeenOnRampProps) => void;\n  }\n}\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  Output,\n  SimpleChanges,\n  ViewChild,\n} from \"@angular/core\";\nimport { LeenOnRampScriptService } from \"./leen-onramp-script.service\";\nimport {\n  DarkModeColorOptions,\n  DocsUrlMapping,\n  LeenConfig,\n  LeenOnRampProps,\n  LeenOnRampResponse,\n  OnRampFontSizeOptions,\n  TextOverrides,\n} from \"./leen-onramp.types\";\n\n@Component({\n  selector: \"leen-onramp\",\n  template: `\n    <div class=\"leen-onramp-container\">\n      <div #container [attr.id]=\"resolvedContainerId\"></div>\n      <div\n        *ngIf=\"!scriptLoaded && !scriptError\"\n        class=\"leen-onramp-placeholder\"\n      >\n        Loading...\n      </div>\n      <div *ngIf=\"scriptError\" class=\"leen-onramp-error\">\n        Error loading Leen OnRamp bundle.\n      </div>\n    </div>\n  `,\n  styles: [\n    `\n      :host {\n        display: block;\n        position: relative;\n      }\n\n      .leen-onramp-container {\n        position: relative;\n      }\n\n      .leen-onramp-placeholder,\n      .leen-onramp-error {\n        font-family: inherit;\n        font-size: 0.875rem;\n        color: #4b5563;\n        margin-top: 0.5rem;\n      }\n\n      .leen-onramp-error {\n        color: #b91c1c;\n      }\n    `,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LeenOnRampComponent\n  implements AfterViewInit, OnChanges, OnDestroy\n{\n  private static idCounter = 0;\n\n  @ViewChild(\"container\", { static: true })\n  private readonly containerRef!: ElementRef<HTMLDivElement>;\n\n  @Input({ required: true }) token!: string;\n  @Input() bundleVersion?: string;\n  @Input() containerId?: string;\n  @Input() requireIdentifier?: boolean;\n  @Input() modalSize?: \"sm\" | \"md\" | \"lg\" | \"xl\";\n  @Input() primaryColor?: string;\n  @Input() logoUrl?: string;\n  @Input() docsUrlOverrides?: DocsUrlMapping;\n  @Input() fontFamily?: string;\n  @Input() fontUrl?: string;\n  @Input() fontSizes?: OnRampFontSizeOptions;\n  @Input() darkMode?: boolean;\n  @Input() darkModeColor?: DarkModeColorOptions;\n  @Input() textOverrides?: TextOverrides;\n  @Input() config?: LeenConfig;\n\n  @Output() leenOnRampResponse = new EventEmitter<\n    LeenOnRampResponse | undefined\n  >();\n  @Output() showLeenOnRamp = new EventEmitter<boolean>();\n\n  scriptLoaded = false;\n  scriptError = false;\n\n  private functionReady = false;\n  private viewInitialized = false;\n  private readonly generatedContainerId = `leenOnRampComponent-${++LeenOnRampComponent.idCounter}`;\n  private lastRenderedContainerId: string | null = null;\n\n  constructor(\n    private readonly loader: LeenOnRampScriptService,\n    private readonly cdr: ChangeDetectorRef,\n    private readonly ngZone: NgZone,\n  ) {}\n\n  get resolvedContainerId(): string {\n    return this.containerId ?? this.generatedContainerId;\n  }\n\n  ngAfterViewInit(): void {\n    this.viewInitialized = true;\n    this.loadBundle();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!this.viewInitialized || this.scriptError) {\n      return;\n    }\n\n    if (changes[\"bundleVersion\"] && !changes[\"bundleVersion\"].firstChange) {\n      this.reloadBundle();\n      return;\n    }\n\n    if (this.functionReady) {\n      this.renderOnRamp();\n    }\n  }\n\n  ngOnDestroy(): void {\n    const targetId = this.lastRenderedContainerId ?? this.resolvedContainerId;\n    if (typeof window !== \"undefined\") {\n      window.destroyLeenOnRamp?.(targetId);\n    }\n  }\n\n  private loadBundle(): void {\n    if (!this.token) {\n      console.error(\"[LeenOnRamp] A token input is required to render the widget.\");\n      this.scriptError = true;\n      this.cdr.markForCheck();\n      return;\n    }\n\n    this.ngZone.runOutsideAngular(() => {\n      this.loader\n        .load(this.bundleVersion)\n        .then(() => {\n          this.scriptLoaded = true;\n          this.functionReady =\n            typeof window !== \"undefined\" &&\n            typeof window.renderLeenOnRamp === \"function\";\n\n          if (!this.functionReady) {\n            throw new Error(\n              \"Leen OnRamp bundle loaded but render function is unavailable.\",\n            );\n          }\n\n          this.ngZone.run(() => this.cdr.markForCheck());\n          this.renderOnRamp();\n        })\n        .catch((error) => {\n          console.error(\"[LeenOnRamp] Failed to load bundle:\", error);\n          this.scriptError = true;\n          this.ngZone.run(() => this.cdr.markForCheck());\n        });\n    });\n  }\n\n  private reloadBundle(): void {\n    const targetId = this.lastRenderedContainerId ?? this.resolvedContainerId;\n    if (typeof window !== \"undefined\") {\n      window.destroyLeenOnRamp?.(targetId);\n    }\n\n    this.scriptLoaded = false;\n    this.functionReady = false;\n    this.ngZone.run(() => this.cdr.markForCheck());\n\n    this.loadBundle();\n  }\n\n  private renderOnRamp(): void {\n    if (\n      !this.viewInitialized ||\n      this.scriptError ||\n      !this.functionReady ||\n      !this.token\n    ) {\n      return;\n    }\n\n    if (typeof window === \"undefined\") {\n      return;\n    }\n\n    const containerId = this.resolvedContainerId;\n\n    // Ensure the DOM element exists before trying to render\n    const containerElement = document.getElementById(containerId);\n    if (!containerElement) {\n      // Retry after a short delay to allow Angular to finish rendering\n      setTimeout(() => this.renderOnRamp(), 100);\n      return;\n    }\n\n    if (this.lastRenderedContainerId && this.lastRenderedContainerId !== containerId) {\n      window.destroyLeenOnRamp?.(this.lastRenderedContainerId);\n    }\n    this.lastRenderedContainerId = containerId;\n\n    const props: LeenOnRampProps = {\n      token: this.token,\n      setLeenOnRampResponse: (response) => {\n        this.ngZone.run(() => this.leenOnRampResponse.emit(response));\n      },\n      setShowLeenOnRamp: (value) => {\n        this.ngZone.run(() => this.showLeenOnRamp.emit(value));\n      },\n      requireIdentifier: this.requireIdentifier,\n      modalSize: this.modalSize,\n      primaryColor: this.primaryColor,\n      logoUrl: this.logoUrl,\n      docsUrlOverrides: this.docsUrlOverrides,\n      fontFamily: this.fontFamily,\n      fontUrl: this.fontUrl,\n      fontSizes: this.fontSizes,\n      darkMode: this.darkMode,\n      darkModeColor: this.darkModeColor,\n      textOverrides: this.textOverrides,\n      config: {\n        ...this.config,\n        containerId,\n      },\n    };\n\n    this.ngZone.runOutsideAngular(() => {\n      window.renderLeenOnRamp?.(props);\n    });\n  }\n}\n\ndeclare global {\n  interface Window {\n    renderLeenOnRamp?: (props: LeenOnRampProps) => void;\n    destroyLeenOnRamp?: (containerId?: string) => void;\n  }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { LeenOnRampComponent } from \"./leen-onramp.component\";\n\n@NgModule({\n  declarations: [LeenOnRampComponent],\n  imports: [CommonModule],\n  exports: [LeenOnRampComponent],\n})\nexport class LeenOnRampModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LeenOnRampScriptService"],"mappings":"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"}