{"version":3,"file":"bootkit-angular-authentication.mjs","sources":["../../../projects/bootkit/authentication/google-authentication.ts","../../../projects/bootkit/authentication/bootkit-angular-authentication.ts"],"sourcesContent":["import { Injectable, Inject } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ScriptLoader } from '@bootkit/angular/script';\r\ndeclare var google: any;\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class GoogleAuthentication {\r\n  private readonly _googleAuthUrl = 'https://accounts.google.com/gsi/client';\r\n  private _signinSubject = new Subject<{ credential: string }>();\r\n  private _baseUrl?: string;\r\n\r\n  public signin = this._signinSubject.asObservable();\r\n  private _initialized = false;\r\n\r\n  constructor(\r\n    @Inject(DOCUMENT) private document: Document,\r\n    private scriptLoader: ScriptLoader,\r\n  ) { }\r\n\r\n  /**\r\n * Initializes the Google authentication process.\r\n * @param googleClientId - The client ID for the Google application.\r\n */\r\n  initialize(googleClientId: string) {\r\n    return new Promise((resolve, reject) => {\r\n      if (this._initialized) {\r\n        resolve(undefined);\r\n        return;\r\n      }\r\n\r\n      this.scriptLoader.load(this._googleAuthUrl).then(x => {\r\n        google.accounts.id.initialize({\r\n          client_id: googleClientId,\r\n          callback: (res: any) => {\r\n            this._signinSubject.next({ credential: res.credential })\r\n          }\r\n        });\r\n\r\n        this._initialized = true;\r\n        resolve(undefined);\r\n      });\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Renders the Google Sign-In button .\r\n   * @param buttonId - The ID of the HTML element where the button will be rendered.\r\n   */\r\n  renderGoogleButton(buttonId: string, options?: {\r\n    width?: string,\r\n    theme?: \"outline\" | \"filled_blue\" | \"filled_black\",\r\n    size?:  \"small\" | \"medium\" | \"large\",\r\n    text?: \"signin\" | \"signup_with\" | \"signin_with\" | \"continue_with\",\r\n    shape?: \"rectangular\" | \"pill\",\r\n    logo_alignment?: \"left\" | \"center\",\r\n    locale?: string,\r\n  }) {\r\n    google.accounts.id.renderButton(\r\n      this.document.getElementById(buttonId),\r\n      { theme: \"outline\", text: 'continue_with', ...options }\r\n    );\r\n  }\r\n\r\n  showOneTapDialog() {\r\n    google.accounts.id.prompt();\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MASa,oBAAoB,CAAA;AASH,IAAA,QAAA,CAAA;AAClB,IAAA,YAAA,CAAA;IATO,cAAc,GAAG,wCAAwC,CAAC;AACnE,IAAA,cAAc,GAAG,IAAI,OAAO,EAA0B,CAAC;AACvD,IAAA,QAAQ,CAAU;AAEnB,IAAA,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IAC3C,YAAY,GAAG,KAAK,CAAC;IAE7B,WAC4B,CAAA,QAAkB,EACpC,YAA0B,EAAA;QADR,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QACpC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;KAC/B;AAEL;;;AAGC;AACD,IAAA,UAAU,CAAC,cAAsB,EAAA;QAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,OAAO,CAAC,SAAS,CAAC,CAAC;gBACnB,OAAO;aACR;AAED,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,IAAG;AACnD,gBAAA,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC;AAC5B,oBAAA,SAAS,EAAE,cAAc;AACzB,oBAAA,QAAQ,EAAE,CAAC,GAAQ,KAAI;AACrB,wBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;qBACzD;AACF,iBAAA,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,OAAO,CAAC,SAAS,CAAC,CAAC;AACrB,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED;;;AAGG;IACH,kBAAkB,CAAC,QAAgB,EAAE,OAQpC,EAAA;AACC,QAAA,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAC7B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EACtC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,CACxD,CAAC;KACH;IAED,gBAAgB,GAAA;AACd,QAAA,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;KAC7B;AA3DU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBASrB,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AATP,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAUI,MAAM;2BAAC,QAAQ,CAAA;;;AClBpB;;AAEG;;;;"}