{"version":3,"file":"static/js/315.6b876224.chunk.js","mappings":"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","sources":["../node_modules/@capacitor/device/src/web.ts"],"sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type {\n BatteryInfo,\n DeviceId,\n DeviceInfo,\n DevicePlugin,\n GetLanguageCodeResult,\n LanguageTag,\n} from './definitions';\n\ndeclare global {\n interface Navigator {\n getBattery: any;\n oscpu: any;\n }\n\n interface Window {\n InstallTrigger?: any;\n ApplePaySession?: any;\n chrome?: any;\n }\n}\n\nexport class DeviceWeb extends WebPlugin implements DevicePlugin {\n async getId(): Promise {\n return {\n identifier: this.getUid(),\n };\n }\n\n async getInfo(): Promise {\n if (typeof navigator === 'undefined' || !navigator.userAgent) {\n throw this.unavailable('Device API not available in this browser');\n }\n\n const ua = navigator.userAgent;\n const uaFields = this.parseUa(ua);\n\n return {\n model: uaFields.model,\n platform: 'web',\n operatingSystem: uaFields.operatingSystem,\n osVersion: uaFields.osVersion,\n manufacturer: navigator.vendor,\n isVirtual: false,\n webViewVersion: uaFields.browserVersion,\n };\n }\n\n async getBatteryInfo(): Promise {\n if (typeof navigator === 'undefined' || !navigator.getBattery) {\n throw this.unavailable('Device API not available in this browser');\n }\n let battery: any = {};\n\n try {\n battery = await navigator.getBattery();\n } catch (e) {\n // Let it fail, we don't care\n }\n\n return {\n batteryLevel: battery.level,\n isCharging: battery.charging,\n };\n }\n\n async getLanguageCode(): Promise {\n return {\n value: navigator.language.split('-')[0].toLowerCase(),\n };\n }\n\n async getLanguageTag(): Promise {\n return {\n value: navigator.language,\n };\n }\n\n parseUa(ua: string): any {\n const uaFields: any = {};\n const start = ua.indexOf('(') + 1;\n let end = ua.indexOf(') AppleWebKit');\n if (ua.indexOf(') Gecko') !== -1) {\n end = ua.indexOf(') Gecko');\n }\n const fields = ua.substring(start, end);\n if (ua.indexOf('Android') !== -1) {\n const tmpFields = fields.replace('; wv', '').split('; ').pop();\n if (tmpFields) {\n uaFields.model = tmpFields.split(' Build')[0];\n }\n uaFields.osVersion = fields.split('; ')[1];\n } else {\n uaFields.model = fields.split('; ')[0];\n if (typeof navigator !== 'undefined' && navigator.oscpu) {\n uaFields.osVersion = navigator.oscpu;\n } else {\n if (ua.indexOf('Windows') !== -1) {\n uaFields.osVersion = fields;\n } else {\n const tmpFields = fields.split('; ').pop();\n if (tmpFields) {\n const lastParts = tmpFields\n .replace(' like Mac OS X', '')\n .split(' ');\n uaFields.osVersion = lastParts[lastParts.length - 1].replace(\n /_/g,\n '.',\n );\n }\n }\n }\n }\n\n if (/android/i.test(ua)) {\n uaFields.operatingSystem = 'android';\n } else if (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) {\n uaFields.operatingSystem = 'ios';\n } else if (/Win/.test(ua)) {\n uaFields.operatingSystem = 'windows';\n } else if (/Mac/i.test(ua)) {\n uaFields.operatingSystem = 'mac';\n } else {\n uaFields.operatingSystem = 'unknown';\n }\n\n // Check for browsers based on non-standard javascript apis, only not user agent\n const isSafari = !!window.ApplePaySession;\n const isChrome = !!window.chrome;\n const isFirefox = /Firefox/.test(ua);\n const isEdge = /Edg/.test(ua);\n const isFirefoxIOS = /FxiOS/.test(ua);\n const isChromeIOS = /CriOS/.test(ua);\n const isEdgeIOS = /EdgiOS/.test(ua);\n\n // FF and Edge User Agents both end with \"/MAJOR.MINOR\"\n if (\n isSafari ||\n (isChrome && !isEdge) ||\n isFirefoxIOS ||\n isChromeIOS ||\n isEdgeIOS\n ) {\n // Safari version comes as \"... Version/MAJOR.MINOR ...\"\n // Chrome version comes as \"... Chrome/MAJOR.MINOR ...\"\n // FirefoxIOS version comes as \"... FxiOS/MAJOR.MINOR ...\"\n // ChromeIOS version comes as \"... CriOS/MAJOR.MINOR ...\"\n let searchWord: string;\n if (isFirefoxIOS) {\n searchWord = 'FxiOS';\n } else if (isChromeIOS) {\n searchWord = 'CriOS';\n } else if (isEdgeIOS) {\n searchWord = 'EdgiOS';\n } else if (isSafari) {\n searchWord = 'Version';\n } else {\n searchWord = 'Chrome';\n }\n\n const words = ua.split(' ');\n for (const word of words) {\n if (word.includes(searchWord)) {\n const version = word.split('/')[1];\n uaFields.browserVersion = version;\n }\n }\n } else if (isFirefox || isEdge) {\n const reverseUA = ua.split('').reverse().join('');\n const reverseVersion = reverseUA.split('/')[0];\n const version = reverseVersion.split('').reverse().join('');\n uaFields.browserVersion = version;\n }\n\n return uaFields;\n }\n\n getUid(): string {\n if (typeof window !== 'undefined' && window.localStorage) {\n let uid = window.localStorage.getItem('_capuid');\n if (uid) {\n return uid;\n }\n\n uid = this.uuid4();\n window.localStorage.setItem('_capuid', uid);\n return uid;\n }\n return this.uuid4();\n }\n\n uuid4(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\n /[xy]/g,\n function (c) {\n const r = (Math.random() * 16) | 0,\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n },\n );\n }\n}\n"],"names":["DeviceWeb","WebPlugin","getId","identifier","this","getUid","getInfo","navigator","userAgent","unavailable","ua","uaFields","parseUa","model","platform","operatingSystem","osVersion","manufacturer","vendor","isVirtual","webViewVersion","browserVersion","getBatteryInfo","getBattery","battery","e","batteryLevel","level","isCharging","charging","getLanguageCode","value","language","split","toLowerCase","getLanguageTag","start","indexOf","end","fields","substring","tmpFields","replace","pop","oscpu","lastParts","length","test","window","MSStream","isSafari","ApplePaySession","isChrome","chrome","isFirefox","isEdge","isFirefoxIOS","isChromeIOS","isEdgeIOS","searchWord","words","word","includes","version","reverse","join","localStorage","uid","getItem","uuid4","setItem","c","r","Math","random","toString"],"sourceRoot":""}