{"version":3,"file":"ngx-device-info.mjs","sources":["../../../projects/ngx-device-info/src/lib/ngx-device-info.service.ts","../../../projects/ngx-device-info/src/lib/ngx-device-info.component.ts","../../../projects/ngx-device-info/src/public-api.ts","../../../projects/ngx-device-info/src/ngx-device-info.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NgxDeviceInfoService {\n  private permissionsNames = [\n    'geolocation',\n    'notifications',\n    'push',\n    'midi',\n    'camera',\n    'microphone',\n    'speaker',\n    'device-info',\n    'background-fetch',\n    'background-sync',\n    'bluetooth',\n    'persistent-storage',\n    'ambient-light-sensor',\n    'accelerometer',\n    'gyroscope',\n    'magnetometer',\n    'clipboard',\n    'display-capture',\n    'nfc',\n  ];\n  constructor() { }\n\n  public async getDeviceInfo() {\n    let deviceName = '';\n    var isMobile = {\n      Android: function () {\n        return navigator.userAgent.match(/Android/i);\n      },\n      Datalogic: function () {\n        return navigator.userAgent.match(/DL-AXIS/i);\n      },\n      Bluebird: function () {\n        return navigator.userAgent.match(/EF500/i);\n      },\n      Honeywell: function () {\n        return navigator.userAgent.match(/CT50/i);\n      },\n      Zebra: function () {\n        return navigator.userAgent.match(/TC70|TC55/i);\n      },\n      BlackBerry: function () {\n        return navigator.userAgent.match(/BlackBerry/i);\n      },\n      iOS: function () {\n        return navigator.userAgent.match(/iPhone|iPad|iPod/i);\n      },\n      Windows: function () {\n        return navigator.userAgent.match(/IEMobile/i);\n      },\n      any: function () {\n        return (\n          isMobile.Datalogic() ||\n          isMobile.Bluebird() ||\n          isMobile.Honeywell() ||\n          isMobile.Zebra() ||\n          isMobile.BlackBerry() ||\n          isMobile.Android() ||\n          isMobile.iOS() ||\n          isMobile.Windows()\n        );\n      },\n    };\n\n    if (isMobile.Datalogic()) deviceName = 'Datalogic';\n    else if (isMobile.Bluebird()) deviceName = 'Bluebird';\n    else if (isMobile.Honeywell()) deviceName = 'Honeywell';\n    else if (isMobile.Zebra()) deviceName = 'Zebra';\n    else if (isMobile.BlackBerry()) deviceName = 'BlackBerry';\n    else if (isMobile.iOS()) deviceName = 'iOS';\n    else if (deviceName == '' && isMobile.Android()) deviceName = 'Android';\n    else if (deviceName == '' && isMobile.Windows()) deviceName = 'Windows';\n\n    // if (deviceName) {\n    //   console.log('Devices information deviceName = ' + deviceName);\n    //   console.log('Devices information any = ' + isMobile.any());\n    //   console.log('navigator.userAgent = ' + navigator.userAgent);\n    // }\n    let deviceData: any = {\n      deviceName: deviceName,\n      orientation: this.getOrientation(),\n      deviceType: this.getDeviceType(),\n      userAgent: navigator.userAgent,\n      isMobile: this.isMobile(),\n      isDesktop: this.isDesktop(),\n      isTablet: this.isTablet(),\n      language: window.navigator.language,\n      isOnline: window.navigator.onLine,\n      cookieEnabled: window.navigator.cookieEnabled,\n      vendor: window.navigator.vendor,\n      clientHeight: document.body.clientHeight,\n      clientWidth: document.body.clientWidth,\n      height: screen.height,\n      width: screen.width,\n      availHeight: screen.availHeight,\n      availWidth: screen.availWidth,\n      innerHeight: window.innerHeight,\n      innerWidth: window.innerWidth,\n      outerHeight: window.outerHeight,\n      outerWidth: window.outerWidth,\n      href: window.location.href,\n      protocal: window.location.protocol,\n      host: window.location.host,\n      hostname: window.location.hostname,\n      port: window.location.port,\n      pathname: window.location.pathname,\n      search: window.location.search,\n      hash: window.location.hash,\n      origin: window.location.origin,\n      timeZoneOffSet: new Date().getTimezoneOffset(),\n      utcString: new Date().toUTCString(),\n      time: new Date().getTime(),\n      date: new Date().getDate(),\n      day: new Date().getDay(),\n      month: new Date().getMonth(),\n      hour: new Date().getHours(),\n      year: new Date().getFullYear(),\n      seconds: new Date().getSeconds,\n      milliseconds: new Date().getMilliseconds(),\n      utcdate: new Date().getUTCDate(),\n      utcday: new Date().getUTCDay(),\n      utcmonth: new Date().getUTCMonth(),\n      utcyear: new Date().getUTCFullYear(),\n    };\n    await this.getAllPermissions().then((data) => {\n      data.forEach((element: any) => {\n        deviceData[element['permissionName']] = element['state'];\n      });\n    });\n    return deviceData;\n  }\n\n  public getDeviceName() {\n    var sBrowser,\n      sUsrAg = navigator.userAgent;\n\n    // The order matters here, and this may report false positives for unlisted browsers.\n\n    if (sUsrAg.indexOf('Firefox') > -1) {\n      sBrowser = 'Mozilla Firefox';\n      // \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0\"\n    } else if (sUsrAg.indexOf('SamsungBrowser') > -1) {\n      sBrowser = 'Samsung Internet';\n      // \"Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-G955F Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/9.4 Chrome/67.0.3396.87 Mobile Safari/537.36\n    } else if (sUsrAg.indexOf('Opera') > -1 || sUsrAg.indexOf('OPR') > -1) {\n      sBrowser = 'Opera';\n      // \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 OPR/57.0.3098.106\"\n    } else if (sUsrAg.indexOf('Trident') > -1) {\n      sBrowser = 'Microsoft Internet Explorer';\n      // \"Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Zoom 3.6.0; wbx 1.0.0; rv:11.0) like Gecko\"\n    } else if (sUsrAg.indexOf('Edge') > -1) {\n      sBrowser = 'Microsoft Edge (Legacy)';\n      // \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299\"\n    } else if (sUsrAg.indexOf('Edg') > -1) {\n      sBrowser = 'Microsoft Edge (Chromium)';\n      // Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.64\n    } else if (sUsrAg.indexOf('Chrome') > -1) {\n      sBrowser = 'Google Chrome or Chromium';\n      // \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/66.0.3359.181 Chrome/66.0.3359.181 Safari/537.36\"\n    } else if (sUsrAg.indexOf('Safari') > -1) {\n      sBrowser = 'Apple Safari';\n      // \"Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1 980x1306\"\n    } else {\n      sBrowser = 'unknown';\n    }\n    return sBrowser;\n  }\n\n  public getDeviceType() {\n    const ua = navigator.userAgent;\n    if (/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(ua)) {\n      return 'tablet';\n    }\n    if (\n      /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(\n        ua\n      )\n    ) {\n      return 'mobile';\n    }\n    return 'desktop';\n  }\n\n  public isMobile() {\n    const ua = navigator.userAgent;\n    if (/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(ua)) {\n      return false;\n    }\n    if (\n      /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(\n        ua\n      )\n    ) {\n      return true;\n    }\n    return false;\n  }\n\n  public isTablet() {\n    const ua = navigator.userAgent;\n    if (/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(ua)) {\n      return true;\n    }\n    if (\n      /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(\n        ua\n      )\n    ) {\n      return false;\n    }\n    return false;\n  }\n\n  public isDesktop() {\n    const ua = navigator.userAgent;\n    if (/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(ua)) {\n      return false;\n    }\n    if (\n      /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(\n        ua\n      )\n    ) {\n      return false;\n    }\n    return true;\n  }\n\n  public getOrientation() {\n    if (window.matchMedia('(orientation: portrait)').matches) {\n      return 'portrait';\n    }\n    if (window.matchMedia('(orientation: landscape)').matches) {\n      return 'landscape';\n    }\n    return \"\";\n  }\n\n  public getAllPermissions = async () => {\n    const allPermissions: any = [];\n    // We use Promise.all to wait until all the permission queries are resolved\n    await Promise.all(\n      this.permissionsNames.map(async (permissionName: any) => {\n        try {\n          let permission;\n          switch (permissionName) {\n            case 'push':\n              // Not necessary but right now Chrome only supports push messages with  notifications\n              permission = await navigator.permissions.query({\n                name: permissionName,\n              });\n              break;\n            default:\n              permission = await navigator.permissions.query({\n                name: permissionName,\n              });\n          }\n          allPermissions.push({ permissionName, state: permission.state });\n        } catch (e: any) {\n          allPermissions.push({\n            permissionName,\n            state: 'error',\n            errorMessage: e.toString(),\n          });\n        }\n      })\n    );\n    return allPermissions;\n  };\n}\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'lib-ngx-device-info',\n    template: `\n    <p>\n      ngx-device-info works!\n    </p>\n  `,\n    styles: [],\n    standalone: true\n})\nexport class NgxDeviceInfoComponent {\n\n}\n","/*\n * Public API Surface of ngx-device-info\n */\n\nexport * from './lib/ngx-device-info.service';\nexport * from './lib/ngx-device-info.component';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}