{"version":3,"file":"kolektor-nucleus-common.mjs","sources":["../../../../../../libs/ng/nucleus/nucleus-common/src/lib/nucleus-app.service.ts","../../../../../../libs/ng/nucleus/nucleus-common/src/kolektor-nucleus-common.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Device, DeviceInfo } from '@capacitor/device';\nimport { App, AppLaunchUrl } from '@capacitor/app';\nimport { Browser } from '@capacitor/browser';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NucleusAppService {\n  private _deviceInfo!: DeviceInfo;\n  private _launchUrl: AppLaunchUrl | undefined;\n\n  private _isInitialized = false;\n  private _initPromise!: Promise<void>;\n\n  public async init() {\n    if (!this._initPromise) {\n      this._initPromise = this._init();\n    }\n    return await this._initPromise;\n  }\n\n  private async _init() {\n    this._deviceInfo = await Device.getInfo();\n    this._launchUrl = await App.getLaunchUrl();\n    this._isInitialized = true;\n  }\n\n  public get deviceInfo() {\n    this.checkInitialized();\n    return this._deviceInfo;\n  }\n\n  get platform(): 'ios' | 'android' | 'electron' | 'web' | 'ios-pwa' | 'pwa' {\n    this.checkInitialized();\n    if (window.matchMedia('(display-mode: standalone)').matches) {\n      // If it is added to homescreen on Chrome (Android or Windows)\n      return 'pwa';\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    } else if ((window.navigator as any).standalone === true) {\n      // if it is added to home screen on iOS\n      return 'ios-pwa';\n    } else {\n      return this.deviceInfo.platform;\n    }\n  }\n\n  get isAppLike() {\n    return this.platform !== 'web';\n  }\n\n  get isPwa() {\n    return this.platform.endsWith('pwa');\n  }\n\n  get isNative() {\n    return this.deviceInfo.platform !== 'web';\n  }\n\n  get launchUrl() {\n    return this._launchUrl ? this._launchUrl.url : null;\n  }\n\n  private checkInitialized() {\n    if (!this._isInitialized) {\n      throw new Error(\n        'NucleusAppService is not initialized! Call init before you use any of the other method!'\n      );\n    }\n  }\n\n  public openInBrowser(url: string) {\n    if (this.isNative) {\n      Browser.open({ url });\n    } else {\n      window.open(url);\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAQa,iBAAiB,CAAA;AAH9B,IAAA,WAAA,GAAA;QAOU,IAAA,CAAA,cAAc,GAAG,KAAK;AAkE/B,IAAA;AA/DQ,IAAA,MAAM,IAAI,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE;QAClC;AACA,QAAA,OAAO,MAAM,IAAI,CAAC,YAAY;IAChC;AAEQ,IAAA,MAAM,KAAK,GAAA;QACjB,IAAI,CAAC,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE;QACzC,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,CAAC,YAAY,EAAE;AAC1C,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;IAC5B;AAEA,IAAA,IAAW,UAAU,GAAA;QACnB,IAAI,CAAC,gBAAgB,EAAE;QACvB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,MAAM,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,OAAO,EAAE;;AAE3D,YAAA,OAAO,KAAK;;QAEd;aAAO,IAAK,MAAM,CAAC,SAAiB,CAAC,UAAU,KAAK,IAAI,EAAE;;AAExD,YAAA,OAAO,SAAS;QAClB;aAAO;AACL,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ;QACjC;IACF;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,KAAK;IAChC;AAEA,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;IACtC;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,KAAK;IAC3C;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI;IACrD;IAEQ,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F;QACH;IACF;AAEO,IAAA,aAAa,CAAC,GAAW,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACvB;aAAO;AACL,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAClB;IACF;8GArEW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;2FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACPD;;AAEG;;;;"}